From 4fdb74f6941a57f4770f794f13ea0e695ee1c1f1 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Fri, 10 Jan 2025 20:17:00 +0700
Subject: [PATCH 01/58] SRISE

---
 agent/src/index.ts                            |   31 +-
 package.json                                  |    5 +-
 packages/client-twitter/src/interactions.ts   |   13 +-
 packages/core/src/generation.ts               |   91 +-
 packages/core/src/types.ts                    |   50 +
 .../plugin-coinbase/src/plugins/trades.csv    |    2 +
 packages/plugin-web-search/package.json       |    1 +
 packages/plugin-web-search/src/index.ts       |   68 +-
 pnpm-lock.yaml                                | 4484 ++++++++---------
 9 files changed, 2288 insertions(+), 2457 deletions(-)
 create mode 100644 packages/plugin-coinbase/src/plugins/trades.csv

diff --git a/agent/src/index.ts b/agent/src/index.ts
index 53058cf4ece..7e5a36f1497 100644
--- a/agent/src/index.ts
+++ b/agent/src/index.ts
@@ -1,4 +1,5 @@
 import { PostgresDatabaseAdapter } from "@elizaos/adapter-postgres";
+import { RedisClient } from "@elizaos/adapter-redis";
 import { SqliteDatabaseAdapter } from "@elizaos/adapter-sqlite";
 import { AutoClientInterface } from "@elizaos/client-auto";
 import { DiscordClientInterface } from "@elizaos/client-discord";
@@ -10,31 +11,32 @@ import { TwitterClientInterface } from "@elizaos/client-twitter";
 import {
     AgentRuntime,
     CacheManager,
+    CacheStore,
     Character,
+    Client,
     Clients,
     DbCacheAdapter,
     defaultCharacter,
     elizaLogger,
     FsCacheAdapter,
     IAgentRuntime,
+    ICacheManager,
     IDatabaseAdapter,
     IDatabaseCacheAdapter,
     ModelProviderName,
     settings,
     stringToUuid,
-    validateCharacterConfig,
-    CacheStore,
-    Client,
-    ICacheManager,
-    parseBooleanFromText,
+    validateCharacterConfig
 } from "@elizaos/core";
-import { RedisClient } from "@elizaos/adapter-redis";
 import { zgPlugin } from "@elizaos/plugin-0g";
 import { bootstrapPlugin } from "@elizaos/plugin-bootstrap";
 import createGoatPlugin from "@elizaos/plugin-goat";
 // import { intifacePlugin } from "@elizaos/plugin-intiface";
 import { DirectClient } from "@elizaos/client-direct";
+import { ThreeDGenerationPlugin } from "@elizaos/plugin-3d-generation";
+import { abstractPlugin } from "@elizaos/plugin-abstract";
 import { aptosPlugin } from "@elizaos/plugin-aptos";
+import { avalanchePlugin } from "@elizaos/plugin-avalanche";
 import {
     advancedTradePlugin,
     coinbaseCommercePlugin,
@@ -44,32 +46,31 @@ import {
     webhookPlugin,
 } from "@elizaos/plugin-coinbase";
 import { confluxPlugin } from "@elizaos/plugin-conflux";
+import { cronosZkEVMPlugin } from "@elizaos/plugin-cronoszkevm";
+import { echoChamberPlugin } from "@elizaos/plugin-echochambers";
 import { evmPlugin } from "@elizaos/plugin-evm";
-import { storyPlugin } from "@elizaos/plugin-story";
 import { flowPlugin } from "@elizaos/plugin-flow";
 import { fuelPlugin } from "@elizaos/plugin-fuel";
 import { imageGenerationPlugin } from "@elizaos/plugin-image-generation";
-import { ThreeDGenerationPlugin } from "@elizaos/plugin-3d-generation";
 import { multiversxPlugin } from "@elizaos/plugin-multiversx";
 import { nearPlugin } from "@elizaos/plugin-near";
 import { nftGenerationPlugin } from "@elizaos/plugin-nft-generation";
 import { createNodePlugin } from "@elizaos/plugin-node";
 import { solanaPlugin } from "@elizaos/plugin-solana";
+import { storyPlugin } from "@elizaos/plugin-story";
 import { suiPlugin } from "@elizaos/plugin-sui";
 import { TEEMode, teePlugin } from "@elizaos/plugin-tee";
 import { tonPlugin } from "@elizaos/plugin-ton";
-import { zksyncEraPlugin } from "@elizaos/plugin-zksync-era";
-import { cronosZkEVMPlugin } from "@elizaos/plugin-cronoszkevm";
-import { abstractPlugin } from "@elizaos/plugin-abstract";
-import { avalanchePlugin } from "@elizaos/plugin-avalanche";
 import { webSearchPlugin } from "@elizaos/plugin-web-search";
-import { echoChamberPlugin } from "@elizaos/plugin-echochambers";
+import { zksyncEraPlugin } from "@elizaos/plugin-zksync-era";
 import Database from "better-sqlite3";
 import fs from "fs";
+import net from "net";
 import path from "path";
 import { fileURLToPath } from "url";
 import yargs from "yargs";
-import net from "net";
+
+//import {mainCharacter as defaultCharacter} from "../mainCharacter";
 
 const __filename = fileURLToPath(import.meta.url); // get the resolved path to the file
 const __dirname = path.dirname(__filename); // get the name of the directory
@@ -529,7 +530,7 @@ export async function createAgent(
                 ? confluxPlugin
                 : null,
             nodePlugin,
-            getSecret(character, "TAVILY_API_KEY") ? webSearchPlugin : null,
+            getSecret(character, "TAVILY_API_KEY") || getSecret(character, "SERPER_API_KEY") ? webSearchPlugin : null,
             getSecret(character, "SOLANA_PUBLIC_KEY") ||
             (getSecret(character, "WALLET_PUBLIC_KEY") &&
                 !getSecret(character, "WALLET_PUBLIC_KEY")?.startsWith("0x"))
diff --git a/package.json b/package.json
index 36f419f8eb2..5bd706ecced 100644
--- a/package.json
+++ b/package.json
@@ -41,9 +41,9 @@
         "turbo": "2.3.3",
         "typedoc": "0.26.11",
         "typescript": "5.6.3",
+        "viem": "2.21.58",
         "vite": "5.4.11",
-        "vitest": "2.1.5",
-        "viem": "2.21.58"
+        "vitest": "2.1.5"
     },
     "pnpm": {
         "overrides": {
@@ -59,6 +59,7 @@
         "@deepgram/sdk": "^3.9.0",
         "@vitest/eslint-plugin": "1.0.1",
         "amqplib": "0.10.5",
+        "axios": "^1.7.9",
         "csv-parse": "5.6.0",
         "ollama-ai-provider": "0.16.1",
         "optional": "0.1.4",
diff --git a/packages/client-twitter/src/interactions.ts b/packages/client-twitter/src/interactions.ts
index 3274cd32308..423cca69a23 100644
--- a/packages/client-twitter/src/interactions.ts
+++ b/packages/client-twitter/src/interactions.ts
@@ -1,20 +1,20 @@
-import { SearchMode, Tweet } from "agent-twitter-client";
 import {
     composeContext,
+    Content,
+    elizaLogger,
     generateMessageResponse,
     generateShouldRespond,
-    messageCompletionFooter,
-    shouldRespondFooter,
-    Content,
+    getEmbeddingZeroVector,
     HandlerCallback,
     IAgentRuntime,
     Memory,
+    messageCompletionFooter,
     ModelClass,
+    shouldRespondFooter,
     State,
     stringToUuid,
-    elizaLogger,
-    getEmbeddingZeroVector,
 } from "@elizaos/core";
+import { SearchMode, Tweet } from "agent-twitter-client";
 import { ClientBase } from "./base";
 import { buildConversationThread, sendTweet, wait } from "./utils.ts";
 
@@ -397,6 +397,7 @@ export class TwitterInteractionClient {
 
         // Promise<"RESPOND" | "IGNORE" | "STOP" | null> {
         if (shouldRespond !== "RESPOND") {
+            console.log("NOTR",shouldRespond);
             elizaLogger.log("Not responding to message");
             return { text: "Response Decision:", action: shouldRespond };
         }
diff --git a/packages/core/src/generation.ts b/packages/core/src/generation.ts
index 5db5b8e70a5..570971c357b 100644
--- a/packages/core/src/generation.ts
+++ b/packages/core/src/generation.ts
@@ -2,46 +2,48 @@ import { createAnthropic } from "@ai-sdk/anthropic";
 import { createGoogleGenerativeAI } from "@ai-sdk/google";
 import { createGroq } from "@ai-sdk/groq";
 import { createOpenAI } from "@ai-sdk/openai";
-import { RecursiveCharacterTextSplitter } from "langchain/text_splitter";
+import { fal } from "@fal-ai/client";
+import { AutoTokenizer } from "@huggingface/transformers";
+import { tavily } from "@tavily/core";
 import {
     generateObject as aiGenerateObject,
     generateText as aiGenerateText,
+    StepResult as AIStepResult,
     CoreTool,
     GenerateObjectResult,
-    StepResult as AIStepResult,
 } from "ai";
 import { Buffer } from "buffer";
+import https from 'https';
+import { encodingForModel, TiktokenModel } from "js-tiktoken";
+import { RecursiveCharacterTextSplitter } from "langchain/text_splitter";
 import { createOllama } from "ollama-ai-provider";
 import OpenAI from "openai";
-import { encodingForModel, TiktokenModel } from "js-tiktoken";
-import { AutoTokenizer } from "@huggingface/transformers";
 import Together from "together-ai";
 import { ZodSchema } from "zod";
 import { elizaLogger } from "./index.ts";
 import { getModel, models } from "./models.ts";
 import {
+    parseActionResponseFromText,
     parseBooleanFromText,
     parseJsonArrayFromText,
     parseJSONObjectFromText,
     parseShouldRespondFromText,
-    parseActionResponseFromText,
 } from "./parsing.ts";
 import settings from "./settings.ts";
 import {
+    ActionResponse,
     Content,
     IAgentRuntime,
     IImageDescriptionService,
     ITextGenerationService,
     ModelClass,
     ModelProviderName,
-    ServiceType,
     SearchResponse,
-    ActionResponse,
+    SerperSearchResponse,
+    ServiceType,
     TelemetrySettings,
     TokenizerType,
 } from "./types.ts";
-import { fal } from "@fal-ai/client";
-import { tavily } from "@tavily/core";
 
 type Tool = CoreTool<any, any>;
 type StepResult = AIStepResult<any>;
@@ -1501,12 +1503,81 @@ export const generateWebSearch = async (
             includeAnswer: true,
             maxResults: 3, // 5 (default)
             topic: "general", // "general"(default) "news"
-            searchDepth: "basic", // "basic"(default) "advanced"
+            searchDepth: "advanced", // "basic"(default) "advanced"
             includeImages: false, // false (default) true
         });
+        console.log(`TVLY RES`,response);
+        return response;
+    } catch (error) {
+        elizaLogger.error("Error:", error);
+    }
+};
+export const generateSerperSearch = async (
+    query: string,
+    runtime: IAgentRuntime
+): Promise<SerperSearchResponse> => {
+    try {
+        const apiKey = runtime.getSetting("SERPER_API_KEY") as string;
+        if (!apiKey) {
+            throw new Error("SERPER_API_KEY is not set");
+        }
+        //const cleanedQuery =  query.replace(/@\S+/g, '');
+        //console.log(`CLEANED QUERY`,cleanedQuery)
+        const data = JSON.stringify({
+            q: query
+        });
+
+        const options = {
+            hostname: 'google.serper.dev',
+            port: 443,
+            path: '/search',
+            method: 'POST',
+            headers: {
+                'X-API-KEY': apiKey,
+                'Content-Type': 'application/json',
+                'Content-Length': Buffer.byteLength(data),
+            }
+        };
+
+        const sendRequest = (): Promise<SerperSearchResponse> => {
+            return new Promise((resolve, reject) => {
+                const req = https.request(options, (res) => {
+                    let body = '';
+
+                    res.on('data', (chunk) => {
+                        body += chunk;
+                    });
+
+                    res.on('end', () => {
+                        if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {
+                            try {
+                                const parsedData = JSON.parse(body) as SerperSearchResponse;
+                                resolve(parsedData);
+                            } catch (err) {
+                                reject(new Error(`Failed to parse response: ${err}`));
+                            }
+                        } else {
+                            reject(new Error(`Request failed with status code: ${res.statusCode}`));
+                        }
+                    });
+                });
+
+                req.on('error', (err) => {
+                    reject(err);
+                });
+
+                // Write data to the request body
+                req.write(data);
+                req.end();
+            });
+        };
+
+        const response = await sendRequest();
+        console.log(`TVLY RES`, response);
         return response;
     } catch (error) {
         elizaLogger.error("Error:", error);
+        throw error; // Re-throw the error for the caller to handle.
     }
 };
 /**
diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts
index 3687ded5e01..65d46b667ab 100644
--- a/packages/core/src/types.ts
+++ b/packages/core/src/types.ts
@@ -1282,6 +1282,56 @@ export type SearchResponse = {
     results: SearchResult[];
 };
 
+export type SerperSearchParameters = {
+    q: string;
+    type: string;
+    engine: string;
+  };
+
+  export type SerperAnswerBox = {
+    snippet: string;
+    snippetHighlighted: string[];
+    title: string;
+    link: string;
+  };
+
+  export type SerperSiteLink = {
+    title: string;
+    link: string;
+  };
+
+  export type SerperOrganicResult = {
+    title: string;
+    link: string;
+    snippet: string;
+    sitelinks?: SerperSiteLink[];
+    position: number;
+    attributes?: Record<string, string>;
+    rating?: number;
+    ratingCount?: number;
+  };
+
+  export type SerperPeopleAlsoAsk = {
+    question: string;
+    snippet: string;
+    title: string;
+    link: string;
+  };
+
+  export type SerperRelatedSearch = {
+    query: string;
+  };
+
+  export type SerperSearchResponse = {
+    searchParameters: SerperSearchParameters;
+    answerBox?: SerperAnswerBox;
+    organic: SerperOrganicResult[];
+    peopleAlsoAsk: SerperPeopleAlsoAsk[];
+    relatedSearches: SerperRelatedSearch[];
+    credits: number;
+  };
+
+
 export enum ServiceType {
     IMAGE_DESCRIPTION = "image_description",
     TRANSCRIPTION = "transcription",
diff --git a/packages/plugin-coinbase/src/plugins/trades.csv b/packages/plugin-coinbase/src/plugins/trades.csv
new file mode 100644
index 00000000000..669e45ed68b
--- /dev/null
+++ b/packages/plugin-coinbase/src/plugins/trades.csv
@@ -0,0 +1,2 @@
+Network,From Amount,Source Asset,To Amount,Target Asset,Status,Transaction URL
+
diff --git a/packages/plugin-web-search/package.json b/packages/plugin-web-search/package.json
index ab0b91ecb4c..5b1d7bb96a7 100644
--- a/packages/plugin-web-search/package.json
+++ b/packages/plugin-web-search/package.json
@@ -20,6 +20,7 @@
     ],
     "dependencies": {
         "@elizaos/core": "workspace:*",
+        "axios": "^1.7.9",
         "tsup": "8.3.5"
     },
     "scripts": {
diff --git a/packages/plugin-web-search/src/index.ts b/packages/plugin-web-search/src/index.ts
index 528e2609045..01ac3167521 100644
--- a/packages/plugin-web-search/src/index.ts
+++ b/packages/plugin-web-search/src/index.ts
@@ -1,14 +1,11 @@
-import { elizaLogger } from "@elizaos/core";
 import {
-    Action,
+    Action, elizaLogger, generateSerperSearch,
     HandlerCallback,
     IAgentRuntime,
     Memory,
     Plugin,
-    State,
+    SerperOrganicResult, State
 } from "@elizaos/core";
-import { generateWebSearch } from "@elizaos/core";
-import { SearchResult } from "@elizaos/core";
 import { encodingForModel, TiktokenModel } from "js-tiktoken";
 
 const DEFAULT_MAX_WEB_SEARCH_TOKENS = 4000;
@@ -68,30 +65,57 @@ const webSearch: Action = {
         elizaLogger.log("web search prompt received:", webSearchPrompt);
 
         elizaLogger.log("Generating image with prompt:", webSearchPrompt);
-        const searchResponse = await generateWebSearch(
-            webSearchPrompt,
+        // const searchResponse = await generateWebSearch(
+        //     webSearchPrompt,
+        //     runtime
+        // );
+        const cleansePrompt =  webSearchPrompt.replace(/@\S+/g, '');
+        const serperResponse = await generateSerperSearch(
+            cleansePrompt,
             runtime
         );
 
-        if (searchResponse && searchResponse.results.length) {
-            const responseList = searchResponse.answer
-                ? `${searchResponse.answer}${
-                      Array.isArray(searchResponse.results) &&
-                      searchResponse.results.length > 0
-                          ? `\n\nFor more details, you can check out these resources:\n${searchResponse.results
-                                .map(
-                                    (result: SearchResult, index: number) =>
-                                        `${index + 1}. [${result.title}](${result.url})`
-                                )
-                                .join("\n")}`
-                          : ""
-                  }`
-                : "";
+        if(serperResponse && serperResponse.organic.length){
+            const responseList = serperResponse?.answerBox?.snippet
+            ? `${serperResponse.answerBox.snippet}${
+                  Array.isArray(serperResponse.organic) &&
+                  serperResponse.organic.length > 0
+                      ? `\n\nFor more details, you can check out these resources:\n${serperResponse.organic
+                            .map(
+                                (result: SerperOrganicResult, index: number) =>
+                                    `${index + 1}. [${result.title}](${result.link})`
+                            )
+                            .join("\n")}`
+                      : ""
+              }`
+            : (
+                serperResponse.organic.length > 0 ?  serperResponse.organic[0].snippet : ""
+            );
 
             callback({
                 text: MaxTokens(responseList, DEFAULT_MAX_WEB_SEARCH_TOKENS),
             });
-        } else {
+        }
+        // else if (searchResponse && searchResponse.results.length) {
+        //     const responseList = searchResponse.answer
+        //         ? `${searchResponse.answer}${
+        //               Array.isArray(searchResponse.results) &&
+        //               searchResponse.results.length > 0
+        //                   ? `\n\nFor more details, you can check out these resources:\n${searchResponse.results
+        //                         .map(
+        //                             (result: SearchResult, index: number) =>
+        //                                 `${index + 1}. [${result.title}](${result.url})`
+        //                         )
+        //                         .join("\n")}`
+        //                   : ""
+        //           }`
+        //         : "";
+
+        //     callback({
+        //         text: MaxTokens(responseList, DEFAULT_MAX_WEB_SEARCH_TOKENS),
+        //     });
+        // }
+         else {
             elizaLogger.error("search failed or returned no data.");
         }
     },
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 90f147c715c..4508adcad81 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -22,10 +22,13 @@ importers:
         version: 3.9.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
       '@vitest/eslint-plugin':
         specifier: 1.0.1
-        version: 1.0.1(@typescript-eslint/utils@8.16.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+        version: 1.0.1(@typescript-eslint/utils@8.16.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       amqplib:
         specifier: 0.10.5
         version: 0.10.5
+      axios:
+        specifier: ^1.7.9
+        version: 1.7.9(debug@4.4.0)
       csv-parse:
         specifier: 5.6.0
         version: 5.6.0
@@ -47,7 +50,7 @@ importers:
     devDependencies:
       '@commitlint/cli':
         specifier: 18.6.1
-        version: 18.6.1(@types/node@22.10.4)(typescript@5.6.3)
+        version: 18.6.1(@types/node@22.10.5)(typescript@5.6.3)
       '@commitlint/config-conventional':
         specifier: 18.6.3
         version: 18.6.3
@@ -74,7 +77,7 @@ importers:
         version: 9.1.7
       lerna:
         specifier: 8.1.5
-        version: 8.1.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(encoding@0.1.13)
+        version: 8.1.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(encoding@0.1.13)
       only-allow:
         specifier: 1.2.1
         version: 1.2.1
@@ -95,10 +98,10 @@ importers:
         version: 2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
       vite:
         specifier: 5.4.11
-        version: 5.4.11(@types/node@22.10.4)(terser@5.37.0)
+        version: 5.4.11(@types/node@22.10.5)(terser@5.37.0)
       vitest:
         specifier: 2.1.5
-        version: 2.1.5(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
+        version: 2.1.5(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
 
   agent:
     dependencies:
@@ -246,16 +249,16 @@ importers:
         version: 29.5.14
       jest:
         specifier: ^29.7.0
-        version: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+        version: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
       ts-jest:
         specifier: ^29.2.5
-        version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)))(typescript@5.6.3)
+        version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)))(typescript@5.6.3)
       ts-node:
         specifier: 10.9.2
-        version: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)
+        version: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
 
   client:
     dependencies:
@@ -300,10 +303,10 @@ importers:
         version: 2.5.5
       tailwindcss-animate:
         specifier: 1.0.7
-        version: 1.0.7(tailwindcss@3.4.15(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)))
+        version: 1.0.7(tailwindcss@3.4.15(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)))
       vite-plugin-top-level-await:
         specifier: 1.4.4
-        version: 1.4.4(@swc/helpers@0.5.15)(rollup@4.29.1)(vite@client+@tanstack+router-plugin+vite)
+        version: 1.4.4(@swc/helpers@0.5.15)(rollup@4.30.1)(vite@client+@tanstack+router-plugin+vite)
       vite-plugin-wasm:
         specifier: 3.3.0
         version: 3.3.0(vite@client+@tanstack+router-plugin+vite)
@@ -340,7 +343,7 @@ importers:
         version: 8.4.49
       tailwindcss:
         specifier: 3.4.15
-        version: 3.4.15(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
+        version: 3.4.15(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
       typescript:
         specifier: 5.6.3
         version: 5.6.3
@@ -355,22 +358,25 @@ importers:
     dependencies:
       '@docusaurus/core':
         specifier: 3.6.3
-        version: 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+        version: 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
       '@docusaurus/plugin-content-blog':
         specifier: 3.6.3
-        version: 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+        version: 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
       '@docusaurus/plugin-content-docs':
         specifier: 3.6.3
-        version: 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+        version: 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
       '@docusaurus/plugin-ideal-image':
         specifier: 3.6.3
-        version: 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+        version: 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
       '@docusaurus/preset-classic':
         specifier: 3.6.3
-        version: 3.6.3(@algolia/client-search@5.18.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3)(utf-8-validate@5.0.10)
+        version: 3.6.3(@algolia/client-search@5.19.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/theme-common':
+        specifier: 3.6.3
+        version: 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/theme-mermaid':
         specifier: 3.6.3
-        version: 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+        version: 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
       '@mdx-js/react':
         specifier: 3.0.1
         version: 3.0.1(@types/react@18.3.12)(react@18.3.1)
@@ -379,10 +385,13 @@ importers:
         version: 2.1.1
       docusaurus-lunr-search:
         specifier: 3.5.0
-        version: 3.5.0(@docusaurus/core@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+        version: 3.5.0(@docusaurus/core@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       dotenv:
         specifier: ^16.4.7
         version: 16.4.7
+      lunr:
+        specifier: 2.3.9
+        version: 2.3.9
       prism-react-renderer:
         specifier: 2.3.1
         version: 2.3.1(react@18.3.1)
@@ -398,10 +407,10 @@ importers:
     devDependencies:
       '@docusaurus/module-type-aliases':
         specifier: 3.6.3
-        version: 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+        version: 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@docusaurus/types':
         specifier: 3.6.3
-        version: 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+        version: 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       docusaurus-plugin-typedoc:
         specifier: 1.0.5
         version: 1.0.5(typedoc-plugin-markdown@4.2.10(typedoc@0.26.11(typescript@5.6.3)))
@@ -426,7 +435,7 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
 
   packages/adapter-redis:
     dependencies:
@@ -445,7 +454,7 @@ importers:
         version: 5.0.0
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
 
   packages/adapter-sqlite:
     dependencies:
@@ -467,7 +476,7 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
 
   packages/adapter-sqljs:
     dependencies:
@@ -489,7 +498,7 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
 
   packages/adapter-supabase:
     dependencies:
@@ -505,7 +514,7 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
 
   packages/client-auto:
     dependencies:
@@ -536,7 +545,7 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
 
   packages/client-direct:
     dependencies:
@@ -579,7 +588,7 @@ importers:
         version: 1.4.12
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
 
   packages/client-discord:
     dependencies:
@@ -616,7 +625,7 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
 
   packages/client-farcaster:
     dependencies:
@@ -625,11 +634,11 @@ importers:
         version: link:../core
       '@neynar/nodejs-sdk':
         specifier: ^2.0.3
-        version: 2.7.0(bufferutil@4.0.9)(class-transformer@0.5.1)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+        version: 2.8.0(bufferutil@4.0.9)(class-transformer@0.5.1)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
     devDependencies:
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
 
   packages/client-github:
     dependencies:
@@ -654,7 +663,7 @@ importers:
         version: 8.1.0
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
 
   packages/client-lens:
     dependencies:
@@ -673,7 +682,7 @@ importers:
     devDependencies:
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
 
   packages/client-slack:
     dependencies:
@@ -716,22 +725,22 @@ importers:
         version: 29.5.14
       '@types/node':
         specifier: ^18.15.11
-        version: 18.19.69
+        version: 18.19.70
       jest:
         specifier: ^29.5.0
-        version: 29.7.0(@types/node@18.19.69)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3))
+        version: 29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3))
       rimraf:
         specifier: ^5.0.0
         version: 5.0.10
       ts-jest:
         specifier: ^29.1.0
-        version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@18.19.69)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)))(typescript@5.6.3)
+        version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3)))(typescript@5.6.3)
       ts-node:
         specifier: ^10.9.1
-        version: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)
+        version: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3)
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       typescript:
         specifier: ^5.0.0
         version: 5.6.3
@@ -753,7 +762,7 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
 
   packages/client-twitter:
     dependencies:
@@ -775,7 +784,7 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
 
   packages/core:
     dependencies:
@@ -805,7 +814,7 @@ importers:
         version: 10.0.0
       ai:
         specifier: 3.4.33
-        version: 3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.16.1))(svelte@5.16.1)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8)
+        version: 3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8)
       anthropic-vertex-ai:
         specifier: 1.0.2
         version: 1.0.2(encoding@0.1.13)(zod@3.23.8)
@@ -917,7 +926,7 @@ importers:
         version: 16.4.5
       jest:
         specifier: 29.7.0
-        version: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
+        version: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
       lint-staged:
         specifier: 15.2.10
         version: 15.2.10
@@ -935,16 +944,16 @@ importers:
         version: 2.79.2
       ts-jest:
         specifier: 29.2.5
-        version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)))(typescript@5.6.3)
+        version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)))(typescript@5.6.3)
       ts-node:
         specifier: 10.9.2
-        version: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)
+        version: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)
       tslib:
         specifier: 2.8.1
         version: 2.8.1
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       typescript:
         specifier: 5.6.3
         version: 5.6.3
@@ -981,7 +990,7 @@ importers:
         version: 6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
 
   packages/plugin-3d-generation:
     dependencies:
@@ -990,7 +999,7 @@ importers:
         version: link:../core
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1002,7 +1011,7 @@ importers:
         version: link:../core
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       web3:
         specifier: ^4.15.0
         version: 4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
@@ -1032,10 +1041,10 @@ importers:
         version: 5.1.2
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       vitest:
         specifier: 2.1.4
-        version: 2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
+        version: 2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1051,7 +1060,7 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
 
   packages/plugin-bootstrap:
     dependencies:
@@ -1060,7 +1069,7 @@ importers:
         version: link:../core
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1091,7 +1100,7 @@ importers:
         version: 20.17.9
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
 
   packages/plugin-conflux:
     dependencies:
@@ -1112,13 +1121,13 @@ importers:
         version: link:../plugin-trustdb
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       web3:
         specifier: ^4.15.0
         version: 4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
       web3-plugin-zksync:
         specifier: ^1.0.8
-        version: 1.0.8(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.4)(typescript@5.6.3))(typescript@5.6.3)(utf-8-validate@5.0.10)(web3@4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))
+        version: 1.0.8(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.6.3))(typescript@5.6.3)(utf-8-validate@5.0.10)(web3@4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1151,30 +1160,11 @@ importers:
         version: 16.3.0
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
 
-  packages/plugin-ferePro:
-    dependencies:
-      '@elizaos/core':
-        specifier: ^0.1.7-alpha.1
-        version: 0.1.7-alpha.2(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.16.1))(svelte@5.16.1)
-      tsup:
-        specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
-      ws:
-        specifier: ^8.18.0
-        version: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
-    devDependencies:
-      '@types/ws':
-        specifier: ^8.5.13
-        version: 8.5.13
-      tsx:
-        specifier: ^4.19.2
-        version: 4.19.2
-
   packages/plugin-flow:
     dependencies:
       '@elizaos/core':
@@ -1185,7 +1175,7 @@ importers:
         version: 1.5.1
       '@onflow/fcl':
         specifier: 1.13.1
-        version: 1.13.1(@types/react@18.3.12)(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.4.49)(react@18.3.1)(tsx@4.19.2)(utf-8-validate@5.0.10)
+        version: 1.13.1(@types/react@18.3.12)(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.4.49)(react@18.3.1)(utf-8-validate@5.0.10)
       '@onflow/typedefs':
         specifier: 1.4.0
         version: 1.4.0
@@ -1222,10 +1212,10 @@ importers:
         version: 10.0.0
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       vitest:
         specifier: 2.1.4
-        version: 2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
+        version: 2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
 
   packages/plugin-fuel:
     dependencies:
@@ -1237,13 +1227,13 @@ importers:
         version: 4.0.1
       fuels:
         specifier: 0.97.2
-        version: 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+        version: 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       vitest:
         specifier: 2.1.4
-        version: 2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
+        version: 2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1255,7 +1245,7 @@ importers:
         version: link:../core
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
 
   packages/plugin-goat:
     dependencies:
@@ -1264,7 +1254,7 @@ importers:
         version: link:../core
       '@goat-sdk/adapter-vercel-ai':
         specifier: 0.2.0
-        version: 0.2.0(@goat-sdk/core@0.4.0)(ai@3.4.33(openai@4.77.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.16.1))(svelte@5.16.1)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8))
+        version: 0.2.0(@goat-sdk/core@0.4.0)(ai@3.4.33(openai@4.78.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8))
       '@goat-sdk/core':
         specifier: 0.4.0
         version: 0.4.0
@@ -1282,7 +1272,7 @@ importers:
         version: 0.2.0(@goat-sdk/wallet-evm@0.2.0(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10))(viem@2.21.53(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       viem:
         specifier: 2.21.53
         version: 2.21.53(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
@@ -1313,10 +1303,10 @@ importers:
         version: 29.5.14
       jest:
         specifier: 29.7.0
-        version: 29.7.0(@types/node@22.10.4)
+        version: 29.7.0(@types/node@22.10.5)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       typescript:
         specifier: 5.6.3
         version: 5.6.3
@@ -1328,7 +1318,7 @@ importers:
         version: link:../core
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1346,7 +1336,7 @@ importers:
         version: 1.0.2
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1373,10 +1363,10 @@ importers:
         version: 2.1.1
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       vitest:
         specifier: 2.1.5
-        version: 2.1.5(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
+        version: 2.1.5(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1403,7 +1393,7 @@ importers:
         version: 5.1.2
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1448,7 +1438,7 @@ importers:
         version: 5.1.2
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1457,10 +1447,10 @@ importers:
     dependencies:
       '@aws-sdk/client-s3':
         specifier: ^3.705.0
-        version: 3.721.0
+        version: 3.726.0
       '@aws-sdk/s3-request-presigner':
         specifier: ^3.705.0
-        version: 3.721.0
+        version: 3.726.0
       '@cliqz/adblocker-playwright':
         specifier: 1.34.0
         version: 1.34.0(playwright@1.48.2)
@@ -1629,7 +1619,7 @@ importers:
         version: 22.8.4
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
 
   packages/plugin-solana:
     dependencies:
@@ -1671,13 +1661,13 @@ importers:
         version: 5.1.2
       pumpdotfun-sdk:
         specifier: 1.3.2
-        version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.29.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+        version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.30.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       vitest:
         specifier: 2.1.4
-        version: 2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
+        version: 2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1704,13 +1694,13 @@ importers:
         version: 6.18.0(encoding@0.1.13)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       unruggable-sdk:
         specifier: 1.4.0
         version: 1.4.0(starknet@6.18.0(encoding@0.1.13))
       vitest:
         specifier: 2.1.5
-        version: 2.1.5(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
+        version: 2.1.5(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1731,14 +1721,14 @@ importers:
         version: 1.2.0-rc.3(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
     devDependencies:
       '@types/node':
         specifier: ^22.10.1
-        version: 22.10.4
+        version: 22.10.5
 
   packages/plugin-sui:
     dependencies:
@@ -1750,7 +1740,7 @@ importers:
         version: link:../plugin-trustdb
       '@mysten/sui':
         specifier: ^1.16.0
-        version: 1.18.0(typescript@5.6.3)
+        version: 1.18.1(typescript@5.6.3)
       bignumber:
         specifier: 1.1.0
         version: 1.1.0
@@ -1765,10 +1755,10 @@ importers:
         version: 5.1.2
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       vitest:
         specifier: 2.1.4
-        version: 2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
+        version: 2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1801,10 +1791,10 @@ importers:
         version: 5.1.2
       pumpdotfun-sdk:
         specifier: 1.3.2
-        version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.29.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+        version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.30.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1834,7 +1824,7 @@ importers:
         version: 5.1.2
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1849,13 +1839,13 @@ importers:
         version: 3.2.2
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       uuid:
         specifier: 11.0.3
         version: 11.0.3
       vitest:
         specifier: 2.1.5
-        version: 2.1.5(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
+        version: 2.1.5(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1874,7 +1864,7 @@ importers:
         version: 0.0.17
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
 
   packages/plugin-video-generation:
     dependencies:
@@ -1883,7 +1873,7 @@ importers:
         version: link:../core
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1893,9 +1883,12 @@ importers:
       '@elizaos/core':
         specifier: workspace:*
         version: link:../core
+      axios:
+        specifier: ^1.7.9
+        version: 1.7.9(debug@4.4.0)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1923,10 +1916,10 @@ importers:
         version: 8.16.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)
       jest:
         specifier: 29.7.0
-        version: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+        version: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
       ts-jest:
         specifier: 29.2.5
-        version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)))(typescript@5.6.3)
+        version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)))(typescript@5.6.3)
       typescript:
         specifier: 5.6.3
         version: 5.6.3
@@ -1941,13 +1934,13 @@ importers:
         version: link:../plugin-trustdb
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
       web3:
         specifier: ^4.15.0
         version: 4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
       web3-plugin-zksync:
         specifier: ^1.0.8
-        version: 1.0.8(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.4)(typescript@5.6.3))(typescript@5.6.3)(utf-8-validate@5.0.10)(web3@4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))
+        version: 1.0.8(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.6.3))(typescript@5.6.3)(utf-8-validate@5.0.10)(web3@4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1959,8 +1952,8 @@ packages:
     peerDependencies:
       ethers: 6.13.1
 
-  '@0no-co/graphql.web@1.0.12':
-    resolution: {integrity: sha512-BTDjjsV/zSPy5fqItwm+KWUfh9CSe9tTtR6rCB72ddtkAxdcHbi4Ir4r/L1Et4lyxmL+i7Rb3m9sjLLi9tYrzA==}
+  '@0no-co/graphql.web@1.0.13':
+    resolution: {integrity: sha512-jqYxOevheVTU1S36ZdzAkJIdvRp2m3OYIG5SEoKDw5NI8eVwkoI0D/Q3DYNGmXCxkA6CQuoa7zvMiDPTLqUNuw==}
     peerDependencies:
       graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
     peerDependenciesMeta:
@@ -2130,8 +2123,8 @@ packages:
   '@algolia/cache-in-memory@4.24.0':
     resolution: {integrity: sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w==}
 
-  '@algolia/client-abtesting@5.18.0':
-    resolution: {integrity: sha512-DLIrAukjsSrdMNNDx1ZTks72o4RH/1kOn8Wx5zZm8nnqFexG+JzY4SANnCNEjnFQPJTTvC+KpgiNW/CP2lumng==}
+  '@algolia/client-abtesting@5.19.0':
+    resolution: {integrity: sha512-dMHwy2+nBL0SnIsC1iHvkBao64h4z+roGelOz11cxrDBrAdASxLxmfVMop8gmodQ2yZSacX0Rzevtxa+9SqxCw==}
     engines: {node: '>= 14.0.0'}
 
   '@algolia/client-account@4.24.0':
@@ -2140,44 +2133,44 @@ packages:
   '@algolia/client-analytics@4.24.0':
     resolution: {integrity: sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg==}
 
-  '@algolia/client-analytics@5.18.0':
-    resolution: {integrity: sha512-0VpGG2uQW+h2aejxbG8VbnMCQ9ary9/ot7OASXi6OjE0SRkYQ/+pkW+q09+IScif3pmsVVYggmlMPtAsmYWHng==}
+  '@algolia/client-analytics@5.19.0':
+    resolution: {integrity: sha512-CDW4RwnCHzU10upPJqS6N6YwDpDHno7w6/qXT9KPbPbt8szIIzCHrva4O9KIfx1OhdsHzfGSI5hMAiOOYl4DEQ==}
     engines: {node: '>= 14.0.0'}
 
   '@algolia/client-common@4.24.0':
     resolution: {integrity: sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==}
 
-  '@algolia/client-common@5.18.0':
-    resolution: {integrity: sha512-X1WMSC+1ve2qlMsemyTF5bIjwipOT+m99Ng1Tyl36ZjQKTa54oajBKE0BrmM8LD8jGdtukAgkUhFoYOaRbMcmQ==}
+  '@algolia/client-common@5.19.0':
+    resolution: {integrity: sha512-2ERRbICHXvtj5kfFpY5r8qu9pJII/NAHsdgUXnUitQFwPdPL7wXiupcvZJC7DSntOnE8AE0lM7oDsPhrJfj5nQ==}
     engines: {node: '>= 14.0.0'}
 
-  '@algolia/client-insights@5.18.0':
-    resolution: {integrity: sha512-FAJRNANUOSs/FgYOJ/Njqp+YTe4TMz2GkeZtfsw1TMiA5mVNRS/nnMpxas9771aJz7KTEWvK9GwqPs0K6RMYWg==}
+  '@algolia/client-insights@5.19.0':
+    resolution: {integrity: sha512-xPOiGjo6I9mfjdJO7Y+p035aWePcbsItizIp+qVyfkfZiGgD+TbNxM12g7QhFAHIkx/mlYaocxPY/TmwPzTe+A==}
     engines: {node: '>= 14.0.0'}
 
   '@algolia/client-personalization@4.24.0':
     resolution: {integrity: sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w==}
 
-  '@algolia/client-personalization@5.18.0':
-    resolution: {integrity: sha512-I2dc94Oiwic3SEbrRp8kvTZtYpJjGtg5y5XnqubgnA15AgX59YIY8frKsFG8SOH1n2rIhUClcuDkxYQNXJLg+w==}
+  '@algolia/client-personalization@5.19.0':
+    resolution: {integrity: sha512-B9eoce/fk8NLboGje+pMr72pw+PV7c5Z01On477heTZ7jkxoZ4X92dobeGuEQop61cJ93Gaevd1of4mBr4hu2A==}
     engines: {node: '>= 14.0.0'}
 
-  '@algolia/client-query-suggestions@5.18.0':
-    resolution: {integrity: sha512-x6XKIQgKFTgK/bMasXhghoEjHhmgoP61pFPb9+TaUJ32aKOGc65b12usiGJ9A84yS73UDkXS452NjyP50Knh/g==}
+  '@algolia/client-query-suggestions@5.19.0':
+    resolution: {integrity: sha512-6fcP8d4S8XRDtVogrDvmSM6g5g6DndLc0pEm1GCKe9/ZkAzCmM3ZmW1wFYYPxdjMeifWy1vVEDMJK7sbE4W7MA==}
     engines: {node: '>= 14.0.0'}
 
   '@algolia/client-search@4.24.0':
     resolution: {integrity: sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==}
 
-  '@algolia/client-search@5.18.0':
-    resolution: {integrity: sha512-qI3LcFsVgtvpsBGR7aNSJYxhsR+Zl46+958ODzg8aCxIcdxiK7QEVLMJMZAR57jGqW0Lg/vrjtuLFDMfSE53qA==}
+  '@algolia/client-search@5.19.0':
+    resolution: {integrity: sha512-Ctg3xXD/1VtcwmkulR5+cKGOMj4r0wC49Y/KZdGQcqpydKn+e86F6l3tb3utLJQVq4lpEJud6kdRykFgcNsp8Q==}
     engines: {node: '>= 14.0.0'}
 
   '@algolia/events@4.0.1':
     resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==}
 
-  '@algolia/ingestion@1.18.0':
-    resolution: {integrity: sha512-bGvJg7HnGGm+XWYMDruZXWgMDPVt4yCbBqq8DM6EoaMBK71SYC4WMfIdJaw+ABqttjBhe6aKNRkWf/bbvYOGyw==}
+  '@algolia/ingestion@1.19.0':
+    resolution: {integrity: sha512-LO7w1MDV+ZLESwfPmXkp+KLeYeFrYEgtbCZG6buWjddhYraPQ9MuQWLhLLiaMlKxZ/sZvFTcZYuyI6Jx4WBhcg==}
     engines: {node: '>= 14.0.0'}
 
   '@algolia/logger-common@4.24.0':
@@ -2186,36 +2179,36 @@ packages:
   '@algolia/logger-console@4.24.0':
     resolution: {integrity: sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg==}
 
-  '@algolia/monitoring@1.18.0':
-    resolution: {integrity: sha512-lBssglINIeGIR+8KyzH05NAgAmn1BCrm5D2T6pMtr/8kbTHvvrm1Zvcltc5dKUQEFyyx3J5+MhNc7kfi8LdjVw==}
+  '@algolia/monitoring@1.19.0':
+    resolution: {integrity: sha512-Mg4uoS0aIKeTpu6iv6O0Hj81s8UHagi5TLm9k2mLIib4vmMtX7WgIAHAcFIaqIZp5D6s5EVy1BaDOoZ7buuJHA==}
     engines: {node: '>= 14.0.0'}
 
   '@algolia/recommend@4.24.0':
     resolution: {integrity: sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw==}
 
-  '@algolia/recommend@5.18.0':
-    resolution: {integrity: sha512-uSnkm0cdAuFwdMp4pGT5vHVQ84T6AYpTZ3I0b3k/M3wg4zXDhl3aCiY8NzokEyRLezz/kHLEEcgb/tTTobOYVw==}
+  '@algolia/recommend@5.19.0':
+    resolution: {integrity: sha512-PbgrMTbUPlmwfJsxjFhal4XqZO2kpBNRjemLVTkUiti4w/+kzcYO4Hg5zaBgVqPwvFDNQ8JS4SS3TBBem88u+g==}
     engines: {node: '>= 14.0.0'}
 
   '@algolia/requester-browser-xhr@4.24.0':
     resolution: {integrity: sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==}
 
-  '@algolia/requester-browser-xhr@5.18.0':
-    resolution: {integrity: sha512-1XFjW0C3pV0dS/9zXbV44cKI+QM4ZIz9cpatXpsjRlq6SUCpLID3DZHsXyE6sTb8IhyPaUjk78GEJT8/3hviqg==}
+  '@algolia/requester-browser-xhr@5.19.0':
+    resolution: {integrity: sha512-GfnhnQBT23mW/VMNs7m1qyEyZzhZz093aY2x8p0era96MMyNv8+FxGek5pjVX0b57tmSCZPf4EqNCpkGcGsmbw==}
     engines: {node: '>= 14.0.0'}
 
   '@algolia/requester-common@4.24.0':
     resolution: {integrity: sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==}
 
-  '@algolia/requester-fetch@5.18.0':
-    resolution: {integrity: sha512-0uodeNdAHz1YbzJh6C5xeQ4T6x5WGiUxUq3GOaT/R4njh5t78dq+Rb187elr7KtnjUmETVVuCvmEYaThfTHzNg==}
+  '@algolia/requester-fetch@5.19.0':
+    resolution: {integrity: sha512-oyTt8ZJ4T4fYvW5avAnuEc6Laedcme9fAFryMD9ndUTIUe/P0kn3BuGcCLFjN3FDmdrETHSFkgPPf1hGy3sLCw==}
     engines: {node: '>= 14.0.0'}
 
   '@algolia/requester-node-http@4.24.0':
     resolution: {integrity: sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==}
 
-  '@algolia/requester-node-http@5.18.0':
-    resolution: {integrity: sha512-tZCqDrqJ2YE2I5ukCQrYN8oiF6u3JIdCxrtKq+eniuLkjkO78TKRnXrVcKZTmfFJyyDK8q47SfDcHzAA3nHi6w==}
+  '@algolia/requester-node-http@5.19.0':
+    resolution: {integrity: sha512-p6t8ue0XZNjcRiqNkb5QAM0qQRAKsCiebZ6n9JjWA+p8fWf8BvnhO55y2fO28g3GW0Imj7PrAuyBuxq8aDVQwQ==}
     engines: {node: '>= 14.0.0'}
 
   '@algolia/transporter@4.24.0':
@@ -2271,6 +2264,9 @@ packages:
     resolution: {integrity: sha512-d6nWtUI//fyEN8DeLjm3+ro87Ad6+IKwR9pCqfrs/Azahso1xR1Llxd/O6fj/m1DDsuDj/HAsCsy5TC/aKD6Eg==}
     engines: {node: '>=11.0.0'}
 
+  '@asamuzakjp/css-color@2.8.2':
+    resolution: {integrity: sha512-RtWv9jFN2/bLExuZgFFZ0I3pWWeezAHGgrmjqGGWclATl1aDe3yhCUaI0Ilkp6OCk9zX7+FjvDasEX8Q9Rxc5w==}
+
   '@avnu/avnu-sdk@2.1.1':
     resolution: {integrity: sha512-y/r/pVT2pU33fGHNVE7A5UIAqQhjEXYQhUh7EodY1s5H7mhRd5U8zHOtI5z6vmpuSnUv0hSvOmmgz8HTuwZ7ew==}
     engines: {node: '>=18'}
@@ -2302,177 +2298,177 @@ packages:
   '@aws-crypto/util@5.2.0':
     resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==}
 
-  '@aws-sdk/client-polly@3.721.0':
-    resolution: {integrity: sha512-SCTx9DKOnfEKyWb6bx5J7aeowBig8QmiqOJlE0sMM/pbpF70YGC/ugk1/yFJAJlAkoDadtRvseFpwLvrg7N73Q==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/client-polly@3.726.0':
+    resolution: {integrity: sha512-vhPUddycCdFupNeksBgMR4WN//LbNQzhHbV41LgDYShd1Ea3QmfGPij+yCIZWmCtmv9y0sWnRTydXKAlmE1Vsw==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/client-s3@3.721.0':
-    resolution: {integrity: sha512-uCZC8elYhUFF21yq1yB5TrE/VYz8A4/VnttUHc65/jqnHReTDvEC0XAc756tJnjfrReyM1ws12FzBLHoW/NDjg==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/client-s3@3.726.0':
+    resolution: {integrity: sha512-cxn2WvOCfGrME2xygWbfj/vIf2sIdv/UbQ9zJbN4aK6rpYQf/e/YtY/HIPkejCuw2Iwqm4jfDGFqaUcwu3nFew==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/client-sso-oidc@3.721.0':
-    resolution: {integrity: sha512-jwsgdUEbNJqs1O0AQtf9M6SI7hFIjxH+IKeKCMca0xVt+Tr1UqLr/qMK/6W8LoMtRFnE0lpBSHW6hvmLp2OCoQ==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/client-sso-oidc@3.726.0':
+    resolution: {integrity: sha512-5JzTX9jwev7+y2Jkzjz0pd1wobB5JQfPOQF3N2DrJ5Pao0/k6uRYwE4NqB0p0HlGrMTDm7xNq7OSPPIPG575Jw==}
+    engines: {node: '>=18.0.0'}
     peerDependencies:
-      '@aws-sdk/client-sts': ^3.721.0
+      '@aws-sdk/client-sts': ^3.726.0
 
-  '@aws-sdk/client-sso@3.721.0':
-    resolution: {integrity: sha512-UrYAF4ilpO2cZBFddQmbETfo0xKP3CEcantcMQTc0xPY3quHLZhYuBiRae+McWi6yZpH4ErnFZIWeKSJ2OQgqQ==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/client-sso@3.726.0':
+    resolution: {integrity: sha512-NM5pjv2qglEc4XN3nnDqtqGsSGv1k5YTmzDo3W3pObItHmpS8grSeNfX9zSH+aVl0Q8hE4ZIgvTPNZ+GzwVlqg==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/client-sts@3.721.0':
-    resolution: {integrity: sha512-1Pv8F02hQFmPZs7WtGfQNlnInbG1lLzyngJc/MlZ3Ld2fIoWjaWp7bJWgYAjnzHNEuDtCabWJvIfePdRqsbYoA==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/client-sts@3.726.0':
+    resolution: {integrity: sha512-047EqXv2BAn/43eP92zsozPnR3paFFMsj5gjytx9kGNtp+WV0fUZNztCOobtouAxBY0ZQ8Xx5RFnmjpRb6Kjsg==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/client-transcribe-streaming@3.721.0':
-    resolution: {integrity: sha512-8imB8tEHfUW597yGM6/qRmBXyRYNPp7bddBg67g6AHzj/UG0xI1EQZzyBntUyy/sQzvMgcPoUoYdFHdfQWQ7vw==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/client-transcribe-streaming@3.726.0':
+    resolution: {integrity: sha512-RT17D/lzkMCkLMqiWFMfZRxJzlOQQhAdx+IXE3SuauGHu1iSULpsifewJsLlfE72K9On5QbbVKGU7RcUScV+GQ==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/core@3.716.0':
-    resolution: {integrity: sha512-5DkUiTrbyzO8/W4g7UFEqRFpuhgizayHI/Zbh0wtFMcot8801nJV+MP/YMhdjimlvAr/OqYB08FbGsPyWppMTw==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/core@3.723.0':
+    resolution: {integrity: sha512-UraXNmvqj3vScSsTkjMwQkhei30BhXlW5WxX6JacMKVtl95c7z0qOXquTWeTalYkFfulfdirUhvSZrl+hcyqTw==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/credential-provider-env@3.716.0':
-    resolution: {integrity: sha512-JI2KQUnn2arICwP9F3CnqP1W3nAbm4+meQg/yOhp9X0DMzQiHrHRd4HIrK2vyVgi2/6hGhONY5uLF26yRTA7nQ==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/credential-provider-env@3.723.0':
+    resolution: {integrity: sha512-OuH2yULYUHTVDUotBoP/9AEUIJPn81GQ/YBtZLoo2QyezRJ2QiO/1epVtbJlhNZRwXrToLEDmQGA2QfC8c7pbA==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/credential-provider-http@3.716.0':
-    resolution: {integrity: sha512-CZ04pl2z7igQPysQyH2xKZHM3fLwkemxQbKOlje3TmiS1NwXvcKvERhp9PE/H23kOL7beTM19NMRog/Fka/rlw==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/credential-provider-http@3.723.0':
+    resolution: {integrity: sha512-DTsKC6xo/kz/ZSs1IcdbQMTgiYbpGTGEd83kngFc1bzmw7AmK92DBZKNZpumf8R/UfSpTcj9zzUUmrWz1kD0eQ==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/credential-provider-ini@3.721.0':
-    resolution: {integrity: sha512-8J/c2rI+4ZoduBCnPurfdblqs2DyRvL9ztqzzOWWEhLccoYZzYeAMwBapEAsiVsD1iNrIGY7LRDC4TsVmJBf6Q==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/credential-provider-ini@3.726.0':
+    resolution: {integrity: sha512-seTtcKL2+gZX6yK1QRPr5mDJIBOatrpoyrO8D5b8plYtV/PDbDW3mtDJSWFHet29G61ZmlNElyXRqQCXn9WX+A==}
+    engines: {node: '>=18.0.0'}
     peerDependencies:
-      '@aws-sdk/client-sts': ^3.721.0
+      '@aws-sdk/client-sts': ^3.726.0
 
-  '@aws-sdk/credential-provider-node@3.721.0':
-    resolution: {integrity: sha512-D6xodzdMjVhF9xRhy9gNf0gqP0Dek9fQ6BDZzqO/i54d7CjWHVZTADcVcxjLQq6nyUNf0QPf8UXLaqi+w25GGQ==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/credential-provider-node@3.726.0':
+    resolution: {integrity: sha512-jjsewBcw/uLi24x8JbnuDjJad4VA9ROCE94uVRbEnGmUEsds75FWOKp3fWZLQlmjLtzsIbJOZLALkZP86liPaw==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/credential-provider-process@3.716.0':
-    resolution: {integrity: sha512-0spcu2MWVVHSTHH3WE2E//ttUJPwXRM3BCp+WyI41xLzpNu1Fd8zjOrDpEo0SnGUzsSiRTIJWgkuu/tqv9NJ2A==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/credential-provider-process@3.723.0':
+    resolution: {integrity: sha512-fgupvUjz1+jeoCBA7GMv0L6xEk92IN6VdF4YcFhsgRHlHvNgm7ayaoKQg7pz2JAAhG/3jPX6fp0ASNy+xOhmPA==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/credential-provider-sso@3.721.0':
-    resolution: {integrity: sha512-v7npnYqfuY1vdcb0/F4Mcz+mcFyZaYry9qXhSRCPIbLPe2PRV4E4HXIaPKmir8PhuRLEGs0QJWhvIWr7u6holQ==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/credential-provider-sso@3.726.0':
+    resolution: {integrity: sha512-WxkN76WeB08j2yw7jUH9yCMPxmT9eBFd9ZA/aACG7yzOIlsz7gvG3P2FQ0tVg25GHM0E4PdU3p/ByTOawzcOAg==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/credential-provider-web-identity@3.716.0':
-    resolution: {integrity: sha512-vzgpWKs2gGXZGdbMKRFrMW4PqEFWkGvwWH2T7ZwQv9m+8lQ7P4Dk2uimqu0f37HZAbpn8HFMqRh4CaySjU354A==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/credential-provider-web-identity@3.723.0':
+    resolution: {integrity: sha512-tl7pojbFbr3qLcOE6xWaNCf1zEfZrIdSJtOPeSXfV/thFMMAvIjgf3YN6Zo1a6cxGee8zrV/C8PgOH33n+Ev/A==}
+    engines: {node: '>=18.0.0'}
     peerDependencies:
-      '@aws-sdk/client-sts': ^3.716.0
+      '@aws-sdk/client-sts': ^3.723.0
 
-  '@aws-sdk/eventstream-handler-node@3.714.0':
-    resolution: {integrity: sha512-zCEegowS+LCrPdUgGUQPX8PBUFbyBifyOuA0VieZwKYH0kIjthGxuM9QdAD7bf1rgW+3bBEchWsIJqpIp4JQkg==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/eventstream-handler-node@3.723.0':
+    resolution: {integrity: sha512-CekxhxMH1GQe/kuoZsNFE8eonvmHVifyDK1MWfePyEp82/XvqPFWSnKlhT+SqoC6JfsMLmhsyCP/qqr9Du0SbQ==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/middleware-bucket-endpoint@3.721.0':
-    resolution: {integrity: sha512-5UyoDoX3z3UhmetoqqqZulq2uF55Jyj9lUKAJWgTxVhDEG5TijTQS40LP9DqwRl0hJkoUUZKAwE0hwnUsiGXAg==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/middleware-bucket-endpoint@3.726.0':
+    resolution: {integrity: sha512-vpaP80rZqwu0C3ELayIcRIW84/nd1tadeoqllT+N9TDshuEvq4UJ+w47OBHB7RkHFJoc79lXXNYle0fdQdaE/A==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/middleware-eventstream@3.714.0':
-    resolution: {integrity: sha512-GCuRaujcT1b3TrjwvfJqBnXUbAPMySZuB017LnR3yaafLjIdefeL/ktbcZkCAsmY5hgrI9lFrJ/Cp/Y3z8qstg==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/middleware-eventstream@3.723.0':
+    resolution: {integrity: sha512-cL50YsgYSlAdAZf02iNwdHJuJHlgPyv/sePpt2PW5ZYSiE6A9/vqqptjDrUmUbpEw+ixmLD215OnyrnHN/MhEg==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/middleware-expect-continue@3.714.0':
-    resolution: {integrity: sha512-rlzsXdG8Lzo4Qpl35ZnpOBAWlzvDHpP9++0AXoUwAJA0QmMm7auIRmgxJuNj91VwT9h15ZU6xjU4S7fJl4W0+w==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/middleware-expect-continue@3.723.0':
+    resolution: {integrity: sha512-w/O0EkIzkiqvGu7U8Ke7tue0V0HYM5dZQrz6nVU+R8T2LddWJ+njEIHU4Wh8aHPLQXdZA5NQumv0xLPdEutykw==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/middleware-flexible-checksums@3.717.0':
-    resolution: {integrity: sha512-a5kY5r7/7bDZZlOQQGWOR1ulQewdtNexdW1Ex5DD0FLKlFY7RD0va24hxQ6BP7mWHol+Dx4pj6UQ8ahk0ap1tw==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/middleware-flexible-checksums@3.723.0':
+    resolution: {integrity: sha512-JY76mrUCLa0FHeMZp8X9+KK6uEuZaRZaQrlgq6zkXX/3udukH0T3YdFC+Y9uw5ddbiwZ5+KwgmlhnPpiXKfP4g==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/middleware-host-header@3.714.0':
-    resolution: {integrity: sha512-6l68kjNrh5QC8FGX3I3geBDavWN5Tg1RLHJ2HLA8ByGBtJyCwnz3hEkKfaxn0bBx0hF9DzbfjEOUF6cDqy2Kjg==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/middleware-host-header@3.723.0':
+    resolution: {integrity: sha512-LLVzLvk299pd7v4jN9yOSaWDZDfH0SnBPb6q+FDPaOCMGBY8kuwQso7e/ozIKSmZHRMGO3IZrflasHM+rI+2YQ==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/middleware-location-constraint@3.714.0':
-    resolution: {integrity: sha512-MX7M+V+FblujKck3fyuzePVIAy9530gY719IiSxV6uN1qLHl7VDJxNblpF/KpXakD6rOg8OpvtmqsXj9aBMftw==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/middleware-location-constraint@3.723.0':
+    resolution: {integrity: sha512-inp9tyrdRWjGOMu1rzli8i2gTo0P4X6L7nNRXNTKfyPNZcBimZ4H0H1B671JofSI5isaklVy5r4pvv2VjjLSHw==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/middleware-logger@3.714.0':
-    resolution: {integrity: sha512-RkqHlMvQWUaRklU1bMfUuBvdWwxgUtEqpADaHXlGVj3vtEY2UgBjy+57CveC4MByqKIunNvVHBBbjrGVtwY7Lg==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/middleware-logger@3.723.0':
+    resolution: {integrity: sha512-chASQfDG5NJ8s5smydOEnNK7N0gDMyuPbx7dYYcm1t/PKtnVfvWF+DHCTrRC2Ej76gLJVCVizlAJKM8v8Kg3cg==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/middleware-recursion-detection@3.714.0':
-    resolution: {integrity: sha512-AVU5ixnh93nqtsfgNc284oXsXaadyHGPHpql/jwgaaqQfEXjS/1/j3j9E/vpacfTTz2Vzo7hAOjnvrOXSEVDaA==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/middleware-recursion-detection@3.723.0':
+    resolution: {integrity: sha512-7usZMtoynT9/jxL/rkuDOFQ0C2mhXl4yCm67Rg7GNTstl67u7w5WN1aIRImMeztaKlw8ExjoTyo6WTs1Kceh7A==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/middleware-sdk-s3@3.716.0':
-    resolution: {integrity: sha512-Qzz5OfRA/5brqfvq+JHTInwS1EuJ1+tC6qMtwKWJN3czMnVJVdnnsPTf+G5IM/1yYaGEIjY8rC1ExQLcc8ApFQ==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/middleware-sdk-s3@3.723.0':
+    resolution: {integrity: sha512-wfjOvNJVp8LDWhq4wO5jtSMb8Vgf4tNlR7QTEQfoYc6AGU3WlK5xyUQcpfcpwytEhQTN9u0cJLQpSyXDO+qSCw==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/middleware-sdk-transcribe-streaming@3.714.0':
-    resolution: {integrity: sha512-2tHRZ5vgTxmyU8/6gRghj6vpMTD9OrlZod0PUrV5dTad+uPlNzkP8RzzTm+CgwlnEUW9oKeyJFxQeR9Hgn/lGw==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/middleware-sdk-transcribe-streaming@3.723.0':
+    resolution: {integrity: sha512-0j1iix2wthdNTGtG1oFBH3vqhBeIpw+9IRiPA0xXE8xOsqhLBHVbLtqC8/7eMdDWJHNVQdOLlMlGAbcFo6/4Jw==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/middleware-ssec@3.714.0':
-    resolution: {integrity: sha512-RkK8REAVwNUQmYbIDRw8eYbMJ8F1Rw4C9mlME4BBMhFlelGcD3ErU2ce24moQbDxBjNwHNESmIqgmdQk93CDCQ==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/middleware-ssec@3.723.0':
+    resolution: {integrity: sha512-Bs+8RAeSMik6ZYCGSDJzJieGsDDh2fRbh1HQG94T8kpwBXVxMYihm6e9Xp2cyl+w9fyyCnh0IdCKChP/DvrdhA==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/middleware-user-agent@3.721.0':
-    resolution: {integrity: sha512-Z3Vksb970ArsfLlARW4KVpqO+pQ1cvvGTrTQPxWDsmOzg1kU92t9oWXGW+1M/x6bHbMQlI/EulQ/D8ZE/Pu46Q==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/middleware-user-agent@3.726.0':
+    resolution: {integrity: sha512-hZvzuE5S0JmFie1r68K2wQvJbzyxJFdzltj9skgnnwdvLe8F/tz7MqLkm28uV0m4jeHk0LpiBo6eZaPkQiwsZQ==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/middleware-websocket@3.714.0':
-    resolution: {integrity: sha512-hzIkP5miXwqsr2KXFaxyGGEjGZ3yZVGTLcbsdA799FM6KDhxXSExaqUnbiruENX9Uev4od61Xx1hqXb3GNEalQ==}
+  '@aws-sdk/middleware-websocket@3.723.0':
+    resolution: {integrity: sha512-dmp1miRv3baZgRKRlgsfpghUMFx1bHDVPW39caKVVOQLxMWtDt8a6JKGnYm19ew2JmSe+p9h/khdq073bPFslw==}
     engines: {node: '>= 14.0.0'}
 
-  '@aws-sdk/region-config-resolver@3.714.0':
-    resolution: {integrity: sha512-HJzsQxgMOAzZrbf/YIqEx30or4tZK1oNAk6Wm6xecUQx+23JXIaePRu1YFUOLBBERQ4QBPpISFurZWBMZ5ibAw==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/region-config-resolver@3.723.0':
+    resolution: {integrity: sha512-tGF/Cvch3uQjZIj34LY2mg8M2Dr4kYG8VU8Yd0dFnB1ybOEOveIK/9ypUo9ycZpB9oO6q01KRe5ijBaxNueUQg==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/s3-request-presigner@3.721.0':
-    resolution: {integrity: sha512-2ibKGssj2TAQyfthNihhBqWdwowlol9bDpKybIi2T6D8l2L9g0ENGLNE50MYzSFAQ3LcjzcvLQ/GByRPiuK+pQ==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/s3-request-presigner@3.726.0':
+    resolution: {integrity: sha512-7avBbUXYEii2qYxM2AFoCPVTt+AtSIFgq+Gk6/MLUOGId5KGCSkN3Y/4liVi3VLkvZ+ADg2JZqYQUrf3wgWsEQ==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/signature-v4-multi-region@3.716.0':
-    resolution: {integrity: sha512-k0goWotZKKz+kV6Ln0qeAMSeSVi4NipuIIz5R8A0uCF2zBK4CXWdZR7KeaIoLBhJwQnHj1UU7E+2MK74KIUBzA==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/signature-v4-multi-region@3.723.0':
+    resolution: {integrity: sha512-lJlVAa5Sl589qO8lwMLVUtnlF1Q7I+6k1Iomv2goY9d1bRl4q2N5Pit2qJVr2AMW0sceQXeh23i2a/CKOqVAdg==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/token-providers@3.721.0':
-    resolution: {integrity: sha512-cIZmKdLeEWUzPR+2lA+JcZHPvaFf/Ih+s3LXBa/uQwRFdK+o7WfGRf7Oqe6yLRekO2jJJl4LBJXxDOH++M9+ag==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/token-providers@3.723.0':
+    resolution: {integrity: sha512-hniWi1x4JHVwKElANh9afKIMUhAutHVBRD8zo6usr0PAoj+Waf220+1ULS74GXtLXAPCiNXl5Og+PHA7xT8ElQ==}
+    engines: {node: '>=18.0.0'}
     peerDependencies:
-      '@aws-sdk/client-sso-oidc': ^3.721.0
+      '@aws-sdk/client-sso-oidc': ^3.723.0
 
-  '@aws-sdk/types@3.714.0':
-    resolution: {integrity: sha512-ZjpP2gYbSFlxxaUDa1Il5AVvfggvUPbjzzB/l3q0gIE5Thd6xKW+yzEpt2mLZ5s5UaYSABZbF94g8NUOF4CVGA==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/types@3.723.0':
+    resolution: {integrity: sha512-LmK3kwiMZG1y5g3LGihT9mNkeNOmwEyPk6HGcJqh0wOSV4QpWoKu2epyKE4MLQNUUlz2kOVbVbOrwmI6ZcteuA==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/util-arn-parser@3.693.0':
-    resolution: {integrity: sha512-WC8x6ca+NRrtpAH64rWu+ryDZI3HuLwlEr8EU6/dbC/pt+r/zC0PBoC15VEygUaBA+isppCikQpGyEDu0Yj7gQ==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/util-arn-parser@3.723.0':
+    resolution: {integrity: sha512-ZhEfvUwNliOQROcAk34WJWVYTlTa4694kSVhDSjW6lE1bMataPnIN8A0ycukEzBXmd8ZSoBcQLn6lKGl7XIJ5w==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/util-endpoints@3.714.0':
-    resolution: {integrity: sha512-Xv+Z2lhe7w7ZZRsgBwBMZgGTVmS+dkkj2S13uNHAx9lhB5ovM8PhK5G/j28xYf6vIibeuHkRAbb7/ozdZIGR+A==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/util-endpoints@3.726.0':
+    resolution: {integrity: sha512-sLd30ASsPMoPn3XBK50oe/bkpJ4N8Bpb7SbhoxcY3Lk+fSASaWxbbXE81nbvCnkxrZCvkPOiDHzJCp1E2im71A==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/util-format-url@3.714.0':
-    resolution: {integrity: sha512-PA/ES6BeKmYzFOsZ3az/8MqSLf6uzXAS7GsYONZMF6YASn4ewd/AspuvQMp6+x9VreAPCq7PecF+XL9KXejtPg==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/util-format-url@3.723.0':
+    resolution: {integrity: sha512-70+xUrdcnencPlCdV9XkRqmgj0vLDb8vm4mcEsgabg5QQ3S80KM0GEuhBAIGMkBWwNQTzCgQy2s7xOUlJPbu+g==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/util-locate-window@3.693.0':
-    resolution: {integrity: sha512-ttrag6haJLWABhLqtg1Uf+4LgHWIMOVSYL+VYZmAp2v4PUGOwWmWQH0Zk8RM7YuQcLfH/EoR72/Yxz6A4FKcuw==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/util-locate-window@3.723.0':
+    resolution: {integrity: sha512-Yf2CS10BqK688DRsrKI/EO6B8ff5J86NXe4C+VCysK7UOgN0l1zOTeTukZ3H8Q9tYYX3oaF1961o8vRkFm7Nmw==}
+    engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/util-user-agent-browser@3.714.0':
-    resolution: {integrity: sha512-OdJJ03cP9/MgIVToPJPCPUImbpZzTcwdIgbXC0tUQPJhbD7b7cB4LdnkhNHko+MptpOrCq4CPY/33EpOjRdofw==}
+  '@aws-sdk/util-user-agent-browser@3.723.0':
+    resolution: {integrity: sha512-Wh9I6j2jLhNFq6fmXydIpqD1WyQLyTfSxjW9B+PXSnPyk3jtQW8AKQur7p97rO8LAUzVI0bv8kb3ZzDEVbquIg==}
 
-  '@aws-sdk/util-user-agent-node@3.721.0':
-    resolution: {integrity: sha512-5VsNdC3zQnjrt7KNEeFHWJl3FIamgIS0puG18BMvPsdzcKWEbWDih+yd1kMWrcpAu1Riez9co/gB9y99pBghDA==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/util-user-agent-node@3.726.0':
+    resolution: {integrity: sha512-iEj6KX9o6IQf23oziorveRqyzyclWai95oZHDJtYav3fvLJKStwSjygO4xSF7ycHcTYeCHSLO1FFOHgGVs4Viw==}
+    engines: {node: '>=18.0.0'}
     peerDependencies:
       aws-crt: '>=1.0.0'
     peerDependenciesMeta:
       aws-crt:
         optional: true
 
-  '@aws-sdk/xml-builder@3.709.0':
-    resolution: {integrity: sha512-2GPCwlNxeHspoK/Mc8nbk9cBOkSpp3j2SJUQmFnyQK6V/pR6II2oPRyZkMomug1Rc10hqlBHByMecq4zhV2uUw==}
-    engines: {node: '>=16.0.0'}
+  '@aws-sdk/xml-builder@3.723.0':
+    resolution: {integrity: sha512-5xK2SqGU1mzzsOeemy7cy3fGKxR1sEpUs4pEiIjaT0OIvU+fZaDVUEYWOqsgns6wI90XZEQJlXtI8uAHX/do5Q==}
+    engines: {node: '>=18.0.0'}
 
   '@babel/code-frame@7.26.2':
     resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
@@ -3136,8 +3132,8 @@ packages:
   '@braintree/sanitize-url@7.1.1':
     resolution: {integrity: sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==}
 
-  '@cfworker/json-schema@4.0.3':
-    resolution: {integrity: sha512-ZykIcDTVv5UNmKWSTLAs3VukO6NDJkkSKxrgUTDPBkAlORVT3H9n5DbRjRl8xIotklscHdbLIa0b9+y3mQq73g==}
+  '@cfworker/json-schema@4.1.0':
+    resolution: {integrity: sha512-/vYKi/qMxwNsuIJ9WGWwM2rflY40ZenK3Kh4uR5vB9/Nz12Y7IUN/Xf4wDA7vzPfw0VNh3b/jz4+MjcVgARKJg==}
 
   '@chevrotain/cst-dts-gen@11.0.3':
     resolution: {integrity: sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==}
@@ -3871,9 +3867,6 @@ packages:
     peerDependencies:
       onnxruntime-node: 1.20.1
 
-  '@elizaos/core@0.1.7-alpha.2':
-    resolution: {integrity: sha512-gNvFw/Xnv4dlcfmmKxRa+baKq6en4TitAjUGvo8LgAUkSk156A0fffJ0lAsc1rX8zMB5NsIqdvMCbwKxDd54OQ==}
-
   '@emnapi/core@1.3.1':
     resolution: {integrity: sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==}
 
@@ -3899,12 +3892,6 @@ packages:
     cpu: [ppc64]
     os: [aix]
 
-  '@esbuild/aix-ppc64@0.23.1':
-    resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==}
-    engines: {node: '>=18'}
-    cpu: [ppc64]
-    os: [aix]
-
   '@esbuild/aix-ppc64@0.24.2':
     resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==}
     engines: {node: '>=18'}
@@ -3923,12 +3910,6 @@ packages:
     cpu: [arm64]
     os: [android]
 
-  '@esbuild/android-arm64@0.23.1':
-    resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==}
-    engines: {node: '>=18'}
-    cpu: [arm64]
-    os: [android]
-
   '@esbuild/android-arm64@0.24.2':
     resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==}
     engines: {node: '>=18'}
@@ -3947,12 +3928,6 @@ packages:
     cpu: [arm]
     os: [android]
 
-  '@esbuild/android-arm@0.23.1':
-    resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==}
-    engines: {node: '>=18'}
-    cpu: [arm]
-    os: [android]
-
   '@esbuild/android-arm@0.24.2':
     resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==}
     engines: {node: '>=18'}
@@ -3971,12 +3946,6 @@ packages:
     cpu: [x64]
     os: [android]
 
-  '@esbuild/android-x64@0.23.1':
-    resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==}
-    engines: {node: '>=18'}
-    cpu: [x64]
-    os: [android]
-
   '@esbuild/android-x64@0.24.2':
     resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==}
     engines: {node: '>=18'}
@@ -3995,12 +3964,6 @@ packages:
     cpu: [arm64]
     os: [darwin]
 
-  '@esbuild/darwin-arm64@0.23.1':
-    resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==}
-    engines: {node: '>=18'}
-    cpu: [arm64]
-    os: [darwin]
-
   '@esbuild/darwin-arm64@0.24.2':
     resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==}
     engines: {node: '>=18'}
@@ -4019,12 +3982,6 @@ packages:
     cpu: [x64]
     os: [darwin]
 
-  '@esbuild/darwin-x64@0.23.1':
-    resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==}
-    engines: {node: '>=18'}
-    cpu: [x64]
-    os: [darwin]
-
   '@esbuild/darwin-x64@0.24.2':
     resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==}
     engines: {node: '>=18'}
@@ -4043,12 +4000,6 @@ packages:
     cpu: [arm64]
     os: [freebsd]
 
-  '@esbuild/freebsd-arm64@0.23.1':
-    resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==}
-    engines: {node: '>=18'}
-    cpu: [arm64]
-    os: [freebsd]
-
   '@esbuild/freebsd-arm64@0.24.2':
     resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==}
     engines: {node: '>=18'}
@@ -4067,12 +4018,6 @@ packages:
     cpu: [x64]
     os: [freebsd]
 
-  '@esbuild/freebsd-x64@0.23.1':
-    resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==}
-    engines: {node: '>=18'}
-    cpu: [x64]
-    os: [freebsd]
-
   '@esbuild/freebsd-x64@0.24.2':
     resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==}
     engines: {node: '>=18'}
@@ -4091,12 +4036,6 @@ packages:
     cpu: [arm64]
     os: [linux]
 
-  '@esbuild/linux-arm64@0.23.1':
-    resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==}
-    engines: {node: '>=18'}
-    cpu: [arm64]
-    os: [linux]
-
   '@esbuild/linux-arm64@0.24.2':
     resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==}
     engines: {node: '>=18'}
@@ -4115,12 +4054,6 @@ packages:
     cpu: [arm]
     os: [linux]
 
-  '@esbuild/linux-arm@0.23.1':
-    resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==}
-    engines: {node: '>=18'}
-    cpu: [arm]
-    os: [linux]
-
   '@esbuild/linux-arm@0.24.2':
     resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==}
     engines: {node: '>=18'}
@@ -4139,12 +4072,6 @@ packages:
     cpu: [ia32]
     os: [linux]
 
-  '@esbuild/linux-ia32@0.23.1':
-    resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==}
-    engines: {node: '>=18'}
-    cpu: [ia32]
-    os: [linux]
-
   '@esbuild/linux-ia32@0.24.2':
     resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==}
     engines: {node: '>=18'}
@@ -4163,12 +4090,6 @@ packages:
     cpu: [loong64]
     os: [linux]
 
-  '@esbuild/linux-loong64@0.23.1':
-    resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==}
-    engines: {node: '>=18'}
-    cpu: [loong64]
-    os: [linux]
-
   '@esbuild/linux-loong64@0.24.2':
     resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==}
     engines: {node: '>=18'}
@@ -4187,12 +4108,6 @@ packages:
     cpu: [mips64el]
     os: [linux]
 
-  '@esbuild/linux-mips64el@0.23.1':
-    resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==}
-    engines: {node: '>=18'}
-    cpu: [mips64el]
-    os: [linux]
-
   '@esbuild/linux-mips64el@0.24.2':
     resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==}
     engines: {node: '>=18'}
@@ -4211,12 +4126,6 @@ packages:
     cpu: [ppc64]
     os: [linux]
 
-  '@esbuild/linux-ppc64@0.23.1':
-    resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==}
-    engines: {node: '>=18'}
-    cpu: [ppc64]
-    os: [linux]
-
   '@esbuild/linux-ppc64@0.24.2':
     resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==}
     engines: {node: '>=18'}
@@ -4235,12 +4144,6 @@ packages:
     cpu: [riscv64]
     os: [linux]
 
-  '@esbuild/linux-riscv64@0.23.1':
-    resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==}
-    engines: {node: '>=18'}
-    cpu: [riscv64]
-    os: [linux]
-
   '@esbuild/linux-riscv64@0.24.2':
     resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==}
     engines: {node: '>=18'}
@@ -4259,12 +4162,6 @@ packages:
     cpu: [s390x]
     os: [linux]
 
-  '@esbuild/linux-s390x@0.23.1':
-    resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==}
-    engines: {node: '>=18'}
-    cpu: [s390x]
-    os: [linux]
-
   '@esbuild/linux-s390x@0.24.2':
     resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==}
     engines: {node: '>=18'}
@@ -4283,12 +4180,6 @@ packages:
     cpu: [x64]
     os: [linux]
 
-  '@esbuild/linux-x64@0.23.1':
-    resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==}
-    engines: {node: '>=18'}
-    cpu: [x64]
-    os: [linux]
-
   '@esbuild/linux-x64@0.24.2':
     resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==}
     engines: {node: '>=18'}
@@ -4313,24 +4204,12 @@ packages:
     cpu: [x64]
     os: [netbsd]
 
-  '@esbuild/netbsd-x64@0.23.1':
-    resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==}
-    engines: {node: '>=18'}
-    cpu: [x64]
-    os: [netbsd]
-
   '@esbuild/netbsd-x64@0.24.2':
     resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==}
     engines: {node: '>=18'}
     cpu: [x64]
     os: [netbsd]
 
-  '@esbuild/openbsd-arm64@0.23.1':
-    resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==}
-    engines: {node: '>=18'}
-    cpu: [arm64]
-    os: [openbsd]
-
   '@esbuild/openbsd-arm64@0.24.2':
     resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==}
     engines: {node: '>=18'}
@@ -4349,12 +4228,6 @@ packages:
     cpu: [x64]
     os: [openbsd]
 
-  '@esbuild/openbsd-x64@0.23.1':
-    resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==}
-    engines: {node: '>=18'}
-    cpu: [x64]
-    os: [openbsd]
-
   '@esbuild/openbsd-x64@0.24.2':
     resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==}
     engines: {node: '>=18'}
@@ -4373,12 +4246,6 @@ packages:
     cpu: [x64]
     os: [sunos]
 
-  '@esbuild/sunos-x64@0.23.1':
-    resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==}
-    engines: {node: '>=18'}
-    cpu: [x64]
-    os: [sunos]
-
   '@esbuild/sunos-x64@0.24.2':
     resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==}
     engines: {node: '>=18'}
@@ -4397,12 +4264,6 @@ packages:
     cpu: [arm64]
     os: [win32]
 
-  '@esbuild/win32-arm64@0.23.1':
-    resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==}
-    engines: {node: '>=18'}
-    cpu: [arm64]
-    os: [win32]
-
   '@esbuild/win32-arm64@0.24.2':
     resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==}
     engines: {node: '>=18'}
@@ -4421,12 +4282,6 @@ packages:
     cpu: [ia32]
     os: [win32]
 
-  '@esbuild/win32-ia32@0.23.1':
-    resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==}
-    engines: {node: '>=18'}
-    cpu: [ia32]
-    os: [win32]
-
   '@esbuild/win32-ia32@0.24.2':
     resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==}
     engines: {node: '>=18'}
@@ -4445,12 +4300,6 @@ packages:
     cpu: [x64]
     os: [win32]
 
-  '@esbuild/win32-x64@0.23.1':
-    resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==}
-    engines: {node: '>=18'}
-    cpu: [x64]
-    os: [win32]
-
   '@esbuild/win32-x64@0.24.2':
     resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==}
     engines: {node: '>=18'}
@@ -4650,11 +4499,11 @@ packages:
     cpu: [x64]
     os: [win32]
 
-  '@floating-ui/core@1.6.8':
-    resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==}
+  '@floating-ui/core@1.6.9':
+    resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==}
 
-  '@floating-ui/dom@1.6.12':
-    resolution: {integrity: sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==}
+  '@floating-ui/dom@1.6.13':
+    resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==}
 
   '@floating-ui/react-dom@2.1.2':
     resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==}
@@ -4662,8 +4511,8 @@ packages:
       react: '>=16.8.0'
       react-dom: '>=16.8.0'
 
-  '@floating-ui/utils@0.2.8':
-    resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==}
+  '@floating-ui/utils@0.2.9':
+    resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==}
 
   '@fuel-ts/abi-coder@0.97.2':
     resolution: {integrity: sha512-YbXFwBtQSfGNhIv+mrgr6EbbyVjzc5DwNjVJuC8DDObiAYhow0uzn/URHFdQ8bexokrKBrdzQKDjnAP6F7ap+w==}
@@ -5396,11 +5245,11 @@ packages:
   '@multiversx/sdk-transaction-decoder@1.0.2':
     resolution: {integrity: sha512-j43QsKquu8N51WLmVlJ7dV2P3A1448R7/ktvl8r3i6wRMpfdtzDPNofTdHmMRT7DdQdvs4+RNgz8hVKL11Etsw==}
 
-  '@mysten/bcs@1.2.0':
-    resolution: {integrity: sha512-LuKonrGdGW7dq/EM6U2L9/as7dFwnhZnsnINzB/vu08Xfrj0qzWwpLOiXagAa5yZOPLK7anRZydMonczFkUPzA==}
+  '@mysten/bcs@1.2.1':
+    resolution: {integrity: sha512-RMSaUsNb8oR0rTRVIOOcyoEVJqQi6DLvMXN+7mvDcki12FJFQ0lF89zQa7AV7cIurWlDQfJ8VIbCuRDyK+955A==}
 
-  '@mysten/sui@1.18.0':
-    resolution: {integrity: sha512-cFh5LxXZrXb/ZAD1dkKeQxzhgRYFXreyFGmI7w/JQWwdl+/0FrHJBwaWyTmGxJ/6ZC9SlaOPOk63flN7DbUurg==}
+  '@mysten/sui@1.18.1':
+    resolution: {integrity: sha512-ccMVOHM4KQhUvbBirE1rkn9THDJUX7y7W1cDMoCKnlPsIwTtQifZc7ysyBNjCMAS42y8Kq4VpiRagPjf13Am5A==}
     engines: {node: '>=18'}
 
   '@napi-rs/wasm-runtime@0.2.4':
@@ -5481,8 +5330,8 @@ packages:
       '@nestjs/websockets':
         optional: true
 
-  '@neynar/nodejs-sdk@2.7.0':
-    resolution: {integrity: sha512-V2pfo11sZNRPPu/Wbsakw81SEZYZNNJeStw2brgROXNmDg7eb5e83ftXOqHNRh6v3HvDmrYjlF++PDFu94M7YA==}
+  '@neynar/nodejs-sdk@2.8.0':
+    resolution: {integrity: sha512-NausMdekKJH58ssY/WjxkDYctHtLPqHUt1/ffZvqVp4SgcAH7Q5H7st782NJU+PZM85eNtcf5YbbVHbwDJgmOA==}
     engines: {node: '>=19.9.0'}
 
   '@noble/curves@1.2.0':
@@ -5849,24 +5698,24 @@ packages:
     cpu: [x64]
     os: [win32]
 
-  '@octokit/app@15.1.1':
-    resolution: {integrity: sha512-fk8xrCSPTJGpyBdBNI+DcZ224dm0aApv4vi6X7/zTmANXlegKV2Td+dJ+fd7APPaPN7R+xttUsj2Fm+AFDSfMQ==}
+  '@octokit/app@15.1.2':
+    resolution: {integrity: sha512-6aKmKvqnJKoVK+kx0mLlBMKmQYoziPw4Rd/PWr0j65QVQlrDXlu6hGU8fmTXt7tNkf/DsubdIaTT4fkoWzCh5g==}
     engines: {node: '>= 18'}
 
-  '@octokit/auth-app@7.1.3':
-    resolution: {integrity: sha512-GZdkOp2kZTIy5dG9oXqvzUAZiPvDx4C/lMlN6yQjtG9d/+hYa7W8WXTJoOrXE8UdfL9A/sZMl206dmtkl9lwVQ==}
+  '@octokit/auth-app@7.1.4':
+    resolution: {integrity: sha512-5F+3l/maq9JfWQ4bV28jT2G/K8eu9OJ317yzXPTGe4Kw+lKDhFaS4dQ3Ltmb6xImKxfCQdqDqMXODhc9YLipLw==}
     engines: {node: '>= 18'}
 
-  '@octokit/auth-oauth-app@8.1.1':
-    resolution: {integrity: sha512-5UtmxXAvU2wfcHIPPDWzVSAWXVJzG3NWsxb7zCFplCWEmMCArSZV0UQu5jw5goLQXbFyOr5onzEH37UJB3zQQg==}
+  '@octokit/auth-oauth-app@8.1.2':
+    resolution: {integrity: sha512-3woNZgq5/S6RS+9ZTq+JdymxVr7E0s4EYxF20ugQvgX3pomdPUL5r/XdTY9wALoBM2eHVy4ettr5fKpatyTyHw==}
     engines: {node: '>= 18'}
 
-  '@octokit/auth-oauth-device@7.1.1':
-    resolution: {integrity: sha512-HWl8lYueHonuyjrKKIup/1tiy0xcmQCdq5ikvMO1YwkNNkxb6DXfrPjrMYItNLyCP/o2H87WuijuE+SlBTT8eg==}
+  '@octokit/auth-oauth-device@7.1.2':
+    resolution: {integrity: sha512-gTOIzDeV36OhVfxCl69FmvJix7tJIiU6dlxuzLVAzle7fYfO8UDyddr9B+o4CFQVaMBLMGZ9ak2CWMYcGeZnPw==}
     engines: {node: '>= 18'}
 
-  '@octokit/auth-oauth-user@5.1.1':
-    resolution: {integrity: sha512-rRkMz0ErOppdvEfnemHJXgZ9vTPhBuC6yASeFaB7I2yLMd7QpjfrL1mnvRPlyKo+M6eeLxrKanXJ9Qte29SRsw==}
+  '@octokit/auth-oauth-user@5.1.2':
+    resolution: {integrity: sha512-PgVDDPJgZYb3qSEXK4moksA23tfn68zwSAsQKZ1uH6IV9IaNEYx35OXXI80STQaLYnmEE86AgU0tC1YkM4WjsA==}
     engines: {node: '>= 18'}
 
   '@octokit/auth-token@3.0.4':
@@ -5881,8 +5730,8 @@ packages:
     resolution: {integrity: sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==}
     engines: {node: '>= 18'}
 
-  '@octokit/auth-unauthenticated@6.1.0':
-    resolution: {integrity: sha512-zPSmfrUAcspZH/lOFQnVnvjQZsIvmfApQH6GzJrkIunDooU1Su2qt2FfMTSVPRp7WLTQyC20Kd55lF+mIYaohQ==}
+  '@octokit/auth-unauthenticated@6.1.1':
+    resolution: {integrity: sha512-bGXqdN6RhSFHvpPq46SL8sN+F3odQ6oMNLWc875IgoqcC3qus+fOL2th6Tkl94wvdSTy8/OeHzWy/lZebmnhog==}
     engines: {node: '>= 18'}
 
   '@octokit/core@4.2.4':
@@ -5893,8 +5742,8 @@ packages:
     resolution: {integrity: sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==}
     engines: {node: '>= 18'}
 
-  '@octokit/core@6.1.2':
-    resolution: {integrity: sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==}
+  '@octokit/core@6.1.3':
+    resolution: {integrity: sha512-z+j7DixNnfpdToYsOutStDgeRzJSMnbj8T1C/oQjB6Aa+kRfNjs/Fn7W6c8bmlt6mfy3FkgeKBRnDjxQow5dow==}
     engines: {node: '>= 18'}
 
   '@octokit/endpoint@10.1.2':
@@ -5921,8 +5770,8 @@ packages:
     resolution: {integrity: sha512-bdlj/CJVjpaz06NBpfHhp4kGJaRZfz7AzC+6EwUImRtrwIw8dIgJ63Xg0OzV9pRn3rIzrt5c2sa++BL0JJ8GLw==}
     engines: {node: '>= 18'}
 
-  '@octokit/oauth-app@7.1.4':
-    resolution: {integrity: sha512-Au4zSGsWOZtShLxVUXcZ9TZJVQjpEK/OW2L1SWLE030QVYaZ+69TP4vHBdXakZUifvOELD1VBYEY6eprPcY2Mg==}
+  '@octokit/oauth-app@7.1.5':
+    resolution: {integrity: sha512-/Y2MiwWDlGUK4blKKfjJiwjzu/FzwKTTTfTZAAQ0QbdBIDEGJPWhOFH6muSN86zaa4tNheB4YS3oWIR2e4ydzA==}
     engines: {node: '>= 18'}
 
   '@octokit/oauth-authorization-url@7.1.1':
@@ -5939,8 +5788,8 @@ packages:
   '@octokit/openapi-types@20.0.0':
     resolution: {integrity: sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==}
 
-  '@octokit/openapi-types@22.2.0':
-    resolution: {integrity: sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==}
+  '@octokit/openapi-types@23.0.1':
+    resolution: {integrity: sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g==}
 
   '@octokit/openapi-webhooks-types@8.5.1':
     resolution: {integrity: sha512-i3h1b5zpGSB39ffBbYdSGuAd0NhBAwPyA3QV3LYi/lx4lsbZiu7u2UHgXVUR6EpvOI8REOuVh1DZTRfHoJDvuQ==}
@@ -5960,8 +5809,8 @@ packages:
     peerDependencies:
       '@octokit/core': '5'
 
-  '@octokit/plugin-paginate-rest@11.3.6':
-    resolution: {integrity: sha512-zcvqqf/+TicbTCa/Z+3w4eBJcAxCFymtc0UAIsR3dEVoNilWld4oXdscQ3laXamTszUZdusw97K8+DrbFiOwjw==}
+  '@octokit/plugin-paginate-rest@11.4.0':
+    resolution: {integrity: sha512-ttpGck5AYWkwMkMazNCZMqxKqIq1fJBNxBfsFwwfyYKTf914jKkLF0POMS3YkPBwp5g1c2Y4L79gDz01GhSr1g==}
     engines: {node: '>= 18'}
     peerDependencies:
       '@octokit/core': '>=6'
@@ -5989,8 +5838,8 @@ packages:
     peerDependencies:
       '@octokit/core': ^5
 
-  '@octokit/plugin-rest-endpoint-methods@13.2.6':
-    resolution: {integrity: sha512-wMsdyHMjSfKjGINkdGKki06VEkgdEldIGstIEyGX0wbYHGByOwN/KiM+hAAlUwAtPkP3gvXtVQA9L3ITdV2tVw==}
+  '@octokit/plugin-rest-endpoint-methods@13.3.0':
+    resolution: {integrity: sha512-LUm44shlmkp/6VC+qQgHl3W5vzUP99ZM54zH6BuqkJK4DqfFLhegANd+fM4YRLapTvPm4049iG7F3haANKMYvQ==}
     engines: {node: '>= 18'}
     peerDependencies:
       '@octokit/core': '>=6'
@@ -6001,17 +5850,17 @@ packages:
     peerDependencies:
       '@octokit/core': '>=3'
 
-  '@octokit/plugin-retry@7.1.2':
-    resolution: {integrity: sha512-XOWnPpH2kJ5VTwozsxGurw+svB2e61aWlmk5EVIYZPwFK5F9h4cyPyj9CIKRyMXMHSwpIsI3mPOdpMmrRhe7UQ==}
+  '@octokit/plugin-retry@7.1.3':
+    resolution: {integrity: sha512-8nKOXvYWnzv89gSyIvgFHmCBAxfQAOPRlkacUHL9r5oWtp5Whxl8Skb2n3ACZd+X6cYijD6uvmrQuPH/UCL5zQ==}
     engines: {node: '>= 18'}
     peerDependencies:
       '@octokit/core': '>=6'
 
-  '@octokit/plugin-throttling@9.3.2':
-    resolution: {integrity: sha512-FqpvcTpIWFpMMwIeSoypoJXysSAQ3R+ALJhXXSG1HTP3YZOIeLmcNcimKaXxTcws+Sh6yoRl13SJ5r8sXc1Fhw==}
+  '@octokit/plugin-throttling@9.4.0':
+    resolution: {integrity: sha512-IOlXxXhZA4Z3m0EEYtrrACkuHiArHLZ3CvqWwOez/pURNqRuwfoFlTPbN5Muf28pzFuztxPyiUiNwz8KctdZaQ==}
     engines: {node: '>= 18'}
     peerDependencies:
-      '@octokit/core': ^6.0.0
+      '@octokit/core': ^6.1.3
 
   '@octokit/request-error@3.0.3':
     resolution: {integrity: sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==}
@@ -6054,8 +5903,8 @@ packages:
   '@octokit/types@12.6.0':
     resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==}
 
-  '@octokit/types@13.6.2':
-    resolution: {integrity: sha512-WpbZfZUcZU77DrSW4wbsSgTPfKcp286q3ItaIgvSbBpZJlu6mnYXAkjZz6LVZPXkEvLIM8McanyZejKTYUHipA==}
+  '@octokit/types@13.7.0':
+    resolution: {integrity: sha512-BXfRP+3P3IN6fd4uF3SniaHKOO4UXWBfkdR3vA8mIvaoO/wLjGN5qivUtW0QRitBHHMcfC41SLhNVYIZZE+wkA==}
 
   '@octokit/types@9.3.2':
     resolution: {integrity: sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==}
@@ -6064,8 +5913,8 @@ packages:
     resolution: {integrity: sha512-yFZa3UH11VIxYnnoOYCVoJ3q4ChuSOk2IVBBQ0O3xtKX4x9bmKb/1t+Mxixv2iUhzMdOl1qeWJqEhouXXzB3rQ==}
     engines: {node: '>= 18'}
 
-  '@octokit/webhooks@13.4.1':
-    resolution: {integrity: sha512-I5YPUtfWidh+OzyrlDahJsUpkpGK0kCTmDRbuqGmlCUzOtxdEkX3R4d6Cd08ijQYwkVXQJanPdbKuZBeV2NMaA==}
+  '@octokit/webhooks@13.4.2':
+    resolution: {integrity: sha512-fakbgkCScapQXPxyqx2jZs/Y3jGlyezwUp7ATL7oLAGJ0+SqBKWKstoKZpiQ+REeHutKpYjY9UtxdLSurwl2Tg==}
     engines: {node: '>= 18'}
 
   '@onflow/config@1.5.1':
@@ -6774,98 +6623,98 @@ packages:
       rollup:
         optional: true
 
-  '@rollup/rollup-android-arm-eabi@4.29.1':
-    resolution: {integrity: sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==}
+  '@rollup/rollup-android-arm-eabi@4.30.1':
+    resolution: {integrity: sha512-pSWY+EVt3rJ9fQ3IqlrEUtXh3cGqGtPDH1FQlNZehO2yYxCHEX1SPsz1M//NXwYfbTlcKr9WObLnJX9FsS9K1Q==}
     cpu: [arm]
     os: [android]
 
-  '@rollup/rollup-android-arm64@4.29.1':
-    resolution: {integrity: sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==}
+  '@rollup/rollup-android-arm64@4.30.1':
+    resolution: {integrity: sha512-/NA2qXxE3D/BRjOJM8wQblmArQq1YoBVJjrjoTSBS09jgUisq7bqxNHJ8kjCHeV21W/9WDGwJEWSN0KQ2mtD/w==}
     cpu: [arm64]
     os: [android]
 
-  '@rollup/rollup-darwin-arm64@4.29.1':
-    resolution: {integrity: sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==}
+  '@rollup/rollup-darwin-arm64@4.30.1':
+    resolution: {integrity: sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q==}
     cpu: [arm64]
     os: [darwin]
 
-  '@rollup/rollup-darwin-x64@4.29.1':
-    resolution: {integrity: sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==}
+  '@rollup/rollup-darwin-x64@4.30.1':
+    resolution: {integrity: sha512-x78BavIwSH6sqfP2xeI1hd1GpHL8J4W2BXcVM/5KYKoAD3nNsfitQhvWSw+TFtQTLZ9OmlF+FEInEHyubut2OA==}
     cpu: [x64]
     os: [darwin]
 
-  '@rollup/rollup-freebsd-arm64@4.29.1':
-    resolution: {integrity: sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==}
+  '@rollup/rollup-freebsd-arm64@4.30.1':
+    resolution: {integrity: sha512-HYTlUAjbO1z8ywxsDFWADfTRfTIIy/oUlfIDmlHYmjUP2QRDTzBuWXc9O4CXM+bo9qfiCclmHk1x4ogBjOUpUQ==}
     cpu: [arm64]
     os: [freebsd]
 
-  '@rollup/rollup-freebsd-x64@4.29.1':
-    resolution: {integrity: sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==}
+  '@rollup/rollup-freebsd-x64@4.30.1':
+    resolution: {integrity: sha512-1MEdGqogQLccphhX5myCJqeGNYTNcmTyaic9S7CG3JhwuIByJ7J05vGbZxsizQthP1xpVx7kd3o31eOogfEirw==}
     cpu: [x64]
     os: [freebsd]
 
-  '@rollup/rollup-linux-arm-gnueabihf@4.29.1':
-    resolution: {integrity: sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==}
+  '@rollup/rollup-linux-arm-gnueabihf@4.30.1':
+    resolution: {integrity: sha512-PaMRNBSqCx7K3Wc9QZkFx5+CX27WFpAMxJNiYGAXfmMIKC7jstlr32UhTgK6T07OtqR+wYlWm9IxzennjnvdJg==}
     cpu: [arm]
     os: [linux]
 
-  '@rollup/rollup-linux-arm-musleabihf@4.29.1':
-    resolution: {integrity: sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==}
+  '@rollup/rollup-linux-arm-musleabihf@4.30.1':
+    resolution: {integrity: sha512-B8Rcyj9AV7ZlEFqvB5BubG5iO6ANDsRKlhIxySXcF1axXYUyqwBok+XZPgIYGBgs7LDXfWfifxhw0Ik57T0Yug==}
     cpu: [arm]
     os: [linux]
 
-  '@rollup/rollup-linux-arm64-gnu@4.29.1':
-    resolution: {integrity: sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==}
+  '@rollup/rollup-linux-arm64-gnu@4.30.1':
+    resolution: {integrity: sha512-hqVyueGxAj3cBKrAI4aFHLV+h0Lv5VgWZs9CUGqr1z0fZtlADVV1YPOij6AhcK5An33EXaxnDLmJdQikcn5NEw==}
     cpu: [arm64]
     os: [linux]
 
-  '@rollup/rollup-linux-arm64-musl@4.29.1':
-    resolution: {integrity: sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==}
+  '@rollup/rollup-linux-arm64-musl@4.30.1':
+    resolution: {integrity: sha512-i4Ab2vnvS1AE1PyOIGp2kXni69gU2DAUVt6FSXeIqUCPIR3ZlheMW3oP2JkukDfu3PsexYRbOiJrY+yVNSk9oA==}
     cpu: [arm64]
     os: [linux]
 
-  '@rollup/rollup-linux-loongarch64-gnu@4.29.1':
-    resolution: {integrity: sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==}
+  '@rollup/rollup-linux-loongarch64-gnu@4.30.1':
+    resolution: {integrity: sha512-fARcF5g296snX0oLGkVxPmysetwUk2zmHcca+e9ObOovBR++9ZPOhqFUM61UUZ2EYpXVPN1redgqVoBB34nTpQ==}
     cpu: [loong64]
     os: [linux]
 
-  '@rollup/rollup-linux-powerpc64le-gnu@4.29.1':
-    resolution: {integrity: sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==}
+  '@rollup/rollup-linux-powerpc64le-gnu@4.30.1':
+    resolution: {integrity: sha512-GLrZraoO3wVT4uFXh67ElpwQY0DIygxdv0BNW9Hkm3X34wu+BkqrDrkcsIapAY+N2ATEbvak0XQ9gxZtCIA5Rw==}
     cpu: [ppc64]
     os: [linux]
 
-  '@rollup/rollup-linux-riscv64-gnu@4.29.1':
-    resolution: {integrity: sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==}
+  '@rollup/rollup-linux-riscv64-gnu@4.30.1':
+    resolution: {integrity: sha512-0WKLaAUUHKBtll0wvOmh6yh3S0wSU9+yas923JIChfxOaaBarmb/lBKPF0w/+jTVozFnOXJeRGZ8NvOxvk/jcw==}
     cpu: [riscv64]
     os: [linux]
 
-  '@rollup/rollup-linux-s390x-gnu@4.29.1':
-    resolution: {integrity: sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==}
+  '@rollup/rollup-linux-s390x-gnu@4.30.1':
+    resolution: {integrity: sha512-GWFs97Ruxo5Bt+cvVTQkOJ6TIx0xJDD/bMAOXWJg8TCSTEK8RnFeOeiFTxKniTc4vMIaWvCplMAFBt9miGxgkA==}
     cpu: [s390x]
     os: [linux]
 
-  '@rollup/rollup-linux-x64-gnu@4.29.1':
-    resolution: {integrity: sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==}
+  '@rollup/rollup-linux-x64-gnu@4.30.1':
+    resolution: {integrity: sha512-UtgGb7QGgXDIO+tqqJ5oZRGHsDLO8SlpE4MhqpY9Llpzi5rJMvrK6ZGhsRCST2abZdBqIBeXW6WPD5fGK5SDwg==}
     cpu: [x64]
     os: [linux]
 
-  '@rollup/rollup-linux-x64-musl@4.29.1':
-    resolution: {integrity: sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==}
+  '@rollup/rollup-linux-x64-musl@4.30.1':
+    resolution: {integrity: sha512-V9U8Ey2UqmQsBT+xTOeMzPzwDzyXmnAoO4edZhL7INkwQcaW1Ckv3WJX3qrrp/VHaDkEWIBWhRwP47r8cdrOow==}
     cpu: [x64]
     os: [linux]
 
-  '@rollup/rollup-win32-arm64-msvc@4.29.1':
-    resolution: {integrity: sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==}
+  '@rollup/rollup-win32-arm64-msvc@4.30.1':
+    resolution: {integrity: sha512-WabtHWiPaFF47W3PkHnjbmWawnX/aE57K47ZDT1BXTS5GgrBUEpvOzq0FI0V/UYzQJgdb8XlhVNH8/fwV8xDjw==}
     cpu: [arm64]
     os: [win32]
 
-  '@rollup/rollup-win32-ia32-msvc@4.29.1':
-    resolution: {integrity: sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==}
+  '@rollup/rollup-win32-ia32-msvc@4.30.1':
+    resolution: {integrity: sha512-pxHAU+Zv39hLUTdQQHUVHf4P+0C47y/ZloorHpzs2SXMRqeAWmGghzAhfOlzFHHwjvgokdFAhC4V+6kC1lRRfw==}
     cpu: [ia32]
     os: [win32]
 
-  '@rollup/rollup-win32-x64-msvc@4.29.1':
-    resolution: {integrity: sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==}
+  '@rollup/rollup-win32-x64-msvc@4.30.1':
+    resolution: {integrity: sha512-D6qjsXGcvhTjv0kI4fU8tUuBDF/Ueee4SVX79VfNDXZa64TfCW1Slkb6Z7O1p7vflqZjcmOVdZlqf8gvJxc6og==}
     cpu: [x64]
     os: [win32]
 
@@ -6955,26 +6804,26 @@ packages:
     resolution: {integrity: sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==}
     engines: {node: '>=6'}
 
-  '@shikijs/core@1.25.1':
-    resolution: {integrity: sha512-0j5k3ZkLTQViOuNzPVyWGoW1zgH3kiFdUT/JOCkTm7TU74mz+dF+NID+YoiCBzHQxgsDpcGYPjKDJRcuVLSt4A==}
+  '@shikijs/core@1.26.1':
+    resolution: {integrity: sha512-yeo7sG+WZQblKPclUOKRPwkv1PyoHYkJ4gP9DzhFJbTdueKR7wYTI1vfF/bFi1NTgc545yG/DzvVhZgueVOXMA==}
 
-  '@shikijs/engine-javascript@1.25.1':
-    resolution: {integrity: sha512-zQ7UWKnRCfD/Q1M+XOSyjsbhpE0qv8LUnmn82HYCeOsgAHgUZGEDIQ63bbuK3kU5sQg+2CtI+dPfOqD/mjSY9w==}
+  '@shikijs/engine-javascript@1.26.1':
+    resolution: {integrity: sha512-CRhA0b8CaSLxS0E9A4Bzcb3LKBNpykfo9F85ozlNyArxjo2NkijtiwrJZ6eHa+NT5I9Kox2IXVdjUsP4dilsmw==}
 
-  '@shikijs/engine-oniguruma@1.25.1':
-    resolution: {integrity: sha512-iKPMh3H+0USHtWfZ1irfMTH6tGmIUFSnqt3E2K8BgI1VEsqiPh0RYkG2WTwzNiM1/WHN4FzYx/nrKR7PDHiRyw==}
+  '@shikijs/engine-oniguruma@1.26.1':
+    resolution: {integrity: sha512-F5XuxN1HljLuvfXv7d+mlTkV7XukC1cawdtOo+7pKgPD83CAB1Sf8uHqP3PK0u7njFH0ZhoXE1r+0JzEgAQ+kg==}
 
-  '@shikijs/langs@1.25.1':
-    resolution: {integrity: sha512-hdYjq9aRJplAzGe2qF51PR9IDgEoyGb4IkXvr3Ts6lEdg4Z8M/kdknKRo2EIuv3IR/aKkJXTlBQRM+wr3t20Ew==}
+  '@shikijs/langs@1.26.1':
+    resolution: {integrity: sha512-oz/TQiIqZejEIZbGtn68hbJijAOTtYH4TMMSWkWYozwqdpKR3EXgILneQy26WItmJjp3xVspHdiUxUCws4gtuw==}
 
-  '@shikijs/themes@1.25.1':
-    resolution: {integrity: sha512-JO0lDn4LgGqg5QKvgich5ScUmC2okK+LxM9a3iLUH7YMeI2c8UGXThuJv6sZduS7pdJbYQHPrvWq9t/V4GhpbQ==}
+  '@shikijs/themes@1.26.1':
+    resolution: {integrity: sha512-JDxVn+z+wgLCiUhBGx2OQrLCkKZQGzNH3nAxFir4PjUcYiyD8Jdms9izyxIogYmSwmoPTatFTdzyrRKbKlSfPA==}
 
-  '@shikijs/types@1.25.1':
-    resolution: {integrity: sha512-dceqFUoO95eY4tpOj3OGq8wE8EgJ4ey6Me1HQEu5UbwIYszFndEll/bjlB8Kp9wl4fx3uM7n4+y9XCYuDBmcXA==}
+  '@shikijs/types@1.26.1':
+    resolution: {integrity: sha512-d4B00TKKAMaHuFYgRf3L0gwtvqpW4hVdVwKcZYbBfAAQXspgkbWqnFfuFl3MDH6gLbsubOcr+prcnsqah3ny7Q==}
 
-  '@shikijs/vscode-textmate@9.3.1':
-    resolution: {integrity: sha512-79QfK1393x9Ho60QFyLti+QfdJzRQCVLFb97kOIV7Eo9vQU/roINgk7m24uv0a7AUvN//RDH36FLjjK48v0s9g==}
+  '@shikijs/vscode-textmate@10.0.1':
+    resolution: {integrity: sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==}
 
   '@sideway/address@4.1.5':
     resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==}
@@ -7066,208 +6915,217 @@ packages:
   '@slorber/remark-comment@1.0.0':
     resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==}
 
-  '@smithy/abort-controller@3.1.9':
-    resolution: {integrity: sha512-yiW0WI30zj8ZKoSYNx90no7ugVn3khlyH/z5W8qtKBtVE6awRALbhSG+2SAHA1r6bO/6M9utxYKVZ3PCJ1rWxw==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/abort-controller@4.0.1':
+    resolution: {integrity: sha512-fiUIYgIgRjMWznk6iLJz35K2YxSLHzLBA/RC6lBrKfQ8fHbPfvk7Pk9UvpKoHgJjI18MnbPuEju53zcVy6KF1g==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/chunked-blob-reader-native@3.0.1':
-    resolution: {integrity: sha512-VEYtPvh5rs/xlyqpm5NRnfYLZn+q0SRPELbvBV+C/G7IQ+ouTuo+NKKa3ShG5OaFR8NYVMXls9hPYLTvIKKDrQ==}
+  '@smithy/chunked-blob-reader-native@4.0.0':
+    resolution: {integrity: sha512-R9wM2yPmfEMsUmlMlIgSzOyICs0x9uu7UTHoccMyt7BWw8shcGM8HqB355+BZCPBcySvbTYMs62EgEQkNxz2ig==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/chunked-blob-reader@4.0.0':
-    resolution: {integrity: sha512-jSqRnZvkT4egkq/7b6/QRCNXmmYVcHwnJldqJ3IhVpQE2atObVJ137xmGeuGFhjFUr8gCEVAOKwSY79OvpbDaQ==}
+  '@smithy/chunked-blob-reader@5.0.0':
+    resolution: {integrity: sha512-+sKqDBQqb036hh4NPaUiEkYFkTUGYzRsn3EuFhyfQfMy6oGHEUJDurLP9Ufb5dasr/XiAmPNMr6wa9afjQB+Gw==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/config-resolver@3.0.13':
-    resolution: {integrity: sha512-Gr/qwzyPaTL1tZcq8WQyHhTZREER5R1Wytmz4WnVGL4onA3dNk6Btll55c8Vr58pLdvWZmtG8oZxJTw3t3q7Jg==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/config-resolver@4.0.1':
+    resolution: {integrity: sha512-Igfg8lKu3dRVkTSEm98QpZUvKEOa71jDX4vKRcvJVyRc3UgN3j7vFMf0s7xLQhYmKa8kyJGQgUJDOV5V3neVlQ==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/core@2.5.7':
-    resolution: {integrity: sha512-8olpW6mKCa0v+ibCjoCzgZHQx1SQmZuW/WkrdZo73wiTprTH6qhmskT60QLFdT9DRa5mXxjz89kQPZ7ZSsoqqg==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/core@3.1.0':
+    resolution: {integrity: sha512-swFv0wQiK7TGHeuAp6lfF5Kw1dHWsTrCuc+yh4Kh05gEShjsE2RUxHucEerR9ih9JITNtaHcSpUThn5Y/vDw0A==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/credential-provider-imds@3.2.8':
-    resolution: {integrity: sha512-ZCY2yD0BY+K9iMXkkbnjo+08T2h8/34oHd0Jmh6BZUSZwaaGlGCyBT/3wnS7u7Xl33/EEfN4B6nQr3Gx5bYxgw==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/credential-provider-imds@4.0.1':
+    resolution: {integrity: sha512-l/qdInaDq1Zpznpmev/+52QomsJNZ3JkTl5yrTl02V6NBgJOQ4LY0SFw/8zsMwj3tLe8vqiIuwF6nxaEwgf6mg==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/eventstream-codec@3.1.10':
-    resolution: {integrity: sha512-323B8YckSbUH0nMIpXn7HZsAVKHYHFUODa8gG9cHo0ySvA1fr5iWaNT+iIL0UCqUzG6QPHA3BSsBtRQou4mMqQ==}
+  '@smithy/eventstream-codec@4.0.1':
+    resolution: {integrity: sha512-Q2bCAAR6zXNVtJgifsU16ZjKGqdw/DyecKNgIgi7dlqw04fqDu0mnq+JmGphqheypVc64CYq3azSuCpAdFk2+A==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/eventstream-serde-browser@3.0.14':
-    resolution: {integrity: sha512-kbrt0vjOIihW3V7Cqj1SXQvAI5BR8SnyQYsandva0AOR307cXAc+IhPngxIPslxTLfxwDpNu0HzCAq6g42kCPg==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/eventstream-serde-browser@4.0.1':
+    resolution: {integrity: sha512-HbIybmz5rhNg+zxKiyVAnvdM3vkzjE6ccrJ620iPL8IXcJEntd3hnBl+ktMwIy12Te/kyrSbUb8UCdnUT4QEdA==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/eventstream-serde-config-resolver@3.0.11':
-    resolution: {integrity: sha512-P2pnEp4n75O+QHjyO7cbw/vsw5l93K/8EWyjNCAAybYwUmj3M+hjSQZ9P5TVdUgEG08ueMAP5R4FkuSkElZ5tQ==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/eventstream-serde-config-resolver@4.0.1':
+    resolution: {integrity: sha512-lSipaiq3rmHguHa3QFF4YcCM3VJOrY9oq2sow3qlhFY+nBSTF/nrO82MUQRPrxHQXA58J5G1UnU2WuJfi465BA==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/eventstream-serde-node@3.0.13':
-    resolution: {integrity: sha512-zqy/9iwbj8Wysmvi7Lq7XFLeDgjRpTbCfwBhJa8WbrylTAHiAu6oQTwdY7iu2lxigbc9YYr9vPv5SzYny5tCXQ==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/eventstream-serde-node@4.0.1':
+    resolution: {integrity: sha512-o4CoOI6oYGYJ4zXo34U8X9szDe3oGjmHgsMGiZM0j4vtNoT+h80TLnkUcrLZR3+E6HIxqW+G+9WHAVfl0GXK0Q==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/eventstream-serde-universal@3.0.13':
-    resolution: {integrity: sha512-L1Ib66+gg9uTnqp/18Gz4MDpJPKRE44geOjOQ2SVc0eiaO5l255ADziATZgjQjqumC7yPtp1XnjHlF1srcwjKw==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/eventstream-serde-universal@4.0.1':
+    resolution: {integrity: sha512-Z94uZp0tGJuxds3iEAZBqGU2QiaBHP4YytLUjwZWx+oUeohCsLyUm33yp4MMBmhkuPqSbQCXq5hDet6JGUgHWA==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/fetch-http-handler@4.1.3':
-    resolution: {integrity: sha512-6SxNltSncI8s689nvnzZQc/dPXcpHQ34KUj6gR/HBroytKOd/isMG3gJF/zBE1TBmTT18TXyzhg3O3SOOqGEhA==}
+  '@smithy/fetch-http-handler@5.0.1':
+    resolution: {integrity: sha512-3aS+fP28urrMW2KTjb6z9iFow6jO8n3MFfineGbndvzGZit3taZhKWtTorf+Gp5RpFDDafeHlhfsGlDCXvUnJA==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/hash-blob-browser@3.1.10':
-    resolution: {integrity: sha512-elwslXOoNunmfS0fh55jHggyhccobFkexLYC1ZeZ1xP2BTSrcIBaHV2b4xUQOdctrSNOpMqOZH1r2XzWTEhyfA==}
+  '@smithy/hash-blob-browser@4.0.1':
+    resolution: {integrity: sha512-rkFIrQOKZGS6i1D3gKJ8skJ0RlXqDvb1IyAphksaFOMzkn3v3I1eJ8m7OkLj0jf1McP63rcCEoLlkAn/HjcTRw==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/hash-node@3.0.11':
-    resolution: {integrity: sha512-emP23rwYyZhQBvklqTtwetkQlqbNYirDiEEwXl2v0GYWMnCzxst7ZaRAnWuy28njp5kAH54lvkdG37MblZzaHA==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/hash-node@4.0.1':
+    resolution: {integrity: sha512-TJ6oZS+3r2Xu4emVse1YPB3Dq3d8RkZDKcPr71Nj/lJsdAP1c7oFzYqEn1IBc915TsgLl2xIJNuxCz+gLbLE0w==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/hash-stream-node@3.1.10':
-    resolution: {integrity: sha512-olomK/jZQ93OMayW1zfTHwcbwBdhcZOHsyWyiZ9h9IXvc1mCD/VuvzbLb3Gy/qNJwI4MANPLctTp2BucV2oU/Q==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/hash-stream-node@4.0.1':
+    resolution: {integrity: sha512-U1rAE1fxmReCIr6D2o/4ROqAQX+GffZpyMt3d7njtGDr2pUNmAKRWa49gsNVhCh2vVAuf3wXzWwNr2YN8PAXIw==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/invalid-dependency@3.0.11':
-    resolution: {integrity: sha512-NuQmVPEJjUX6c+UELyVz8kUx8Q539EDeNwbRyu4IIF8MeV7hUtq1FB3SHVyki2u++5XLMFqngeMKk7ccspnNyQ==}
+  '@smithy/invalid-dependency@4.0.1':
+    resolution: {integrity: sha512-gdudFPf4QRQ5pzj7HEnu6FhKRi61BfH/Gk5Yf6O0KiSbr1LlVhgjThcvjdu658VE6Nve8vaIWB8/fodmS1rBPQ==}
+    engines: {node: '>=18.0.0'}
 
   '@smithy/is-array-buffer@2.2.0':
     resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==}
     engines: {node: '>=14.0.0'}
 
-  '@smithy/is-array-buffer@3.0.0':
-    resolution: {integrity: sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/is-array-buffer@4.0.0':
+    resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/md5-js@3.0.11':
-    resolution: {integrity: sha512-3NM0L3i2Zm4bbgG6Ymi9NBcxXhryi3uE8fIfHJZIOfZVxOkGdjdgjR9A06SFIZCfnEIWKXZdm6Yq5/aPXFFhsQ==}
+  '@smithy/md5-js@4.0.1':
+    resolution: {integrity: sha512-HLZ647L27APi6zXkZlzSFZIjpo8po45YiyjMGJZM3gyDY8n7dPGdmxIIljLm4gPt/7rRvutLTTkYJpZVfG5r+A==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/middleware-content-length@3.0.13':
-    resolution: {integrity: sha512-zfMhzojhFpIX3P5ug7jxTjfUcIPcGjcQYzB9t+rv0g1TX7B0QdwONW+ATouaLoD7h7LOw/ZlXfkq4xJ/g2TrIw==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/middleware-content-length@4.0.1':
+    resolution: {integrity: sha512-OGXo7w5EkB5pPiac7KNzVtfCW2vKBTZNuCctn++TTSOMpe6RZO/n6WEC1AxJINn3+vWLKW49uad3lo/u0WJ9oQ==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/middleware-endpoint@3.2.8':
-    resolution: {integrity: sha512-OEJZKVUEhMOqMs3ktrTWp7UvvluMJEvD5XgQwRePSbDg1VvBaL8pX8mwPltFn6wk1GySbcVwwyldL8S+iqnrEQ==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/middleware-endpoint@4.0.1':
+    resolution: {integrity: sha512-hCCOPu9+sRI7Wj0rZKKnGylKXBEd9cQJetzjQqe8cT4PWvtQAbvNVa6cgAONiZg9m8LaXtP9/waxm3C3eO4hiw==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/middleware-retry@3.0.34':
-    resolution: {integrity: sha512-yVRr/AAtPZlUvwEkrq7S3x7Z8/xCd97m2hLDaqdz6ucP2RKHsBjEqaUA2ebNv2SsZoPEi+ZD0dZbOB1u37tGCA==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/middleware-retry@4.0.1':
+    resolution: {integrity: sha512-n3g2zZFgOWaz2ZYCy8+4wxSmq+HSTD8QKkRhFDv+nkxY1o7gzyp4PDz/+tOdcNPMPZ/A6Mt4aVECYNjQNiaHJw==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/middleware-serde@3.0.11':
-    resolution: {integrity: sha512-KzPAeySp/fOoQA82TpnwItvX8BBURecpx6ZMu75EZDkAcnPtO6vf7q4aH5QHs/F1s3/snQaSFbbUMcFFZ086Mw==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/middleware-serde@4.0.1':
+    resolution: {integrity: sha512-Fh0E2SOF+S+P1+CsgKyiBInAt3o2b6Qk7YOp2W0Qx2XnfTdfMuSDKUEcnrtpxCzgKJnqXeLUZYqtThaP0VGqtA==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/middleware-stack@3.0.11':
-    resolution: {integrity: sha512-1HGo9a6/ikgOMrTrWL/WiN9N8GSVYpuRQO5kjstAq4CvV59bjqnh7TbdXGQ4vxLD3xlSjfBjq5t1SOELePsLnA==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/middleware-stack@4.0.1':
+    resolution: {integrity: sha512-dHwDmrtR/ln8UTHpaIavRSzeIk5+YZTBtLnKwDW3G2t6nAupCiQUvNzNoHBpik63fwUaJPtlnMzXbQrNFWssIA==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/node-config-provider@3.1.12':
-    resolution: {integrity: sha512-O9LVEu5J/u/FuNlZs+L7Ikn3lz7VB9hb0GtPT9MQeiBmtK8RSY3ULmsZgXhe6VAlgTw0YO+paQx4p8xdbs43vQ==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/node-config-provider@4.0.1':
+    resolution: {integrity: sha512-8mRTjvCtVET8+rxvmzRNRR0hH2JjV0DFOmwXPrISmTIJEfnCBugpYYGAsCj8t41qd+RB5gbheSQ/6aKZCQvFLQ==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/node-http-handler@3.3.3':
-    resolution: {integrity: sha512-BrpZOaZ4RCbcJ2igiSNG16S+kgAc65l/2hmxWdmhyoGWHTLlzQzr06PXavJp9OBlPEG/sHlqdxjWmjzV66+BSQ==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/node-http-handler@4.0.1':
+    resolution: {integrity: sha512-ddQc7tvXiVLC5c3QKraGWde761KSk+mboCheZoWtuqnXh5l0WKyFy3NfDIM/dsKrI9HlLVH/21pi9wWK2gUFFA==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/property-provider@3.1.11':
-    resolution: {integrity: sha512-I/+TMc4XTQ3QAjXfOcUWbSS073oOEAxgx4aZy8jHaf8JQnRkq2SZWw8+PfDtBvLUjcGMdxl+YwtzWe6i5uhL/A==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/property-provider@4.0.1':
+    resolution: {integrity: sha512-o+VRiwC2cgmk/WFV0jaETGOtX16VNPp2bSQEzu0whbReqE1BMqsP2ami2Vi3cbGVdKu1kq9gQkDAGKbt0WOHAQ==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/protocol-http@4.1.8':
-    resolution: {integrity: sha512-hmgIAVyxw1LySOwkgMIUN0kjN8TG9Nc85LJeEmEE/cNEe2rkHDUWhnJf2gxcSRFLWsyqWsrZGw40ROjUogg+Iw==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/protocol-http@5.0.1':
+    resolution: {integrity: sha512-TE4cpj49jJNB/oHyh/cRVEgNZaoPaxd4vteJNB0yGidOCVR0jCw/hjPVsT8Q8FRmj8Bd3bFZt8Dh7xGCT+xMBQ==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/querystring-builder@3.0.11':
-    resolution: {integrity: sha512-u+5HV/9uJaeLj5XTb6+IEF/dokWWkEqJ0XiaRRogyREmKGUgZnNecLucADLdauWFKUNbQfulHFEZEdjwEBjXRg==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/querystring-builder@4.0.1':
+    resolution: {integrity: sha512-wU87iWZoCbcqrwszsOewEIuq+SU2mSoBE2CcsLwE0I19m0B2gOJr1MVjxWcDQYOzHbR1xCk7AcOBbGFUYOKvdg==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/querystring-parser@3.0.11':
-    resolution: {integrity: sha512-Je3kFvCsFMnso1ilPwA7GtlbPaTixa3WwC+K21kmMZHsBEOZYQaqxcMqeFFoU7/slFjKDIpiiPydvdJm8Q/MCw==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/querystring-parser@4.0.1':
+    resolution: {integrity: sha512-Ma2XC7VS9aV77+clSFylVUnPZRindhB7BbmYiNOdr+CHt/kZNJoPP0cd3QxCnCFyPXC4eybmyE98phEHkqZ5Jw==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/service-error-classification@3.0.11':
-    resolution: {integrity: sha512-QnYDPkyewrJzCyaeI2Rmp7pDwbUETe+hU8ADkXmgNusO1bgHBH7ovXJiYmba8t0fNfJx75fE8dlM6SEmZxheog==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/service-error-classification@4.0.1':
+    resolution: {integrity: sha512-3JNjBfOWpj/mYfjXJHB4Txc/7E4LVq32bwzE7m28GN79+M1f76XHflUaSUkhOriprPDzev9cX/M+dEB80DNDKA==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/shared-ini-file-loader@3.1.12':
-    resolution: {integrity: sha512-1xKSGI+U9KKdbG2qDvIR9dGrw3CNx+baqJfyr0igKEpjbHL5stsqAesYBzHChYHlelWtb87VnLWlhvfCz13H8Q==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/shared-ini-file-loader@4.0.1':
+    resolution: {integrity: sha512-hC8F6qTBbuHRI/uqDgqqi6J0R4GtEZcgrZPhFQnMhfJs3MnUTGSnR1NSJCJs5VWlMydu0kJz15M640fJlRsIOw==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/signature-v4@4.2.4':
-    resolution: {integrity: sha512-5JWeMQYg81TgU4cG+OexAWdvDTs5JDdbEZx+Qr1iPbvo91QFGzjy0IkXAKaXUHqmKUJgSHK0ZxnCkgZpzkeNTA==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/signature-v4@5.0.1':
+    resolution: {integrity: sha512-nCe6fQ+ppm1bQuw5iKoeJ0MJfz2os7Ic3GBjOkLOPtavbD1ONoyE3ygjBfz2ythFWm4YnRm6OxW+8p/m9uCoIA==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/smithy-client@3.7.0':
-    resolution: {integrity: sha512-9wYrjAZFlqWhgVo3C4y/9kpc68jgiSsKUnsFPzr/MSiRL93+QRDafGTfhhKAb2wsr69Ru87WTiqSfQusSmWipA==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/smithy-client@4.1.0':
+    resolution: {integrity: sha512-NiboZnrsrZY+Cy5hQNbYi+nVNssXVi2I+yL4CIKNIanOhH8kpC5PKQ2jx/MQpwVr21a3XcVoQBArlpRF36OeEQ==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/types@3.7.2':
-    resolution: {integrity: sha512-bNwBYYmN8Eh9RyjS1p2gW6MIhSO2rl7X9QeLM8iTdcGRP+eDiIWDt66c9IysCc22gefKszZv+ubV9qZc7hdESg==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/types@4.1.0':
+    resolution: {integrity: sha512-enhjdwp4D7CXmwLtD6zbcDMbo6/T6WtuuKCY49Xxc6OMOmUWlBEBDREsxxgV2LIdeQPW756+f97GzcgAwp3iLw==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/url-parser@3.0.11':
-    resolution: {integrity: sha512-TmlqXkSk8ZPhfc+SQutjmFr5FjC0av3GZP4B/10caK1SbRwe/v+Wzu/R6xEKxoNqL+8nY18s1byiy6HqPG37Aw==}
+  '@smithy/url-parser@4.0.1':
+    resolution: {integrity: sha512-gPXcIEUtw7VlK8f/QcruNXm7q+T5hhvGu9tl63LsJPZ27exB6dtNwvh2HIi0v7JcXJ5emBxB+CJxwaLEdJfA+g==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/util-base64@3.0.0':
-    resolution: {integrity: sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/util-base64@4.0.0':
+    resolution: {integrity: sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/util-body-length-browser@3.0.0':
-    resolution: {integrity: sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==}
+  '@smithy/util-body-length-browser@4.0.0':
+    resolution: {integrity: sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/util-body-length-node@3.0.0':
-    resolution: {integrity: sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/util-body-length-node@4.0.0':
+    resolution: {integrity: sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==}
+    engines: {node: '>=18.0.0'}
 
   '@smithy/util-buffer-from@2.2.0':
     resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==}
     engines: {node: '>=14.0.0'}
 
-  '@smithy/util-buffer-from@3.0.0':
-    resolution: {integrity: sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/util-buffer-from@4.0.0':
+    resolution: {integrity: sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/util-config-provider@3.0.0':
-    resolution: {integrity: sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/util-config-provider@4.0.0':
+    resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/util-defaults-mode-browser@3.0.34':
-    resolution: {integrity: sha512-FumjjF631lR521cX+svMLBj3SwSDh9VdtyynTYDAiBDEf8YPP5xORNXKQ9j0105o5+ARAGnOOP/RqSl40uXddA==}
-    engines: {node: '>= 10.0.0'}
+  '@smithy/util-defaults-mode-browser@4.0.1':
+    resolution: {integrity: sha512-nkQifWzWUHw/D0aLPgyKut+QnJ5X+5E8wBvGfvrYLLZ86xPfVO6MoqfQo/9s4bF3Xscefua1M6KLZtobHMWrBg==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/util-defaults-mode-node@3.0.34':
-    resolution: {integrity: sha512-vN6aHfzW9dVVzkI0wcZoUXvfjkl4CSbM9nE//08lmUMyf00S75uuCpTrqF9uD4bD9eldIXlt53colrlwKAT8Gw==}
-    engines: {node: '>= 10.0.0'}
+  '@smithy/util-defaults-mode-node@4.0.1':
+    resolution: {integrity: sha512-LeAx2faB83litC9vaOdwFaldtto2gczUHxfFf8yoRwDU3cwL4/pDm7i0hxsuBCRk5mzHsrVGw+3EVCj32UZMdw==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/util-endpoints@2.1.7':
-    resolution: {integrity: sha512-tSfcqKcN/Oo2STEYCABVuKgJ76nyyr6skGl9t15hs+YaiU06sgMkN7QYjo0BbVw+KT26zok3IzbdSOksQ4YzVw==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/util-endpoints@3.0.1':
+    resolution: {integrity: sha512-zVdUENQpdtn9jbpD9SCFK4+aSiavRb9BxEtw9ZGUR1TYo6bBHbIoi7VkrFQ0/RwZlzx0wRBaRmPclj8iAoJCLA==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/util-hex-encoding@3.0.0':
-    resolution: {integrity: sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/util-hex-encoding@4.0.0':
+    resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/util-middleware@3.0.11':
-    resolution: {integrity: sha512-dWpyc1e1R6VoXrwLoLDd57U1z6CwNSdkM69Ie4+6uYh2GC7Vg51Qtan7ITzczuVpqezdDTKJGJB95fFvvjU/ow==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/util-middleware@4.0.1':
+    resolution: {integrity: sha512-HiLAvlcqhbzhuiOa0Lyct5IIlyIz0PQO5dnMlmQ/ubYM46dPInB+3yQGkfxsk6Q24Y0n3/JmcA1v5iEhmOF5mA==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/util-retry@3.0.11':
-    resolution: {integrity: sha512-hJUC6W7A3DQgaee3Hp9ZFcOxVDZzmBIRBPlUAk8/fSOEl7pE/aX7Dci0JycNOnm9Mfr0KV2XjIlUOcGWXQUdVQ==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/util-retry@4.0.1':
+    resolution: {integrity: sha512-WmRHqNVwn3kI3rKk1LsKcVgPBG6iLTBGC1iYOV3GQegwJ3E8yjzHytPt26VNzOWr1qu0xE03nK0Ug8S7T7oufw==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/util-stream@3.3.4':
-    resolution: {integrity: sha512-SGhGBG/KupieJvJSZp/rfHHka8BFgj56eek9px4pp7lZbOF+fRiVr4U7A3y3zJD8uGhxq32C5D96HxsTC9BckQ==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/util-stream@4.0.1':
+    resolution: {integrity: sha512-Js16gOgU6Qht6qTPfuJgb+1YD4AEO+5Y1UPGWKSp3BNo8ONl/qhXSYDhFKJtwybRJynlCqvP5IeiaBsUmkSPTQ==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/util-uri-escape@3.0.0':
-    resolution: {integrity: sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/util-uri-escape@4.0.0':
+    resolution: {integrity: sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==}
+    engines: {node: '>=18.0.0'}
 
   '@smithy/util-utf8@2.3.0':
     resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==}
     engines: {node: '>=14.0.0'}
 
-  '@smithy/util-utf8@3.0.0':
-    resolution: {integrity: sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/util-utf8@4.0.0':
+    resolution: {integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==}
+    engines: {node: '>=18.0.0'}
 
-  '@smithy/util-waiter@3.2.0':
-    resolution: {integrity: sha512-PpjSboaDUE6yl+1qlg3Si57++e84oXdWGbuFUSAciXsVfEZJJJupR2Nb0QuXHiunt2vGR+1PTizOMvnUPaG2Qg==}
-    engines: {node: '>=16.0.0'}
+  '@smithy/util-waiter@4.0.2':
+    resolution: {integrity: sha512-piUTHyp2Axx3p/kc2CIJkYSv0BAaheBQmbACZgQSSfWUumWNW+R1lL+H9PDBxKJkvOeEX+hKYEFiwO8xagL8AQ==}
+    engines: {node: '>=18.0.0'}
 
   '@solana-developers/helpers@2.5.6':
     resolution: {integrity: sha512-NPWZblVMl4LuVVSJOZG0ZF0VYnrMUjCyMNTiGwNUXPK2WWYJCqpuDyzs/PMqwvM4gMTjk4pEToBX8N2UxDvZkQ==}
@@ -7560,68 +7418,68 @@ packages:
     resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==}
     engines: {node: '>=14'}
 
-  '@swc/core-darwin-arm64@1.10.4':
-    resolution: {integrity: sha512-sV/eurLhkjn/197y48bxKP19oqcLydSel42Qsy2zepBltqUx+/zZ8+/IS0Bi7kaWVFxerbW1IPB09uq8Zuvm3g==}
+  '@swc/core-darwin-arm64@1.10.7':
+    resolution: {integrity: sha512-SI0OFg987P6hcyT0Dbng3YRISPS9uhLX1dzW4qRrfqQdb0i75lPJ2YWe9CN47HBazrIA5COuTzrD2Dc0TcVsSQ==}
     engines: {node: '>=10'}
     cpu: [arm64]
     os: [darwin]
 
-  '@swc/core-darwin-x64@1.10.4':
-    resolution: {integrity: sha512-gjYNU6vrAUO4+FuovEo9ofnVosTFXkF0VDuo1MKPItz6e2pxc2ale4FGzLw0Nf7JB1sX4a8h06CN16/pLJ8Q2w==}
+  '@swc/core-darwin-x64@1.10.7':
+    resolution: {integrity: sha512-RFIAmWVicD/l3RzxgHW0R/G1ya/6nyMspE2cAeDcTbjHi0I5qgdhBWd6ieXOaqwEwiCd0Mot1g2VZrLGoBLsjQ==}
     engines: {node: '>=10'}
     cpu: [x64]
     os: [darwin]
 
-  '@swc/core-linux-arm-gnueabihf@1.10.4':
-    resolution: {integrity: sha512-zd7fXH5w8s+Sfvn2oO464KDWl+ZX1MJiVmE4Pdk46N3PEaNwE0koTfgx2vQRqRG4vBBobzVvzICC3618WcefOA==}
+  '@swc/core-linux-arm-gnueabihf@1.10.7':
+    resolution: {integrity: sha512-QP8vz7yELWfop5mM5foN6KkLylVO7ZUgWSF2cA0owwIaziactB2hCPZY5QU690coJouk9KmdFsPWDnaCFUP8tg==}
     engines: {node: '>=10'}
     cpu: [arm]
     os: [linux]
 
-  '@swc/core-linux-arm64-gnu@1.10.4':
-    resolution: {integrity: sha512-+UGfoHDxsMZgFD3tABKLeEZHqLNOkxStu+qCG7atGBhS4Slri6h6zijVvf4yI5X3kbXdvc44XV/hrP/Klnui2A==}
+  '@swc/core-linux-arm64-gnu@1.10.7':
+    resolution: {integrity: sha512-NgUDBGQcOeLNR+EOpmUvSDIP/F7i/OVOKxst4wOvT5FTxhnkWrW+StJGKj+DcUVSK5eWOYboSXr1y+Hlywwokw==}
     engines: {node: '>=10'}
     cpu: [arm64]
     os: [linux]
 
-  '@swc/core-linux-arm64-musl@1.10.4':
-    resolution: {integrity: sha512-cDDj2/uYsOH0pgAnDkovLZvKJpFmBMyXkxEG6Q4yw99HbzO6QzZ5HDGWGWVq/6dLgYKlnnmpjZCPPQIu01mXEg==}
+  '@swc/core-linux-arm64-musl@1.10.7':
+    resolution: {integrity: sha512-gp5Un3EbeSThBIh6oac5ZArV/CsSmTKj5jNuuUAuEsML3VF9vqPO+25VuxCvsRf/z3py+xOWRaN2HY/rjMeZog==}
     engines: {node: '>=10'}
     cpu: [arm64]
     os: [linux]
 
-  '@swc/core-linux-x64-gnu@1.10.4':
-    resolution: {integrity: sha512-qJXh9D6Kf5xSdGWPINpLGixAbB5JX8JcbEJpRamhlDBoOcQC79dYfOMEIxWPhTS1DGLyFakAx2FX/b2VmQmj0g==}
+  '@swc/core-linux-x64-gnu@1.10.7':
+    resolution: {integrity: sha512-k/OxLLMl/edYqbZyUNg6/bqEHTXJT15l9WGqsl/2QaIGwWGvles8YjruQYQ9d4h/thSXLT9gd8bExU2D0N+bUA==}
     engines: {node: '>=10'}
     cpu: [x64]
     os: [linux]
 
-  '@swc/core-linux-x64-musl@1.10.4':
-    resolution: {integrity: sha512-A76lIAeyQnHCVt0RL/pG+0er8Qk9+acGJqSZOZm67Ve3B0oqMd871kPtaHBM0BW3OZAhoILgfHW3Op9Q3mx3Cw==}
+  '@swc/core-linux-x64-musl@1.10.7':
+    resolution: {integrity: sha512-XeDoURdWt/ybYmXLCEE8aSiTOzEn0o3Dx5l9hgt0IZEmTts7HgHHVeRgzGXbR4yDo0MfRuX5nE1dYpTmCz0uyA==}
     engines: {node: '>=10'}
     cpu: [x64]
     os: [linux]
 
-  '@swc/core-win32-arm64-msvc@1.10.4':
-    resolution: {integrity: sha512-e6j5kBu4fIY7fFxFxnZI0MlEovRvp50Lg59Fw+DVbtqHk3C85dckcy5xKP+UoXeuEmFceauQDczUcGs19SRGSQ==}
+  '@swc/core-win32-arm64-msvc@1.10.7':
+    resolution: {integrity: sha512-nYAbi/uLS+CU0wFtBx8TquJw2uIMKBnl04LBmiVoFrsIhqSl+0MklaA9FVMGA35NcxSJfcm92Prl2W2LfSnTqQ==}
     engines: {node: '>=10'}
     cpu: [arm64]
     os: [win32]
 
-  '@swc/core-win32-ia32-msvc@1.10.4':
-    resolution: {integrity: sha512-RSYHfdKgNXV/amY5Tqk1EWVsyQnhlsM//jeqMLw5Fy9rfxP592W9UTumNikNRPdjI8wKKzNMXDb1U29tQjN0dg==}
+  '@swc/core-win32-ia32-msvc@1.10.7':
+    resolution: {integrity: sha512-+aGAbsDsIxeLxw0IzyQLtvtAcI1ctlXVvVcXZMNXIXtTURM876yNrufRo4ngoXB3jnb1MLjIIjgXfFs/eZTUSw==}
     engines: {node: '>=10'}
     cpu: [ia32]
     os: [win32]
 
-  '@swc/core-win32-x64-msvc@1.10.4':
-    resolution: {integrity: sha512-1ujYpaqfqNPYdwKBlvJnOqcl+Syn3UrQ4XE0Txz6zMYgyh6cdU6a3pxqLqIUSJ12MtXRA9ZUhEz1ekU3LfLWXw==}
+  '@swc/core-win32-x64-msvc@1.10.7':
+    resolution: {integrity: sha512-TBf4clpDBjF/UUnkKrT0/th76/zwvudk5wwobiTFqDywMApHip5O0VpBgZ+4raY2TM8k5+ujoy7bfHb22zu17Q==}
     engines: {node: '>=10'}
     cpu: [x64]
     os: [win32]
 
-  '@swc/core@1.10.4':
-    resolution: {integrity: sha512-ut3zfiTLORMxhr6y/GBxkHmzcGuVpwJYX4qyXWuBKkpw/0g0S5iO1/wW7RnLnZbAi8wS/n0atRZoaZlXWBkeJg==}
+  '@swc/core@1.10.7':
+    resolution: {integrity: sha512-py91kjI1jV5D5W/Q+PurBdGsdU5TFbrzamP7zSCqLdMcHkKi3rQEM5jkQcZr0MXXSJTaayLxS3MWYTBIkzPDrg==}
     engines: {node: '>=10'}
     peerDependencies:
       '@swc/helpers': '*'
@@ -7834,8 +7692,8 @@ packages:
   '@types/d3-selection@3.0.11':
     resolution: {integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==}
 
-  '@types/d3-shape@3.1.6':
-    resolution: {integrity: sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA==}
+  '@types/d3-shape@3.1.7':
+    resolution: {integrity: sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==}
 
   '@types/d3-time-format@4.0.3':
     resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==}
@@ -7886,8 +7744,8 @@ packages:
   '@types/express-serve-static-core@4.19.6':
     resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==}
 
-  '@types/express-serve-static-core@5.0.3':
-    resolution: {integrity: sha512-JEhMNwUJt7bw728CydvYzntD0XJeTmDnvwLlbfbAhE7Tbslm/ax6bdIiUwTgeVlZTsJQPwZwKpAkyDtIjsvx3g==}
+  '@types/express-serve-static-core@5.0.4':
+    resolution: {integrity: sha512-5kz9ScmzBdzTgB/3susoCgfqNDzBjvLL4taparufgSvlwjdLy6UyUy9T/tCpYd2GIdIilCatC4iSQS0QSYHt0w==}
 
   '@types/express@4.17.21':
     resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==}
@@ -7974,8 +7832,8 @@ packages:
   '@types/lodash.isstring@4.0.9':
     resolution: {integrity: sha512-sjGPpa15VBpMns/4s6Blm567JgxLVVu/eCYCe7h/TdQyPCz9lIhaLSISjN7ZC9cDXmUT2IM/4mNRw8OtYirziw==}
 
-  '@types/lodash@4.17.13':
-    resolution: {integrity: sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==}
+  '@types/lodash@4.17.14':
+    resolution: {integrity: sha512-jsxagdikDiDBeIRaPYtArcT8my4tN1og7MtMRquFT3XNA6axxyHDRUemqDz/taRDdOUn0GnGHRCuff4q48sW9A==}
 
   '@types/lru-cache@5.1.1':
     resolution: {integrity: sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==}
@@ -8025,14 +7883,14 @@ packages:
   '@types/node@17.0.45':
     resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
 
-  '@types/node@18.19.69':
-    resolution: {integrity: sha512-ECPdY1nlaiO/Y6GUnwgtAAhLNaQ53AyIVz+eILxpEo5OvuqE6yWkqWBIb5dU0DqhKQtMeny+FBD3PK6lm7L5xQ==}
+  '@types/node@18.19.70':
+    resolution: {integrity: sha512-RE+K0+KZoEpDUbGGctnGdkrLFwi1eYKTlIHNl2Um98mUkGsm1u2Ff6Ltd0e8DktTtC98uy7rSj+hO8t/QuLoVQ==}
 
   '@types/node@20.17.9':
     resolution: {integrity: sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==}
 
-  '@types/node@22.10.4':
-    resolution: {integrity: sha512-99l6wv4HEzBQhvaU/UGoeBoCK61SCROQaCCGyQSgX2tEQ3rKkNZ2S7CEWnS/4s1LV+8ODdK21UeyR1fHP2mXug==}
+  '@types/node@22.10.5':
+    resolution: {integrity: sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==}
 
   '@types/node@22.7.5':
     resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==}
@@ -8784,8 +8642,8 @@ packages:
   algoliasearch@4.24.0:
     resolution: {integrity: sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==}
 
-  algoliasearch@5.18.0:
-    resolution: {integrity: sha512-/tfpK2A4FpS0o+S78o3YSdlqXr0MavJIDlFK3XZrlXLy7vaRXJvW5jYg3v5e/wCaF8y0IpMjkYLhoV6QqfpOgw==}
+  algoliasearch@5.19.0:
+    resolution: {integrity: sha512-zrLtGhC63z3sVLDDKGW+SlCRN9eJHFTgdEmoAOpsVh6wgGL1GgTTDou7tpCBjevzgIvi3AIyDAQO3Xjbg5eqZg==}
     engines: {node: '>= 14.0.0'}
 
   amp-message@0.1.2:
@@ -9141,8 +8999,8 @@ packages:
   balanced-match@1.0.2:
     resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
 
-  bare-events@2.5.0:
-    resolution: {integrity: sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==}
+  bare-events@2.5.4:
+    resolution: {integrity: sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==}
 
   bare-fs@2.3.5:
     resolution: {integrity: sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==}
@@ -9385,8 +9243,8 @@ packages:
     engines: {node: '>= 0.8'}
     hasBin: true
 
-  browserslist@4.24.3:
-    resolution: {integrity: sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==}
+  browserslist@4.24.4:
+    resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==}
     engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
     hasBin: true
 
@@ -9569,8 +9427,8 @@ packages:
   caniuse-api@3.0.0:
     resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
 
-  caniuse-lite@1.0.30001690:
-    resolution: {integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==}
+  caniuse-lite@1.0.30001692:
+    resolution: {integrity: sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A==}
 
   canvas@2.11.2:
     resolution: {integrity: sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==}
@@ -10117,18 +9975,18 @@ packages:
     peerDependencies:
       webpack: ^5.1.0
 
-  core-js-compat@3.39.0:
-    resolution: {integrity: sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==}
+  core-js-compat@3.40.0:
+    resolution: {integrity: sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==}
 
-  core-js-pure@3.39.0:
-    resolution: {integrity: sha512-7fEcWwKI4rJinnK+wLTezeg2smbFFdSBP6E2kQZNbnzM2s1rpKQ6aaRteZSSg7FLU3P0HGGVo/gbpfanU36urg==}
+  core-js-pure@3.40.0:
+    resolution: {integrity: sha512-AtDzVIgRrmRKQai62yuSIN5vNiQjcJakJb4fbhVw3ehxx7Lohphvw9SGNWKhLFqSxC4ilD0g/L1huAYFQU3Q6A==}
 
   core-js@2.6.12:
     resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==}
     deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
 
-  core-js@3.39.0:
-    resolution: {integrity: sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==}
+  core-js@3.40.0:
+    resolution: {integrity: sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ==}
 
   core-util-is@1.0.2:
     resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==}
@@ -10365,8 +10223,8 @@ packages:
     resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
     engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
 
-  cssstyle@4.1.0:
-    resolution: {integrity: sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA==}
+  cssstyle@4.2.1:
+    resolution: {integrity: sha512-9+vem03dMXG7gDmZ62uqmRiMRNtinIZ9ZyuF6BdxzfOD+FdN5hretzynkn0ReS2DO2GSw76RWHs0UmJPI2zUjw==}
     engines: {node: '>=18'}
 
   csstype@3.1.3:
@@ -10961,8 +10819,8 @@ packages:
   domutils@2.8.0:
     resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
 
-  domutils@3.2.1:
-    resolution: {integrity: sha512-xWXmuRnN9OMP6ptPd2+H0cCbcYBULa5YDTbMm/2lvkWvNA3O4wcW+GvzooqBuNM8yy6pl3VIAeJTUUWUbfI5Fw==}
+  domutils@3.2.2:
+    resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==}
 
   dot-case@3.0.4:
     resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
@@ -11047,8 +10905,8 @@ packages:
     engines: {node: '>=0.10.0'}
     hasBin: true
 
-  electron-to-chromium@1.5.76:
-    resolution: {integrity: sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==}
+  electron-to-chromium@1.5.80:
+    resolution: {integrity: sha512-LTrKpW0AqIuHwmlVNV+cjFYTnXtM9K37OGhpe0ZI10ScPSxqVSryZHIY3WnCS5NSYbBODRTZyhRMS2h5FAEqAw==}
 
   elliptic@6.5.4:
     resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==}
@@ -11215,11 +11073,6 @@ packages:
     engines: {node: '>=12'}
     hasBin: true
 
-  esbuild@0.23.1:
-    resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==}
-    engines: {node: '>=18'}
-    hasBin: true
-
   esbuild@0.24.2:
     resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==}
     engines: {node: '>=18'}
@@ -11319,8 +11172,8 @@ packages:
       jiti:
         optional: true
 
-  esm-env@1.2.1:
-    resolution: {integrity: sha512-U9JedYYjCnadUlXk7e1Kr+aENQhtUaoaV9+gZm1T8LC/YBAPJx3NSPIAurFOC0U5vrdSevnUJS2/wUVxGwPhng==}
+  esm-env@1.2.2:
+    resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==}
 
   esmify@2.1.1:
     resolution: {integrity: sha512-GyOVgjG7sNyYB5Mbo15Ll4aGrcXZzZ3LI22rbLOjCI7L/wYelzQpBHRZkZkqbPNZ/QIRilcaHqzgNCLcEsi1lQ==}
@@ -11349,8 +11202,8 @@ packages:
     resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
     engines: {node: '>=0.10'}
 
-  esrap@1.3.2:
-    resolution: {integrity: sha512-C4PXusxYhFT98GjLSmb20k9PREuUdporer50dhzGuJu9IJXktbMddVCMLAERl5dAHyAi73GWWCE4FVHGP1794g==}
+  esrap@1.4.2:
+    resolution: {integrity: sha512-FhVlJzvTw7ZLxYZ7RyHwQCFE64dkkpzGNNnphaGCLwjqGk1SQcqzbgdx9FowPCktx6NOSHkzvcZ3vsvdH54YXA==}
 
   esrecurse@4.3.0:
     resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
@@ -11542,8 +11395,8 @@ packages:
     resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==}
     engines: {node: '> 0.1.90'}
 
-  fast-content-type-parse@2.0.0:
-    resolution: {integrity: sha512-fCqg/6Sps8tqk8p+kqyKqYfOF0VjPNYrqpLiqNl0RBKmD80B080AJWVV6EkSkscjToNExcXg1+Mfzftrx6+iSA==}
+  fast-content-type-parse@2.0.1:
+    resolution: {integrity: sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q==}
 
   fast-deep-equal@3.1.3:
     resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
@@ -11551,8 +11404,8 @@ packages:
   fast-fifo@1.3.2:
     resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==}
 
-  fast-glob@3.3.2:
-    resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
+  fast-glob@3.3.3:
+    resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
     engines: {node: '>=8.6.0'}
 
   fast-json-patch@3.1.1:
@@ -11574,8 +11427,8 @@ packages:
   fast-stable-stringify@1.0.0:
     resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
 
-  fast-uri@3.0.3:
-    resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==}
+  fast-uri@3.0.5:
+    resolution: {integrity: sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q==}
 
   fast-xml-parser@4.4.1:
     resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==}
@@ -11990,9 +11843,6 @@ packages:
     resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
     engines: {node: '>= 0.4'}
 
-  get-tsconfig@4.8.1:
-    resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==}
-
   get-uri@6.0.4:
     resolution: {integrity: sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==}
     engines: {node: '>= 14'}
@@ -12329,8 +12179,8 @@ packages:
   hast-util-select@4.0.2:
     resolution: {integrity: sha512-8EEG2//bN5rrzboPWD2HdS3ugLijNioS1pqOTIolXNf67xxShYw4SQEmVXd3imiBG+U2bC2nVTySr/iRAA7Cjg==}
 
-  hast-util-to-estree@3.1.0:
-    resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==}
+  hast-util-to-estree@3.1.1:
+    resolution: {integrity: sha512-IWtwwmPskfSmma9RpzCappDUitC8t5jhAynHhc1m2+5trOgsrp7txscUSavc5Ic8PATyAjfrCK1wgtxh2cICVQ==}
 
   hast-util-to-html@9.0.4:
     resolution: {integrity: sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==}
@@ -12477,8 +12327,8 @@ packages:
     resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
     engines: {node: '>= 0.8'}
 
-  http-parser-js@0.5.8:
-    resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==}
+  http-parser-js@0.5.9:
+    resolution: {integrity: sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==}
 
   http-proxy-agent@7.0.2:
     resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
@@ -12659,9 +12509,6 @@ packages:
   inline-source-map@0.6.3:
     resolution: {integrity: sha512-1aVsPEsJWMJq/pdMU61CDlm1URcW702MTB4w9/zUjMus6H/Py8o7g68Pr9D4I6QluWGt/KdmswuRhaA05xVR1w==}
 
-  inline-style-parser@0.1.1:
-    resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
-
   inline-style-parser@0.2.4:
     resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==}
 
@@ -13591,8 +13438,8 @@ packages:
     resolution: {integrity: sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg==}
     engines: {node: '>=16.0.0'}
 
-  langsmith@0.2.14:
-    resolution: {integrity: sha512-ClAuAgSf3m9miMYotLEaZKQyKdaWlfjhebCuYco8bc6g72dU2VwTg31Bv4YINBq7EH2i1cMwbOiJxbOXPqjGig==}
+  langsmith@0.2.15:
+    resolution: {integrity: sha512-homtJU41iitqIZVuuLW7iarCzD4f39KcfP9RTBWav9jifhrsDa1Ez89Ejr+4qi72iuBu8Y5xykchsGVgiEZ93w==}
     peerDependencies:
       openai: '*'
     peerDependenciesMeta:
@@ -13855,8 +13702,8 @@ packages:
     resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==}
     engines: {node: '>=18'}
 
-  long@5.2.3:
-    resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==}
+  long@5.2.4:
+    resolution: {integrity: sha512-qtzLbJE8hq7VabR3mISmVGtoXP8KGc2Z/AT8OuqlYD7JTR3oqrgwdjnk07wpj1twXxYmgDXgoKVWUG/fReSzHg==}
 
   longest-streak@3.1.0:
     resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
@@ -14006,8 +13853,8 @@ packages:
   mdast-util-directive@3.0.0:
     resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==}
 
-  mdast-util-find-and-replace@3.0.1:
-    resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==}
+  mdast-util-find-and-replace@3.0.2:
+    resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==}
 
   mdast-util-from-markdown@2.0.2:
     resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==}
@@ -14901,14 +14748,14 @@ packages:
     resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==}
     engines: {node: '>= 0.4'}
 
-  obliterator@2.0.4:
-    resolution: {integrity: sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==}
+  obliterator@2.0.5:
+    resolution: {integrity: sha512-42CPE9AhahZRsMNslczq0ctAEtqk8Eka26QofnqC346BZdHDySk3LWka23LI7ULIw11NmltpiLagIq8gBozxTw==}
 
   obuf@1.1.2:
     resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==}
 
-  octokit@4.0.3:
-    resolution: {integrity: sha512-kfqH80Yuuux4fLbZ4SvObjCvVu89U0eCh5+fulh6tr/hJkDYS1inXDGnNJDOp312GANMEhWWMLYmjQR8MvSSMQ==}
+  octokit@4.1.0:
+    resolution: {integrity: sha512-/UrQAOSvkc+lUUWKNzy4ByAgYU9KpFzZQt8DnC962YmQuDiZb1SNJ90YukCCK5aMzKqqCA+z1kkAlmzYvdYKag==}
     engines: {node: '>= 18'}
 
   ofetch@1.4.1:
@@ -14991,8 +14838,8 @@ packages:
       zod:
         optional: true
 
-  openai@4.77.0:
-    resolution: {integrity: sha512-WWacavtns/7pCUkOWvQIjyOfcdr9X+9n9Vvb0zFeKVDAqwCMDHB+iSr24SVaBAhplvSG6JrRXFpcNM9gWhOGIw==}
+  openai@4.78.0:
+    resolution: {integrity: sha512-4rRsKkx++5m1zayxkryVH+K/z91cv1sRbaNJAhSQjZiSCQOR7eaM8KpfIssXrS9Hlpta7+VcuO/fi57pW8xGjA==}
     hasBin: true
     peerDependencies:
       zod: ^3.23.8
@@ -15553,8 +15400,8 @@ packages:
     peerDependencies:
       postcss: ^8.4
 
-  postcss-calc@10.0.2:
-    resolution: {integrity: sha512-DT/Wwm6fCKgpYVI7ZEWuPJ4az8hiEHtCUeYjZXqU7Ou4QqYh1Df2yCQ7Ca6N7xqKPFkxN3fhf+u9KSoOCJNAjg==}
+  postcss-calc@10.1.0:
+    resolution: {integrity: sha512-uQ/LDGsf3mgsSUEXmAt3VsCSHR3aKqtEIkmB+4PhzYwRYOW5MZs/GhCCFpsOtJJkP6EC6uGipbrnaTjqaJZcJw==}
     engines: {node: ^18.12 || ^20.9 || >=22.0}
     peerDependencies:
       postcss: ^8.4.38
@@ -16939,9 +16786,6 @@ packages:
   resolve-pathname@3.0.0:
     resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==}
 
-  resolve-pkg-maps@1.0.0:
-    resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
-
   resolve.exports@2.0.3:
     resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==}
     engines: {node: '>=10'}
@@ -17033,8 +16877,8 @@ packages:
     engines: {node: '>=14.18.0', npm: '>=8.0.0'}
     hasBin: true
 
-  rollup@4.29.1:
-    resolution: {integrity: sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==}
+  rollup@4.30.1:
+    resolution: {integrity: sha512-mlJ4glW020fPuLi7DkM/lN97mYEZGWeqBnrljzN0gs7GLctqX3lNWxKQ7Gl712UAX+6fog/L3jh4gb7R6aVi3w==}
     engines: {node: '>=18.0.0', npm: '>=8.0.0'}
     hasBin: true
 
@@ -17047,6 +16891,9 @@ packages:
   rrweb-cssom@0.7.1:
     resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==}
 
+  rrweb-cssom@0.8.0:
+    resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==}
+
   rtl-detect@1.1.2:
     resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==}
 
@@ -17309,8 +17156,8 @@ packages:
     engines: {node: '>=4'}
     hasBin: true
 
-  shiki@1.25.1:
-    resolution: {integrity: sha512-/1boRvNYwRW3GLG9Y6dXdnZ/Ha+J5T/5y3hV7TGQUcDSBM185D3FCbXlz2eTGNKG2iWCbWqo+P0yhGKZ4/CUrw==}
+  shiki@1.26.1:
+    resolution: {integrity: sha512-Gqg6DSTk3wYqaZ5OaYtzjcdxcBvX5kCy24yvRJEgjT5U+WHlmqCThLuBUx0juyxQBi+6ug53IGeuQS07DWwpcw==}
 
   shimmer@1.2.1:
     resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==}
@@ -17749,9 +17596,6 @@ packages:
     engines: {node: '>=4'}
     hasBin: true
 
-  style-to-object@0.4.4:
-    resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==}
-
   style-to-object@1.0.8:
     resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==}
 
@@ -17812,8 +17656,8 @@ packages:
     resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
     engines: {node: '>= 0.4'}
 
-  svelte@5.16.1:
-    resolution: {integrity: sha512-FsA1OjAKMAFSDob6j/Tv2ZV9rY4SeqPd1WXQlQkFkePAozSHLp6tbkU9qa1xJ+uTRzMSM2Vx3USdsYZBXd3H3g==}
+  svelte@5.17.3:
+    resolution: {integrity: sha512-eLgtpR2JiTgeuNQRCDcLx35Z7Lu9Qe09GPOz+gvtR9nmIZu5xgFd6oFiLGQlxLD0/u7xVyF5AUkjDVyFHe6Bvw==}
     engines: {node: '>=18'}
 
   svg-parser@2.0.4:
@@ -18039,14 +17883,14 @@ packages:
     resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==}
     engines: {node: '>=14.0.0'}
 
-  tldts-core@6.1.70:
-    resolution: {integrity: sha512-RNnIXDB1FD4T9cpQRErEqw6ZpjLlGdMOitdV+0xtbsnwr4YFka1zpc7D4KD+aAn8oSG5JyFrdasZTE04qDE9Yg==}
+  tldts-core@6.1.71:
+    resolution: {integrity: sha512-LRbChn2YRpic1KxY+ldL1pGXN/oVvKfCVufwfVzEQdFYNo39uF7AJa/WXdo+gYO7PTvdfkCPCed6Hkvz/kR7jg==}
 
-  tldts-experimental@6.1.70:
-    resolution: {integrity: sha512-cEhsyUBfW/elb1FpPAfnqqTa0Av9OJlcG9Nabiuqn8/1Xggpqch7H8QfZA55SNHonj1x1uRB/NzRETvCiQqz5Q==}
+  tldts-experimental@6.1.71:
+    resolution: {integrity: sha512-78lfP/3fRJ3HoCT5JSLOLj5ElHiWCAyglYNzjkFqBO7ykLZYst2u2jM1igSHWV0J2GFfOplApeDsfTF+XACrlA==}
 
-  tldts@6.1.70:
-    resolution: {integrity: sha512-/W1YVgYVJd9ZDjey5NXadNh0mJXkiUMUue9Zebd0vpdo1sU+H4zFFTaJ1RKD4N6KFoHfcXy6l+Vu7bh+bdWCzA==}
+  tldts@6.1.71:
+    resolution: {integrity: sha512-LQIHmHnuzfZgZWAf2HzL83TIIrD8NhhI0DVxqo9/FdOd4ilec+NTNZOlDZf7EwrTNoutccbsHjvWHYXLAtvxjw==}
     hasBin: true
 
   tmp@0.0.33:
@@ -18111,8 +17955,8 @@ packages:
     resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==}
     engines: {node: '>=6'}
 
-  tough-cookie@5.0.0:
-    resolution: {integrity: sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==}
+  tough-cookie@5.1.0:
+    resolution: {integrity: sha512-rvZUv+7MoBYTiDmFPBrhL7Ujx9Sk+q9wwm22x8c8T5IJaR+Wsyc7TNxbVxo84kZoRJZZMazowFLqpankBEQrGg==}
     engines: {node: '>=16'}
 
   tr46@0.0.3:
@@ -18254,11 +18098,6 @@ packages:
       typescript:
         optional: true
 
-  tsx@4.19.2:
-    resolution: {integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==}
-    engines: {node: '>=18.0.0'}
-    hasBin: true
-
   tty-browserify@0.0.1:
     resolution: {integrity: sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==}
 
@@ -18369,8 +18208,8 @@ packages:
     resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
     engines: {node: '>=12.20'}
 
-  type-fest@4.31.0:
-    resolution: {integrity: sha512-yCxltHW07Nkhv/1F6wWBr8kz+5BGMfP+RbRSYFnegVb0qV/UMT0G0ElBloPVerqn4M2ZV80Ir1FtCcYv1cT6vQ==}
+  type-fest@4.32.0:
+    resolution: {integrity: sha512-rfgpoi08xagF3JSdtJlCwMq9DGNDE0IMh3Mkpc1wUypg9vPi786AiqeBBKcqvIkq42azsBM85N490fyZjeUftw==}
     engines: {node: '>=16'}
 
   type-is@1.6.18:
@@ -18516,8 +18355,8 @@ packages:
     resolution: {integrity: sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==}
     engines: {node: '>=18.17'}
 
-  undici@7.2.0:
-    resolution: {integrity: sha512-klt+0S55GBViA9nsq48/NSCo4YX5mjydjypxD7UmHh/brMu8h/Mhd/F7qAeoH2NOO8SDTk6kjnTFc4WpzmfYpQ==}
+  undici@7.2.1:
+    resolution: {integrity: sha512-U2k0XHLJfaciARRxDcqTk2AZQsGXerHzdvfCZcy1hNhSf5KCAF4jIQQxL+apQviOekhRFPqED6Of5/+LcUSLzQ==}
     engines: {node: '>=20.18.1'}
 
   unenv@1.10.0:
@@ -18710,8 +18549,8 @@ packages:
     resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==}
     engines: {node: '>=4'}
 
-  update-browserslist-db@1.1.1:
-    resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==}
+  update-browserslist-db@1.1.2:
+    resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==}
     hasBin: true
     peerDependencies:
       browserslist: '>= 4.21.0'
@@ -19610,7 +19449,7 @@ snapshots:
       - supports-color
       - utf-8-validate
 
-  '@0no-co/graphql.web@1.0.12(graphql@16.10.0)':
+  '@0no-co/graphql.web@1.0.13(graphql@16.10.0)':
     optionalDependencies:
       graphql: 16.10.0
 
@@ -19719,13 +19558,13 @@ snapshots:
     transitivePeerDependencies:
       - zod
 
-  '@ai-sdk/svelte@0.0.57(svelte@5.16.1)(zod@3.23.8)':
+  '@ai-sdk/svelte@0.0.57(svelte@5.17.3)(zod@3.23.8)':
     dependencies:
       '@ai-sdk/provider-utils': 1.0.22(zod@3.23.8)
       '@ai-sdk/ui-utils': 0.0.50(zod@3.23.8)
-      sswr: 2.1.0(svelte@5.16.1)
+      sswr: 2.1.0(svelte@5.17.3)
     optionalDependencies:
-      svelte: 5.16.1
+      svelte: 5.17.3
     transitivePeerDependencies:
       - zod
 
@@ -19749,33 +19588,33 @@ snapshots:
     transitivePeerDependencies:
       - zod
 
-  '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.18.0)(algoliasearch@5.18.0)(search-insights@2.17.3)':
+  '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.19.0)(algoliasearch@5.19.0)(search-insights@2.17.3)':
     dependencies:
-      '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.18.0)(algoliasearch@5.18.0)(search-insights@2.17.3)
-      '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.18.0)(algoliasearch@5.18.0)
+      '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.19.0)(algoliasearch@5.19.0)(search-insights@2.17.3)
+      '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.19.0)(algoliasearch@5.19.0)
     transitivePeerDependencies:
       - '@algolia/client-search'
       - algoliasearch
       - search-insights
 
-  '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.18.0)(algoliasearch@5.18.0)(search-insights@2.17.3)':
+  '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.19.0)(algoliasearch@5.19.0)(search-insights@2.17.3)':
     dependencies:
-      '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.18.0)(algoliasearch@5.18.0)
+      '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.19.0)(algoliasearch@5.19.0)
       search-insights: 2.17.3
     transitivePeerDependencies:
       - '@algolia/client-search'
       - algoliasearch
 
-  '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.18.0)(algoliasearch@5.18.0)':
+  '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.19.0)(algoliasearch@5.19.0)':
     dependencies:
-      '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.18.0)(algoliasearch@5.18.0)
-      '@algolia/client-search': 5.18.0
-      algoliasearch: 5.18.0
+      '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.19.0)(algoliasearch@5.19.0)
+      '@algolia/client-search': 5.19.0
+      algoliasearch: 5.19.0
 
-  '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.18.0)(algoliasearch@5.18.0)':
+  '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.19.0)(algoliasearch@5.19.0)':
     dependencies:
-      '@algolia/client-search': 5.18.0
-      algoliasearch: 5.18.0
+      '@algolia/client-search': 5.19.0
+      algoliasearch: 5.19.0
 
   '@algolia/cache-browser-local-storage@4.24.0':
     dependencies:
@@ -19787,12 +19626,12 @@ snapshots:
     dependencies:
       '@algolia/cache-common': 4.24.0
 
-  '@algolia/client-abtesting@5.18.0':
+  '@algolia/client-abtesting@5.19.0':
     dependencies:
-      '@algolia/client-common': 5.18.0
-      '@algolia/requester-browser-xhr': 5.18.0
-      '@algolia/requester-fetch': 5.18.0
-      '@algolia/requester-node-http': 5.18.0
+      '@algolia/client-common': 5.19.0
+      '@algolia/requester-browser-xhr': 5.19.0
+      '@algolia/requester-fetch': 5.19.0
+      '@algolia/requester-node-http': 5.19.0
 
   '@algolia/client-account@4.24.0':
     dependencies:
@@ -19807,26 +19646,26 @@ snapshots:
       '@algolia/requester-common': 4.24.0
       '@algolia/transporter': 4.24.0
 
-  '@algolia/client-analytics@5.18.0':
+  '@algolia/client-analytics@5.19.0':
     dependencies:
-      '@algolia/client-common': 5.18.0
-      '@algolia/requester-browser-xhr': 5.18.0
-      '@algolia/requester-fetch': 5.18.0
-      '@algolia/requester-node-http': 5.18.0
+      '@algolia/client-common': 5.19.0
+      '@algolia/requester-browser-xhr': 5.19.0
+      '@algolia/requester-fetch': 5.19.0
+      '@algolia/requester-node-http': 5.19.0
 
   '@algolia/client-common@4.24.0':
     dependencies:
       '@algolia/requester-common': 4.24.0
       '@algolia/transporter': 4.24.0
 
-  '@algolia/client-common@5.18.0': {}
+  '@algolia/client-common@5.19.0': {}
 
-  '@algolia/client-insights@5.18.0':
+  '@algolia/client-insights@5.19.0':
     dependencies:
-      '@algolia/client-common': 5.18.0
-      '@algolia/requester-browser-xhr': 5.18.0
-      '@algolia/requester-fetch': 5.18.0
-      '@algolia/requester-node-http': 5.18.0
+      '@algolia/client-common': 5.19.0
+      '@algolia/requester-browser-xhr': 5.19.0
+      '@algolia/requester-fetch': 5.19.0
+      '@algolia/requester-node-http': 5.19.0
 
   '@algolia/client-personalization@4.24.0':
     dependencies:
@@ -19834,19 +19673,19 @@ snapshots:
       '@algolia/requester-common': 4.24.0
       '@algolia/transporter': 4.24.0
 
-  '@algolia/client-personalization@5.18.0':
+  '@algolia/client-personalization@5.19.0':
     dependencies:
-      '@algolia/client-common': 5.18.0
-      '@algolia/requester-browser-xhr': 5.18.0
-      '@algolia/requester-fetch': 5.18.0
-      '@algolia/requester-node-http': 5.18.0
+      '@algolia/client-common': 5.19.0
+      '@algolia/requester-browser-xhr': 5.19.0
+      '@algolia/requester-fetch': 5.19.0
+      '@algolia/requester-node-http': 5.19.0
 
-  '@algolia/client-query-suggestions@5.18.0':
+  '@algolia/client-query-suggestions@5.19.0':
     dependencies:
-      '@algolia/client-common': 5.18.0
-      '@algolia/requester-browser-xhr': 5.18.0
-      '@algolia/requester-fetch': 5.18.0
-      '@algolia/requester-node-http': 5.18.0
+      '@algolia/client-common': 5.19.0
+      '@algolia/requester-browser-xhr': 5.19.0
+      '@algolia/requester-fetch': 5.19.0
+      '@algolia/requester-node-http': 5.19.0
 
   '@algolia/client-search@4.24.0':
     dependencies:
@@ -19854,21 +19693,21 @@ snapshots:
       '@algolia/requester-common': 4.24.0
       '@algolia/transporter': 4.24.0
 
-  '@algolia/client-search@5.18.0':
+  '@algolia/client-search@5.19.0':
     dependencies:
-      '@algolia/client-common': 5.18.0
-      '@algolia/requester-browser-xhr': 5.18.0
-      '@algolia/requester-fetch': 5.18.0
-      '@algolia/requester-node-http': 5.18.0
+      '@algolia/client-common': 5.19.0
+      '@algolia/requester-browser-xhr': 5.19.0
+      '@algolia/requester-fetch': 5.19.0
+      '@algolia/requester-node-http': 5.19.0
 
   '@algolia/events@4.0.1': {}
 
-  '@algolia/ingestion@1.18.0':
+  '@algolia/ingestion@1.19.0':
     dependencies:
-      '@algolia/client-common': 5.18.0
-      '@algolia/requester-browser-xhr': 5.18.0
-      '@algolia/requester-fetch': 5.18.0
-      '@algolia/requester-node-http': 5.18.0
+      '@algolia/client-common': 5.19.0
+      '@algolia/requester-browser-xhr': 5.19.0
+      '@algolia/requester-fetch': 5.19.0
+      '@algolia/requester-node-http': 5.19.0
 
   '@algolia/logger-common@4.24.0': {}
 
@@ -19876,12 +19715,12 @@ snapshots:
     dependencies:
       '@algolia/logger-common': 4.24.0
 
-  '@algolia/monitoring@1.18.0':
+  '@algolia/monitoring@1.19.0':
     dependencies:
-      '@algolia/client-common': 5.18.0
-      '@algolia/requester-browser-xhr': 5.18.0
-      '@algolia/requester-fetch': 5.18.0
-      '@algolia/requester-node-http': 5.18.0
+      '@algolia/client-common': 5.19.0
+      '@algolia/requester-browser-xhr': 5.19.0
+      '@algolia/requester-fetch': 5.19.0
+      '@algolia/requester-node-http': 5.19.0
 
   '@algolia/recommend@4.24.0':
     dependencies:
@@ -19897,34 +19736,34 @@ snapshots:
       '@algolia/requester-node-http': 4.24.0
       '@algolia/transporter': 4.24.0
 
-  '@algolia/recommend@5.18.0':
+  '@algolia/recommend@5.19.0':
     dependencies:
-      '@algolia/client-common': 5.18.0
-      '@algolia/requester-browser-xhr': 5.18.0
-      '@algolia/requester-fetch': 5.18.0
-      '@algolia/requester-node-http': 5.18.0
+      '@algolia/client-common': 5.19.0
+      '@algolia/requester-browser-xhr': 5.19.0
+      '@algolia/requester-fetch': 5.19.0
+      '@algolia/requester-node-http': 5.19.0
 
   '@algolia/requester-browser-xhr@4.24.0':
     dependencies:
       '@algolia/requester-common': 4.24.0
 
-  '@algolia/requester-browser-xhr@5.18.0':
+  '@algolia/requester-browser-xhr@5.19.0':
     dependencies:
-      '@algolia/client-common': 5.18.0
+      '@algolia/client-common': 5.19.0
 
   '@algolia/requester-common@4.24.0': {}
 
-  '@algolia/requester-fetch@5.18.0':
+  '@algolia/requester-fetch@5.19.0':
     dependencies:
-      '@algolia/client-common': 5.18.0
+      '@algolia/client-common': 5.19.0
 
   '@algolia/requester-node-http@4.24.0':
     dependencies:
       '@algolia/requester-common': 4.24.0
 
-  '@algolia/requester-node-http@5.18.0':
+  '@algolia/requester-node-http@5.19.0':
     dependencies:
-      '@algolia/client-common': 5.18.0
+      '@algolia/client-common': 5.19.0
 
   '@algolia/transporter@4.24.0':
     dependencies:
@@ -19948,7 +19787,7 @@ snapshots:
 
   '@anthropic-ai/sdk@0.30.1(encoding@0.1.13)':
     dependencies:
-      '@types/node': 18.19.69
+      '@types/node': 18.19.70
       '@types/node-fetch': 2.6.12
       abort-controller: 3.0.0
       agentkeepalive: 4.6.0
@@ -20000,6 +19839,14 @@ snapshots:
     transitivePeerDependencies:
       - debug
 
+  '@asamuzakjp/css-color@2.8.2':
+    dependencies:
+      '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
+      '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
+      '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
+      '@csstools/css-tokenizer': 3.0.3
+      lru-cache: 11.0.2
+
   '@avnu/avnu-sdk@2.1.1(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(qs@6.13.1)(starknet@6.18.0(encoding@0.1.13))':
     dependencies:
       ethers: 6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10)
@@ -20009,21 +19856,21 @@ snapshots:
   '@aws-crypto/crc32@5.2.0':
     dependencies:
       '@aws-crypto/util': 5.2.0
-      '@aws-sdk/types': 3.714.0
+      '@aws-sdk/types': 3.723.0
       tslib: 2.8.1
 
   '@aws-crypto/crc32c@5.2.0':
     dependencies:
       '@aws-crypto/util': 5.2.0
-      '@aws-sdk/types': 3.714.0
+      '@aws-sdk/types': 3.723.0
       tslib: 2.8.1
 
   '@aws-crypto/sha1-browser@5.2.0':
     dependencies:
       '@aws-crypto/supports-web-crypto': 5.2.0
       '@aws-crypto/util': 5.2.0
-      '@aws-sdk/types': 3.714.0
-      '@aws-sdk/util-locate-window': 3.693.0
+      '@aws-sdk/types': 3.723.0
+      '@aws-sdk/util-locate-window': 3.723.0
       '@smithy/util-utf8': 2.3.0
       tslib: 2.8.1
 
@@ -20032,15 +19879,15 @@ snapshots:
       '@aws-crypto/sha256-js': 5.2.0
       '@aws-crypto/supports-web-crypto': 5.2.0
       '@aws-crypto/util': 5.2.0
-      '@aws-sdk/types': 3.714.0
-      '@aws-sdk/util-locate-window': 3.693.0
+      '@aws-sdk/types': 3.723.0
+      '@aws-sdk/util-locate-window': 3.723.0
       '@smithy/util-utf8': 2.3.0
       tslib: 2.8.1
 
   '@aws-crypto/sha256-js@5.2.0':
     dependencies:
       '@aws-crypto/util': 5.2.0
-      '@aws-sdk/types': 3.714.0
+      '@aws-sdk/types': 3.723.0
       tslib: 2.8.1
 
   '@aws-crypto/supports-web-crypto@5.2.0':
@@ -20049,624 +19896,624 @@ snapshots:
 
   '@aws-crypto/util@5.2.0':
     dependencies:
-      '@aws-sdk/types': 3.714.0
+      '@aws-sdk/types': 3.723.0
       '@smithy/util-utf8': 2.3.0
       tslib: 2.8.1
 
-  '@aws-sdk/client-polly@3.721.0':
+  '@aws-sdk/client-polly@3.726.0':
     dependencies:
       '@aws-crypto/sha256-browser': 5.2.0
       '@aws-crypto/sha256-js': 5.2.0
-      '@aws-sdk/client-sso-oidc': 3.721.0(@aws-sdk/client-sts@3.721.0)
-      '@aws-sdk/client-sts': 3.721.0
-      '@aws-sdk/core': 3.716.0
-      '@aws-sdk/credential-provider-node': 3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0))(@aws-sdk/client-sts@3.721.0)
-      '@aws-sdk/middleware-host-header': 3.714.0
-      '@aws-sdk/middleware-logger': 3.714.0
-      '@aws-sdk/middleware-recursion-detection': 3.714.0
-      '@aws-sdk/middleware-user-agent': 3.721.0
-      '@aws-sdk/region-config-resolver': 3.714.0
-      '@aws-sdk/types': 3.714.0
-      '@aws-sdk/util-endpoints': 3.714.0
-      '@aws-sdk/util-user-agent-browser': 3.714.0
-      '@aws-sdk/util-user-agent-node': 3.721.0
-      '@smithy/config-resolver': 3.0.13
-      '@smithy/core': 2.5.7
-      '@smithy/fetch-http-handler': 4.1.3
-      '@smithy/hash-node': 3.0.11
-      '@smithy/invalid-dependency': 3.0.11
-      '@smithy/middleware-content-length': 3.0.13
-      '@smithy/middleware-endpoint': 3.2.8
-      '@smithy/middleware-retry': 3.0.34
-      '@smithy/middleware-serde': 3.0.11
-      '@smithy/middleware-stack': 3.0.11
-      '@smithy/node-config-provider': 3.1.12
-      '@smithy/node-http-handler': 3.3.3
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/smithy-client': 3.7.0
-      '@smithy/types': 3.7.2
-      '@smithy/url-parser': 3.0.11
-      '@smithy/util-base64': 3.0.0
-      '@smithy/util-body-length-browser': 3.0.0
-      '@smithy/util-body-length-node': 3.0.0
-      '@smithy/util-defaults-mode-browser': 3.0.34
-      '@smithy/util-defaults-mode-node': 3.0.34
-      '@smithy/util-endpoints': 2.1.7
-      '@smithy/util-middleware': 3.0.11
-      '@smithy/util-retry': 3.0.11
-      '@smithy/util-stream': 3.3.4
-      '@smithy/util-utf8': 3.0.0
+      '@aws-sdk/client-sso-oidc': 3.726.0(@aws-sdk/client-sts@3.726.0)
+      '@aws-sdk/client-sts': 3.726.0
+      '@aws-sdk/core': 3.723.0
+      '@aws-sdk/credential-provider-node': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))(@aws-sdk/client-sts@3.726.0)
+      '@aws-sdk/middleware-host-header': 3.723.0
+      '@aws-sdk/middleware-logger': 3.723.0
+      '@aws-sdk/middleware-recursion-detection': 3.723.0
+      '@aws-sdk/middleware-user-agent': 3.726.0
+      '@aws-sdk/region-config-resolver': 3.723.0
+      '@aws-sdk/types': 3.723.0
+      '@aws-sdk/util-endpoints': 3.726.0
+      '@aws-sdk/util-user-agent-browser': 3.723.0
+      '@aws-sdk/util-user-agent-node': 3.726.0
+      '@smithy/config-resolver': 4.0.1
+      '@smithy/core': 3.1.0
+      '@smithy/fetch-http-handler': 5.0.1
+      '@smithy/hash-node': 4.0.1
+      '@smithy/invalid-dependency': 4.0.1
+      '@smithy/middleware-content-length': 4.0.1
+      '@smithy/middleware-endpoint': 4.0.1
+      '@smithy/middleware-retry': 4.0.1
+      '@smithy/middleware-serde': 4.0.1
+      '@smithy/middleware-stack': 4.0.1
+      '@smithy/node-config-provider': 4.0.1
+      '@smithy/node-http-handler': 4.0.1
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/smithy-client': 4.1.0
+      '@smithy/types': 4.1.0
+      '@smithy/url-parser': 4.0.1
+      '@smithy/util-base64': 4.0.0
+      '@smithy/util-body-length-browser': 4.0.0
+      '@smithy/util-body-length-node': 4.0.0
+      '@smithy/util-defaults-mode-browser': 4.0.1
+      '@smithy/util-defaults-mode-node': 4.0.1
+      '@smithy/util-endpoints': 3.0.1
+      '@smithy/util-middleware': 4.0.1
+      '@smithy/util-retry': 4.0.1
+      '@smithy/util-stream': 4.0.1
+      '@smithy/util-utf8': 4.0.0
       tslib: 2.8.1
     transitivePeerDependencies:
       - aws-crt
 
-  '@aws-sdk/client-s3@3.721.0':
+  '@aws-sdk/client-s3@3.726.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/client-sso-oidc': 3.721.0(@aws-sdk/client-sts@3.721.0)
-      '@aws-sdk/client-sts': 3.721.0
-      '@aws-sdk/core': 3.716.0
-      '@aws-sdk/credential-provider-node': 3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0))(@aws-sdk/client-sts@3.721.0)
-      '@aws-sdk/middleware-bucket-endpoint': 3.721.0
-      '@aws-sdk/middleware-expect-continue': 3.714.0
-      '@aws-sdk/middleware-flexible-checksums': 3.717.0
-      '@aws-sdk/middleware-host-header': 3.714.0
-      '@aws-sdk/middleware-location-constraint': 3.714.0
-      '@aws-sdk/middleware-logger': 3.714.0
-      '@aws-sdk/middleware-recursion-detection': 3.714.0
-      '@aws-sdk/middleware-sdk-s3': 3.716.0
-      '@aws-sdk/middleware-ssec': 3.714.0
-      '@aws-sdk/middleware-user-agent': 3.721.0
-      '@aws-sdk/region-config-resolver': 3.714.0
-      '@aws-sdk/signature-v4-multi-region': 3.716.0
-      '@aws-sdk/types': 3.714.0
-      '@aws-sdk/util-endpoints': 3.714.0
-      '@aws-sdk/util-user-agent-browser': 3.714.0
-      '@aws-sdk/util-user-agent-node': 3.721.0
-      '@aws-sdk/xml-builder': 3.709.0
-      '@smithy/config-resolver': 3.0.13
-      '@smithy/core': 2.5.7
-      '@smithy/eventstream-serde-browser': 3.0.14
-      '@smithy/eventstream-serde-config-resolver': 3.0.11
-      '@smithy/eventstream-serde-node': 3.0.13
-      '@smithy/fetch-http-handler': 4.1.3
-      '@smithy/hash-blob-browser': 3.1.10
-      '@smithy/hash-node': 3.0.11
-      '@smithy/hash-stream-node': 3.1.10
-      '@smithy/invalid-dependency': 3.0.11
-      '@smithy/md5-js': 3.0.11
-      '@smithy/middleware-content-length': 3.0.13
-      '@smithy/middleware-endpoint': 3.2.8
-      '@smithy/middleware-retry': 3.0.34
-      '@smithy/middleware-serde': 3.0.11
-      '@smithy/middleware-stack': 3.0.11
-      '@smithy/node-config-provider': 3.1.12
-      '@smithy/node-http-handler': 3.3.3
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/smithy-client': 3.7.0
-      '@smithy/types': 3.7.2
-      '@smithy/url-parser': 3.0.11
-      '@smithy/util-base64': 3.0.0
-      '@smithy/util-body-length-browser': 3.0.0
-      '@smithy/util-body-length-node': 3.0.0
-      '@smithy/util-defaults-mode-browser': 3.0.34
-      '@smithy/util-defaults-mode-node': 3.0.34
-      '@smithy/util-endpoints': 2.1.7
-      '@smithy/util-middleware': 3.0.11
-      '@smithy/util-retry': 3.0.11
-      '@smithy/util-stream': 3.3.4
-      '@smithy/util-utf8': 3.0.0
-      '@smithy/util-waiter': 3.2.0
+      '@aws-sdk/client-sso-oidc': 3.726.0(@aws-sdk/client-sts@3.726.0)
+      '@aws-sdk/client-sts': 3.726.0
+      '@aws-sdk/core': 3.723.0
+      '@aws-sdk/credential-provider-node': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))(@aws-sdk/client-sts@3.726.0)
+      '@aws-sdk/middleware-bucket-endpoint': 3.726.0
+      '@aws-sdk/middleware-expect-continue': 3.723.0
+      '@aws-sdk/middleware-flexible-checksums': 3.723.0
+      '@aws-sdk/middleware-host-header': 3.723.0
+      '@aws-sdk/middleware-location-constraint': 3.723.0
+      '@aws-sdk/middleware-logger': 3.723.0
+      '@aws-sdk/middleware-recursion-detection': 3.723.0
+      '@aws-sdk/middleware-sdk-s3': 3.723.0
+      '@aws-sdk/middleware-ssec': 3.723.0
+      '@aws-sdk/middleware-user-agent': 3.726.0
+      '@aws-sdk/region-config-resolver': 3.723.0
+      '@aws-sdk/signature-v4-multi-region': 3.723.0
+      '@aws-sdk/types': 3.723.0
+      '@aws-sdk/util-endpoints': 3.726.0
+      '@aws-sdk/util-user-agent-browser': 3.723.0
+      '@aws-sdk/util-user-agent-node': 3.726.0
+      '@aws-sdk/xml-builder': 3.723.0
+      '@smithy/config-resolver': 4.0.1
+      '@smithy/core': 3.1.0
+      '@smithy/eventstream-serde-browser': 4.0.1
+      '@smithy/eventstream-serde-config-resolver': 4.0.1
+      '@smithy/eventstream-serde-node': 4.0.1
+      '@smithy/fetch-http-handler': 5.0.1
+      '@smithy/hash-blob-browser': 4.0.1
+      '@smithy/hash-node': 4.0.1
+      '@smithy/hash-stream-node': 4.0.1
+      '@smithy/invalid-dependency': 4.0.1
+      '@smithy/md5-js': 4.0.1
+      '@smithy/middleware-content-length': 4.0.1
+      '@smithy/middleware-endpoint': 4.0.1
+      '@smithy/middleware-retry': 4.0.1
+      '@smithy/middleware-serde': 4.0.1
+      '@smithy/middleware-stack': 4.0.1
+      '@smithy/node-config-provider': 4.0.1
+      '@smithy/node-http-handler': 4.0.1
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/smithy-client': 4.1.0
+      '@smithy/types': 4.1.0
+      '@smithy/url-parser': 4.0.1
+      '@smithy/util-base64': 4.0.0
+      '@smithy/util-body-length-browser': 4.0.0
+      '@smithy/util-body-length-node': 4.0.0
+      '@smithy/util-defaults-mode-browser': 4.0.1
+      '@smithy/util-defaults-mode-node': 4.0.1
+      '@smithy/util-endpoints': 3.0.1
+      '@smithy/util-middleware': 4.0.1
+      '@smithy/util-retry': 4.0.1
+      '@smithy/util-stream': 4.0.1
+      '@smithy/util-utf8': 4.0.0
+      '@smithy/util-waiter': 4.0.2
       tslib: 2.8.1
     transitivePeerDependencies:
       - aws-crt
 
-  '@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0)':
+  '@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0)':
     dependencies:
       '@aws-crypto/sha256-browser': 5.2.0
       '@aws-crypto/sha256-js': 5.2.0
-      '@aws-sdk/client-sts': 3.721.0
-      '@aws-sdk/core': 3.716.0
-      '@aws-sdk/credential-provider-node': 3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0))(@aws-sdk/client-sts@3.721.0)
-      '@aws-sdk/middleware-host-header': 3.714.0
-      '@aws-sdk/middleware-logger': 3.714.0
-      '@aws-sdk/middleware-recursion-detection': 3.714.0
-      '@aws-sdk/middleware-user-agent': 3.721.0
-      '@aws-sdk/region-config-resolver': 3.714.0
-      '@aws-sdk/types': 3.714.0
-      '@aws-sdk/util-endpoints': 3.714.0
-      '@aws-sdk/util-user-agent-browser': 3.714.0
-      '@aws-sdk/util-user-agent-node': 3.721.0
-      '@smithy/config-resolver': 3.0.13
-      '@smithy/core': 2.5.7
-      '@smithy/fetch-http-handler': 4.1.3
-      '@smithy/hash-node': 3.0.11
-      '@smithy/invalid-dependency': 3.0.11
-      '@smithy/middleware-content-length': 3.0.13
-      '@smithy/middleware-endpoint': 3.2.8
-      '@smithy/middleware-retry': 3.0.34
-      '@smithy/middleware-serde': 3.0.11
-      '@smithy/middleware-stack': 3.0.11
-      '@smithy/node-config-provider': 3.1.12
-      '@smithy/node-http-handler': 3.3.3
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/smithy-client': 3.7.0
-      '@smithy/types': 3.7.2
-      '@smithy/url-parser': 3.0.11
-      '@smithy/util-base64': 3.0.0
-      '@smithy/util-body-length-browser': 3.0.0
-      '@smithy/util-body-length-node': 3.0.0
-      '@smithy/util-defaults-mode-browser': 3.0.34
-      '@smithy/util-defaults-mode-node': 3.0.34
-      '@smithy/util-endpoints': 2.1.7
-      '@smithy/util-middleware': 3.0.11
-      '@smithy/util-retry': 3.0.11
-      '@smithy/util-utf8': 3.0.0
+      '@aws-sdk/client-sts': 3.726.0
+      '@aws-sdk/core': 3.723.0
+      '@aws-sdk/credential-provider-node': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))(@aws-sdk/client-sts@3.726.0)
+      '@aws-sdk/middleware-host-header': 3.723.0
+      '@aws-sdk/middleware-logger': 3.723.0
+      '@aws-sdk/middleware-recursion-detection': 3.723.0
+      '@aws-sdk/middleware-user-agent': 3.726.0
+      '@aws-sdk/region-config-resolver': 3.723.0
+      '@aws-sdk/types': 3.723.0
+      '@aws-sdk/util-endpoints': 3.726.0
+      '@aws-sdk/util-user-agent-browser': 3.723.0
+      '@aws-sdk/util-user-agent-node': 3.726.0
+      '@smithy/config-resolver': 4.0.1
+      '@smithy/core': 3.1.0
+      '@smithy/fetch-http-handler': 5.0.1
+      '@smithy/hash-node': 4.0.1
+      '@smithy/invalid-dependency': 4.0.1
+      '@smithy/middleware-content-length': 4.0.1
+      '@smithy/middleware-endpoint': 4.0.1
+      '@smithy/middleware-retry': 4.0.1
+      '@smithy/middleware-serde': 4.0.1
+      '@smithy/middleware-stack': 4.0.1
+      '@smithy/node-config-provider': 4.0.1
+      '@smithy/node-http-handler': 4.0.1
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/smithy-client': 4.1.0
+      '@smithy/types': 4.1.0
+      '@smithy/url-parser': 4.0.1
+      '@smithy/util-base64': 4.0.0
+      '@smithy/util-body-length-browser': 4.0.0
+      '@smithy/util-body-length-node': 4.0.0
+      '@smithy/util-defaults-mode-browser': 4.0.1
+      '@smithy/util-defaults-mode-node': 4.0.1
+      '@smithy/util-endpoints': 3.0.1
+      '@smithy/util-middleware': 4.0.1
+      '@smithy/util-retry': 4.0.1
+      '@smithy/util-utf8': 4.0.0
       tslib: 2.8.1
     transitivePeerDependencies:
       - aws-crt
 
-  '@aws-sdk/client-sso@3.721.0':
+  '@aws-sdk/client-sso@3.726.0':
     dependencies:
       '@aws-crypto/sha256-browser': 5.2.0
       '@aws-crypto/sha256-js': 5.2.0
-      '@aws-sdk/core': 3.716.0
-      '@aws-sdk/middleware-host-header': 3.714.0
-      '@aws-sdk/middleware-logger': 3.714.0
-      '@aws-sdk/middleware-recursion-detection': 3.714.0
-      '@aws-sdk/middleware-user-agent': 3.721.0
-      '@aws-sdk/region-config-resolver': 3.714.0
-      '@aws-sdk/types': 3.714.0
-      '@aws-sdk/util-endpoints': 3.714.0
-      '@aws-sdk/util-user-agent-browser': 3.714.0
-      '@aws-sdk/util-user-agent-node': 3.721.0
-      '@smithy/config-resolver': 3.0.13
-      '@smithy/core': 2.5.7
-      '@smithy/fetch-http-handler': 4.1.3
-      '@smithy/hash-node': 3.0.11
-      '@smithy/invalid-dependency': 3.0.11
-      '@smithy/middleware-content-length': 3.0.13
-      '@smithy/middleware-endpoint': 3.2.8
-      '@smithy/middleware-retry': 3.0.34
-      '@smithy/middleware-serde': 3.0.11
-      '@smithy/middleware-stack': 3.0.11
-      '@smithy/node-config-provider': 3.1.12
-      '@smithy/node-http-handler': 3.3.3
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/smithy-client': 3.7.0
-      '@smithy/types': 3.7.2
-      '@smithy/url-parser': 3.0.11
-      '@smithy/util-base64': 3.0.0
-      '@smithy/util-body-length-browser': 3.0.0
-      '@smithy/util-body-length-node': 3.0.0
-      '@smithy/util-defaults-mode-browser': 3.0.34
-      '@smithy/util-defaults-mode-node': 3.0.34
-      '@smithy/util-endpoints': 2.1.7
-      '@smithy/util-middleware': 3.0.11
-      '@smithy/util-retry': 3.0.11
-      '@smithy/util-utf8': 3.0.0
+      '@aws-sdk/core': 3.723.0
+      '@aws-sdk/middleware-host-header': 3.723.0
+      '@aws-sdk/middleware-logger': 3.723.0
+      '@aws-sdk/middleware-recursion-detection': 3.723.0
+      '@aws-sdk/middleware-user-agent': 3.726.0
+      '@aws-sdk/region-config-resolver': 3.723.0
+      '@aws-sdk/types': 3.723.0
+      '@aws-sdk/util-endpoints': 3.726.0
+      '@aws-sdk/util-user-agent-browser': 3.723.0
+      '@aws-sdk/util-user-agent-node': 3.726.0
+      '@smithy/config-resolver': 4.0.1
+      '@smithy/core': 3.1.0
+      '@smithy/fetch-http-handler': 5.0.1
+      '@smithy/hash-node': 4.0.1
+      '@smithy/invalid-dependency': 4.0.1
+      '@smithy/middleware-content-length': 4.0.1
+      '@smithy/middleware-endpoint': 4.0.1
+      '@smithy/middleware-retry': 4.0.1
+      '@smithy/middleware-serde': 4.0.1
+      '@smithy/middleware-stack': 4.0.1
+      '@smithy/node-config-provider': 4.0.1
+      '@smithy/node-http-handler': 4.0.1
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/smithy-client': 4.1.0
+      '@smithy/types': 4.1.0
+      '@smithy/url-parser': 4.0.1
+      '@smithy/util-base64': 4.0.0
+      '@smithy/util-body-length-browser': 4.0.0
+      '@smithy/util-body-length-node': 4.0.0
+      '@smithy/util-defaults-mode-browser': 4.0.1
+      '@smithy/util-defaults-mode-node': 4.0.1
+      '@smithy/util-endpoints': 3.0.1
+      '@smithy/util-middleware': 4.0.1
+      '@smithy/util-retry': 4.0.1
+      '@smithy/util-utf8': 4.0.0
       tslib: 2.8.1
     transitivePeerDependencies:
       - aws-crt
 
-  '@aws-sdk/client-sts@3.721.0':
+  '@aws-sdk/client-sts@3.726.0':
     dependencies:
       '@aws-crypto/sha256-browser': 5.2.0
       '@aws-crypto/sha256-js': 5.2.0
-      '@aws-sdk/client-sso-oidc': 3.721.0(@aws-sdk/client-sts@3.721.0)
-      '@aws-sdk/core': 3.716.0
-      '@aws-sdk/credential-provider-node': 3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0))(@aws-sdk/client-sts@3.721.0)
-      '@aws-sdk/middleware-host-header': 3.714.0
-      '@aws-sdk/middleware-logger': 3.714.0
-      '@aws-sdk/middleware-recursion-detection': 3.714.0
-      '@aws-sdk/middleware-user-agent': 3.721.0
-      '@aws-sdk/region-config-resolver': 3.714.0
-      '@aws-sdk/types': 3.714.0
-      '@aws-sdk/util-endpoints': 3.714.0
-      '@aws-sdk/util-user-agent-browser': 3.714.0
-      '@aws-sdk/util-user-agent-node': 3.721.0
-      '@smithy/config-resolver': 3.0.13
-      '@smithy/core': 2.5.7
-      '@smithy/fetch-http-handler': 4.1.3
-      '@smithy/hash-node': 3.0.11
-      '@smithy/invalid-dependency': 3.0.11
-      '@smithy/middleware-content-length': 3.0.13
-      '@smithy/middleware-endpoint': 3.2.8
-      '@smithy/middleware-retry': 3.0.34
-      '@smithy/middleware-serde': 3.0.11
-      '@smithy/middleware-stack': 3.0.11
-      '@smithy/node-config-provider': 3.1.12
-      '@smithy/node-http-handler': 3.3.3
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/smithy-client': 3.7.0
-      '@smithy/types': 3.7.2
-      '@smithy/url-parser': 3.0.11
-      '@smithy/util-base64': 3.0.0
-      '@smithy/util-body-length-browser': 3.0.0
-      '@smithy/util-body-length-node': 3.0.0
-      '@smithy/util-defaults-mode-browser': 3.0.34
-      '@smithy/util-defaults-mode-node': 3.0.34
-      '@smithy/util-endpoints': 2.1.7
-      '@smithy/util-middleware': 3.0.11
-      '@smithy/util-retry': 3.0.11
-      '@smithy/util-utf8': 3.0.0
+      '@aws-sdk/client-sso-oidc': 3.726.0(@aws-sdk/client-sts@3.726.0)
+      '@aws-sdk/core': 3.723.0
+      '@aws-sdk/credential-provider-node': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))(@aws-sdk/client-sts@3.726.0)
+      '@aws-sdk/middleware-host-header': 3.723.0
+      '@aws-sdk/middleware-logger': 3.723.0
+      '@aws-sdk/middleware-recursion-detection': 3.723.0
+      '@aws-sdk/middleware-user-agent': 3.726.0
+      '@aws-sdk/region-config-resolver': 3.723.0
+      '@aws-sdk/types': 3.723.0
+      '@aws-sdk/util-endpoints': 3.726.0
+      '@aws-sdk/util-user-agent-browser': 3.723.0
+      '@aws-sdk/util-user-agent-node': 3.726.0
+      '@smithy/config-resolver': 4.0.1
+      '@smithy/core': 3.1.0
+      '@smithy/fetch-http-handler': 5.0.1
+      '@smithy/hash-node': 4.0.1
+      '@smithy/invalid-dependency': 4.0.1
+      '@smithy/middleware-content-length': 4.0.1
+      '@smithy/middleware-endpoint': 4.0.1
+      '@smithy/middleware-retry': 4.0.1
+      '@smithy/middleware-serde': 4.0.1
+      '@smithy/middleware-stack': 4.0.1
+      '@smithy/node-config-provider': 4.0.1
+      '@smithy/node-http-handler': 4.0.1
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/smithy-client': 4.1.0
+      '@smithy/types': 4.1.0
+      '@smithy/url-parser': 4.0.1
+      '@smithy/util-base64': 4.0.0
+      '@smithy/util-body-length-browser': 4.0.0
+      '@smithy/util-body-length-node': 4.0.0
+      '@smithy/util-defaults-mode-browser': 4.0.1
+      '@smithy/util-defaults-mode-node': 4.0.1
+      '@smithy/util-endpoints': 3.0.1
+      '@smithy/util-middleware': 4.0.1
+      '@smithy/util-retry': 4.0.1
+      '@smithy/util-utf8': 4.0.0
       tslib: 2.8.1
     transitivePeerDependencies:
       - aws-crt
 
-  '@aws-sdk/client-transcribe-streaming@3.721.0':
+  '@aws-sdk/client-transcribe-streaming@3.726.0':
     dependencies:
       '@aws-crypto/sha256-browser': 5.2.0
       '@aws-crypto/sha256-js': 5.2.0
-      '@aws-sdk/client-sso-oidc': 3.721.0(@aws-sdk/client-sts@3.721.0)
-      '@aws-sdk/client-sts': 3.721.0
-      '@aws-sdk/core': 3.716.0
-      '@aws-sdk/credential-provider-node': 3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0))(@aws-sdk/client-sts@3.721.0)
-      '@aws-sdk/eventstream-handler-node': 3.714.0
-      '@aws-sdk/middleware-eventstream': 3.714.0
-      '@aws-sdk/middleware-host-header': 3.714.0
-      '@aws-sdk/middleware-logger': 3.714.0
-      '@aws-sdk/middleware-recursion-detection': 3.714.0
-      '@aws-sdk/middleware-sdk-transcribe-streaming': 3.714.0
-      '@aws-sdk/middleware-user-agent': 3.721.0
-      '@aws-sdk/middleware-websocket': 3.714.0
-      '@aws-sdk/region-config-resolver': 3.714.0
-      '@aws-sdk/types': 3.714.0
-      '@aws-sdk/util-endpoints': 3.714.0
-      '@aws-sdk/util-user-agent-browser': 3.714.0
-      '@aws-sdk/util-user-agent-node': 3.721.0
-      '@smithy/config-resolver': 3.0.13
-      '@smithy/core': 2.5.7
-      '@smithy/eventstream-serde-browser': 3.0.14
-      '@smithy/eventstream-serde-config-resolver': 3.0.11
-      '@smithy/eventstream-serde-node': 3.0.13
-      '@smithy/fetch-http-handler': 4.1.3
-      '@smithy/hash-node': 3.0.11
-      '@smithy/invalid-dependency': 3.0.11
-      '@smithy/middleware-content-length': 3.0.13
-      '@smithy/middleware-endpoint': 3.2.8
-      '@smithy/middleware-retry': 3.0.34
-      '@smithy/middleware-serde': 3.0.11
-      '@smithy/middleware-stack': 3.0.11
-      '@smithy/node-config-provider': 3.1.12
-      '@smithy/node-http-handler': 3.3.3
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/smithy-client': 3.7.0
-      '@smithy/types': 3.7.2
-      '@smithy/url-parser': 3.0.11
-      '@smithy/util-base64': 3.0.0
-      '@smithy/util-body-length-browser': 3.0.0
-      '@smithy/util-body-length-node': 3.0.0
-      '@smithy/util-defaults-mode-browser': 3.0.34
-      '@smithy/util-defaults-mode-node': 3.0.34
-      '@smithy/util-endpoints': 2.1.7
-      '@smithy/util-middleware': 3.0.11
-      '@smithy/util-retry': 3.0.11
-      '@smithy/util-utf8': 3.0.0
+      '@aws-sdk/client-sso-oidc': 3.726.0(@aws-sdk/client-sts@3.726.0)
+      '@aws-sdk/client-sts': 3.726.0
+      '@aws-sdk/core': 3.723.0
+      '@aws-sdk/credential-provider-node': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))(@aws-sdk/client-sts@3.726.0)
+      '@aws-sdk/eventstream-handler-node': 3.723.0
+      '@aws-sdk/middleware-eventstream': 3.723.0
+      '@aws-sdk/middleware-host-header': 3.723.0
+      '@aws-sdk/middleware-logger': 3.723.0
+      '@aws-sdk/middleware-recursion-detection': 3.723.0
+      '@aws-sdk/middleware-sdk-transcribe-streaming': 3.723.0
+      '@aws-sdk/middleware-user-agent': 3.726.0
+      '@aws-sdk/middleware-websocket': 3.723.0
+      '@aws-sdk/region-config-resolver': 3.723.0
+      '@aws-sdk/types': 3.723.0
+      '@aws-sdk/util-endpoints': 3.726.0
+      '@aws-sdk/util-user-agent-browser': 3.723.0
+      '@aws-sdk/util-user-agent-node': 3.726.0
+      '@smithy/config-resolver': 4.0.1
+      '@smithy/core': 3.1.0
+      '@smithy/eventstream-serde-browser': 4.0.1
+      '@smithy/eventstream-serde-config-resolver': 4.0.1
+      '@smithy/eventstream-serde-node': 4.0.1
+      '@smithy/fetch-http-handler': 5.0.1
+      '@smithy/hash-node': 4.0.1
+      '@smithy/invalid-dependency': 4.0.1
+      '@smithy/middleware-content-length': 4.0.1
+      '@smithy/middleware-endpoint': 4.0.1
+      '@smithy/middleware-retry': 4.0.1
+      '@smithy/middleware-serde': 4.0.1
+      '@smithy/middleware-stack': 4.0.1
+      '@smithy/node-config-provider': 4.0.1
+      '@smithy/node-http-handler': 4.0.1
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/smithy-client': 4.1.0
+      '@smithy/types': 4.1.0
+      '@smithy/url-parser': 4.0.1
+      '@smithy/util-base64': 4.0.0
+      '@smithy/util-body-length-browser': 4.0.0
+      '@smithy/util-body-length-node': 4.0.0
+      '@smithy/util-defaults-mode-browser': 4.0.1
+      '@smithy/util-defaults-mode-node': 4.0.1
+      '@smithy/util-endpoints': 3.0.1
+      '@smithy/util-middleware': 4.0.1
+      '@smithy/util-retry': 4.0.1
+      '@smithy/util-utf8': 4.0.0
       tslib: 2.8.1
     transitivePeerDependencies:
       - aws-crt
 
-  '@aws-sdk/core@3.716.0':
-    dependencies:
-      '@aws-sdk/types': 3.714.0
-      '@smithy/core': 2.5.7
-      '@smithy/node-config-provider': 3.1.12
-      '@smithy/property-provider': 3.1.11
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/signature-v4': 4.2.4
-      '@smithy/smithy-client': 3.7.0
-      '@smithy/types': 3.7.2
-      '@smithy/util-middleware': 3.0.11
+  '@aws-sdk/core@3.723.0':
+    dependencies:
+      '@aws-sdk/types': 3.723.0
+      '@smithy/core': 3.1.0
+      '@smithy/node-config-provider': 4.0.1
+      '@smithy/property-provider': 4.0.1
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/signature-v4': 5.0.1
+      '@smithy/smithy-client': 4.1.0
+      '@smithy/types': 4.1.0
+      '@smithy/util-middleware': 4.0.1
       fast-xml-parser: 4.4.1
       tslib: 2.8.1
 
-  '@aws-sdk/credential-provider-env@3.716.0':
+  '@aws-sdk/credential-provider-env@3.723.0':
     dependencies:
-      '@aws-sdk/core': 3.716.0
-      '@aws-sdk/types': 3.714.0
-      '@smithy/property-provider': 3.1.11
-      '@smithy/types': 3.7.2
+      '@aws-sdk/core': 3.723.0
+      '@aws-sdk/types': 3.723.0
+      '@smithy/property-provider': 4.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@aws-sdk/credential-provider-http@3.716.0':
-    dependencies:
-      '@aws-sdk/core': 3.716.0
-      '@aws-sdk/types': 3.714.0
-      '@smithy/fetch-http-handler': 4.1.3
-      '@smithy/node-http-handler': 3.3.3
-      '@smithy/property-provider': 3.1.11
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/smithy-client': 3.7.0
-      '@smithy/types': 3.7.2
-      '@smithy/util-stream': 3.3.4
+  '@aws-sdk/credential-provider-http@3.723.0':
+    dependencies:
+      '@aws-sdk/core': 3.723.0
+      '@aws-sdk/types': 3.723.0
+      '@smithy/fetch-http-handler': 5.0.1
+      '@smithy/node-http-handler': 4.0.1
+      '@smithy/property-provider': 4.0.1
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/smithy-client': 4.1.0
+      '@smithy/types': 4.1.0
+      '@smithy/util-stream': 4.0.1
       tslib: 2.8.1
 
-  '@aws-sdk/credential-provider-ini@3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0))(@aws-sdk/client-sts@3.721.0)':
-    dependencies:
-      '@aws-sdk/client-sts': 3.721.0
-      '@aws-sdk/core': 3.716.0
-      '@aws-sdk/credential-provider-env': 3.716.0
-      '@aws-sdk/credential-provider-http': 3.716.0
-      '@aws-sdk/credential-provider-process': 3.716.0
-      '@aws-sdk/credential-provider-sso': 3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0))
-      '@aws-sdk/credential-provider-web-identity': 3.716.0(@aws-sdk/client-sts@3.721.0)
-      '@aws-sdk/types': 3.714.0
-      '@smithy/credential-provider-imds': 3.2.8
-      '@smithy/property-provider': 3.1.11
-      '@smithy/shared-ini-file-loader': 3.1.12
-      '@smithy/types': 3.7.2
+  '@aws-sdk/credential-provider-ini@3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))(@aws-sdk/client-sts@3.726.0)':
+    dependencies:
+      '@aws-sdk/client-sts': 3.726.0
+      '@aws-sdk/core': 3.723.0
+      '@aws-sdk/credential-provider-env': 3.723.0
+      '@aws-sdk/credential-provider-http': 3.723.0
+      '@aws-sdk/credential-provider-process': 3.723.0
+      '@aws-sdk/credential-provider-sso': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))
+      '@aws-sdk/credential-provider-web-identity': 3.723.0(@aws-sdk/client-sts@3.726.0)
+      '@aws-sdk/types': 3.723.0
+      '@smithy/credential-provider-imds': 4.0.1
+      '@smithy/property-provider': 4.0.1
+      '@smithy/shared-ini-file-loader': 4.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
     transitivePeerDependencies:
       - '@aws-sdk/client-sso-oidc'
       - aws-crt
 
-  '@aws-sdk/credential-provider-node@3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0))(@aws-sdk/client-sts@3.721.0)':
-    dependencies:
-      '@aws-sdk/credential-provider-env': 3.716.0
-      '@aws-sdk/credential-provider-http': 3.716.0
-      '@aws-sdk/credential-provider-ini': 3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0))(@aws-sdk/client-sts@3.721.0)
-      '@aws-sdk/credential-provider-process': 3.716.0
-      '@aws-sdk/credential-provider-sso': 3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0))
-      '@aws-sdk/credential-provider-web-identity': 3.716.0(@aws-sdk/client-sts@3.721.0)
-      '@aws-sdk/types': 3.714.0
-      '@smithy/credential-provider-imds': 3.2.8
-      '@smithy/property-provider': 3.1.11
-      '@smithy/shared-ini-file-loader': 3.1.12
-      '@smithy/types': 3.7.2
+  '@aws-sdk/credential-provider-node@3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))(@aws-sdk/client-sts@3.726.0)':
+    dependencies:
+      '@aws-sdk/credential-provider-env': 3.723.0
+      '@aws-sdk/credential-provider-http': 3.723.0
+      '@aws-sdk/credential-provider-ini': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))(@aws-sdk/client-sts@3.726.0)
+      '@aws-sdk/credential-provider-process': 3.723.0
+      '@aws-sdk/credential-provider-sso': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))
+      '@aws-sdk/credential-provider-web-identity': 3.723.0(@aws-sdk/client-sts@3.726.0)
+      '@aws-sdk/types': 3.723.0
+      '@smithy/credential-provider-imds': 4.0.1
+      '@smithy/property-provider': 4.0.1
+      '@smithy/shared-ini-file-loader': 4.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
     transitivePeerDependencies:
       - '@aws-sdk/client-sso-oidc'
       - '@aws-sdk/client-sts'
       - aws-crt
 
-  '@aws-sdk/credential-provider-process@3.716.0':
+  '@aws-sdk/credential-provider-process@3.723.0':
     dependencies:
-      '@aws-sdk/core': 3.716.0
-      '@aws-sdk/types': 3.714.0
-      '@smithy/property-provider': 3.1.11
-      '@smithy/shared-ini-file-loader': 3.1.12
-      '@smithy/types': 3.7.2
+      '@aws-sdk/core': 3.723.0
+      '@aws-sdk/types': 3.723.0
+      '@smithy/property-provider': 4.0.1
+      '@smithy/shared-ini-file-loader': 4.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@aws-sdk/credential-provider-sso@3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0))':
+  '@aws-sdk/credential-provider-sso@3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))':
     dependencies:
-      '@aws-sdk/client-sso': 3.721.0
-      '@aws-sdk/core': 3.716.0
-      '@aws-sdk/token-providers': 3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0))
-      '@aws-sdk/types': 3.714.0
-      '@smithy/property-provider': 3.1.11
-      '@smithy/shared-ini-file-loader': 3.1.12
-      '@smithy/types': 3.7.2
+      '@aws-sdk/client-sso': 3.726.0
+      '@aws-sdk/core': 3.723.0
+      '@aws-sdk/token-providers': 3.723.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))
+      '@aws-sdk/types': 3.723.0
+      '@smithy/property-provider': 4.0.1
+      '@smithy/shared-ini-file-loader': 4.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
     transitivePeerDependencies:
       - '@aws-sdk/client-sso-oidc'
       - aws-crt
 
-  '@aws-sdk/credential-provider-web-identity@3.716.0(@aws-sdk/client-sts@3.721.0)':
+  '@aws-sdk/credential-provider-web-identity@3.723.0(@aws-sdk/client-sts@3.726.0)':
     dependencies:
-      '@aws-sdk/client-sts': 3.721.0
-      '@aws-sdk/core': 3.716.0
-      '@aws-sdk/types': 3.714.0
-      '@smithy/property-provider': 3.1.11
-      '@smithy/types': 3.7.2
+      '@aws-sdk/client-sts': 3.726.0
+      '@aws-sdk/core': 3.723.0
+      '@aws-sdk/types': 3.723.0
+      '@smithy/property-provider': 4.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@aws-sdk/eventstream-handler-node@3.714.0':
+  '@aws-sdk/eventstream-handler-node@3.723.0':
     dependencies:
-      '@aws-sdk/types': 3.714.0
-      '@smithy/eventstream-codec': 3.1.10
-      '@smithy/types': 3.7.2
+      '@aws-sdk/types': 3.723.0
+      '@smithy/eventstream-codec': 4.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@aws-sdk/middleware-bucket-endpoint@3.721.0':
+  '@aws-sdk/middleware-bucket-endpoint@3.726.0':
     dependencies:
-      '@aws-sdk/types': 3.714.0
-      '@aws-sdk/util-arn-parser': 3.693.0
-      '@smithy/node-config-provider': 3.1.12
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/types': 3.7.2
-      '@smithy/util-config-provider': 3.0.0
+      '@aws-sdk/types': 3.723.0
+      '@aws-sdk/util-arn-parser': 3.723.0
+      '@smithy/node-config-provider': 4.0.1
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/types': 4.1.0
+      '@smithy/util-config-provider': 4.0.0
       tslib: 2.8.1
 
-  '@aws-sdk/middleware-eventstream@3.714.0':
+  '@aws-sdk/middleware-eventstream@3.723.0':
     dependencies:
-      '@aws-sdk/types': 3.714.0
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/types': 3.7.2
+      '@aws-sdk/types': 3.723.0
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@aws-sdk/middleware-expect-continue@3.714.0':
+  '@aws-sdk/middleware-expect-continue@3.723.0':
     dependencies:
-      '@aws-sdk/types': 3.714.0
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/types': 3.7.2
+      '@aws-sdk/types': 3.723.0
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@aws-sdk/middleware-flexible-checksums@3.717.0':
+  '@aws-sdk/middleware-flexible-checksums@3.723.0':
     dependencies:
       '@aws-crypto/crc32': 5.2.0
       '@aws-crypto/crc32c': 5.2.0
       '@aws-crypto/util': 5.2.0
-      '@aws-sdk/core': 3.716.0
-      '@aws-sdk/types': 3.714.0
-      '@smithy/is-array-buffer': 3.0.0
-      '@smithy/node-config-provider': 3.1.12
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/types': 3.7.2
-      '@smithy/util-middleware': 3.0.11
-      '@smithy/util-stream': 3.3.4
-      '@smithy/util-utf8': 3.0.0
+      '@aws-sdk/core': 3.723.0
+      '@aws-sdk/types': 3.723.0
+      '@smithy/is-array-buffer': 4.0.0
+      '@smithy/node-config-provider': 4.0.1
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/types': 4.1.0
+      '@smithy/util-middleware': 4.0.1
+      '@smithy/util-stream': 4.0.1
+      '@smithy/util-utf8': 4.0.0
       tslib: 2.8.1
 
-  '@aws-sdk/middleware-host-header@3.714.0':
+  '@aws-sdk/middleware-host-header@3.723.0':
     dependencies:
-      '@aws-sdk/types': 3.714.0
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/types': 3.7.2
+      '@aws-sdk/types': 3.723.0
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@aws-sdk/middleware-location-constraint@3.714.0':
+  '@aws-sdk/middleware-location-constraint@3.723.0':
     dependencies:
-      '@aws-sdk/types': 3.714.0
-      '@smithy/types': 3.7.2
+      '@aws-sdk/types': 3.723.0
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@aws-sdk/middleware-logger@3.714.0':
+  '@aws-sdk/middleware-logger@3.723.0':
     dependencies:
-      '@aws-sdk/types': 3.714.0
-      '@smithy/types': 3.7.2
+      '@aws-sdk/types': 3.723.0
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@aws-sdk/middleware-recursion-detection@3.714.0':
+  '@aws-sdk/middleware-recursion-detection@3.723.0':
     dependencies:
-      '@aws-sdk/types': 3.714.0
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/types': 3.7.2
+      '@aws-sdk/types': 3.723.0
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@aws-sdk/middleware-sdk-s3@3.716.0':
-    dependencies:
-      '@aws-sdk/core': 3.716.0
-      '@aws-sdk/types': 3.714.0
-      '@aws-sdk/util-arn-parser': 3.693.0
-      '@smithy/core': 2.5.7
-      '@smithy/node-config-provider': 3.1.12
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/signature-v4': 4.2.4
-      '@smithy/smithy-client': 3.7.0
-      '@smithy/types': 3.7.2
-      '@smithy/util-config-provider': 3.0.0
-      '@smithy/util-middleware': 3.0.11
-      '@smithy/util-stream': 3.3.4
-      '@smithy/util-utf8': 3.0.0
+  '@aws-sdk/middleware-sdk-s3@3.723.0':
+    dependencies:
+      '@aws-sdk/core': 3.723.0
+      '@aws-sdk/types': 3.723.0
+      '@aws-sdk/util-arn-parser': 3.723.0
+      '@smithy/core': 3.1.0
+      '@smithy/node-config-provider': 4.0.1
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/signature-v4': 5.0.1
+      '@smithy/smithy-client': 4.1.0
+      '@smithy/types': 4.1.0
+      '@smithy/util-config-provider': 4.0.0
+      '@smithy/util-middleware': 4.0.1
+      '@smithy/util-stream': 4.0.1
+      '@smithy/util-utf8': 4.0.0
       tslib: 2.8.1
 
-  '@aws-sdk/middleware-sdk-transcribe-streaming@3.714.0':
+  '@aws-sdk/middleware-sdk-transcribe-streaming@3.723.0':
     dependencies:
-      '@aws-sdk/types': 3.714.0
-      '@aws-sdk/util-format-url': 3.714.0
-      '@smithy/eventstream-serde-browser': 3.0.14
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/signature-v4': 4.2.4
-      '@smithy/types': 3.7.2
+      '@aws-sdk/types': 3.723.0
+      '@aws-sdk/util-format-url': 3.723.0
+      '@smithy/eventstream-serde-browser': 4.0.1
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/signature-v4': 5.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
       uuid: 9.0.1
 
-  '@aws-sdk/middleware-ssec@3.714.0':
+  '@aws-sdk/middleware-ssec@3.723.0':
     dependencies:
-      '@aws-sdk/types': 3.714.0
-      '@smithy/types': 3.7.2
+      '@aws-sdk/types': 3.723.0
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@aws-sdk/middleware-user-agent@3.721.0':
+  '@aws-sdk/middleware-user-agent@3.726.0':
     dependencies:
-      '@aws-sdk/core': 3.716.0
-      '@aws-sdk/types': 3.714.0
-      '@aws-sdk/util-endpoints': 3.714.0
-      '@smithy/core': 2.5.7
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/types': 3.7.2
+      '@aws-sdk/core': 3.723.0
+      '@aws-sdk/types': 3.723.0
+      '@aws-sdk/util-endpoints': 3.726.0
+      '@smithy/core': 3.1.0
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@aws-sdk/middleware-websocket@3.714.0':
-    dependencies:
-      '@aws-sdk/types': 3.714.0
-      '@aws-sdk/util-format-url': 3.714.0
-      '@smithy/eventstream-codec': 3.1.10
-      '@smithy/eventstream-serde-browser': 3.0.14
-      '@smithy/fetch-http-handler': 4.1.3
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/signature-v4': 4.2.4
-      '@smithy/types': 3.7.2
-      '@smithy/util-hex-encoding': 3.0.0
+  '@aws-sdk/middleware-websocket@3.723.0':
+    dependencies:
+      '@aws-sdk/types': 3.723.0
+      '@aws-sdk/util-format-url': 3.723.0
+      '@smithy/eventstream-codec': 4.0.1
+      '@smithy/eventstream-serde-browser': 4.0.1
+      '@smithy/fetch-http-handler': 5.0.1
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/signature-v4': 5.0.1
+      '@smithy/types': 4.1.0
+      '@smithy/util-hex-encoding': 4.0.0
       tslib: 2.8.1
 
-  '@aws-sdk/region-config-resolver@3.714.0':
+  '@aws-sdk/region-config-resolver@3.723.0':
     dependencies:
-      '@aws-sdk/types': 3.714.0
-      '@smithy/node-config-provider': 3.1.12
-      '@smithy/types': 3.7.2
-      '@smithy/util-config-provider': 3.0.0
-      '@smithy/util-middleware': 3.0.11
+      '@aws-sdk/types': 3.723.0
+      '@smithy/node-config-provider': 4.0.1
+      '@smithy/types': 4.1.0
+      '@smithy/util-config-provider': 4.0.0
+      '@smithy/util-middleware': 4.0.1
       tslib: 2.8.1
 
-  '@aws-sdk/s3-request-presigner@3.721.0':
+  '@aws-sdk/s3-request-presigner@3.726.0':
     dependencies:
-      '@aws-sdk/signature-v4-multi-region': 3.716.0
-      '@aws-sdk/types': 3.714.0
-      '@aws-sdk/util-format-url': 3.714.0
-      '@smithy/middleware-endpoint': 3.2.8
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/smithy-client': 3.7.0
-      '@smithy/types': 3.7.2
+      '@aws-sdk/signature-v4-multi-region': 3.723.0
+      '@aws-sdk/types': 3.723.0
+      '@aws-sdk/util-format-url': 3.723.0
+      '@smithy/middleware-endpoint': 4.0.1
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/smithy-client': 4.1.0
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@aws-sdk/signature-v4-multi-region@3.716.0':
+  '@aws-sdk/signature-v4-multi-region@3.723.0':
     dependencies:
-      '@aws-sdk/middleware-sdk-s3': 3.716.0
-      '@aws-sdk/types': 3.714.0
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/signature-v4': 4.2.4
-      '@smithy/types': 3.7.2
+      '@aws-sdk/middleware-sdk-s3': 3.723.0
+      '@aws-sdk/types': 3.723.0
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/signature-v4': 5.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@aws-sdk/token-providers@3.721.0(@aws-sdk/client-sso-oidc@3.721.0(@aws-sdk/client-sts@3.721.0))':
+  '@aws-sdk/token-providers@3.723.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))':
     dependencies:
-      '@aws-sdk/client-sso-oidc': 3.721.0(@aws-sdk/client-sts@3.721.0)
-      '@aws-sdk/types': 3.714.0
-      '@smithy/property-provider': 3.1.11
-      '@smithy/shared-ini-file-loader': 3.1.12
-      '@smithy/types': 3.7.2
+      '@aws-sdk/client-sso-oidc': 3.726.0(@aws-sdk/client-sts@3.726.0)
+      '@aws-sdk/types': 3.723.0
+      '@smithy/property-provider': 4.0.1
+      '@smithy/shared-ini-file-loader': 4.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@aws-sdk/types@3.714.0':
+  '@aws-sdk/types@3.723.0':
     dependencies:
-      '@smithy/types': 3.7.2
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@aws-sdk/util-arn-parser@3.693.0':
+  '@aws-sdk/util-arn-parser@3.723.0':
     dependencies:
       tslib: 2.8.1
 
-  '@aws-sdk/util-endpoints@3.714.0':
+  '@aws-sdk/util-endpoints@3.726.0':
     dependencies:
-      '@aws-sdk/types': 3.714.0
-      '@smithy/types': 3.7.2
-      '@smithy/util-endpoints': 2.1.7
+      '@aws-sdk/types': 3.723.0
+      '@smithy/types': 4.1.0
+      '@smithy/util-endpoints': 3.0.1
       tslib: 2.8.1
 
-  '@aws-sdk/util-format-url@3.714.0':
+  '@aws-sdk/util-format-url@3.723.0':
     dependencies:
-      '@aws-sdk/types': 3.714.0
-      '@smithy/querystring-builder': 3.0.11
-      '@smithy/types': 3.7.2
+      '@aws-sdk/types': 3.723.0
+      '@smithy/querystring-builder': 4.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@aws-sdk/util-locate-window@3.693.0':
+  '@aws-sdk/util-locate-window@3.723.0':
     dependencies:
       tslib: 2.8.1
 
-  '@aws-sdk/util-user-agent-browser@3.714.0':
+  '@aws-sdk/util-user-agent-browser@3.723.0':
     dependencies:
-      '@aws-sdk/types': 3.714.0
-      '@smithy/types': 3.7.2
+      '@aws-sdk/types': 3.723.0
+      '@smithy/types': 4.1.0
       bowser: 2.11.0
       tslib: 2.8.1
 
-  '@aws-sdk/util-user-agent-node@3.721.0':
+  '@aws-sdk/util-user-agent-node@3.726.0':
     dependencies:
-      '@aws-sdk/middleware-user-agent': 3.721.0
-      '@aws-sdk/types': 3.714.0
-      '@smithy/node-config-provider': 3.1.12
-      '@smithy/types': 3.7.2
+      '@aws-sdk/middleware-user-agent': 3.726.0
+      '@aws-sdk/types': 3.723.0
+      '@smithy/node-config-provider': 4.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@aws-sdk/xml-builder@3.709.0':
+  '@aws-sdk/xml-builder@3.723.0':
     dependencies:
-      '@smithy/types': 3.7.2
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
   '@babel/code-frame@7.26.2':
@@ -20713,7 +20560,7 @@ snapshots:
     dependencies:
       '@babel/compat-data': 7.26.3
       '@babel/helper-validator-option': 7.25.9
-      browserslist: 4.24.3
+      browserslist: 4.24.4
       lru-cache: 5.1.1
       semver: 6.3.1
 
@@ -21421,7 +21268,7 @@ snapshots:
       babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.0)
       babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0)
       babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.0)
-      core-js-compat: 3.39.0
+      core-js-compat: 3.40.0
       semver: 6.3.1
     transitivePeerDependencies:
       - supports-color
@@ -21458,7 +21305,7 @@ snapshots:
 
   '@babel/runtime-corejs3@7.26.0':
     dependencies:
-      core-js-pure: 3.39.0
+      core-js-pure: 3.40.0
       regenerator-runtime: 0.14.1
 
   '@babel/runtime@7.26.0':
@@ -21502,7 +21349,7 @@ snapshots:
 
   '@braintree/sanitize-url@7.1.1': {}
 
-  '@cfworker/json-schema@4.0.3': {}
+  '@cfworker/json-schema@4.1.0': {}
 
   '@chevrotain/cst-dts-gen@11.0.3':
     dependencies:
@@ -21532,7 +21379,7 @@ snapshots:
       '@cliqz/adblocker': 1.34.0
       '@cliqz/adblocker-content': 1.34.0
       playwright: 1.48.2
-      tldts-experimental: 6.1.70
+      tldts-experimental: 6.1.71
 
   '@cliqz/adblocker@1.34.0':
     dependencies:
@@ -21543,7 +21390,7 @@ snapshots:
       '@remusao/smaz': 1.10.0
       '@types/chrome': 0.0.278
       '@types/firefox-webext-browser': 120.0.4
-      tldts-experimental: 6.1.70
+      tldts-experimental: 6.1.71
 
   '@coinbase-samples/advanced-sdk-ts@file:packages/plugin-coinbase/advanced-sdk-ts(encoding@0.1.13)':
     dependencies:
@@ -21577,11 +21424,11 @@ snapshots:
   '@colors/colors@1.5.0':
     optional: true
 
-  '@commitlint/cli@18.6.1(@types/node@22.10.4)(typescript@5.6.3)':
+  '@commitlint/cli@18.6.1(@types/node@22.10.5)(typescript@5.6.3)':
     dependencies:
       '@commitlint/format': 18.6.1
       '@commitlint/lint': 18.6.1
-      '@commitlint/load': 18.6.1(@types/node@22.10.4)(typescript@5.6.3)
+      '@commitlint/load': 18.6.1(@types/node@22.10.5)(typescript@5.6.3)
       '@commitlint/read': 18.6.1
       '@commitlint/types': 18.6.1
       execa: 5.1.1
@@ -21631,7 +21478,7 @@ snapshots:
       '@commitlint/rules': 18.6.1
       '@commitlint/types': 18.6.1
 
-  '@commitlint/load@18.6.1(@types/node@22.10.4)(typescript@5.6.3)':
+  '@commitlint/load@18.6.1(@types/node@22.10.5)(typescript@5.6.3)':
     dependencies:
       '@commitlint/config-validator': 18.6.1
       '@commitlint/execute-rule': 18.6.1
@@ -21639,7 +21486,7 @@ snapshots:
       '@commitlint/types': 18.6.1
       chalk: 4.1.2
       cosmiconfig: 8.3.6(typescript@5.6.3)
-      cosmiconfig-typescript-loader: 5.1.0(@types/node@22.10.4)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3)
+      cosmiconfig-typescript-loader: 5.1.0(@types/node@22.10.5)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3)
       lodash.isplainobject: 4.0.6
       lodash.merge: 4.6.2
       lodash.uniq: 4.5.0
@@ -22010,7 +21857,7 @@ snapshots:
   '@deepgram/sdk@3.9.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)':
     dependencies:
       '@deepgram/captions': 1.2.0
-      '@types/node': 18.19.69
+      '@types/node': 18.19.70
       cross-fetch: 3.2.0(encoding@0.1.13)
       deepmerge: 4.3.1
       events: 3.3.0
@@ -22148,12 +21995,12 @@ snapshots:
 
   '@docsearch/css@3.8.2': {}
 
-  '@docsearch/react@3.8.2(@algolia/client-search@5.18.0)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)':
+  '@docsearch/react@3.8.2(@algolia/client-search@5.19.0)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)':
     dependencies:
-      '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.18.0)(algoliasearch@5.18.0)(search-insights@2.17.3)
-      '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.18.0)(algoliasearch@5.18.0)
+      '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.19.0)(algoliasearch@5.19.0)(search-insights@2.17.3)
+      '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.19.0)(algoliasearch@5.19.0)
       '@docsearch/css': 3.8.2
-      algoliasearch: 5.18.0
+      algoliasearch: 5.19.0
     optionalDependencies:
       '@types/react': 18.3.12
       react: 18.3.1
@@ -22162,7 +22009,7 @@ snapshots:
     transitivePeerDependencies:
       - '@algolia/client-search'
 
-  '@docusaurus/babel@3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
+  '@docusaurus/babel@3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
     dependencies:
       '@babel/core': 7.26.0
       '@babel/generator': 7.26.3
@@ -22175,7 +22022,7 @@ snapshots:
       '@babel/runtime-corejs3': 7.26.0
       '@babel/traverse': 7.26.4
       '@docusaurus/logger': 3.6.3
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       babel-plugin-dynamic-import-node: 2.3.3
       fs-extra: 11.2.0
       tslib: 2.8.1
@@ -22190,33 +22037,33 @@ snapshots:
       - uglify-js
       - webpack-cli
 
-  '@docusaurus/bundler@3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
+  '@docusaurus/bundler@3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
     dependencies:
       '@babel/core': 7.26.0
-      '@docusaurus/babel': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/babel': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/cssnano-preset': 3.6.3
       '@docusaurus/logger': 3.6.3
-      '@docusaurus/types': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      babel-loader: 9.2.1(@babel/core@7.26.0)(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
+      '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      babel-loader: 9.2.1(@babel/core@7.26.0)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       clean-css: 5.3.3
-      copy-webpack-plugin: 11.0.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
-      css-loader: 6.11.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
-      css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
+      copy-webpack-plugin: 11.0.0(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
+      css-loader: 6.11.0(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
+      css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       cssnano: 6.1.2(postcss@8.4.49)
-      file-loader: 6.2.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
+      file-loader: 6.2.0(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       html-minifier-terser: 7.2.0
-      mini-css-extract-plugin: 2.9.2(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
-      null-loader: 4.0.1(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
+      mini-css-extract-plugin: 2.9.2(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
+      null-loader: 4.0.1(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       postcss: 8.4.49
-      postcss-loader: 7.3.4(postcss@8.4.49)(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
+      postcss-loader: 7.3.4(postcss@8.4.49)(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       postcss-preset-env: 10.1.3(postcss@8.4.49)
-      react-dev-utils: 12.0.1(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
-      terser-webpack-plugin: 5.3.11(@swc/core@1.10.4(@swc/helpers@0.5.15))(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
+      react-dev-utils: 12.0.1(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
+      terser-webpack-plugin: 5.3.11(@swc/core@1.10.7(@swc/helpers@0.5.15))(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       tslib: 2.8.1
-      url-loader: 4.1.1(file-loader@6.2.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))))(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
-      webpackbar: 6.0.1(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
+      url-loader: 4.1.1(file-loader@6.2.0(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))))(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
+      webpackbar: 6.0.1(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
     transitivePeerDependencies:
       - '@parcel/css'
       - '@rspack/core'
@@ -22235,15 +22082,15 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/core@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/core@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/babel': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/bundler': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/babel': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/bundler': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/logger': 3.6.3
-      '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@mdx-js/react': 3.0.1(@types/react@18.3.12)(react@18.3.1)
       boxen: 6.2.1
       chalk: 4.1.2
@@ -22251,7 +22098,7 @@ snapshots:
       cli-table3: 0.6.5
       combine-promises: 1.2.0
       commander: 5.1.0
-      core-js: 3.39.0
+      core-js: 3.40.0
       del: 6.1.1
       detect-port: 1.6.1
       escape-html: 1.0.3
@@ -22259,17 +22106,17 @@ snapshots:
       eval: 0.1.8
       fs-extra: 11.2.0
       html-tags: 3.3.1
-      html-webpack-plugin: 5.6.3(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
+      html-webpack-plugin: 5.6.3(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       leven: 3.1.0
       lodash: 4.17.21
       p-map: 4.0.0
       prompts: 2.4.2
       react: 18.3.1
-      react-dev-utils: 12.0.1(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
+      react-dev-utils: 12.0.1(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       react-dom: 18.3.1(react@18.3.1)
       react-helmet-async: 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       react-loadable: '@docusaurus/react-loadable@6.0.0(react@18.3.1)'
-      react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@6.0.0(react@18.3.1))(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
+      react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@6.0.0(react@18.3.1))(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       react-router: 5.3.4(react@18.3.1)
       react-router-config: 5.1.1(react-router@5.3.4(react@18.3.1))(react@18.3.1)
       react-router-dom: 5.3.4(react@18.3.1)
@@ -22279,9 +22126,9 @@ snapshots:
       shelljs: 0.8.5
       tslib: 2.8.1
       update-notifier: 6.0.2
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
       webpack-bundle-analyzer: 4.10.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)
-      webpack-dev-server: 4.15.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
+      webpack-dev-server: 4.15.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       webpack-merge: 6.0.1
     transitivePeerDependencies:
       - '@docusaurus/faster'
@@ -22315,26 +22162,26 @@ snapshots:
       chalk: 4.1.2
       tslib: 2.8.1
 
-  '@docusaurus/lqip-loader@3.6.3(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))':
+  '@docusaurus/lqip-loader@3.6.3(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))':
     dependencies:
       '@docusaurus/logger': 3.6.3
-      file-loader: 6.2.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
+      file-loader: 6.2.0(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       lodash: 4.17.21
       sharp: 0.32.6
       tslib: 2.8.1
     transitivePeerDependencies:
       - webpack
 
-  '@docusaurus/mdx-loader@3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
+  '@docusaurus/mdx-loader@3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
     dependencies:
       '@docusaurus/logger': 3.6.3
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@mdx-js/mdx': 3.1.0(acorn@8.14.0)
       '@slorber/remark-comment': 1.0.0
       escape-html: 1.0.3
       estree-util-value-to-estree: 3.2.1
-      file-loader: 6.2.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
+      file-loader: 6.2.0(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       fs-extra: 11.2.0
       image-size: 1.2.0
       mdast-util-mdx: 3.0.0
@@ -22350,9 +22197,9 @@ snapshots:
       tslib: 2.8.1
       unified: 11.0.5
       unist-util-visit: 5.0.0
-      url-loader: 4.1.1(file-loader@6.2.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))))(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
+      url-loader: 4.1.1(file-loader@6.2.0(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))))(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       vfile: 6.0.3
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
     transitivePeerDependencies:
       - '@swc/core'
       - acorn
@@ -22362,9 +22209,9 @@ snapshots:
       - uglify-js
       - webpack-cli
 
-  '@docusaurus/module-type-aliases@3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+  '@docusaurus/module-type-aliases@3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
     dependencies:
-      '@docusaurus/types': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@types/history': 4.7.11
       '@types/react': 18.3.12
       '@types/react-router-config': 5.0.11
@@ -22381,17 +22228,17 @@ snapshots:
       - uglify-js
       - webpack-cli
 
-  '@docusaurus/plugin-content-blog@3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-content-blog@3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
       '@docusaurus/logger': 3.6.3
-      '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/types': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       cheerio: 1.0.0-rc.12
       feed: 4.2.2
       fs-extra: 11.2.0
@@ -22403,7 +22250,7 @@ snapshots:
       tslib: 2.8.1
       unist-util-visit: 5.0.0
       utility-types: 3.11.0
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
     transitivePeerDependencies:
       - '@docusaurus/faster'
       - '@mdx-js/react'
@@ -22425,17 +22272,17 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
       '@docusaurus/logger': 3.6.3
-      '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/module-type-aliases': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/types': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/module-type-aliases': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@types/react-router-config': 5.0.11
       combine-promises: 1.2.0
       fs-extra: 11.2.0
@@ -22445,7 +22292,7 @@ snapshots:
       react-dom: 18.3.1(react@18.3.1)
       tslib: 2.8.1
       utility-types: 3.11.0
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
     transitivePeerDependencies:
       - '@docusaurus/faster'
       - '@mdx-js/react'
@@ -22467,18 +22314,18 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-content-pages@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-content-pages@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/types': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       fs-extra: 11.2.0
       react: 18.3.1
       react-dom: 18.3.1(react@18.3.1)
       tslib: 2.8.1
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
     transitivePeerDependencies:
       - '@docusaurus/faster'
       - '@mdx-js/react'
@@ -22500,11 +22347,11 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-debug@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-debug@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/types': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       fs-extra: 11.2.0
       react: 18.3.1
       react-dom: 18.3.1(react@18.3.1)
@@ -22531,11 +22378,11 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-google-analytics@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-google-analytics@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/types': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       react: 18.3.1
       react-dom: 18.3.1(react@18.3.1)
       tslib: 2.8.1
@@ -22560,11 +22407,11 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-google-gtag@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-google-gtag@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/types': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@types/gtag.js': 0.0.12
       react: 18.3.1
       react-dom: 18.3.1(react@18.3.1)
@@ -22590,11 +22437,11 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-google-tag-manager@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-google-tag-manager@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/types': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       react: 18.3.1
       react-dom: 18.3.1(react@18.3.1)
       tslib: 2.8.1
@@ -22619,21 +22466,21 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-ideal-image@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-ideal-image@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/lqip-loader': 3.6.3(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/lqip-loader': 3.6.3(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       '@docusaurus/responsive-loader': 1.7.0(sharp@0.32.6)
       '@docusaurus/theme-translations': 3.6.3
-      '@docusaurus/types': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@slorber/react-ideal-image': 0.0.12(prop-types@15.8.1)(react-waypoint@10.3.0(react@18.3.1))(react@18.3.1)
       react: 18.3.1
       react-dom: 18.3.1(react@18.3.1)
       react-waypoint: 10.3.0(react@18.3.1)
       sharp: 0.32.6
       tslib: 2.8.1
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
     transitivePeerDependencies:
       - '@docusaurus/faster'
       - '@mdx-js/react'
@@ -22656,14 +22503,14 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-sitemap@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-sitemap@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
       '@docusaurus/logger': 3.6.3
-      '@docusaurus/types': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       fs-extra: 11.2.0
       react: 18.3.1
       react-dom: 18.3.1(react@18.3.1)
@@ -22690,21 +22537,21 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/preset-classic@3.6.3(@algolia/client-search@5.18.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3)(utf-8-validate@5.0.10)':
-    dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-content-blog': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-content-pages': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-debug': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-google-analytics': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-google-gtag': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-google-tag-manager': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-sitemap': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/theme-classic': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/theme-search-algolia': 3.6.3(@algolia/client-search@5.18.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/types': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+  '@docusaurus/preset-classic@3.6.3(@algolia/client-search@5.19.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+    dependencies:
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-content-blog': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-content-pages': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-debug': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-google-analytics': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-google-gtag': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-google-tag-manager': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-sitemap': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/theme-classic': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/theme-search-algolia': 3.6.3(@algolia/client-search@5.19.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       react: 18.3.1
       react-dom: 18.3.1(react@18.3.1)
     transitivePeerDependencies:
@@ -22742,21 +22589,21 @@ snapshots:
     optionalDependencies:
       sharp: 0.32.6
 
-  '@docusaurus/theme-classic@3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/theme-classic@3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
       '@docusaurus/logger': 3.6.3
-      '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/module-type-aliases': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/plugin-content-blog': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-content-pages': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/module-type-aliases': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/plugin-content-blog': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-content-pages': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/theme-translations': 3.6.3
-      '@docusaurus/types': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@mdx-js/react': 3.0.1(@types/react@18.3.12)(react@18.3.1)
       clsx: 2.1.1
       copy-text-to-clipboard: 3.2.0
@@ -22793,13 +22640,13 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/theme-common@3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
+  '@docusaurus/theme-common@3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
     dependencies:
-      '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/module-type-aliases': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/module-type-aliases': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@types/history': 4.7.11
       '@types/react': 18.3.12
       '@types/react-router-config': 5.0.11
@@ -22819,13 +22666,13 @@ snapshots:
       - uglify-js
       - webpack-cli
 
-  '@docusaurus/theme-mermaid@3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/theme-mermaid@3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/module-type-aliases': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/types': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/module-type-aliases': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       mermaid: 11.4.1
       react: 18.3.1
       react-dom: 18.3.1(react@18.3.1)
@@ -22852,16 +22699,16 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/theme-search-algolia@3.6.3(@algolia/client-search@5.18.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/theme-search-algolia@3.6.3(@algolia/client-search@5.19.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docsearch/react': 3.8.2(@algolia/client-search@5.18.0)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docsearch/react': 3.8.2(@algolia/client-search@5.19.0)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
       '@docusaurus/logger': 3.6.3
-      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/theme-translations': 3.6.3
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       algoliasearch: 4.24.0
       algoliasearch-helper: 3.22.6(algoliasearch@4.24.0)
       clsx: 2.1.1
@@ -22901,7 +22748,7 @@ snapshots:
       fs-extra: 11.2.0
       tslib: 2.8.1
 
-  '@docusaurus/types@3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+  '@docusaurus/types@3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
     dependencies:
       '@mdx-js/mdx': 3.1.0(acorn@8.14.0)
       '@types/history': 4.7.11
@@ -22912,7 +22759,7 @@ snapshots:
       react-dom: 18.3.1(react@18.3.1)
       react-helmet-async: 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       utility-types: 3.11.0
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
       webpack-merge: 5.10.0
     transitivePeerDependencies:
       - '@swc/core'
@@ -22922,9 +22769,9 @@ snapshots:
       - uglify-js
       - webpack-cli
 
-  '@docusaurus/utils-common@3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+  '@docusaurus/utils-common@3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
     dependencies:
-      '@docusaurus/types': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       tslib: 2.8.1
     transitivePeerDependencies:
       - '@swc/core'
@@ -22936,11 +22783,11 @@ snapshots:
       - uglify-js
       - webpack-cli
 
-  '@docusaurus/utils-validation@3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
+  '@docusaurus/utils-validation@3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
     dependencies:
       '@docusaurus/logger': 3.6.3
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       fs-extra: 11.2.0
       joi: 17.13.3
       js-yaml: 4.1.0
@@ -22957,14 +22804,14 @@ snapshots:
       - uglify-js
       - webpack-cli
 
-  '@docusaurus/utils@3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
+  '@docusaurus/utils@3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
     dependencies:
       '@docusaurus/logger': 3.6.3
-      '@docusaurus/types': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+      '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@svgr/webpack': 8.1.0(typescript@5.6.3)
       escape-string-regexp: 4.0.0
-      file-loader: 6.2.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
+      file-loader: 6.2.0(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       fs-extra: 11.2.0
       github-slugger: 1.5.0
       globby: 11.1.0
@@ -22977,9 +22824,9 @@ snapshots:
       resolve-pathname: 3.0.0
       shelljs: 0.8.5
       tslib: 2.8.1
-      url-loader: 4.1.1(file-loader@6.2.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))))(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
+      url-loader: 4.1.1(file-loader@6.2.0(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))))(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       utility-types: 3.11.0
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
     transitivePeerDependencies:
       - '@swc/core'
       - acorn
@@ -23022,56 +22869,6 @@ snapshots:
       '@huggingface/jinja': 0.2.2
       onnxruntime-node: 1.20.1
 
-  '@elizaos/core@0.1.7-alpha.2(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.16.1))(svelte@5.16.1)':
-    dependencies:
-      '@ai-sdk/anthropic': 0.0.56(zod@3.23.8)
-      '@ai-sdk/google': 0.0.55(zod@3.23.8)
-      '@ai-sdk/google-vertex': 0.0.43(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(zod@3.23.8)
-      '@ai-sdk/groq': 0.0.3(zod@3.23.8)
-      '@ai-sdk/openai': 1.0.5(zod@3.23.8)
-      '@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.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.16.1))(svelte@5.16.1)(vue@3.5.13(typescript@5.6.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
-      gaxios: 6.7.1(encoding@0.1.13)
-      glob: 11.0.0
-      handlebars: 4.7.8
-      js-sha1: 0.7.0
-      js-tiktoken: 1.0.15
-      langchain: 0.3.6(@langchain/core@0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))
-      ollama-ai-provider: 0.16.1(zod@3.23.8)
-      openai: 4.73.0(encoding@0.1.13)(zod@3.23.8)
-      tinyld: 1.3.4
-      together-ai: 0.7.0(encoding@0.1.13)
-      unique-names-generator: 4.7.1
-      uuid: 11.0.3
-      zod: 3.23.8
-    transitivePeerDependencies:
-      - '@google-cloud/vertexai'
-      - '@langchain/anthropic'
-      - '@langchain/aws'
-      - '@langchain/cohere'
-      - '@langchain/core'
-      - '@langchain/google-genai'
-      - '@langchain/google-vertexai'
-      - '@langchain/groq'
-      - '@langchain/mistralai'
-      - '@langchain/ollama'
-      - axios
-      - cheerio
-      - encoding
-      - peggy
-      - react
-      - solid-js
-      - sswr
-      - supports-color
-      - svelte
-      - typeorm
-      - vue
-
   '@emnapi/core@1.3.1':
     dependencies:
       '@emnapi/wasi-threads': 1.0.1
@@ -23097,9 +22894,6 @@ snapshots:
   '@esbuild/aix-ppc64@0.21.5':
     optional: true
 
-  '@esbuild/aix-ppc64@0.23.1':
-    optional: true
-
   '@esbuild/aix-ppc64@0.24.2':
     optional: true
 
@@ -23109,9 +22903,6 @@ snapshots:
   '@esbuild/android-arm64@0.21.5':
     optional: true
 
-  '@esbuild/android-arm64@0.23.1':
-    optional: true
-
   '@esbuild/android-arm64@0.24.2':
     optional: true
 
@@ -23121,9 +22912,6 @@ snapshots:
   '@esbuild/android-arm@0.21.5':
     optional: true
 
-  '@esbuild/android-arm@0.23.1':
-    optional: true
-
   '@esbuild/android-arm@0.24.2':
     optional: true
 
@@ -23133,9 +22921,6 @@ snapshots:
   '@esbuild/android-x64@0.21.5':
     optional: true
 
-  '@esbuild/android-x64@0.23.1':
-    optional: true
-
   '@esbuild/android-x64@0.24.2':
     optional: true
 
@@ -23145,9 +22930,6 @@ snapshots:
   '@esbuild/darwin-arm64@0.21.5':
     optional: true
 
-  '@esbuild/darwin-arm64@0.23.1':
-    optional: true
-
   '@esbuild/darwin-arm64@0.24.2':
     optional: true
 
@@ -23157,9 +22939,6 @@ snapshots:
   '@esbuild/darwin-x64@0.21.5':
     optional: true
 
-  '@esbuild/darwin-x64@0.23.1':
-    optional: true
-
   '@esbuild/darwin-x64@0.24.2':
     optional: true
 
@@ -23169,9 +22948,6 @@ snapshots:
   '@esbuild/freebsd-arm64@0.21.5':
     optional: true
 
-  '@esbuild/freebsd-arm64@0.23.1':
-    optional: true
-
   '@esbuild/freebsd-arm64@0.24.2':
     optional: true
 
@@ -23181,9 +22957,6 @@ snapshots:
   '@esbuild/freebsd-x64@0.21.5':
     optional: true
 
-  '@esbuild/freebsd-x64@0.23.1':
-    optional: true
-
   '@esbuild/freebsd-x64@0.24.2':
     optional: true
 
@@ -23193,9 +22966,6 @@ snapshots:
   '@esbuild/linux-arm64@0.21.5':
     optional: true
 
-  '@esbuild/linux-arm64@0.23.1':
-    optional: true
-
   '@esbuild/linux-arm64@0.24.2':
     optional: true
 
@@ -23205,9 +22975,6 @@ snapshots:
   '@esbuild/linux-arm@0.21.5':
     optional: true
 
-  '@esbuild/linux-arm@0.23.1':
-    optional: true
-
   '@esbuild/linux-arm@0.24.2':
     optional: true
 
@@ -23217,9 +22984,6 @@ snapshots:
   '@esbuild/linux-ia32@0.21.5':
     optional: true
 
-  '@esbuild/linux-ia32@0.23.1':
-    optional: true
-
   '@esbuild/linux-ia32@0.24.2':
     optional: true
 
@@ -23229,9 +22993,6 @@ snapshots:
   '@esbuild/linux-loong64@0.21.5':
     optional: true
 
-  '@esbuild/linux-loong64@0.23.1':
-    optional: true
-
   '@esbuild/linux-loong64@0.24.2':
     optional: true
 
@@ -23241,9 +23002,6 @@ snapshots:
   '@esbuild/linux-mips64el@0.21.5':
     optional: true
 
-  '@esbuild/linux-mips64el@0.23.1':
-    optional: true
-
   '@esbuild/linux-mips64el@0.24.2':
     optional: true
 
@@ -23253,9 +23011,6 @@ snapshots:
   '@esbuild/linux-ppc64@0.21.5':
     optional: true
 
-  '@esbuild/linux-ppc64@0.23.1':
-    optional: true
-
   '@esbuild/linux-ppc64@0.24.2':
     optional: true
 
@@ -23265,9 +23020,6 @@ snapshots:
   '@esbuild/linux-riscv64@0.21.5':
     optional: true
 
-  '@esbuild/linux-riscv64@0.23.1':
-    optional: true
-
   '@esbuild/linux-riscv64@0.24.2':
     optional: true
 
@@ -23277,9 +23029,6 @@ snapshots:
   '@esbuild/linux-s390x@0.21.5':
     optional: true
 
-  '@esbuild/linux-s390x@0.23.1':
-    optional: true
-
   '@esbuild/linux-s390x@0.24.2':
     optional: true
 
@@ -23289,9 +23038,6 @@ snapshots:
   '@esbuild/linux-x64@0.21.5':
     optional: true
 
-  '@esbuild/linux-x64@0.23.1':
-    optional: true
-
   '@esbuild/linux-x64@0.24.2':
     optional: true
 
@@ -23304,15 +23050,9 @@ snapshots:
   '@esbuild/netbsd-x64@0.21.5':
     optional: true
 
-  '@esbuild/netbsd-x64@0.23.1':
-    optional: true
-
   '@esbuild/netbsd-x64@0.24.2':
     optional: true
 
-  '@esbuild/openbsd-arm64@0.23.1':
-    optional: true
-
   '@esbuild/openbsd-arm64@0.24.2':
     optional: true
 
@@ -23322,9 +23062,6 @@ snapshots:
   '@esbuild/openbsd-x64@0.21.5':
     optional: true
 
-  '@esbuild/openbsd-x64@0.23.1':
-    optional: true
-
   '@esbuild/openbsd-x64@0.24.2':
     optional: true
 
@@ -23334,9 +23071,6 @@ snapshots:
   '@esbuild/sunos-x64@0.21.5':
     optional: true
 
-  '@esbuild/sunos-x64@0.23.1':
-    optional: true
-
   '@esbuild/sunos-x64@0.24.2':
     optional: true
 
@@ -23346,9 +23080,6 @@ snapshots:
   '@esbuild/win32-arm64@0.21.5':
     optional: true
 
-  '@esbuild/win32-arm64@0.23.1':
-    optional: true
-
   '@esbuild/win32-arm64@0.24.2':
     optional: true
 
@@ -23358,9 +23089,6 @@ snapshots:
   '@esbuild/win32-ia32@0.21.5':
     optional: true
 
-  '@esbuild/win32-ia32@0.23.1':
-    optional: true
-
   '@esbuild/win32-ia32@0.24.2':
     optional: true
 
@@ -23370,9 +23098,6 @@ snapshots:
   '@esbuild/win32-x64@0.21.5':
     optional: true
 
-  '@esbuild/win32-x64@0.23.1':
-    optional: true
-
   '@esbuild/win32-x64@0.24.2':
     optional: true
 
@@ -23740,40 +23465,40 @@ snapshots:
   '@ffmpeg-installer/win32-x64@4.1.0':
     optional: true
 
-  '@floating-ui/core@1.6.8':
+  '@floating-ui/core@1.6.9':
     dependencies:
-      '@floating-ui/utils': 0.2.8
+      '@floating-ui/utils': 0.2.9
 
-  '@floating-ui/dom@1.6.12':
+  '@floating-ui/dom@1.6.13':
     dependencies:
-      '@floating-ui/core': 1.6.8
-      '@floating-ui/utils': 0.2.8
+      '@floating-ui/core': 1.6.9
+      '@floating-ui/utils': 0.2.9
 
   '@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
     dependencies:
-      '@floating-ui/dom': 1.6.12
+      '@floating-ui/dom': 1.6.13
       react: 18.3.1
       react-dom: 18.3.1(react@18.3.1)
 
-  '@floating-ui/utils@0.2.8': {}
+  '@floating-ui/utils@0.2.9': {}
 
-  '@fuel-ts/abi-coder@0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
+  '@fuel-ts/abi-coder@0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
     dependencies:
-      '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       '@fuel-ts/errors': 0.97.2
-      '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       '@fuel-ts/interfaces': 0.97.2
       '@fuel-ts/math': 0.97.2
-      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      type-fest: 4.31.0
+      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      type-fest: 4.32.0
     transitivePeerDependencies:
       - vitest
 
-  '@fuel-ts/abi-typegen@0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
+  '@fuel-ts/abi-typegen@0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
     dependencies:
       '@fuel-ts/errors': 0.97.2
       '@fuel-ts/interfaces': 0.97.2
-      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       '@fuel-ts/versions': 0.97.2
       commander: 12.1.0
       glob: 10.4.5
@@ -23784,18 +23509,18 @@ snapshots:
     transitivePeerDependencies:
       - vitest
 
-  '@fuel-ts/account@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
+  '@fuel-ts/account@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
     dependencies:
-      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       '@fuel-ts/errors': 0.97.2
-      '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       '@fuel-ts/interfaces': 0.97.2
       '@fuel-ts/math': 0.97.2
-      '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       '@fuel-ts/versions': 0.97.2
       '@fuels/vm-asm': 0.58.2
       '@noble/curves': 1.8.0
@@ -23808,30 +23533,30 @@ snapshots:
       - encoding
       - vitest
 
-  '@fuel-ts/address@0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
+  '@fuel-ts/address@0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
     dependencies:
-      '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       '@fuel-ts/errors': 0.97.2
       '@fuel-ts/interfaces': 0.97.2
-      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       '@noble/hashes': 1.7.0
       bech32: 2.0.0
     transitivePeerDependencies:
       - vitest
 
-  '@fuel-ts/contract@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
+  '@fuel-ts/contract@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
     dependencies:
-      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       '@fuel-ts/errors': 0.97.2
-      '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       '@fuel-ts/interfaces': 0.97.2
       '@fuel-ts/math': 0.97.2
-      '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       '@fuel-ts/versions': 0.97.2
       '@fuels/vm-asm': 0.58.2
       ramda: 0.30.1
@@ -23839,12 +23564,12 @@ snapshots:
       - encoding
       - vitest
 
-  '@fuel-ts/crypto@0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
+  '@fuel-ts/crypto@0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
     dependencies:
       '@fuel-ts/errors': 0.97.2
       '@fuel-ts/interfaces': 0.97.2
       '@fuel-ts/math': 0.97.2
-      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       '@noble/hashes': 1.7.0
     transitivePeerDependencies:
       - vitest
@@ -23853,11 +23578,11 @@ snapshots:
     dependencies:
       '@fuel-ts/versions': 0.97.2
 
-  '@fuel-ts/hasher@0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
+  '@fuel-ts/hasher@0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
     dependencies:
-      '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       '@fuel-ts/interfaces': 0.97.2
-      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       '@noble/hashes': 1.7.0
     transitivePeerDependencies:
       - vitest
@@ -23870,78 +23595,78 @@ snapshots:
       '@types/bn.js': 5.1.6
       bn.js: 5.2.1
 
-  '@fuel-ts/merkle@0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
+  '@fuel-ts/merkle@0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
     dependencies:
-      '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       '@fuel-ts/math': 0.97.2
     transitivePeerDependencies:
       - vitest
 
-  '@fuel-ts/program@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
+  '@fuel-ts/program@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
     dependencies:
-      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       '@fuel-ts/errors': 0.97.2
       '@fuel-ts/interfaces': 0.97.2
       '@fuel-ts/math': 0.97.2
-      '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       '@fuels/vm-asm': 0.58.2
       ramda: 0.30.1
     transitivePeerDependencies:
       - encoding
       - vitest
 
-  '@fuel-ts/recipes@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
+  '@fuel-ts/recipes@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
     dependencies:
-      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       '@fuel-ts/interfaces': 0.97.2
-      '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
     transitivePeerDependencies:
       - encoding
       - vitest
 
-  '@fuel-ts/script@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
+  '@fuel-ts/script@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
     dependencies:
-      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       '@fuel-ts/errors': 0.97.2
       '@fuel-ts/interfaces': 0.97.2
       '@fuel-ts/math': 0.97.2
-      '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
     transitivePeerDependencies:
       - encoding
       - vitest
 
-  '@fuel-ts/transactions@0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
+  '@fuel-ts/transactions@0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
     dependencies:
-      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       '@fuel-ts/errors': 0.97.2
-      '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       '@fuel-ts/interfaces': 0.97.2
       '@fuel-ts/math': 0.97.2
-      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
     transitivePeerDependencies:
       - vitest
 
-  '@fuel-ts/utils@0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
+  '@fuel-ts/utils@0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
     dependencies:
       '@fuel-ts/errors': 0.97.2
       '@fuel-ts/interfaces': 0.97.2
       '@fuel-ts/math': 0.97.2
       '@fuel-ts/versions': 0.97.2
       fflate: 0.8.2
-      vitest: 2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
+      vitest: 2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
 
   '@fuel-ts/versions@0.97.2':
     dependencies:
@@ -23950,10 +23675,10 @@ snapshots:
 
   '@fuels/vm-asm@0.58.2': {}
 
-  '@goat-sdk/adapter-vercel-ai@0.2.0(@goat-sdk/core@0.4.0)(ai@3.4.33(openai@4.77.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.16.1))(svelte@5.16.1)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8))':
+  '@goat-sdk/adapter-vercel-ai@0.2.0(@goat-sdk/core@0.4.0)(ai@3.4.33(openai@4.78.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8))':
     dependencies:
       '@goat-sdk/core': 0.4.0
-      ai: 3.4.33(openai@4.77.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.16.1))(svelte@5.16.1)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8)
+      ai: 3.4.33(openai@4.78.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8)
       zod: 3.23.8
 
   '@goat-sdk/core@0.4.0':
@@ -24015,7 +23740,7 @@ snapshots:
 
   '@gql.tada/internal@1.0.8(graphql@16.10.0)(typescript@5.6.3)':
     dependencies:
-      '@0no-co/graphql.web': 1.0.12(graphql@16.10.0)
+      '@0no-co/graphql.web': 1.0.13(graphql@16.10.0)
       graphql: 16.10.0
       typescript: 5.6.3
 
@@ -24198,7 +23923,7 @@ snapshots:
       jest-util: 29.7.0
       slash: 3.0.0
 
-  '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3))':
+  '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3))':
     dependencies:
       '@jest/console': 29.7.0
       '@jest/reporters': 29.7.0
@@ -24212,7 +23937,7 @@ snapshots:
       exit: 0.1.2
       graceful-fs: 4.2.11
       jest-changed-files: 29.7.0
-      jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3))
+      jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3))
       jest-haste-map: 29.7.0
       jest-message-util: 29.7.0
       jest-regex-util: 29.6.3
@@ -24233,7 +23958,7 @@ snapshots:
       - supports-color
       - ts-node
 
-  '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))':
+  '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))':
     dependencies:
       '@jest/console': 29.7.0
       '@jest/reporters': 29.7.0
@@ -24247,7 +23972,7 @@ snapshots:
       exit: 0.1.2
       graceful-fs: 4.2.11
       jest-changed-files: 29.7.0
-      jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+      jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
       jest-haste-map: 29.7.0
       jest-message-util: 29.7.0
       jest-regex-util: 29.6.3
@@ -24268,7 +23993,7 @@ snapshots:
       - supports-color
       - ts-node
 
-  '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))':
+  '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))':
     dependencies:
       '@jest/console': 29.7.0
       '@jest/reporters': 29.7.0
@@ -24282,7 +24007,7 @@ snapshots:
       exit: 0.1.2
       graceful-fs: 4.2.11
       jest-changed-files: 29.7.0
-      jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
+      jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
       jest-haste-map: 29.7.0
       jest-message-util: 29.7.0
       jest-regex-util: 29.6.3
@@ -24462,12 +24187,12 @@ snapshots:
 
   '@langchain/core@0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))':
     dependencies:
-      '@cfworker/json-schema': 4.0.3
+      '@cfworker/json-schema': 4.1.0
       ansi-styles: 5.2.0
       camelcase: 6.3.0
       decamelize: 1.2.0
       js-tiktoken: 1.0.15
-      langsmith: 0.2.14(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))
+      langsmith: 0.2.15(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))
       mustache: 4.2.0
       p-queue: 6.6.2
       p-retry: 4.6.2
@@ -24481,7 +24206,7 @@ snapshots:
     dependencies:
       '@langchain/core': 0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))
       js-tiktoken: 1.0.15
-      openai: 4.77.0(encoding@0.1.13)(zod@3.23.8)
+      openai: 4.78.0(encoding@0.1.13)(zod@3.23.8)
       zod: 3.23.8
       zod-to-json-schema: 3.24.1(zod@3.23.8)
     transitivePeerDependencies:
@@ -24640,12 +24365,12 @@ snapshots:
       tslib: 2.8.1
       zod: 3.23.8
 
-  '@lerna/create@8.1.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(encoding@0.1.13)(typescript@5.6.3)':
+  '@lerna/create@8.1.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(encoding@0.1.13)(typescript@5.6.3)':
     dependencies:
       '@npmcli/arborist': 7.5.3
       '@npmcli/package-json': 5.2.0
       '@npmcli/run-script': 8.1.0
-      '@nx/devkit': 19.8.14(nx@19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15)))
+      '@nx/devkit': 19.8.14(nx@19.8.14(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       '@octokit/plugin-enterprise-rest': 6.0.1
       '@octokit/rest': 19.0.11(encoding@0.1.13)
       aproba: 2.0.0
@@ -24684,7 +24409,7 @@ snapshots:
       npm-package-arg: 11.0.2
       npm-packlist: 8.0.2
       npm-registry-fetch: 17.1.0
-      nx: 19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      nx: 19.8.14(@swc/core@1.10.7(@swc/helpers@0.5.15))
       p-map: 4.0.0
       p-map-series: 2.1.0
       p-queue: 6.6.2
@@ -25173,14 +24898,14 @@ snapshots:
     dependencies:
       bech32: 2.0.0
 
-  '@mysten/bcs@1.2.0':
+  '@mysten/bcs@1.2.1':
     dependencies:
       bs58: 6.0.0
 
-  '@mysten/sui@1.18.0(typescript@5.6.3)':
+  '@mysten/sui@1.18.1(typescript@5.6.3)':
     dependencies:
       '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0)
-      '@mysten/bcs': 1.2.0
+      '@mysten/bcs': 1.2.1
       '@noble/curves': 1.8.0
       '@noble/hashes': 1.7.0
       '@scure/bip32': 1.6.1
@@ -25332,7 +25057,7 @@ snapshots:
     transitivePeerDependencies:
       - encoding
 
-  '@neynar/nodejs-sdk@2.7.0(bufferutil@4.0.9)(class-transformer@0.5.1)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)':
+  '@neynar/nodejs-sdk@2.8.0(bufferutil@4.0.9)(class-transformer@0.5.1)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)':
     dependencies:
       '@openapitools/openapi-generator-cli': 2.15.3(class-transformer@0.5.1)(encoding@0.1.13)
       semver: 7.6.3
@@ -25647,15 +25372,15 @@ snapshots:
       - bluebird
       - supports-color
 
-  '@nrwl/devkit@19.8.14(nx@19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15)))':
+  '@nrwl/devkit@19.8.14(nx@19.8.14(@swc/core@1.10.7(@swc/helpers@0.5.15)))':
     dependencies:
-      '@nx/devkit': 19.8.14(nx@19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15)))
+      '@nx/devkit': 19.8.14(nx@19.8.14(@swc/core@1.10.7(@swc/helpers@0.5.15)))
     transitivePeerDependencies:
       - nx
 
-  '@nrwl/tao@19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15))':
+  '@nrwl/tao@19.8.14(@swc/core@1.10.7(@swc/helpers@0.5.15))':
     dependencies:
-      nx: 19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      nx: 19.8.14(@swc/core@1.10.7(@swc/helpers@0.5.15))
       tslib: 2.8.1
     transitivePeerDependencies:
       - '@swc-node/register'
@@ -25670,14 +25395,14 @@ snapshots:
     transitivePeerDependencies:
       - encoding
 
-  '@nx/devkit@19.8.14(nx@19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15)))':
+  '@nx/devkit@19.8.14(nx@19.8.14(@swc/core@1.10.7(@swc/helpers@0.5.15)))':
     dependencies:
-      '@nrwl/devkit': 19.8.14(nx@19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15)))
+      '@nrwl/devkit': 19.8.14(nx@19.8.14(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       ejs: 3.1.10
       enquirer: 2.3.6
       ignore: 5.3.2
       minimatch: 9.0.3
-      nx: 19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      nx: 19.8.14(@swc/core@1.10.7(@swc/helpers@0.5.15))
       semver: 7.6.3
       tmp: 0.2.3
       tslib: 2.8.1
@@ -25713,48 +25438,48 @@ snapshots:
   '@nx/nx-win32-x64-msvc@19.8.14':
     optional: true
 
-  '@octokit/app@15.1.1':
+  '@octokit/app@15.1.2':
     dependencies:
-      '@octokit/auth-app': 7.1.3
-      '@octokit/auth-unauthenticated': 6.1.0
-      '@octokit/core': 6.1.2
-      '@octokit/oauth-app': 7.1.4
-      '@octokit/plugin-paginate-rest': 11.3.6(@octokit/core@6.1.2)
-      '@octokit/types': 13.6.2
-      '@octokit/webhooks': 13.4.1
+      '@octokit/auth-app': 7.1.4
+      '@octokit/auth-unauthenticated': 6.1.1
+      '@octokit/core': 6.1.3
+      '@octokit/oauth-app': 7.1.5
+      '@octokit/plugin-paginate-rest': 11.4.0(@octokit/core@6.1.3)
+      '@octokit/types': 13.7.0
+      '@octokit/webhooks': 13.4.2
 
-  '@octokit/auth-app@7.1.3':
+  '@octokit/auth-app@7.1.4':
     dependencies:
-      '@octokit/auth-oauth-app': 8.1.1
-      '@octokit/auth-oauth-user': 5.1.1
+      '@octokit/auth-oauth-app': 8.1.2
+      '@octokit/auth-oauth-user': 5.1.2
       '@octokit/request': 9.1.4
       '@octokit/request-error': 6.1.6
-      '@octokit/types': 13.6.2
+      '@octokit/types': 13.7.0
       toad-cache: 3.7.0
       universal-github-app-jwt: 2.2.0
       universal-user-agent: 7.0.2
 
-  '@octokit/auth-oauth-app@8.1.1':
+  '@octokit/auth-oauth-app@8.1.2':
     dependencies:
-      '@octokit/auth-oauth-device': 7.1.1
-      '@octokit/auth-oauth-user': 5.1.1
+      '@octokit/auth-oauth-device': 7.1.2
+      '@octokit/auth-oauth-user': 5.1.2
       '@octokit/request': 9.1.4
-      '@octokit/types': 13.6.2
+      '@octokit/types': 13.7.0
       universal-user-agent: 7.0.2
 
-  '@octokit/auth-oauth-device@7.1.1':
+  '@octokit/auth-oauth-device@7.1.2':
     dependencies:
       '@octokit/oauth-methods': 5.1.3
       '@octokit/request': 9.1.4
-      '@octokit/types': 13.6.2
+      '@octokit/types': 13.7.0
       universal-user-agent: 7.0.2
 
-  '@octokit/auth-oauth-user@5.1.1':
+  '@octokit/auth-oauth-user@5.1.2':
     dependencies:
-      '@octokit/auth-oauth-device': 7.1.1
+      '@octokit/auth-oauth-device': 7.1.2
       '@octokit/oauth-methods': 5.1.3
       '@octokit/request': 9.1.4
-      '@octokit/types': 13.6.2
+      '@octokit/types': 13.7.0
       universal-user-agent: 7.0.2
 
   '@octokit/auth-token@3.0.4': {}
@@ -25763,10 +25488,10 @@ snapshots:
 
   '@octokit/auth-token@5.1.1': {}
 
-  '@octokit/auth-unauthenticated@6.1.0':
+  '@octokit/auth-unauthenticated@6.1.1':
     dependencies:
       '@octokit/request-error': 6.1.6
-      '@octokit/types': 13.6.2
+      '@octokit/types': 13.7.0
 
   '@octokit/core@4.2.4(encoding@0.1.13)':
     dependencies:
@@ -25786,23 +25511,23 @@ snapshots:
       '@octokit/graphql': 7.1.0
       '@octokit/request': 8.4.0
       '@octokit/request-error': 5.1.0
-      '@octokit/types': 13.6.2
+      '@octokit/types': 13.7.0
       before-after-hook: 2.2.3
       universal-user-agent: 6.0.1
 
-  '@octokit/core@6.1.2':
+  '@octokit/core@6.1.3':
     dependencies:
       '@octokit/auth-token': 5.1.1
       '@octokit/graphql': 8.1.2
       '@octokit/request': 9.1.4
       '@octokit/request-error': 6.1.6
-      '@octokit/types': 13.6.2
+      '@octokit/types': 13.7.0
       before-after-hook: 3.0.2
       universal-user-agent: 7.0.2
 
   '@octokit/endpoint@10.1.2':
     dependencies:
-      '@octokit/types': 13.6.2
+      '@octokit/types': 13.7.0
       universal-user-agent: 7.0.2
 
   '@octokit/endpoint@7.0.6':
@@ -25813,7 +25538,7 @@ snapshots:
 
   '@octokit/endpoint@9.0.5':
     dependencies:
-      '@octokit/types': 13.6.2
+      '@octokit/types': 13.7.0
       universal-user-agent: 6.0.1
 
   '@octokit/graphql@5.0.6(encoding@0.1.13)':
@@ -25827,21 +25552,21 @@ snapshots:
   '@octokit/graphql@7.1.0':
     dependencies:
       '@octokit/request': 8.4.0
-      '@octokit/types': 13.6.2
+      '@octokit/types': 13.7.0
       universal-user-agent: 6.0.1
 
   '@octokit/graphql@8.1.2':
     dependencies:
       '@octokit/request': 9.1.4
-      '@octokit/types': 13.6.2
+      '@octokit/types': 13.7.0
       universal-user-agent: 7.0.2
 
-  '@octokit/oauth-app@7.1.4':
+  '@octokit/oauth-app@7.1.5':
     dependencies:
-      '@octokit/auth-oauth-app': 8.1.1
-      '@octokit/auth-oauth-user': 5.1.1
-      '@octokit/auth-unauthenticated': 6.1.0
-      '@octokit/core': 6.1.2
+      '@octokit/auth-oauth-app': 8.1.2
+      '@octokit/auth-oauth-user': 5.1.2
+      '@octokit/auth-unauthenticated': 6.1.1
+      '@octokit/core': 6.1.3
       '@octokit/oauth-authorization-url': 7.1.1
       '@octokit/oauth-methods': 5.1.3
       '@types/aws-lambda': 8.10.147
@@ -25854,31 +25579,31 @@ snapshots:
       '@octokit/oauth-authorization-url': 7.1.1
       '@octokit/request': 9.1.4
       '@octokit/request-error': 6.1.6
-      '@octokit/types': 13.6.2
+      '@octokit/types': 13.7.0
 
   '@octokit/openapi-types@18.1.1': {}
 
   '@octokit/openapi-types@20.0.0': {}
 
-  '@octokit/openapi-types@22.2.0': {}
+  '@octokit/openapi-types@23.0.1': {}
 
   '@octokit/openapi-webhooks-types@8.5.1': {}
 
   '@octokit/plugin-enterprise-rest@6.0.1': {}
 
-  '@octokit/plugin-paginate-graphql@5.2.4(@octokit/core@6.1.2)':
+  '@octokit/plugin-paginate-graphql@5.2.4(@octokit/core@6.1.3)':
     dependencies:
-      '@octokit/core': 6.1.2
+      '@octokit/core': 6.1.3
 
   '@octokit/plugin-paginate-rest@11.3.1(@octokit/core@5.2.0)':
     dependencies:
       '@octokit/core': 5.2.0
-      '@octokit/types': 13.6.2
+      '@octokit/types': 13.7.0
 
-  '@octokit/plugin-paginate-rest@11.3.6(@octokit/core@6.1.2)':
+  '@octokit/plugin-paginate-rest@11.4.0(@octokit/core@6.1.3)':
     dependencies:
-      '@octokit/core': 6.1.2
-      '@octokit/types': 13.6.2
+      '@octokit/core': 6.1.3
+      '@octokit/types': 13.7.0
 
   '@octokit/plugin-paginate-rest@6.1.2(@octokit/core@4.2.4(encoding@0.1.13))':
     dependencies:
@@ -25897,29 +25622,29 @@ snapshots:
   '@octokit/plugin-rest-endpoint-methods@13.2.2(@octokit/core@5.2.0)':
     dependencies:
       '@octokit/core': 5.2.0
-      '@octokit/types': 13.6.2
+      '@octokit/types': 13.7.0
 
-  '@octokit/plugin-rest-endpoint-methods@13.2.6(@octokit/core@6.1.2)':
+  '@octokit/plugin-rest-endpoint-methods@13.3.0(@octokit/core@6.1.3)':
     dependencies:
-      '@octokit/core': 6.1.2
-      '@octokit/types': 13.6.2
+      '@octokit/core': 6.1.3
+      '@octokit/types': 13.7.0
 
   '@octokit/plugin-rest-endpoint-methods@7.2.3(@octokit/core@4.2.4(encoding@0.1.13))':
     dependencies:
       '@octokit/core': 4.2.4(encoding@0.1.13)
       '@octokit/types': 10.0.0
 
-  '@octokit/plugin-retry@7.1.2(@octokit/core@6.1.2)':
+  '@octokit/plugin-retry@7.1.3(@octokit/core@6.1.3)':
     dependencies:
-      '@octokit/core': 6.1.2
+      '@octokit/core': 6.1.3
       '@octokit/request-error': 6.1.6
-      '@octokit/types': 13.6.2
+      '@octokit/types': 13.7.0
       bottleneck: 2.19.5
 
-  '@octokit/plugin-throttling@9.3.2(@octokit/core@6.1.2)':
+  '@octokit/plugin-throttling@9.4.0(@octokit/core@6.1.3)':
     dependencies:
-      '@octokit/core': 6.1.2
-      '@octokit/types': 13.6.2
+      '@octokit/core': 6.1.3
+      '@octokit/types': 13.7.0
       bottleneck: 2.19.5
 
   '@octokit/request-error@3.0.3':
@@ -25930,13 +25655,13 @@ snapshots:
 
   '@octokit/request-error@5.1.0':
     dependencies:
-      '@octokit/types': 13.6.2
+      '@octokit/types': 13.7.0
       deprecation: 2.3.1
       once: 1.4.0
 
   '@octokit/request-error@6.1.6':
     dependencies:
-      '@octokit/types': 13.6.2
+      '@octokit/types': 13.7.0
 
   '@octokit/request@6.2.8(encoding@0.1.13)':
     dependencies:
@@ -25953,15 +25678,15 @@ snapshots:
     dependencies:
       '@octokit/endpoint': 9.0.5
       '@octokit/request-error': 5.1.0
-      '@octokit/types': 13.6.2
+      '@octokit/types': 13.7.0
       universal-user-agent: 6.0.1
 
   '@octokit/request@9.1.4':
     dependencies:
       '@octokit/endpoint': 10.1.2
       '@octokit/request-error': 6.1.6
-      '@octokit/types': 13.6.2
-      fast-content-type-parse: 2.0.0
+      '@octokit/types': 13.7.0
+      fast-content-type-parse: 2.0.1
       universal-user-agent: 7.0.2
 
   '@octokit/rest@19.0.11(encoding@0.1.13)':
@@ -25990,9 +25715,9 @@ snapshots:
     dependencies:
       '@octokit/openapi-types': 20.0.0
 
-  '@octokit/types@13.6.2':
+  '@octokit/types@13.7.0':
     dependencies:
-      '@octokit/openapi-types': 22.2.0
+      '@octokit/openapi-types': 23.0.1
 
   '@octokit/types@9.3.2':
     dependencies:
@@ -26000,7 +25725,7 @@ snapshots:
 
   '@octokit/webhooks-methods@5.1.0': {}
 
-  '@octokit/webhooks@13.4.1':
+  '@octokit/webhooks@13.4.2':
     dependencies:
       '@octokit/openapi-webhooks-types': 8.5.1
       '@octokit/request-error': 6.1.6
@@ -26045,7 +25770,7 @@ snapshots:
       - supports-color
       - utf-8-validate
 
-  '@onflow/fcl-wc@5.5.1(@onflow/fcl-core@1.13.1(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@5.0.10))(@types/react@18.3.12)(bufferutil@4.0.9)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.4.49)(react@18.3.1)(tsx@4.19.2)(utf-8-validate@5.0.10)':
+  '@onflow/fcl-wc@5.5.1(@onflow/fcl-core@1.13.1(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@5.0.10))(@types/react@18.3.12)(bufferutil@4.0.9)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.4.49)(react@18.3.1)(utf-8-validate@5.0.10)':
     dependencies:
       '@babel/runtime': 7.26.0
       '@onflow/config': 1.5.1
@@ -26057,9 +25782,9 @@ snapshots:
       '@walletconnect/sign-client': 2.17.3(bufferutil@4.0.9)(ioredis@5.4.2)(utf-8-validate@5.0.10)
       '@walletconnect/types': 2.17.3(ioredis@5.4.2)
       '@walletconnect/utils': 2.17.3(ioredis@5.4.2)
-      postcss-cli: 11.0.0(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)
+      postcss-cli: 11.0.0(jiti@2.4.2)(postcss@8.4.49)
       preact: 10.25.4
-      tailwindcss: 3.4.15(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
+      tailwindcss: 3.4.15(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
     transitivePeerDependencies:
       - '@azure/app-configuration'
       - '@azure/cosmos'
@@ -26090,12 +25815,12 @@ snapshots:
       - uploadthing
       - utf-8-validate
 
-  '@onflow/fcl@1.13.1(@types/react@18.3.12)(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.4.49)(react@18.3.1)(tsx@4.19.2)(utf-8-validate@5.0.10)':
+  '@onflow/fcl@1.13.1(@types/react@18.3.12)(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.4.49)(react@18.3.1)(utf-8-validate@5.0.10)':
     dependencies:
       '@babel/runtime': 7.26.0
       '@onflow/config': 1.5.1
       '@onflow/fcl-core': 1.13.1(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@5.0.10)
-      '@onflow/fcl-wc': 5.5.1(@onflow/fcl-core@1.13.1(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@5.0.10))(@types/react@18.3.12)(bufferutil@4.0.9)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.4.49)(react@18.3.1)(tsx@4.19.2)(utf-8-validate@5.0.10)
+      '@onflow/fcl-wc': 5.5.1(@onflow/fcl-core@1.13.1(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@5.0.10))(@types/react@18.3.12)(bufferutil@4.0.9)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.4.49)(react@18.3.1)(utf-8-validate@5.0.10)
       '@onflow/interaction': 0.0.11
       '@onflow/rlp': 1.2.3
       '@onflow/sdk': 1.5.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
@@ -26736,7 +26461,7 @@ snapshots:
       '@react-icons/all-files': 4.1.0(react@18.3.1)
       '@types/big.js': 6.2.2
       '@types/bn.js': 5.1.6
-      '@types/lodash': 4.17.13
+      '@types/lodash': 4.17.14
       big.js: 6.2.2
       bn.js: 5.2.1
       lodash: 4.17.21
@@ -26864,11 +26589,11 @@ snapshots:
     optionalDependencies:
       rollup: 3.29.5
 
-  '@rollup/plugin-json@6.1.0(rollup@4.29.1)':
+  '@rollup/plugin-json@6.1.0(rollup@4.30.1)':
     dependencies:
-      '@rollup/pluginutils': 5.1.4(rollup@4.29.1)
+      '@rollup/pluginutils': 5.1.4(rollup@4.30.1)
     optionalDependencies:
-      rollup: 4.29.1
+      rollup: 4.30.1
 
   '@rollup/plugin-node-resolve@15.3.0(rollup@2.79.2)':
     dependencies:
@@ -26919,9 +26644,9 @@ snapshots:
       rollup: 2.79.2
       tslib: 2.8.1
 
-  '@rollup/plugin-virtual@3.0.2(rollup@4.29.1)':
+  '@rollup/plugin-virtual@3.0.2(rollup@4.30.1)':
     optionalDependencies:
-      rollup: 4.29.1
+      rollup: 4.30.1
 
   '@rollup/pluginutils@5.1.4(rollup@2.79.2)':
     dependencies:
@@ -26939,69 +26664,69 @@ snapshots:
     optionalDependencies:
       rollup: 3.29.5
 
-  '@rollup/pluginutils@5.1.4(rollup@4.29.1)':
+  '@rollup/pluginutils@5.1.4(rollup@4.30.1)':
     dependencies:
       '@types/estree': 1.0.6
       estree-walker: 2.0.2
       picomatch: 4.0.2
     optionalDependencies:
-      rollup: 4.29.1
+      rollup: 4.30.1
 
-  '@rollup/rollup-android-arm-eabi@4.29.1':
+  '@rollup/rollup-android-arm-eabi@4.30.1':
     optional: true
 
-  '@rollup/rollup-android-arm64@4.29.1':
+  '@rollup/rollup-android-arm64@4.30.1':
     optional: true
 
-  '@rollup/rollup-darwin-arm64@4.29.1':
+  '@rollup/rollup-darwin-arm64@4.30.1':
     optional: true
 
-  '@rollup/rollup-darwin-x64@4.29.1':
+  '@rollup/rollup-darwin-x64@4.30.1':
     optional: true
 
-  '@rollup/rollup-freebsd-arm64@4.29.1':
+  '@rollup/rollup-freebsd-arm64@4.30.1':
     optional: true
 
-  '@rollup/rollup-freebsd-x64@4.29.1':
+  '@rollup/rollup-freebsd-x64@4.30.1':
     optional: true
 
-  '@rollup/rollup-linux-arm-gnueabihf@4.29.1':
+  '@rollup/rollup-linux-arm-gnueabihf@4.30.1':
     optional: true
 
-  '@rollup/rollup-linux-arm-musleabihf@4.29.1':
+  '@rollup/rollup-linux-arm-musleabihf@4.30.1':
     optional: true
 
-  '@rollup/rollup-linux-arm64-gnu@4.29.1':
+  '@rollup/rollup-linux-arm64-gnu@4.30.1':
     optional: true
 
-  '@rollup/rollup-linux-arm64-musl@4.29.1':
+  '@rollup/rollup-linux-arm64-musl@4.30.1':
     optional: true
 
-  '@rollup/rollup-linux-loongarch64-gnu@4.29.1':
+  '@rollup/rollup-linux-loongarch64-gnu@4.30.1':
     optional: true
 
-  '@rollup/rollup-linux-powerpc64le-gnu@4.29.1':
+  '@rollup/rollup-linux-powerpc64le-gnu@4.30.1':
     optional: true
 
-  '@rollup/rollup-linux-riscv64-gnu@4.29.1':
+  '@rollup/rollup-linux-riscv64-gnu@4.30.1':
     optional: true
 
-  '@rollup/rollup-linux-s390x-gnu@4.29.1':
+  '@rollup/rollup-linux-s390x-gnu@4.30.1':
     optional: true
 
-  '@rollup/rollup-linux-x64-gnu@4.29.1':
+  '@rollup/rollup-linux-x64-gnu@4.30.1':
     optional: true
 
-  '@rollup/rollup-linux-x64-musl@4.29.1':
+  '@rollup/rollup-linux-x64-musl@4.30.1':
     optional: true
 
-  '@rollup/rollup-win32-arm64-msvc@4.29.1':
+  '@rollup/rollup-win32-arm64-msvc@4.30.1':
     optional: true
 
-  '@rollup/rollup-win32-ia32-msvc@4.29.1':
+  '@rollup/rollup-win32-ia32-msvc@4.30.1':
     optional: true
 
-  '@rollup/rollup-win32-x64-msvc@4.29.1':
+  '@rollup/rollup-win32-x64-msvc@4.30.1':
     optional: true
 
   '@sapphire/async-queue@1.5.5': {}
@@ -27133,40 +26858,40 @@ snapshots:
       '@sentry/types': 5.30.0
       tslib: 1.14.1
 
-  '@shikijs/core@1.25.1':
+  '@shikijs/core@1.26.1':
     dependencies:
-      '@shikijs/engine-javascript': 1.25.1
-      '@shikijs/engine-oniguruma': 1.25.1
-      '@shikijs/types': 1.25.1
-      '@shikijs/vscode-textmate': 9.3.1
+      '@shikijs/engine-javascript': 1.26.1
+      '@shikijs/engine-oniguruma': 1.26.1
+      '@shikijs/types': 1.26.1
+      '@shikijs/vscode-textmate': 10.0.1
       '@types/hast': 3.0.4
       hast-util-to-html: 9.0.4
 
-  '@shikijs/engine-javascript@1.25.1':
+  '@shikijs/engine-javascript@1.26.1':
     dependencies:
-      '@shikijs/types': 1.25.1
-      '@shikijs/vscode-textmate': 9.3.1
+      '@shikijs/types': 1.26.1
+      '@shikijs/vscode-textmate': 10.0.1
       oniguruma-to-es: 0.10.0
 
-  '@shikijs/engine-oniguruma@1.25.1':
+  '@shikijs/engine-oniguruma@1.26.1':
     dependencies:
-      '@shikijs/types': 1.25.1
-      '@shikijs/vscode-textmate': 9.3.1
+      '@shikijs/types': 1.26.1
+      '@shikijs/vscode-textmate': 10.0.1
 
-  '@shikijs/langs@1.25.1':
+  '@shikijs/langs@1.26.1':
     dependencies:
-      '@shikijs/types': 1.25.1
+      '@shikijs/types': 1.26.1
 
-  '@shikijs/themes@1.25.1':
+  '@shikijs/themes@1.26.1':
     dependencies:
-      '@shikijs/types': 1.25.1
+      '@shikijs/types': 1.26.1
 
-  '@shikijs/types@1.25.1':
+  '@shikijs/types@1.26.1':
     dependencies:
-      '@shikijs/vscode-textmate': 9.3.1
+      '@shikijs/vscode-textmate': 10.0.1
       '@types/hast': 3.0.4
 
-  '@shikijs/vscode-textmate@9.3.1': {}
+  '@shikijs/vscode-textmate@10.0.1': {}
 
   '@sideway/address@4.1.5':
     dependencies:
@@ -27279,250 +27004,250 @@ snapshots:
       micromark-util-character: 1.2.0
       micromark-util-symbol: 1.1.0
 
-  '@smithy/abort-controller@3.1.9':
+  '@smithy/abort-controller@4.0.1':
     dependencies:
-      '@smithy/types': 3.7.2
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@smithy/chunked-blob-reader-native@3.0.1':
+  '@smithy/chunked-blob-reader-native@4.0.0':
     dependencies:
-      '@smithy/util-base64': 3.0.0
+      '@smithy/util-base64': 4.0.0
       tslib: 2.8.1
 
-  '@smithy/chunked-blob-reader@4.0.0':
+  '@smithy/chunked-blob-reader@5.0.0':
     dependencies:
       tslib: 2.8.1
 
-  '@smithy/config-resolver@3.0.13':
+  '@smithy/config-resolver@4.0.1':
     dependencies:
-      '@smithy/node-config-provider': 3.1.12
-      '@smithy/types': 3.7.2
-      '@smithy/util-config-provider': 3.0.0
-      '@smithy/util-middleware': 3.0.11
+      '@smithy/node-config-provider': 4.0.1
+      '@smithy/types': 4.1.0
+      '@smithy/util-config-provider': 4.0.0
+      '@smithy/util-middleware': 4.0.1
       tslib: 2.8.1
 
-  '@smithy/core@2.5.7':
+  '@smithy/core@3.1.0':
     dependencies:
-      '@smithy/middleware-serde': 3.0.11
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/types': 3.7.2
-      '@smithy/util-body-length-browser': 3.0.0
-      '@smithy/util-middleware': 3.0.11
-      '@smithy/util-stream': 3.3.4
-      '@smithy/util-utf8': 3.0.0
+      '@smithy/middleware-serde': 4.0.1
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/types': 4.1.0
+      '@smithy/util-body-length-browser': 4.0.0
+      '@smithy/util-middleware': 4.0.1
+      '@smithy/util-stream': 4.0.1
+      '@smithy/util-utf8': 4.0.0
       tslib: 2.8.1
 
-  '@smithy/credential-provider-imds@3.2.8':
+  '@smithy/credential-provider-imds@4.0.1':
     dependencies:
-      '@smithy/node-config-provider': 3.1.12
-      '@smithy/property-provider': 3.1.11
-      '@smithy/types': 3.7.2
-      '@smithy/url-parser': 3.0.11
+      '@smithy/node-config-provider': 4.0.1
+      '@smithy/property-provider': 4.0.1
+      '@smithy/types': 4.1.0
+      '@smithy/url-parser': 4.0.1
       tslib: 2.8.1
 
-  '@smithy/eventstream-codec@3.1.10':
+  '@smithy/eventstream-codec@4.0.1':
     dependencies:
       '@aws-crypto/crc32': 5.2.0
-      '@smithy/types': 3.7.2
-      '@smithy/util-hex-encoding': 3.0.0
+      '@smithy/types': 4.1.0
+      '@smithy/util-hex-encoding': 4.0.0
       tslib: 2.8.1
 
-  '@smithy/eventstream-serde-browser@3.0.14':
+  '@smithy/eventstream-serde-browser@4.0.1':
     dependencies:
-      '@smithy/eventstream-serde-universal': 3.0.13
-      '@smithy/types': 3.7.2
+      '@smithy/eventstream-serde-universal': 4.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@smithy/eventstream-serde-config-resolver@3.0.11':
+  '@smithy/eventstream-serde-config-resolver@4.0.1':
     dependencies:
-      '@smithy/types': 3.7.2
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@smithy/eventstream-serde-node@3.0.13':
+  '@smithy/eventstream-serde-node@4.0.1':
     dependencies:
-      '@smithy/eventstream-serde-universal': 3.0.13
-      '@smithy/types': 3.7.2
+      '@smithy/eventstream-serde-universal': 4.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@smithy/eventstream-serde-universal@3.0.13':
+  '@smithy/eventstream-serde-universal@4.0.1':
     dependencies:
-      '@smithy/eventstream-codec': 3.1.10
-      '@smithy/types': 3.7.2
+      '@smithy/eventstream-codec': 4.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@smithy/fetch-http-handler@4.1.3':
+  '@smithy/fetch-http-handler@5.0.1':
     dependencies:
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/querystring-builder': 3.0.11
-      '@smithy/types': 3.7.2
-      '@smithy/util-base64': 3.0.0
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/querystring-builder': 4.0.1
+      '@smithy/types': 4.1.0
+      '@smithy/util-base64': 4.0.0
       tslib: 2.8.1
 
-  '@smithy/hash-blob-browser@3.1.10':
+  '@smithy/hash-blob-browser@4.0.1':
     dependencies:
-      '@smithy/chunked-blob-reader': 4.0.0
-      '@smithy/chunked-blob-reader-native': 3.0.1
-      '@smithy/types': 3.7.2
+      '@smithy/chunked-blob-reader': 5.0.0
+      '@smithy/chunked-blob-reader-native': 4.0.0
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@smithy/hash-node@3.0.11':
+  '@smithy/hash-node@4.0.1':
     dependencies:
-      '@smithy/types': 3.7.2
-      '@smithy/util-buffer-from': 3.0.0
-      '@smithy/util-utf8': 3.0.0
+      '@smithy/types': 4.1.0
+      '@smithy/util-buffer-from': 4.0.0
+      '@smithy/util-utf8': 4.0.0
       tslib: 2.8.1
 
-  '@smithy/hash-stream-node@3.1.10':
+  '@smithy/hash-stream-node@4.0.1':
     dependencies:
-      '@smithy/types': 3.7.2
-      '@smithy/util-utf8': 3.0.0
+      '@smithy/types': 4.1.0
+      '@smithy/util-utf8': 4.0.0
       tslib: 2.8.1
 
-  '@smithy/invalid-dependency@3.0.11':
+  '@smithy/invalid-dependency@4.0.1':
     dependencies:
-      '@smithy/types': 3.7.2
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
   '@smithy/is-array-buffer@2.2.0':
     dependencies:
       tslib: 2.8.1
 
-  '@smithy/is-array-buffer@3.0.0':
+  '@smithy/is-array-buffer@4.0.0':
     dependencies:
       tslib: 2.8.1
 
-  '@smithy/md5-js@3.0.11':
+  '@smithy/md5-js@4.0.1':
     dependencies:
-      '@smithy/types': 3.7.2
-      '@smithy/util-utf8': 3.0.0
+      '@smithy/types': 4.1.0
+      '@smithy/util-utf8': 4.0.0
       tslib: 2.8.1
 
-  '@smithy/middleware-content-length@3.0.13':
+  '@smithy/middleware-content-length@4.0.1':
     dependencies:
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/types': 3.7.2
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@smithy/middleware-endpoint@3.2.8':
+  '@smithy/middleware-endpoint@4.0.1':
     dependencies:
-      '@smithy/core': 2.5.7
-      '@smithy/middleware-serde': 3.0.11
-      '@smithy/node-config-provider': 3.1.12
-      '@smithy/shared-ini-file-loader': 3.1.12
-      '@smithy/types': 3.7.2
-      '@smithy/url-parser': 3.0.11
-      '@smithy/util-middleware': 3.0.11
+      '@smithy/core': 3.1.0
+      '@smithy/middleware-serde': 4.0.1
+      '@smithy/node-config-provider': 4.0.1
+      '@smithy/shared-ini-file-loader': 4.0.1
+      '@smithy/types': 4.1.0
+      '@smithy/url-parser': 4.0.1
+      '@smithy/util-middleware': 4.0.1
       tslib: 2.8.1
 
-  '@smithy/middleware-retry@3.0.34':
+  '@smithy/middleware-retry@4.0.1':
     dependencies:
-      '@smithy/node-config-provider': 3.1.12
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/service-error-classification': 3.0.11
-      '@smithy/smithy-client': 3.7.0
-      '@smithy/types': 3.7.2
-      '@smithy/util-middleware': 3.0.11
-      '@smithy/util-retry': 3.0.11
+      '@smithy/node-config-provider': 4.0.1
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/service-error-classification': 4.0.1
+      '@smithy/smithy-client': 4.1.0
+      '@smithy/types': 4.1.0
+      '@smithy/util-middleware': 4.0.1
+      '@smithy/util-retry': 4.0.1
       tslib: 2.8.1
       uuid: 9.0.1
 
-  '@smithy/middleware-serde@3.0.11':
+  '@smithy/middleware-serde@4.0.1':
     dependencies:
-      '@smithy/types': 3.7.2
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@smithy/middleware-stack@3.0.11':
+  '@smithy/middleware-stack@4.0.1':
     dependencies:
-      '@smithy/types': 3.7.2
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@smithy/node-config-provider@3.1.12':
+  '@smithy/node-config-provider@4.0.1':
     dependencies:
-      '@smithy/property-provider': 3.1.11
-      '@smithy/shared-ini-file-loader': 3.1.12
-      '@smithy/types': 3.7.2
+      '@smithy/property-provider': 4.0.1
+      '@smithy/shared-ini-file-loader': 4.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@smithy/node-http-handler@3.3.3':
+  '@smithy/node-http-handler@4.0.1':
     dependencies:
-      '@smithy/abort-controller': 3.1.9
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/querystring-builder': 3.0.11
-      '@smithy/types': 3.7.2
+      '@smithy/abort-controller': 4.0.1
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/querystring-builder': 4.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@smithy/property-provider@3.1.11':
+  '@smithy/property-provider@4.0.1':
     dependencies:
-      '@smithy/types': 3.7.2
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@smithy/protocol-http@4.1.8':
+  '@smithy/protocol-http@5.0.1':
     dependencies:
-      '@smithy/types': 3.7.2
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@smithy/querystring-builder@3.0.11':
+  '@smithy/querystring-builder@4.0.1':
     dependencies:
-      '@smithy/types': 3.7.2
-      '@smithy/util-uri-escape': 3.0.0
+      '@smithy/types': 4.1.0
+      '@smithy/util-uri-escape': 4.0.0
       tslib: 2.8.1
 
-  '@smithy/querystring-parser@3.0.11':
+  '@smithy/querystring-parser@4.0.1':
     dependencies:
-      '@smithy/types': 3.7.2
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@smithy/service-error-classification@3.0.11':
+  '@smithy/service-error-classification@4.0.1':
     dependencies:
-      '@smithy/types': 3.7.2
+      '@smithy/types': 4.1.0
 
-  '@smithy/shared-ini-file-loader@3.1.12':
+  '@smithy/shared-ini-file-loader@4.0.1':
     dependencies:
-      '@smithy/types': 3.7.2
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@smithy/signature-v4@4.2.4':
+  '@smithy/signature-v4@5.0.1':
     dependencies:
-      '@smithy/is-array-buffer': 3.0.0
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/types': 3.7.2
-      '@smithy/util-hex-encoding': 3.0.0
-      '@smithy/util-middleware': 3.0.11
-      '@smithy/util-uri-escape': 3.0.0
-      '@smithy/util-utf8': 3.0.0
+      '@smithy/is-array-buffer': 4.0.0
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/types': 4.1.0
+      '@smithy/util-hex-encoding': 4.0.0
+      '@smithy/util-middleware': 4.0.1
+      '@smithy/util-uri-escape': 4.0.0
+      '@smithy/util-utf8': 4.0.0
       tslib: 2.8.1
 
-  '@smithy/smithy-client@3.7.0':
+  '@smithy/smithy-client@4.1.0':
     dependencies:
-      '@smithy/core': 2.5.7
-      '@smithy/middleware-endpoint': 3.2.8
-      '@smithy/middleware-stack': 3.0.11
-      '@smithy/protocol-http': 4.1.8
-      '@smithy/types': 3.7.2
-      '@smithy/util-stream': 3.3.4
+      '@smithy/core': 3.1.0
+      '@smithy/middleware-endpoint': 4.0.1
+      '@smithy/middleware-stack': 4.0.1
+      '@smithy/protocol-http': 5.0.1
+      '@smithy/types': 4.1.0
+      '@smithy/util-stream': 4.0.1
       tslib: 2.8.1
 
-  '@smithy/types@3.7.2':
+  '@smithy/types@4.1.0':
     dependencies:
       tslib: 2.8.1
 
-  '@smithy/url-parser@3.0.11':
+  '@smithy/url-parser@4.0.1':
     dependencies:
-      '@smithy/querystring-parser': 3.0.11
-      '@smithy/types': 3.7.2
+      '@smithy/querystring-parser': 4.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@smithy/util-base64@3.0.0':
+  '@smithy/util-base64@4.0.0':
     dependencies:
-      '@smithy/util-buffer-from': 3.0.0
-      '@smithy/util-utf8': 3.0.0
+      '@smithy/util-buffer-from': 4.0.0
+      '@smithy/util-utf8': 4.0.0
       tslib: 2.8.1
 
-  '@smithy/util-body-length-browser@3.0.0':
+  '@smithy/util-body-length-browser@4.0.0':
     dependencies:
       tslib: 2.8.1
 
-  '@smithy/util-body-length-node@3.0.0':
+  '@smithy/util-body-length-node@4.0.0':
     dependencies:
       tslib: 2.8.1
 
@@ -27531,66 +27256,66 @@ snapshots:
       '@smithy/is-array-buffer': 2.2.0
       tslib: 2.8.1
 
-  '@smithy/util-buffer-from@3.0.0':
+  '@smithy/util-buffer-from@4.0.0':
     dependencies:
-      '@smithy/is-array-buffer': 3.0.0
+      '@smithy/is-array-buffer': 4.0.0
       tslib: 2.8.1
 
-  '@smithy/util-config-provider@3.0.0':
+  '@smithy/util-config-provider@4.0.0':
     dependencies:
       tslib: 2.8.1
 
-  '@smithy/util-defaults-mode-browser@3.0.34':
+  '@smithy/util-defaults-mode-browser@4.0.1':
     dependencies:
-      '@smithy/property-provider': 3.1.11
-      '@smithy/smithy-client': 3.7.0
-      '@smithy/types': 3.7.2
+      '@smithy/property-provider': 4.0.1
+      '@smithy/smithy-client': 4.1.0
+      '@smithy/types': 4.1.0
       bowser: 2.11.0
       tslib: 2.8.1
 
-  '@smithy/util-defaults-mode-node@3.0.34':
+  '@smithy/util-defaults-mode-node@4.0.1':
     dependencies:
-      '@smithy/config-resolver': 3.0.13
-      '@smithy/credential-provider-imds': 3.2.8
-      '@smithy/node-config-provider': 3.1.12
-      '@smithy/property-provider': 3.1.11
-      '@smithy/smithy-client': 3.7.0
-      '@smithy/types': 3.7.2
+      '@smithy/config-resolver': 4.0.1
+      '@smithy/credential-provider-imds': 4.0.1
+      '@smithy/node-config-provider': 4.0.1
+      '@smithy/property-provider': 4.0.1
+      '@smithy/smithy-client': 4.1.0
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@smithy/util-endpoints@2.1.7':
+  '@smithy/util-endpoints@3.0.1':
     dependencies:
-      '@smithy/node-config-provider': 3.1.12
-      '@smithy/types': 3.7.2
+      '@smithy/node-config-provider': 4.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@smithy/util-hex-encoding@3.0.0':
+  '@smithy/util-hex-encoding@4.0.0':
     dependencies:
       tslib: 2.8.1
 
-  '@smithy/util-middleware@3.0.11':
+  '@smithy/util-middleware@4.0.1':
     dependencies:
-      '@smithy/types': 3.7.2
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@smithy/util-retry@3.0.11':
+  '@smithy/util-retry@4.0.1':
     dependencies:
-      '@smithy/service-error-classification': 3.0.11
-      '@smithy/types': 3.7.2
+      '@smithy/service-error-classification': 4.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@smithy/util-stream@3.3.4':
+  '@smithy/util-stream@4.0.1':
     dependencies:
-      '@smithy/fetch-http-handler': 4.1.3
-      '@smithy/node-http-handler': 3.3.3
-      '@smithy/types': 3.7.2
-      '@smithy/util-base64': 3.0.0
-      '@smithy/util-buffer-from': 3.0.0
-      '@smithy/util-hex-encoding': 3.0.0
-      '@smithy/util-utf8': 3.0.0
+      '@smithy/fetch-http-handler': 5.0.1
+      '@smithy/node-http-handler': 4.0.1
+      '@smithy/types': 4.1.0
+      '@smithy/util-base64': 4.0.0
+      '@smithy/util-buffer-from': 4.0.0
+      '@smithy/util-hex-encoding': 4.0.0
+      '@smithy/util-utf8': 4.0.0
       tslib: 2.8.1
 
-  '@smithy/util-uri-escape@3.0.0':
+  '@smithy/util-uri-escape@4.0.0':
     dependencies:
       tslib: 2.8.1
 
@@ -27599,15 +27324,15 @@ snapshots:
       '@smithy/util-buffer-from': 2.2.0
       tslib: 2.8.1
 
-  '@smithy/util-utf8@3.0.0':
+  '@smithy/util-utf8@4.0.0':
     dependencies:
-      '@smithy/util-buffer-from': 3.0.0
+      '@smithy/util-buffer-from': 4.0.0
       tslib: 2.8.1
 
-  '@smithy/util-waiter@3.2.0':
+  '@smithy/util-waiter@4.0.2':
     dependencies:
-      '@smithy/abort-controller': 3.1.9
-      '@smithy/types': 3.7.2
+      '@smithy/abort-controller': 4.0.1
+      '@smithy/types': 4.1.0
       tslib: 2.8.1
 
   '@solana-developers/helpers@2.5.6(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)':
@@ -28095,51 +27820,51 @@ snapshots:
       - supports-color
       - typescript
 
-  '@swc/core-darwin-arm64@1.10.4':
+  '@swc/core-darwin-arm64@1.10.7':
     optional: true
 
-  '@swc/core-darwin-x64@1.10.4':
+  '@swc/core-darwin-x64@1.10.7':
     optional: true
 
-  '@swc/core-linux-arm-gnueabihf@1.10.4':
+  '@swc/core-linux-arm-gnueabihf@1.10.7':
     optional: true
 
-  '@swc/core-linux-arm64-gnu@1.10.4':
+  '@swc/core-linux-arm64-gnu@1.10.7':
     optional: true
 
-  '@swc/core-linux-arm64-musl@1.10.4':
+  '@swc/core-linux-arm64-musl@1.10.7':
     optional: true
 
-  '@swc/core-linux-x64-gnu@1.10.4':
+  '@swc/core-linux-x64-gnu@1.10.7':
     optional: true
 
-  '@swc/core-linux-x64-musl@1.10.4':
+  '@swc/core-linux-x64-musl@1.10.7':
     optional: true
 
-  '@swc/core-win32-arm64-msvc@1.10.4':
+  '@swc/core-win32-arm64-msvc@1.10.7':
     optional: true
 
-  '@swc/core-win32-ia32-msvc@1.10.4':
+  '@swc/core-win32-ia32-msvc@1.10.7':
     optional: true
 
-  '@swc/core-win32-x64-msvc@1.10.4':
+  '@swc/core-win32-x64-msvc@1.10.7':
     optional: true
 
-  '@swc/core@1.10.4(@swc/helpers@0.5.15)':
+  '@swc/core@1.10.7(@swc/helpers@0.5.15)':
     dependencies:
       '@swc/counter': 0.1.3
       '@swc/types': 0.1.17
     optionalDependencies:
-      '@swc/core-darwin-arm64': 1.10.4
-      '@swc/core-darwin-x64': 1.10.4
-      '@swc/core-linux-arm-gnueabihf': 1.10.4
-      '@swc/core-linux-arm64-gnu': 1.10.4
-      '@swc/core-linux-arm64-musl': 1.10.4
-      '@swc/core-linux-x64-gnu': 1.10.4
-      '@swc/core-linux-x64-musl': 1.10.4
-      '@swc/core-win32-arm64-msvc': 1.10.4
-      '@swc/core-win32-ia32-msvc': 1.10.4
-      '@swc/core-win32-x64-msvc': 1.10.4
+      '@swc/core-darwin-arm64': 1.10.7
+      '@swc/core-darwin-x64': 1.10.7
+      '@swc/core-linux-arm-gnueabihf': 1.10.7
+      '@swc/core-linux-arm64-gnu': 1.10.7
+      '@swc/core-linux-arm64-musl': 1.10.7
+      '@swc/core-linux-x64-gnu': 1.10.7
+      '@swc/core-linux-x64-musl': 1.10.7
+      '@swc/core-win32-arm64-msvc': 1.10.7
+      '@swc/core-win32-ia32-msvc': 1.10.7
+      '@swc/core-win32-x64-msvc': 1.10.7
       '@swc/helpers': 0.5.15
 
   '@swc/counter@0.1.3': {}
@@ -28292,7 +28017,7 @@ snapshots:
 
   '@types/connect-history-api-fallback@1.5.4':
     dependencies:
-      '@types/express-serve-static-core': 5.0.3
+      '@types/express-serve-static-core': 5.0.4
       '@types/node': 20.17.9
 
   '@types/connect@3.4.38':
@@ -28368,7 +28093,7 @@ snapshots:
 
   '@types/d3-selection@3.0.11': {}
 
-  '@types/d3-shape@3.1.6':
+  '@types/d3-shape@3.1.7':
     dependencies:
       '@types/d3-path': 3.1.0
 
@@ -28413,7 +28138,7 @@ snapshots:
       '@types/d3-scale': 4.0.8
       '@types/d3-scale-chromatic': 3.1.0
       '@types/d3-selection': 3.0.11
-      '@types/d3-shape': 3.1.6
+      '@types/d3-shape': 3.1.7
       '@types/d3-time': 3.0.4
       '@types/d3-time-format': 4.0.3
       '@types/d3-timer': 3.0.2
@@ -28459,7 +28184,7 @@ snapshots:
       '@types/range-parser': 1.2.7
       '@types/send': 0.17.4
 
-  '@types/express-serve-static-core@5.0.3':
+  '@types/express-serve-static-core@5.0.4':
     dependencies:
       '@types/node': 20.17.9
       '@types/qs': 6.9.17
@@ -28476,7 +28201,7 @@ snapshots:
   '@types/express@5.0.0':
     dependencies:
       '@types/body-parser': 1.19.5
-      '@types/express-serve-static-core': 5.0.3
+      '@types/express-serve-static-core': 5.0.4
       '@types/qs': 6.9.17
       '@types/serve-static': 1.15.7
 
@@ -28564,9 +28289,9 @@ snapshots:
 
   '@types/lodash.isstring@4.0.9':
     dependencies:
-      '@types/lodash': 4.17.13
+      '@types/lodash': 4.17.14
 
-  '@types/lodash@4.17.13': {}
+  '@types/lodash@4.17.14': {}
 
   '@types/lru-cache@5.1.1': {}
 
@@ -28609,7 +28334,7 @@ snapshots:
 
   '@types/node@17.0.45': {}
 
-  '@types/node@18.19.69':
+  '@types/node@18.19.70':
     dependencies:
       undici-types: 5.26.5
 
@@ -28617,7 +28342,7 @@ snapshots:
     dependencies:
       undici-types: 6.19.8
 
-  '@types/node@22.10.4':
+  '@types/node@22.10.5':
     dependencies:
       undici-types: 6.20.0
 
@@ -28881,7 +28606,7 @@ snapshots:
       '@typescript-eslint/types': 8.11.0
       '@typescript-eslint/visitor-keys': 8.11.0
       debug: 4.4.0(supports-color@8.1.1)
-      fast-glob: 3.3.2
+      fast-glob: 3.3.3
       is-glob: 4.0.3
       minimatch: 9.0.5
       semver: 7.6.3
@@ -28896,7 +28621,7 @@ snapshots:
       '@typescript-eslint/types': 8.16.0
       '@typescript-eslint/visitor-keys': 8.16.0
       debug: 4.4.0(supports-color@8.1.1)
-      fast-glob: 3.3.2
+      fast-glob: 3.3.3
       is-glob: 4.0.3
       minimatch: 9.0.5
       semver: 7.6.3
@@ -28997,13 +28722,13 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@vitest/eslint-plugin@1.0.1(@typescript-eslint/utils@8.16.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
+  '@vitest/eslint-plugin@1.0.1(@typescript-eslint/utils@8.16.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
     dependencies:
       eslint: 9.16.0(jiti@2.4.2)
     optionalDependencies:
       '@typescript-eslint/utils': 8.16.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)
       typescript: 5.6.3
-      vitest: 2.1.5(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
+      vitest: 2.1.5(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
 
   '@vitest/expect@2.1.4':
     dependencies:
@@ -29019,21 +28744,21 @@ snapshots:
       chai: 5.1.2
       tinyrainbow: 1.2.0
 
-  '@vitest/mocker@2.1.4(vite@5.4.11(@types/node@22.10.4)(terser@5.37.0))':
+  '@vitest/mocker@2.1.4(vite@5.4.11(@types/node@22.10.5)(terser@5.37.0))':
     dependencies:
       '@vitest/spy': 2.1.4
       estree-walker: 3.0.3
       magic-string: 0.30.17
     optionalDependencies:
-      vite: 5.4.11(@types/node@22.10.4)(terser@5.37.0)
+      vite: 5.4.11(@types/node@22.10.5)(terser@5.37.0)
 
-  '@vitest/mocker@2.1.5(vite@5.4.11(@types/node@22.10.4)(terser@5.37.0))':
+  '@vitest/mocker@2.1.5(vite@5.4.11(@types/node@22.10.5)(terser@5.37.0))':
     dependencies:
       '@vitest/spy': 2.1.5
       estree-walker: 3.0.3
       magic-string: 0.30.17
     optionalDependencies:
-      vite: 5.4.11(@types/node@22.10.4)(terser@5.37.0)
+      vite: 5.4.11(@types/node@22.10.5)(terser@5.37.0)
 
   '@vitest/pretty-format@2.1.4':
     dependencies:
@@ -29702,7 +29427,7 @@ snapshots:
       tough-cookie: 4.1.4
       tslib: 2.8.1
       twitter-api-v2: 1.19.0
-      undici: 7.2.0
+      undici: 7.2.1
 
   agent-twitter-client@0.0.18(bufferutil@4.0.9)(utf-8-validate@5.0.10):
     dependencies:
@@ -29716,7 +29441,7 @@ snapshots:
       tough-cookie: 4.1.4
       tslib: 2.8.1
       twitter-api-v2: 1.19.0
-      undici: 7.2.0
+      undici: 7.2.1
       ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
     transitivePeerDependencies:
       - bufferutil
@@ -29731,13 +29456,13 @@ snapshots:
       clean-stack: 2.2.0
       indent-string: 4.0.0
 
-  ai@3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.16.1))(svelte@5.16.1)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8):
+  ai@3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8):
     dependencies:
       '@ai-sdk/provider': 0.0.26
       '@ai-sdk/provider-utils': 1.0.22(zod@3.23.8)
       '@ai-sdk/react': 0.0.70(react@18.3.1)(zod@3.23.8)
       '@ai-sdk/solid': 0.0.54(zod@3.23.8)
-      '@ai-sdk/svelte': 0.0.57(svelte@5.16.1)(zod@3.23.8)
+      '@ai-sdk/svelte': 0.0.57(svelte@5.17.3)(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.6.3))(zod@3.23.8)
       '@opentelemetry/api': 1.9.0
@@ -29749,20 +29474,20 @@ snapshots:
     optionalDependencies:
       openai: 4.73.0(encoding@0.1.13)(zod@3.23.8)
       react: 18.3.1
-      sswr: 2.1.0(svelte@5.16.1)
-      svelte: 5.16.1
+      sswr: 2.1.0(svelte@5.17.3)
+      svelte: 5.17.3
       zod: 3.23.8
     transitivePeerDependencies:
       - solid-js
       - vue
 
-  ai@3.4.33(openai@4.77.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.16.1))(svelte@5.16.1)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8):
+  ai@3.4.33(openai@4.78.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8):
     dependencies:
       '@ai-sdk/provider': 0.0.26
       '@ai-sdk/provider-utils': 1.0.22(zod@3.23.8)
       '@ai-sdk/react': 0.0.70(react@18.3.1)(zod@3.23.8)
       '@ai-sdk/solid': 0.0.54(zod@3.23.8)
-      '@ai-sdk/svelte': 0.0.57(svelte@5.16.1)(zod@3.23.8)
+      '@ai-sdk/svelte': 0.0.57(svelte@5.17.3)(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.6.3))(zod@3.23.8)
       '@opentelemetry/api': 1.9.0
@@ -29772,10 +29497,10 @@ snapshots:
       secure-json-parse: 2.7.0
       zod-to-json-schema: 3.24.1(zod@3.23.8)
     optionalDependencies:
-      openai: 4.77.0(encoding@0.1.13)(zod@3.23.8)
+      openai: 4.78.0(encoding@0.1.13)(zod@3.23.8)
       react: 18.3.1
-      sswr: 2.1.0(svelte@5.16.1)
-      svelte: 5.16.1
+      sswr: 2.1.0(svelte@5.17.3)
+      svelte: 5.17.3
       zod: 3.23.8
     transitivePeerDependencies:
       - solid-js
@@ -29804,7 +29529,7 @@ snapshots:
   ajv@8.17.1:
     dependencies:
       fast-deep-equal: 3.1.3
-      fast-uri: 3.0.3
+      fast-uri: 3.0.5
       json-schema-traverse: 1.0.0
       require-from-string: 2.0.2
 
@@ -29833,21 +29558,21 @@ snapshots:
       '@algolia/requester-node-http': 4.24.0
       '@algolia/transporter': 4.24.0
 
-  algoliasearch@5.18.0:
-    dependencies:
-      '@algolia/client-abtesting': 5.18.0
-      '@algolia/client-analytics': 5.18.0
-      '@algolia/client-common': 5.18.0
-      '@algolia/client-insights': 5.18.0
-      '@algolia/client-personalization': 5.18.0
-      '@algolia/client-query-suggestions': 5.18.0
-      '@algolia/client-search': 5.18.0
-      '@algolia/ingestion': 1.18.0
-      '@algolia/monitoring': 1.18.0
-      '@algolia/recommend': 5.18.0
-      '@algolia/requester-browser-xhr': 5.18.0
-      '@algolia/requester-fetch': 5.18.0
-      '@algolia/requester-node-http': 5.18.0
+  algoliasearch@5.19.0:
+    dependencies:
+      '@algolia/client-abtesting': 5.19.0
+      '@algolia/client-analytics': 5.19.0
+      '@algolia/client-common': 5.19.0
+      '@algolia/client-insights': 5.19.0
+      '@algolia/client-personalization': 5.19.0
+      '@algolia/client-query-suggestions': 5.19.0
+      '@algolia/client-search': 5.19.0
+      '@algolia/ingestion': 1.19.0
+      '@algolia/monitoring': 1.19.0
+      '@algolia/recommend': 5.19.0
+      '@algolia/requester-browser-xhr': 5.19.0
+      '@algolia/requester-fetch': 5.19.0
+      '@algolia/requester-node-http': 5.19.0
 
   amp-message@0.1.2:
     dependencies:
@@ -30059,8 +29784,8 @@ snapshots:
 
   autoprefixer@10.4.20(postcss@8.4.49):
     dependencies:
-      browserslist: 4.24.3
-      caniuse-lite: 1.0.30001690
+      browserslist: 4.24.4
+      caniuse-lite: 1.0.30001692
       fraction.js: 4.3.7
       normalize-range: 0.1.2
       picocolors: 1.1.1
@@ -30154,12 +29879,12 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  babel-loader@9.2.1(@babel/core@7.26.0)(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))):
+  babel-loader@9.2.1(@babel/core@7.26.0)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
     dependencies:
       '@babel/core': 7.26.0
       find-cache-dir: 4.0.0
       schema-utils: 4.3.0
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
 
   babel-messages@6.23.0:
     dependencies:
@@ -30205,7 +29930,7 @@ snapshots:
     dependencies:
       '@babel/core': 7.26.0
       '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0)
-      core-js-compat: 3.39.0
+      core-js-compat: 3.40.0
     transitivePeerDependencies:
       - supports-color
 
@@ -30285,12 +30010,12 @@ snapshots:
 
   balanced-match@1.0.2: {}
 
-  bare-events@2.5.0:
+  bare-events@2.5.4:
     optional: true
 
   bare-fs@2.3.5:
     dependencies:
-      bare-events: 2.5.0
+      bare-events: 2.5.4
       bare-path: 2.1.3
       bare-stream: 2.6.1
     optional: true
@@ -30664,12 +30389,12 @@ snapshots:
       vm-browserify: 1.1.2
       xtend: 4.0.2
 
-  browserslist@4.24.3:
+  browserslist@4.24.4:
     dependencies:
-      caniuse-lite: 1.0.30001690
-      electron-to-chromium: 1.5.76
+      caniuse-lite: 1.0.30001692
+      electron-to-chromium: 1.5.80
       node-releases: 2.0.19
-      update-browserslist-db: 1.1.1(browserslist@4.24.3)
+      update-browserslist-db: 1.1.2(browserslist@4.24.4)
 
   bs-logger@0.2.6:
     dependencies:
@@ -30880,12 +30605,12 @@ snapshots:
 
   caniuse-api@3.0.0:
     dependencies:
-      browserslist: 4.24.3
-      caniuse-lite: 1.0.30001690
+      browserslist: 4.24.4
+      caniuse-lite: 1.0.30001692
       lodash.memoize: 4.1.2
       lodash.uniq: 4.5.0
 
-  caniuse-lite@1.0.30001690: {}
+  caniuse-lite@1.0.30001692: {}
 
   canvas@2.11.2(encoding@0.1.13):
     dependencies:
@@ -30973,14 +30698,14 @@ snapshots:
       css-what: 6.1.0
       domelementtype: 2.3.0
       domhandler: 5.0.3
-      domutils: 3.2.1
+      domutils: 3.2.2
 
   cheerio@1.0.0-rc.12:
     dependencies:
       cheerio-select: 2.1.0
       dom-serializer: 2.0.0
       domhandler: 5.0.3
-      domutils: 3.2.1
+      domutils: 3.2.2
       htmlparser2: 8.0.2
       parse5: 7.2.1
       parse5-htmlparser2-tree-adapter: 7.1.0
@@ -31479,25 +31204,25 @@ snapshots:
 
   copy-text-to-clipboard@3.2.0: {}
 
-  copy-webpack-plugin@11.0.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))):
+  copy-webpack-plugin@11.0.0(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
     dependencies:
-      fast-glob: 3.3.2
+      fast-glob: 3.3.3
       glob-parent: 6.0.2
       globby: 13.2.2
       normalize-path: 3.0.0
       schema-utils: 4.3.0
       serialize-javascript: 6.0.2
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
 
-  core-js-compat@3.39.0:
+  core-js-compat@3.40.0:
     dependencies:
-      browserslist: 4.24.3
+      browserslist: 4.24.4
 
-  core-js-pure@3.39.0: {}
+  core-js-pure@3.40.0: {}
 
   core-js@2.6.12: {}
 
-  core-js@3.39.0: {}
+  core-js@3.40.0: {}
 
   core-util-is@1.0.2: {}
 
@@ -31516,9 +31241,9 @@ snapshots:
     dependencies:
       layout-base: 2.0.1
 
-  cosmiconfig-typescript-loader@5.1.0(@types/node@22.10.4)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3):
+  cosmiconfig-typescript-loader@5.1.0(@types/node@22.10.5)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3):
     dependencies:
-      '@types/node': 22.10.4
+      '@types/node': 22.10.5
       cosmiconfig: 8.3.6(typescript@5.6.3)
       jiti: 1.21.7
       typescript: 5.6.3
@@ -31571,13 +31296,13 @@ snapshots:
       safe-buffer: 5.2.1
       sha.js: 2.4.11
 
-  create-jest@29.7.0(@types/node@18.19.69)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)):
+  create-jest@29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3)):
     dependencies:
       '@jest/types': 29.6.3
       chalk: 4.1.2
       exit: 0.1.2
       graceful-fs: 4.2.11
-      jest-config: 29.7.0(@types/node@18.19.69)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3))
+      jest-config: 29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3))
       jest-util: 29.7.0
       prompts: 2.4.2
     transitivePeerDependencies:
@@ -31586,13 +31311,13 @@ snapshots:
       - supports-color
       - ts-node
 
-  create-jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)):
+  create-jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)):
     dependencies:
       '@jest/types': 29.6.3
       chalk: 4.1.2
       exit: 0.1.2
       graceful-fs: 4.2.11
-      jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+      jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
       jest-util: 29.7.0
       prompts: 2.4.2
     transitivePeerDependencies:
@@ -31601,13 +31326,13 @@ snapshots:
       - supports-color
       - ts-node
 
-  create-jest@29.7.0(@types/node@22.10.4):
+  create-jest@29.7.0(@types/node@22.10.5):
     dependencies:
       '@jest/types': 29.6.3
       chalk: 4.1.2
       exit: 0.1.2
       graceful-fs: 4.2.11
-      jest-config: 29.7.0(@types/node@22.10.4)
+      jest-config: 29.7.0(@types/node@22.10.5)
       jest-util: 29.7.0
       prompts: 2.4.2
     transitivePeerDependencies:
@@ -31616,13 +31341,13 @@ snapshots:
       - supports-color
       - ts-node
 
-  create-jest@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)):
+  create-jest@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)):
     dependencies:
       '@jest/types': 29.6.3
       chalk: 4.1.2
       exit: 0.1.2
       graceful-fs: 4.2.11
-      jest-config: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
+      jest-config: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
       jest-util: 29.7.0
       prompts: 2.4.2
     transitivePeerDependencies:
@@ -31704,7 +31429,7 @@ snapshots:
       postcss-selector-parser: 7.0.0
       postcss-value-parser: 4.2.0
 
-  css-loader@6.11.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))):
+  css-loader@6.11.0(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
     dependencies:
       icss-utils: 5.1.0(postcss@8.4.49)
       postcss: 8.4.49
@@ -31715,9 +31440,9 @@ snapshots:
       postcss-value-parser: 4.2.0
       semver: 7.6.3
     optionalDependencies:
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
 
-  css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))):
+  css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
     dependencies:
       '@jridgewell/trace-mapping': 0.3.25
       cssnano: 6.1.2(postcss@8.4.49)
@@ -31725,7 +31450,7 @@ snapshots:
       postcss: 8.4.49
       schema-utils: 4.3.0
       serialize-javascript: 6.0.2
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
     optionalDependencies:
       clean-css: 5.3.3
 
@@ -31746,7 +31471,7 @@ snapshots:
       boolbase: 1.0.0
       css-what: 6.1.0
       domhandler: 5.0.3
-      domutils: 3.2.1
+      domutils: 3.2.2
       nth-check: 2.1.1
 
   css-selector-parser@1.4.1: {}
@@ -31770,7 +31495,7 @@ snapshots:
   cssnano-preset-advanced@6.1.2(postcss@8.4.49):
     dependencies:
       autoprefixer: 10.4.20(postcss@8.4.49)
-      browserslist: 4.24.3
+      browserslist: 4.24.4
       cssnano-preset-default: 6.1.2(postcss@8.4.49)
       postcss: 8.4.49
       postcss-discard-unused: 6.0.5(postcss@8.4.49)
@@ -31780,7 +31505,7 @@ snapshots:
 
   cssnano-preset-default@6.1.2(postcss@8.4.49):
     dependencies:
-      browserslist: 4.24.3
+      browserslist: 4.24.4
       css-declaration-sorter: 7.2.0(postcss@8.4.49)
       cssnano-utils: 4.0.2(postcss@8.4.49)
       postcss: 8.4.49
@@ -31814,11 +31539,11 @@ snapshots:
 
   cssnano-preset-default@7.0.6(postcss@8.4.49):
     dependencies:
-      browserslist: 4.24.3
+      browserslist: 4.24.4
       css-declaration-sorter: 7.2.0(postcss@8.4.49)
       cssnano-utils: 5.0.0(postcss@8.4.49)
       postcss: 8.4.49
-      postcss-calc: 10.0.2(postcss@8.4.49)
+      postcss-calc: 10.1.0(postcss@8.4.49)
       postcss-colormin: 7.0.2(postcss@8.4.49)
       postcss-convert-values: 7.0.4(postcss@8.4.49)
       postcss-discard-comments: 7.0.3(postcss@8.4.49)
@@ -31870,9 +31595,10 @@ snapshots:
     dependencies:
       css-tree: 2.2.1
 
-  cssstyle@4.1.0:
+  cssstyle@4.2.1:
     dependencies:
-      rrweb-cssom: 0.7.1
+      '@asamuzakjp/css-color': 2.8.2
+      rrweb-cssom: 0.8.0
 
   csstype@3.1.3: {}
 
@@ -32401,9 +32127,9 @@ snapshots:
     dependencies:
       esutils: 2.0.3
 
-  docusaurus-lunr-search@3.5.0(@docusaurus/core@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+  docusaurus-lunr-search@3.5.0(@docusaurus/core@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.4(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
       autocomplete.js: 0.37.1
       clsx: 1.2.1
       gauge: 3.0.2
@@ -32468,7 +32194,7 @@ snapshots:
       domelementtype: 2.3.0
       domhandler: 4.3.1
 
-  domutils@3.2.1:
+  domutils@3.2.2:
     dependencies:
       dom-serializer: 2.0.0
       domelementtype: 2.3.0
@@ -32533,8 +32259,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.23.8):
     dependencies:
-      '@aws-sdk/client-polly': 3.721.0
-      '@aws-sdk/client-transcribe-streaming': 3.721.0
+      '@aws-sdk/client-polly': 3.726.0
+      '@aws-sdk/client-transcribe-streaming': 3.726.0
       '@echogarden/audio-io': 0.2.3
       '@echogarden/espeak-ng-emscripten': 0.3.3
       '@echogarden/fasttext-wasm': 0.1.0
@@ -32601,7 +32327,7 @@ snapshots:
     dependencies:
       jake: 10.9.2
 
-  electron-to-chromium@1.5.76: {}
+  electron-to-chromium@1.5.80: {}
 
   elliptic@6.5.4:
     dependencies:
@@ -32874,33 +32600,6 @@ snapshots:
       '@esbuild/win32-ia32': 0.21.5
       '@esbuild/win32-x64': 0.21.5
 
-  esbuild@0.23.1:
-    optionalDependencies:
-      '@esbuild/aix-ppc64': 0.23.1
-      '@esbuild/android-arm': 0.23.1
-      '@esbuild/android-arm64': 0.23.1
-      '@esbuild/android-x64': 0.23.1
-      '@esbuild/darwin-arm64': 0.23.1
-      '@esbuild/darwin-x64': 0.23.1
-      '@esbuild/freebsd-arm64': 0.23.1
-      '@esbuild/freebsd-x64': 0.23.1
-      '@esbuild/linux-arm': 0.23.1
-      '@esbuild/linux-arm64': 0.23.1
-      '@esbuild/linux-ia32': 0.23.1
-      '@esbuild/linux-loong64': 0.23.1
-      '@esbuild/linux-mips64el': 0.23.1
-      '@esbuild/linux-ppc64': 0.23.1
-      '@esbuild/linux-riscv64': 0.23.1
-      '@esbuild/linux-s390x': 0.23.1
-      '@esbuild/linux-x64': 0.23.1
-      '@esbuild/netbsd-x64': 0.23.1
-      '@esbuild/openbsd-arm64': 0.23.1
-      '@esbuild/openbsd-x64': 0.23.1
-      '@esbuild/sunos-x64': 0.23.1
-      '@esbuild/win32-arm64': 0.23.1
-      '@esbuild/win32-ia32': 0.23.1
-      '@esbuild/win32-x64': 0.23.1
-
   esbuild@0.24.2:
     optionalDependencies:
       '@esbuild/aix-ppc64': 0.24.2
@@ -33083,7 +32782,7 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  esm-env@1.2.1: {}
+  esm-env@1.2.2: {}
 
   esmify@2.1.1:
     dependencies:
@@ -33127,7 +32826,7 @@ snapshots:
     dependencies:
       estraverse: 5.3.0
 
-  esrap@1.3.2:
+  esrap@1.4.2:
     dependencies:
       '@jridgewell/sourcemap-codec': 1.5.0
 
@@ -33428,7 +33127,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:
@@ -33446,13 +33145,13 @@ snapshots:
 
   eyes@0.1.8: {}
 
-  fast-content-type-parse@2.0.0: {}
+  fast-content-type-parse@2.0.1: {}
 
   fast-deep-equal@3.1.3: {}
 
   fast-fifo@1.3.2: {}
 
-  fast-glob@3.3.2:
+  fast-glob@3.3.3:
     dependencies:
       '@nodelib/fs.stat': 2.0.5
       '@nodelib/fs.walk': 1.2.8
@@ -33472,7 +33171,7 @@ snapshots:
 
   fast-stable-stringify@1.0.0: {}
 
-  fast-uri@3.0.3: {}
+  fast-uri@3.0.5: {}
 
   fast-xml-parser@4.4.1:
     dependencies:
@@ -33527,7 +33226,7 @@ snapshots:
   fetch-cookie@3.1.0:
     dependencies:
       set-cookie-parser: 2.7.1
-      tough-cookie: 5.0.0
+      tough-cookie: 5.1.0
 
   fflate@0.8.2: {}
 
@@ -33552,11 +33251,11 @@ snapshots:
     dependencies:
       flat-cache: 4.0.1
 
-  file-loader@6.2.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))):
+  file-loader@6.2.0(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
     dependencies:
       loader-utils: 2.0.4
       schema-utils: 3.3.0
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
 
   file-uri-to-path@1.0.0: {}
 
@@ -33688,7 +33387,7 @@ snapshots:
 
   forever-agent@0.6.1: {}
 
-  fork-ts-checker-webpack-plugin@6.5.3(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))):
+  fork-ts-checker-webpack-plugin@6.5.3(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
     dependencies:
       '@babel/code-frame': 7.26.2
       '@types/json-schema': 7.0.15
@@ -33704,7 +33403,7 @@ snapshots:
       semver: 7.6.3
       tapable: 1.1.3
       typescript: 5.6.3
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
     optionalDependencies:
       eslint: 9.16.0(jiti@2.4.2)
 
@@ -33801,24 +33500,24 @@ snapshots:
   fsevents@2.3.3:
     optional: true
 
-  fuels@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)):
+  fuels@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)):
     dependencies:
-      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       '@fuel-ts/errors': 0.97.2
-      '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       '@fuel-ts/interfaces': 0.97.2
       '@fuel-ts/math': 0.97.2
-      '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/recipes': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/script': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
-      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/recipes': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/script': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
+      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       '@fuel-ts/versions': 0.97.2
       bundle-require: 5.1.0(esbuild@0.24.2)
       chalk: 4.1.2
@@ -33976,10 +33675,6 @@ snapshots:
       es-errors: 1.3.0
       get-intrinsic: 1.2.7
 
-  get-tsconfig@4.8.1:
-    dependencies:
-      resolve-pkg-maps: 1.0.0
-
   get-uri@6.0.4:
     dependencies:
       basic-ftp: 5.0.5
@@ -34153,7 +33848,7 @@ snapshots:
     dependencies:
       array-union: 2.1.0
       dir-glob: 3.0.1
-      fast-glob: 3.3.2
+      fast-glob: 3.3.3
       ignore: 5.3.2
       merge2: 1.4.1
       slash: 3.0.0
@@ -34161,7 +33856,7 @@ snapshots:
   globby@13.2.2:
     dependencies:
       dir-glob: 3.0.1
-      fast-glob: 3.3.2
+      fast-glob: 3.3.3
       ignore: 5.3.2
       merge2: 1.4.1
       slash: 4.0.0
@@ -34169,7 +33864,7 @@ snapshots:
   globby@14.0.2:
     dependencies:
       '@sindresorhus/merge-streams': 2.3.0
-      fast-glob: 3.3.2
+      fast-glob: 3.3.3
       ignore: 5.3.2
       path-type: 5.0.0
       slash: 5.1.0
@@ -34221,7 +33916,7 @@ snapshots:
 
   gql.tada@1.8.10(graphql@16.10.0)(typescript@5.6.3):
     dependencies:
-      '@0no-co/graphql.web': 1.0.12(graphql@16.10.0)
+      '@0no-co/graphql.web': 1.0.13(graphql@16.10.0)
       '@0no-co/graphqlsp': 1.12.16(graphql@16.10.0)(typescript@5.6.3)
       '@gql.tada/cli-utils': 1.6.3(@0no-co/graphqlsp@1.12.16(graphql@16.10.0)(typescript@5.6.3))(graphql@16.10.0)(typescript@5.6.3)
       '@gql.tada/internal': 1.0.8(graphql@16.10.0)(typescript@5.6.3)
@@ -34310,7 +34005,7 @@ snapshots:
 
   hard-rejection@2.1.0: {}
 
-  hardhat@2.22.17(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.4)(typescript@5.6.3))(typescript@5.6.3)(utf-8-validate@5.0.10):
+  hardhat@2.22.17(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.6.3))(typescript@5.6.3)(utf-8-validate@5.0.10):
     dependencies:
       '@ethersproject/abi': 5.7.0
       '@metamask/eth-sig-util': 4.0.1
@@ -34357,7 +34052,7 @@ snapshots:
       uuid: 8.3.2
       ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)
     optionalDependencies:
-      ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.4)(typescript@5.6.3)
+      ts-node: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.6.3)
       typescript: 5.6.3
     transitivePeerDependencies:
       - bufferutil
@@ -34476,7 +34171,7 @@ snapshots:
       unist-util-visit: 2.0.3
       zwitch: 1.0.5
 
-  hast-util-to-estree@3.1.0:
+  hast-util-to-estree@3.1.1:
     dependencies:
       '@types/estree': 1.0.6
       '@types/estree-jsx': 1.0.5
@@ -34491,7 +34186,7 @@ snapshots:
       mdast-util-mdxjs-esm: 2.0.1
       property-information: 6.5.0
       space-separated-tokens: 2.0.2
-      style-to-object: 0.4.4
+      style-to-object: 1.0.8
       unist-util-position: 5.0.0
       zwitch: 2.0.4
     transitivePeerDependencies:
@@ -34662,7 +34357,7 @@ snapshots:
 
   html-void-elements@3.0.0: {}
 
-  html-webpack-plugin@5.6.3(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))):
+  html-webpack-plugin@5.6.3(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
     dependencies:
       '@types/html-minifier-terser': 6.1.0
       html-minifier-terser: 6.1.0
@@ -34670,7 +34365,7 @@ snapshots:
       pretty-error: 4.0.0
       tapable: 2.2.1
     optionalDependencies:
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
 
   htmlescape@1.1.1: {}
 
@@ -34685,7 +34380,7 @@ snapshots:
     dependencies:
       domelementtype: 2.3.0
       domhandler: 5.0.3
-      domutils: 3.2.1
+      domutils: 3.2.2
       entities: 4.5.0
 
   http-cache-semantics@4.1.1: {}
@@ -34723,7 +34418,7 @@ snapshots:
       statuses: 2.0.1
       toidentifier: 1.0.1
 
-  http-parser-js@0.5.8: {}
+  http-parser-js@0.5.9: {}
 
   http-proxy-agent@7.0.2:
     dependencies:
@@ -34901,8 +34596,6 @@ snapshots:
     dependencies:
       source-map: 0.5.7
 
-  inline-style-parser@0.1.1: {}
-
   inline-style-parser@0.2.4: {}
 
   inquirer@8.2.6:
@@ -35447,16 +35140,16 @@ snapshots:
       - babel-plugin-macros
       - supports-color
 
-  jest-cli@29.7.0(@types/node@18.19.69)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)):
+  jest-cli@29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3)):
     dependencies:
-      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3))
+      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3))
       '@jest/test-result': 29.7.0
       '@jest/types': 29.6.3
       chalk: 4.1.2
-      create-jest: 29.7.0(@types/node@18.19.69)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3))
+      create-jest: 29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3))
       exit: 0.1.2
       import-local: 3.2.0
-      jest-config: 29.7.0(@types/node@18.19.69)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3))
+      jest-config: 29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3))
       jest-util: 29.7.0
       jest-validate: 29.7.0
       yargs: 17.7.2
@@ -35466,16 +35159,16 @@ snapshots:
       - supports-color
       - ts-node
 
-  jest-cli@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)):
+  jest-cli@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)):
     dependencies:
-      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
       '@jest/test-result': 29.7.0
       '@jest/types': 29.6.3
       chalk: 4.1.2
-      create-jest: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+      create-jest: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
       exit: 0.1.2
       import-local: 3.2.0
-      jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+      jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
       jest-util: 29.7.0
       jest-validate: 29.7.0
       yargs: 17.7.2
@@ -35485,16 +35178,16 @@ snapshots:
       - supports-color
       - ts-node
 
-  jest-cli@29.7.0(@types/node@22.10.4):
+  jest-cli@29.7.0(@types/node@22.10.5):
     dependencies:
-      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
       '@jest/test-result': 29.7.0
       '@jest/types': 29.6.3
       chalk: 4.1.2
-      create-jest: 29.7.0(@types/node@22.10.4)
+      create-jest: 29.7.0(@types/node@22.10.5)
       exit: 0.1.2
       import-local: 3.2.0
-      jest-config: 29.7.0(@types/node@22.10.4)
+      jest-config: 29.7.0(@types/node@22.10.5)
       jest-util: 29.7.0
       jest-validate: 29.7.0
       yargs: 17.7.2
@@ -35504,16 +35197,16 @@ snapshots:
       - supports-color
       - ts-node
 
-  jest-cli@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)):
+  jest-cli@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)):
     dependencies:
-      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
+      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
       '@jest/test-result': 29.7.0
       '@jest/types': 29.6.3
       chalk: 4.1.2
-      create-jest: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
+      create-jest: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
       exit: 0.1.2
       import-local: 3.2.0
-      jest-config: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
+      jest-config: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
       jest-util: 29.7.0
       jest-validate: 29.7.0
       yargs: 17.7.2
@@ -35523,7 +35216,7 @@ snapshots:
       - supports-color
       - ts-node
 
-  jest-config@29.7.0(@types/node@18.19.69)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)):
+  jest-config@29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3)):
     dependencies:
       '@babel/core': 7.26.0
       '@jest/test-sequencer': 29.7.0
@@ -35548,13 +35241,13 @@ snapshots:
       slash: 3.0.0
       strip-json-comments: 3.1.1
     optionalDependencies:
-      '@types/node': 18.19.69
-      ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)
+      '@types/node': 18.19.70
+      ts-node: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3)
     transitivePeerDependencies:
       - babel-plugin-macros
       - supports-color
 
-  jest-config@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)):
+  jest-config@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3)):
     dependencies:
       '@babel/core': 7.26.0
       '@jest/test-sequencer': 29.7.0
@@ -35580,12 +35273,12 @@ snapshots:
       strip-json-comments: 3.1.1
     optionalDependencies:
       '@types/node': 20.17.9
-      ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)
+      ts-node: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3)
     transitivePeerDependencies:
       - babel-plugin-macros
       - supports-color
 
-  jest-config@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)):
+  jest-config@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)):
     dependencies:
       '@babel/core': 7.26.0
       '@jest/test-sequencer': 29.7.0
@@ -35611,12 +35304,12 @@ snapshots:
       strip-json-comments: 3.1.1
     optionalDependencies:
       '@types/node': 20.17.9
-      ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)
+      ts-node: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)
     transitivePeerDependencies:
       - babel-plugin-macros
       - supports-color
 
-  jest-config@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)):
+  jest-config@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)):
     dependencies:
       '@babel/core': 7.26.0
       '@jest/test-sequencer': 29.7.0
@@ -35642,12 +35335,12 @@ snapshots:
       strip-json-comments: 3.1.1
     optionalDependencies:
       '@types/node': 20.17.9
-      ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)
+      ts-node: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)
     transitivePeerDependencies:
       - babel-plugin-macros
       - supports-color
 
-  jest-config@29.7.0(@types/node@22.10.4):
+  jest-config@29.7.0(@types/node@22.10.5):
     dependencies:
       '@babel/core': 7.26.0
       '@jest/test-sequencer': 29.7.0
@@ -35672,12 +35365,12 @@ snapshots:
       slash: 3.0.0
       strip-json-comments: 3.1.1
     optionalDependencies:
-      '@types/node': 22.10.4
+      '@types/node': 22.10.5
     transitivePeerDependencies:
       - babel-plugin-macros
       - supports-color
 
-  jest-config@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)):
+  jest-config@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)):
     dependencies:
       '@babel/core': 7.26.0
       '@jest/test-sequencer': 29.7.0
@@ -35703,7 +35396,7 @@ snapshots:
       strip-json-comments: 3.1.1
     optionalDependencies:
       '@types/node': 22.8.4
-      ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)
+      ts-node: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)
     transitivePeerDependencies:
       - babel-plugin-macros
       - supports-color
@@ -35929,48 +35622,48 @@ snapshots:
       merge-stream: 2.0.0
       supports-color: 8.1.1
 
-  jest@29.7.0(@types/node@18.19.69)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)):
+  jest@29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3)):
     dependencies:
-      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3))
+      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3))
       '@jest/types': 29.6.3
       import-local: 3.2.0
-      jest-cli: 29.7.0(@types/node@18.19.69)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3))
+      jest-cli: 29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3))
     transitivePeerDependencies:
       - '@types/node'
       - babel-plugin-macros
       - supports-color
       - ts-node
 
-  jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)):
+  jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)):
     dependencies:
-      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
       '@jest/types': 29.6.3
       import-local: 3.2.0
-      jest-cli: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+      jest-cli: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
     transitivePeerDependencies:
       - '@types/node'
       - babel-plugin-macros
       - supports-color
       - ts-node
 
-  jest@29.7.0(@types/node@22.10.4):
+  jest@29.7.0(@types/node@22.10.5):
     dependencies:
-      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
       '@jest/types': 29.6.3
       import-local: 3.2.0
-      jest-cli: 29.7.0(@types/node@22.10.4)
+      jest-cli: 29.7.0(@types/node@22.10.5)
     transitivePeerDependencies:
       - '@types/node'
       - babel-plugin-macros
       - supports-color
       - ts-node
 
-  jest@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)):
+  jest@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)):
     dependencies:
-      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
+      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
       '@jest/types': 29.6.3
       import-local: 3.2.0
-      jest-cli: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
+      jest-cli: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
     transitivePeerDependencies:
       - '@types/node'
       - babel-plugin-macros
@@ -36041,7 +35734,7 @@ snapshots:
 
   jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10):
     dependencies:
-      cssstyle: 4.1.0
+      cssstyle: 4.2.1
       data-urls: 5.0.0
       decimal.js: 10.4.3
       form-data: 4.0.1
@@ -36054,7 +35747,7 @@ snapshots:
       rrweb-cssom: 0.7.1
       saxes: 6.0.0
       symbol-tree: 3.2.4
-      tough-cookie: 5.0.0
+      tough-cookie: 5.1.0
       w3c-xmlserializer: 5.0.0
       webidl-conversions: 7.0.0
       whatwg-encoding: 3.1.1
@@ -36255,7 +35948,7 @@ snapshots:
       js-tiktoken: 1.0.15
       js-yaml: 4.1.0
       jsonpointer: 5.0.1
-      langsmith: 0.2.14(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))
+      langsmith: 0.2.15(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))
       openapi-types: 12.1.3
       p-retry: 4.6.2
       uuid: 10.0.0
@@ -36277,7 +35970,7 @@ snapshots:
       vscode-languageserver-textdocument: 1.0.12
       vscode-uri: 3.0.8
 
-  langsmith@0.2.14(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)):
+  langsmith@0.2.15(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)):
     dependencies:
       '@types/uuid': 10.0.0
       commander: 10.0.1
@@ -36309,13 +36002,13 @@ snapshots:
 
   leac@0.6.0: {}
 
-  lerna@8.1.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(encoding@0.1.13):
+  lerna@8.1.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(encoding@0.1.13):
     dependencies:
-      '@lerna/create': 8.1.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(encoding@0.1.13)(typescript@5.6.3)
+      '@lerna/create': 8.1.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(encoding@0.1.13)(typescript@5.6.3)
       '@npmcli/arborist': 7.5.3
       '@npmcli/package-json': 5.2.0
       '@npmcli/run-script': 8.1.0
-      '@nx/devkit': 19.8.14(nx@19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15)))
+      '@nx/devkit': 19.8.14(nx@19.8.14(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       '@octokit/plugin-enterprise-rest': 6.0.1
       '@octokit/rest': 19.0.11(encoding@0.1.13)
       aproba: 2.0.0
@@ -36360,7 +36053,7 @@ snapshots:
       npm-package-arg: 11.0.2
       npm-packlist: 8.0.2
       npm-registry-fetch: 17.1.0
-      nx: 19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      nx: 19.8.14(@swc/core@1.10.7(@swc/helpers@0.5.15))
       p-map: 4.0.0
       p-map-series: 2.1.0
       p-pipe: 3.1.0
@@ -36636,7 +36329,7 @@ snapshots:
       strip-ansi: 7.1.0
       wrap-ansi: 9.0.0
 
-  long@5.2.3: {}
+  long@5.2.4: {}
 
   longest-streak@3.1.0: {}
 
@@ -36802,7 +36495,7 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  mdast-util-find-and-replace@3.0.1:
+  mdast-util-find-and-replace@3.0.2:
     dependencies:
       '@types/mdast': 4.0.4
       escape-string-regexp: 5.0.0
@@ -36842,7 +36535,7 @@ snapshots:
       '@types/mdast': 4.0.4
       ccount: 2.0.1
       devlop: 1.1.0
-      mdast-util-find-and-replace: 3.0.1
+      mdast-util-find-and-replace: 3.0.2
       micromark-util-character: 2.1.1
 
   mdast-util-gfm-footnote@2.0.0:
@@ -37436,11 +37129,11 @@ snapshots:
 
   min-indent@1.0.1: {}
 
-  mini-css-extract-plugin@2.9.2(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))):
+  mini-css-extract-plugin@2.9.2(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
     dependencies:
       schema-utils: 4.3.0
       tapable: 2.2.1
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
 
   minimalistic-assert@1.0.1: {}
 
@@ -37572,7 +37265,7 @@ snapshots:
 
   mnemonist@0.38.5:
     dependencies:
-      obliterator: 2.0.4
+      obliterator: 2.0.5
 
   mocha@10.8.2:
     dependencies:
@@ -37903,7 +37596,7 @@ snapshots:
       buffer: 6.0.3
       es6-promise: 4.2.8
       lodash: 4.17.21
-      long: 5.2.3
+      long: 5.2.4
       node-forge: 1.3.1
       pako: 2.1.0
       process: 0.11.10
@@ -37929,7 +37622,7 @@ snapshots:
       log-symbols: 7.0.0
       nanoid: 5.0.9
       node-addon-api: 8.3.0
-      octokit: 4.0.3
+      octokit: 4.1.0
       ora: 8.1.1
       pretty-ms: 9.2.0
       proper-lockfile: 4.1.2
@@ -38095,18 +37788,18 @@ snapshots:
     dependencies:
       boolbase: 1.0.0
 
-  null-loader@4.0.1(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))):
+  null-loader@4.0.1(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
     dependencies:
       loader-utils: 2.0.4
       schema-utils: 3.3.0
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
 
   nwsapi@2.2.16: {}
 
-  nx@19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15)):
+  nx@19.8.14(@swc/core@1.10.7(@swc/helpers@0.5.15)):
     dependencies:
       '@napi-rs/wasm-runtime': 0.2.4
-      '@nrwl/tao': 19.8.14(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      '@nrwl/tao': 19.8.14(@swc/core@1.10.7(@swc/helpers@0.5.15))
       '@yarnpkg/lockfile': 1.1.0
       '@yarnpkg/parsers': 3.0.0-rc.46
       '@zkochan/js-yaml': 0.0.7
@@ -38150,7 +37843,7 @@ snapshots:
       '@nx/nx-linux-x64-musl': 19.8.14
       '@nx/nx-win32-arm64-msvc': 19.8.14
       '@nx/nx-win32-x64-msvc': 19.8.14
-      '@swc/core': 1.10.4(@swc/helpers@0.5.15)
+      '@swc/core': 1.10.7(@swc/helpers@0.5.15)
     transitivePeerDependencies:
       - debug
 
@@ -38186,22 +37879,22 @@ snapshots:
       has-symbols: 1.1.0
       object-keys: 1.1.1
 
-  obliterator@2.0.4: {}
+  obliterator@2.0.5: {}
 
   obuf@1.1.2: {}
 
-  octokit@4.0.3:
+  octokit@4.1.0:
     dependencies:
-      '@octokit/app': 15.1.1
-      '@octokit/core': 6.1.2
-      '@octokit/oauth-app': 7.1.4
-      '@octokit/plugin-paginate-graphql': 5.2.4(@octokit/core@6.1.2)
-      '@octokit/plugin-paginate-rest': 11.3.6(@octokit/core@6.1.2)
-      '@octokit/plugin-rest-endpoint-methods': 13.2.6(@octokit/core@6.1.2)
-      '@octokit/plugin-retry': 7.1.2(@octokit/core@6.1.2)
-      '@octokit/plugin-throttling': 9.3.2(@octokit/core@6.1.2)
+      '@octokit/app': 15.1.2
+      '@octokit/core': 6.1.3
+      '@octokit/oauth-app': 7.1.5
+      '@octokit/plugin-paginate-graphql': 5.2.4(@octokit/core@6.1.3)
+      '@octokit/plugin-paginate-rest': 11.4.0(@octokit/core@6.1.3)
+      '@octokit/plugin-rest-endpoint-methods': 13.3.0(@octokit/core@6.1.3)
+      '@octokit/plugin-retry': 7.1.3(@octokit/core@6.1.3)
+      '@octokit/plugin-throttling': 9.4.0(@octokit/core@6.1.3)
       '@octokit/request-error': 6.1.6
-      '@octokit/types': 13.6.2
+      '@octokit/types': 13.7.0
 
   ofetch@1.4.1:
     dependencies:
@@ -38268,7 +37961,7 @@ snapshots:
     dependencies:
       flatbuffers: 1.12.0
       guid-typescript: 1.0.9
-      long: 5.2.3
+      long: 5.2.4
       onnxruntime-common: 1.20.0-dev.20241016-2b8fc5529b
       platform: 1.3.6
       protobufjs: 7.4.0
@@ -38293,7 +37986,7 @@ snapshots:
 
   openai@4.73.0(encoding@0.1.13)(zod@3.23.8):
     dependencies:
-      '@types/node': 18.19.69
+      '@types/node': 18.19.70
       '@types/node-fetch': 2.6.12
       abort-controller: 3.0.0
       agentkeepalive: 4.6.0
@@ -38305,9 +37998,9 @@ snapshots:
     transitivePeerDependencies:
       - encoding
 
-  openai@4.77.0(encoding@0.1.13)(zod@3.23.8):
+  openai@4.78.0(encoding@0.1.13)(zod@3.23.8):
     dependencies:
-      '@types/node': 18.19.69
+      '@types/node': 18.19.70
       '@types/node-fetch': 2.6.12
       abort-controller: 3.0.0
       agentkeepalive: 4.6.0
@@ -38959,10 +38652,10 @@ snapshots:
       postcss: 8.4.49
       postcss-selector-parser: 7.0.0
 
-  postcss-calc@10.0.2(postcss@8.4.49):
+  postcss-calc@10.1.0(postcss@8.4.49):
     dependencies:
       postcss: 8.4.49
-      postcss-selector-parser: 6.1.2
+      postcss-selector-parser: 7.0.0
       postcss-value-parser: 4.2.0
 
   postcss-calc@9.0.1(postcss@8.4.49):
@@ -38976,7 +38669,7 @@ snapshots:
       postcss: 8.4.49
       postcss-value-parser: 4.2.0
 
-  postcss-cli@11.0.0(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2):
+  postcss-cli@11.0.0(jiti@2.4.2)(postcss@8.4.49):
     dependencies:
       chokidar: 3.6.0
       dependency-graph: 0.11.0
@@ -38985,7 +38678,7 @@ snapshots:
       globby: 14.0.2
       picocolors: 1.1.1
       postcss: 8.4.49
-      postcss-load-config: 5.1.0(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)
+      postcss-load-config: 5.1.0(jiti@2.4.2)(postcss@8.4.49)
       postcss-reporter: 7.1.0(postcss@8.4.49)
       pretty-hrtime: 1.0.3
       read-cache: 1.0.0
@@ -39018,7 +38711,7 @@ snapshots:
 
   postcss-colormin@6.1.0(postcss@8.4.49):
     dependencies:
-      browserslist: 4.24.3
+      browserslist: 4.24.4
       caniuse-api: 3.0.0
       colord: 2.9.3
       postcss: 8.4.49
@@ -39026,7 +38719,7 @@ snapshots:
 
   postcss-colormin@7.0.2(postcss@8.4.49):
     dependencies:
-      browserslist: 4.24.3
+      browserslist: 4.24.4
       caniuse-api: 3.0.0
       colord: 2.9.3
       postcss: 8.4.49
@@ -39034,13 +38727,13 @@ snapshots:
 
   postcss-convert-values@6.1.0(postcss@8.4.49):
     dependencies:
-      browserslist: 4.24.3
+      browserslist: 4.24.4
       postcss: 8.4.49
       postcss-value-parser: 4.2.0
 
   postcss-convert-values@7.0.4(postcss@8.4.49):
     dependencies:
-      browserslist: 4.24.3
+      browserslist: 4.24.4
       postcss: 8.4.49
       postcss-value-parser: 4.2.0
 
@@ -39164,39 +38857,37 @@ snapshots:
       '@csstools/utilities': 2.0.0(postcss@8.4.49)
       postcss: 8.4.49
 
-  postcss-load-config@4.0.2(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)):
+  postcss-load-config@4.0.2(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)):
     dependencies:
       lilconfig: 3.1.3
       yaml: 2.7.0
     optionalDependencies:
       postcss: 8.4.49
-      ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)
+      ts-node: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)
 
-  postcss-load-config@5.1.0(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2):
+  postcss-load-config@5.1.0(jiti@2.4.2)(postcss@8.4.49):
     dependencies:
       lilconfig: 3.1.3
       yaml: 2.7.0
     optionalDependencies:
       jiti: 2.4.2
       postcss: 8.4.49
-      tsx: 4.19.2
 
-  postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(yaml@2.7.0):
+  postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.4.49)(yaml@2.7.0):
     dependencies:
       lilconfig: 3.1.3
     optionalDependencies:
       jiti: 2.4.2
       postcss: 8.4.49
-      tsx: 4.19.2
       yaml: 2.7.0
 
-  postcss-loader@7.3.4(postcss@8.4.49)(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))):
+  postcss-loader@7.3.4(postcss@8.4.49)(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
     dependencies:
       cosmiconfig: 8.3.6(typescript@5.6.3)
       jiti: 1.21.7
       postcss: 8.4.49
       semver: 7.6.3
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
     transitivePeerDependencies:
       - typescript
 
@@ -39225,7 +38916,7 @@ snapshots:
 
   postcss-merge-rules@6.1.1(postcss@8.4.49):
     dependencies:
-      browserslist: 4.24.3
+      browserslist: 4.24.4
       caniuse-api: 3.0.0
       cssnano-utils: 4.0.2(postcss@8.4.49)
       postcss: 8.4.49
@@ -39233,7 +38924,7 @@ snapshots:
 
   postcss-merge-rules@7.0.4(postcss@8.4.49):
     dependencies:
-      browserslist: 4.24.3
+      browserslist: 4.24.4
       caniuse-api: 3.0.0
       cssnano-utils: 5.0.0(postcss@8.4.49)
       postcss: 8.4.49
@@ -39265,14 +38956,14 @@ snapshots:
 
   postcss-minify-params@6.1.0(postcss@8.4.49):
     dependencies:
-      browserslist: 4.24.3
+      browserslist: 4.24.4
       cssnano-utils: 4.0.2(postcss@8.4.49)
       postcss: 8.4.49
       postcss-value-parser: 4.2.0
 
   postcss-minify-params@7.0.2(postcss@8.4.49):
     dependencies:
-      browserslist: 4.24.3
+      browserslist: 4.24.4
       cssnano-utils: 5.0.0(postcss@8.4.49)
       postcss: 8.4.49
       postcss-value-parser: 4.2.0
@@ -39381,13 +39072,13 @@ snapshots:
 
   postcss-normalize-unicode@6.1.0(postcss@8.4.49):
     dependencies:
-      browserslist: 4.24.3
+      browserslist: 4.24.4
       postcss: 8.4.49
       postcss-value-parser: 4.2.0
 
   postcss-normalize-unicode@7.0.2(postcss@8.4.49):
     dependencies:
-      browserslist: 4.24.3
+      browserslist: 4.24.4
       postcss: 8.4.49
       postcss-value-parser: 4.2.0
 
@@ -39476,7 +39167,7 @@ snapshots:
       '@csstools/postcss-trigonometric-functions': 4.0.6(postcss@8.4.49)
       '@csstools/postcss-unset-value': 4.0.0(postcss@8.4.49)
       autoprefixer: 10.4.20(postcss@8.4.49)
-      browserslist: 4.24.3
+      browserslist: 4.24.4
       css-blank-pseudo: 7.0.1(postcss@8.4.49)
       css-has-pseudo: 7.0.2(postcss@8.4.49)
       css-prefers-color-scheme: 10.0.0(postcss@8.4.49)
@@ -39520,13 +39211,13 @@ snapshots:
 
   postcss-reduce-initial@6.1.0(postcss@8.4.49):
     dependencies:
-      browserslist: 4.24.3
+      browserslist: 4.24.4
       caniuse-api: 3.0.0
       postcss: 8.4.49
 
   postcss-reduce-initial@7.0.2(postcss@8.4.49):
     dependencies:
-      browserslist: 4.24.3
+      browserslist: 4.24.4
       caniuse-api: 3.0.0
       postcss: 8.4.49
 
@@ -39760,7 +39451,7 @@ snapshots:
       '@protobufjs/pool': 1.1.0
       '@protobufjs/utf8': 1.1.0
       '@types/node': 20.17.9
-      long: 5.2.3
+      long: 5.2.4
 
   protocols@2.0.1: {}
 
@@ -39819,10 +39510,10 @@ snapshots:
       end-of-stream: 1.4.4
       once: 1.4.0
 
-  pumpdotfun-sdk@1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.29.1)(typescript@5.6.3)(utf-8-validate@5.0.10):
+  pumpdotfun-sdk@1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.30.1)(typescript@5.6.3)(utf-8-validate@5.0.10):
     dependencies:
       '@coral-xyz/anchor': 0.30.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
-      '@rollup/plugin-json': 6.1.0(rollup@4.29.1)
+      '@rollup/plugin-json': 6.1.0(rollup@4.30.1)
       '@solana/spl-token': 0.4.6(@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)
     transitivePeerDependencies:
@@ -40004,18 +39695,18 @@ snapshots:
       minimist: 1.2.8
       strip-json-comments: 2.0.1
 
-  react-dev-utils@12.0.1(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))):
+  react-dev-utils@12.0.1(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
     dependencies:
       '@babel/code-frame': 7.26.2
       address: 1.2.2
-      browserslist: 4.24.3
+      browserslist: 4.24.4
       chalk: 4.1.2
       cross-spawn: 7.0.6
       detect-port-alt: 1.1.6
       escape-string-regexp: 4.0.0
       filesize: 8.0.7
       find-up: 5.0.0
-      fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
+      fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       global-modules: 2.0.0
       globby: 11.1.0
       gzip-size: 6.0.0
@@ -40030,7 +39721,7 @@ snapshots:
       shell-quote: 1.8.2
       strip-ansi: 6.0.1
       text-table: 0.2.0
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
     optionalDependencies:
       typescript: 5.6.3
     transitivePeerDependencies:
@@ -40073,11 +39764,11 @@ snapshots:
     dependencies:
       react: 18.3.1
 
-  react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@6.0.0(react@18.3.1))(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))):
+  react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@6.0.0(react@18.3.1))(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
     dependencies:
       '@babel/runtime': 7.26.0
       react-loadable: '@docusaurus/react-loadable@6.0.0(react@18.3.1)'
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
 
   react-refresh@0.14.2: {}
 
@@ -40413,7 +40104,7 @@ snapshots:
     dependencies:
       '@types/estree': 1.0.6
       '@types/hast': 3.0.4
-      hast-util-to-estree: 3.1.0
+      hast-util-to-estree: 3.1.1
     transitivePeerDependencies:
       - supports-color
 
@@ -40432,7 +40123,7 @@ snapshots:
     dependencies:
       '@types/mdast': 4.0.4
       emoticon: 4.1.0
-      mdast-util-find-and-replace: 3.0.1
+      mdast-util-find-and-replace: 3.0.2
       node-emoji: 2.2.0
       unified: 11.0.5
 
@@ -40553,8 +40244,6 @@ snapshots:
 
   resolve-pathname@3.0.0: {}
 
-  resolve-pkg-maps@1.0.0: {}
-
   resolve.exports@2.0.3: {}
 
   resolve@1.17.0:
@@ -40639,29 +40328,29 @@ snapshots:
     optionalDependencies:
       fsevents: 2.3.3
 
-  rollup@4.29.1:
+  rollup@4.30.1:
     dependencies:
       '@types/estree': 1.0.6
     optionalDependencies:
-      '@rollup/rollup-android-arm-eabi': 4.29.1
-      '@rollup/rollup-android-arm64': 4.29.1
-      '@rollup/rollup-darwin-arm64': 4.29.1
-      '@rollup/rollup-darwin-x64': 4.29.1
-      '@rollup/rollup-freebsd-arm64': 4.29.1
-      '@rollup/rollup-freebsd-x64': 4.29.1
-      '@rollup/rollup-linux-arm-gnueabihf': 4.29.1
-      '@rollup/rollup-linux-arm-musleabihf': 4.29.1
-      '@rollup/rollup-linux-arm64-gnu': 4.29.1
-      '@rollup/rollup-linux-arm64-musl': 4.29.1
-      '@rollup/rollup-linux-loongarch64-gnu': 4.29.1
-      '@rollup/rollup-linux-powerpc64le-gnu': 4.29.1
-      '@rollup/rollup-linux-riscv64-gnu': 4.29.1
-      '@rollup/rollup-linux-s390x-gnu': 4.29.1
-      '@rollup/rollup-linux-x64-gnu': 4.29.1
-      '@rollup/rollup-linux-x64-musl': 4.29.1
-      '@rollup/rollup-win32-arm64-msvc': 4.29.1
-      '@rollup/rollup-win32-ia32-msvc': 4.29.1
-      '@rollup/rollup-win32-x64-msvc': 4.29.1
+      '@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.3
 
   roughjs@4.6.6:
@@ -40686,6 +40375,8 @@ snapshots:
 
   rrweb-cssom@0.7.1: {}
 
+  rrweb-cssom@0.8.0: {}
+
   rtl-detect@1.1.2: {}
 
   rtlcss@4.3.0:
@@ -41021,15 +40712,15 @@ snapshots:
       interpret: 1.4.0
       rechoir: 0.6.2
 
-  shiki@1.25.1:
+  shiki@1.26.1:
     dependencies:
-      '@shikijs/core': 1.25.1
-      '@shikijs/engine-javascript': 1.25.1
-      '@shikijs/engine-oniguruma': 1.25.1
-      '@shikijs/langs': 1.25.1
-      '@shikijs/themes': 1.25.1
-      '@shikijs/types': 1.25.1
-      '@shikijs/vscode-textmate': 9.3.1
+      '@shikijs/core': 1.26.1
+      '@shikijs/engine-javascript': 1.26.1
+      '@shikijs/engine-oniguruma': 1.26.1
+      '@shikijs/langs': 1.26.1
+      '@shikijs/themes': 1.26.1
+      '@shikijs/types': 1.26.1
+      '@shikijs/vscode-textmate': 10.0.1
       '@types/hast': 3.0.4
 
   shimmer@1.2.1: {}
@@ -41334,9 +41025,9 @@ snapshots:
     dependencies:
       minipass: 7.1.2
 
-  sswr@2.1.0(svelte@5.16.1):
+  sswr@2.1.0(svelte@5.17.3):
     dependencies:
-      svelte: 5.16.1
+      svelte: 5.17.3
       swrev: 4.0.0
 
   stack-utils@2.0.6:
@@ -41422,7 +41113,7 @@ snapshots:
       queue-tick: 1.0.1
       text-decoder: 1.2.3
     optionalDependencies:
-      bare-events: 2.5.0
+      bare-events: 2.5.4
 
   strict-uri-encode@2.0.0: {}
 
@@ -41541,23 +41232,19 @@ snapshots:
       minimist: 1.2.8
       through: 2.3.8
 
-  style-to-object@0.4.4:
-    dependencies:
-      inline-style-parser: 0.1.1
-
   style-to-object@1.0.8:
     dependencies:
       inline-style-parser: 0.2.4
 
   stylehacks@6.1.1(postcss@8.4.49):
     dependencies:
-      browserslist: 4.24.3
+      browserslist: 4.24.4
       postcss: 8.4.49
       postcss-selector-parser: 6.1.2
 
   stylehacks@7.0.4(postcss@8.4.49):
     dependencies:
-      browserslist: 4.24.3
+      browserslist: 4.24.4
       postcss: 8.4.49
       postcss-selector-parser: 6.1.2
 
@@ -41604,7 +41291,7 @@ snapshots:
 
   supports-preserve-symlinks-flag@1.0.0: {}
 
-  svelte@5.16.1:
+  svelte@5.17.3:
     dependencies:
       '@ampproject/remapping': 2.3.0
       '@jridgewell/sourcemap-codec': 1.5.0
@@ -41614,8 +41301,8 @@ snapshots:
       aria-query: 5.3.2
       axobject-query: 4.1.0
       clsx: 2.1.1
-      esm-env: 1.2.1
-      esrap: 1.3.2
+      esm-env: 1.2.2
+      esrap: 1.4.2
       is-reference: 3.0.3
       locate-character: 3.0.0
       magic-string: 0.30.17
@@ -41657,18 +41344,18 @@ snapshots:
 
   tailwind-merge@2.5.5: {}
 
-  tailwindcss-animate@1.0.7(tailwindcss@3.4.15(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))):
+  tailwindcss-animate@1.0.7(tailwindcss@3.4.15(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))):
     dependencies:
-      tailwindcss: 3.4.15(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
+      tailwindcss: 3.4.15(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
 
-  tailwindcss@3.4.15(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)):
+  tailwindcss@3.4.15(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)):
     dependencies:
       '@alloc/quick-lru': 5.2.0
       arg: 5.0.2
       chokidar: 3.6.0
       didyoumean: 1.2.2
       dlv: 1.1.3
-      fast-glob: 3.3.2
+      fast-glob: 3.3.3
       glob-parent: 6.0.2
       is-glob: 4.0.3
       jiti: 1.21.7
@@ -41680,7 +41367,7 @@ snapshots:
       postcss: 8.4.49
       postcss-import: 15.1.0(postcss@8.4.49)
       postcss-js: 4.0.1(postcss@8.4.49)
-      postcss-load-config: 4.0.2(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
+      postcss-load-config: 4.0.2(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
       postcss-nested: 6.2.0(postcss@8.4.49)
       postcss-selector-parser: 6.1.2
       resolve: 1.22.10
@@ -41755,16 +41442,16 @@ snapshots:
 
   temp-dir@1.0.0: {}
 
-  terser-webpack-plugin@5.3.11(@swc/core@1.10.4(@swc/helpers@0.5.15))(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))):
+  terser-webpack-plugin@5.3.11(@swc/core@1.10.7(@swc/helpers@0.5.15))(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
     dependencies:
       '@jridgewell/trace-mapping': 0.3.25
       jest-worker: 27.5.1
       schema-utils: 4.3.0
       serialize-javascript: 6.0.2
       terser: 5.37.0
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
     optionalDependencies:
-      '@swc/core': 1.10.4(@swc/helpers@0.5.15)
+      '@swc/core': 1.10.7(@swc/helpers@0.5.15)
 
   terser@5.37.0:
     dependencies:
@@ -41870,15 +41557,15 @@ snapshots:
 
   tinyspy@3.0.2: {}
 
-  tldts-core@6.1.70: {}
+  tldts-core@6.1.71: {}
 
-  tldts-experimental@6.1.70:
+  tldts-experimental@6.1.71:
     dependencies:
-      tldts-core: 6.1.70
+      tldts-core: 6.1.71
 
-  tldts@6.1.70:
+  tldts@6.1.71:
     dependencies:
-      tldts-core: 6.1.70
+      tldts-core: 6.1.71
 
   tmp@0.0.33:
     dependencies:
@@ -41905,7 +41592,7 @@ snapshots:
 
   together-ai@0.7.0(encoding@0.1.13):
     dependencies:
-      '@types/node': 18.19.69
+      '@types/node': 18.19.70
       '@types/node-fetch': 2.6.12
       abort-controller: 3.0.0
       agentkeepalive: 4.6.0
@@ -41939,9 +41626,9 @@ snapshots:
       universalify: 0.2.0
       url-parse: 1.5.10
 
-  tough-cookie@5.0.0:
+  tough-cookie@5.1.0:
     dependencies:
-      tldts: 6.1.70
+      tldts: 6.1.71
 
   tr46@0.0.3: {}
 
@@ -41981,12 +41668,12 @@ snapshots:
 
   ts-interface-checker@0.1.13: {}
 
-  ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)))(typescript@5.6.3):
+  ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)))(typescript@5.6.3):
     dependencies:
       bs-logger: 0.2.6
       ejs: 3.1.10
       fast-json-stable-stringify: 2.1.0
-      jest: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+      jest: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
       jest-util: 29.7.0
       json5: 2.2.3
       lodash.memoize: 4.1.2
@@ -42001,12 +41688,12 @@ snapshots:
       babel-jest: 29.7.0(@babel/core@7.26.0)
       esbuild: 0.24.2
 
-  ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@18.19.69)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3)))(typescript@5.6.3):
+  ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3)))(typescript@5.6.3):
     dependencies:
       bs-logger: 0.2.6
       ejs: 3.1.10
       fast-json-stable-stringify: 2.1.0
-      jest: 29.7.0(@types/node@18.19.69)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3))
+      jest: 29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3))
       jest-util: 29.7.0
       json5: 2.2.3
       lodash.memoize: 4.1.2
@@ -42020,12 +41707,12 @@ snapshots:
       '@jest/types': 29.6.3
       babel-jest: 29.7.0(@babel/core@7.26.0)
 
-  ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)))(typescript@5.6.3):
+  ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)))(typescript@5.6.3):
     dependencies:
       bs-logger: 0.2.6
       ejs: 3.1.10
       fast-json-stable-stringify: 2.1.0
-      jest: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
+      jest: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
       jest-util: 29.7.0
       json5: 2.2.3
       lodash.memoize: 4.1.2
@@ -42041,14 +41728,14 @@ snapshots:
 
   ts-mixer@6.0.4: {}
 
-  ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@18.19.69)(typescript@5.6.3):
+  ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3):
     dependencies:
       '@cspotcode/source-map-support': 0.8.1
       '@tsconfig/node10': 1.0.11
       '@tsconfig/node12': 1.0.11
       '@tsconfig/node14': 1.0.3
       '@tsconfig/node16': 1.0.4
-      '@types/node': 18.19.69
+      '@types/node': 18.19.70
       acorn: 8.14.0
       acorn-walk: 8.3.4
       arg: 4.1.3
@@ -42059,9 +41746,9 @@ snapshots:
       v8-compile-cache-lib: 3.0.1
       yn: 3.1.1
     optionalDependencies:
-      '@swc/core': 1.10.4(@swc/helpers@0.5.15)
+      '@swc/core': 1.10.7(@swc/helpers@0.5.15)
 
-  ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3):
+  ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3):
     dependencies:
       '@cspotcode/source-map-support': 0.8.1
       '@tsconfig/node10': 1.0.11
@@ -42079,16 +41766,16 @@ snapshots:
       v8-compile-cache-lib: 3.0.1
       yn: 3.1.1
     optionalDependencies:
-      '@swc/core': 1.10.4(@swc/helpers@0.5.15)
+      '@swc/core': 1.10.7(@swc/helpers@0.5.15)
 
-  ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.4)(typescript@5.6.3):
+  ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.6.3):
     dependencies:
       '@cspotcode/source-map-support': 0.8.1
       '@tsconfig/node10': 1.0.11
       '@tsconfig/node12': 1.0.11
       '@tsconfig/node14': 1.0.3
       '@tsconfig/node16': 1.0.4
-      '@types/node': 22.10.4
+      '@types/node': 22.10.5
       acorn: 8.14.0
       acorn-walk: 8.3.4
       arg: 4.1.3
@@ -42099,10 +41786,10 @@ snapshots:
       v8-compile-cache-lib: 3.0.1
       yn: 3.1.1
     optionalDependencies:
-      '@swc/core': 1.10.4(@swc/helpers@0.5.15)
+      '@swc/core': 1.10.7(@swc/helpers@0.5.15)
     optional: true
 
-  ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3):
+  ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3):
     dependencies:
       '@cspotcode/source-map-support': 0.8.1
       '@tsconfig/node10': 1.0.11
@@ -42120,7 +41807,7 @@ snapshots:
       v8-compile-cache-lib: 3.0.1
       yn: 3.1.1
     optionalDependencies:
-      '@swc/core': 1.10.4(@swc/helpers@0.5.15)
+      '@swc/core': 1.10.7(@swc/helpers@0.5.15)
 
   tsconfig-paths@4.2.0:
     dependencies:
@@ -42142,7 +41829,7 @@ snapshots:
 
   tsscmp@1.0.6: {}
 
-  tsup@8.3.5(@swc/core@1.10.4(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0):
+  tsup@8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0):
     dependencies:
       bundle-require: 5.1.0(esbuild@0.24.2)
       cac: 6.7.14
@@ -42152,16 +41839,16 @@ snapshots:
       esbuild: 0.24.2
       joycon: 3.1.1
       picocolors: 1.1.1
-      postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(yaml@2.7.0)
+      postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.4.49)(yaml@2.7.0)
       resolve-from: 5.0.0
-      rollup: 4.29.1
+      rollup: 4.30.1
       source-map: 0.8.0-beta.0
       sucrase: 3.35.0
       tinyexec: 0.3.2
       tinyglobby: 0.2.10
       tree-kill: 1.2.2
     optionalDependencies:
-      '@swc/core': 1.10.4(@swc/helpers@0.5.15)
+      '@swc/core': 1.10.7(@swc/helpers@0.5.15)
       postcss: 8.4.49
       typescript: 5.6.3
     transitivePeerDependencies:
@@ -42170,13 +41857,6 @@ snapshots:
       - tsx
       - yaml
 
-  tsx@4.19.2:
-    dependencies:
-      esbuild: 0.23.1
-      get-tsconfig: 4.8.1
-    optionalDependencies:
-      fsevents: 2.3.3
-
   tty-browserify@0.0.1: {}
 
   tuf-js@2.2.1:
@@ -42259,7 +41939,7 @@ snapshots:
 
   type-fest@2.19.0: {}
 
-  type-fest@4.31.0: {}
+  type-fest@4.32.0: {}
 
   type-is@1.6.18:
     dependencies:
@@ -42329,7 +42009,7 @@ snapshots:
       lunr: 2.3.9
       markdown-it: 14.1.0
       minimatch: 9.0.5
-      shiki: 1.25.1
+      shiki: 1.26.1
       typescript: 5.6.3
       yaml: 2.7.0
 
@@ -42439,7 +42119,7 @@ snapshots:
 
   undici@6.19.8: {}
 
-  undici@7.2.0: {}
+  undici@7.2.1: {}
 
   unenv@1.10.0:
     dependencies:
@@ -42606,9 +42286,9 @@ snapshots:
 
   upath@2.0.1: {}
 
-  update-browserslist-db@1.1.1(browserslist@4.24.3):
+  update-browserslist-db@1.1.2(browserslist@4.24.4):
     dependencies:
-      browserslist: 4.24.3
+      browserslist: 4.24.4
       escalade: 3.2.0
       picocolors: 1.1.1
 
@@ -42635,14 +42315,14 @@ snapshots:
 
   url-join@4.0.1: {}
 
-  url-loader@4.1.1(file-loader@6.2.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))))(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))):
+  url-loader@4.1.1(file-loader@6.2.0(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))))(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
     dependencies:
       loader-utils: 2.0.4
       mime-types: 2.1.35
       schema-utils: 3.3.0
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
     optionalDependencies:
-      file-loader: 6.2.0(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
+      file-loader: 6.2.0(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
 
   url-parse@1.5.10:
     dependencies:
@@ -42843,12 +42523,12 @@ snapshots:
       - utf-8-validate
       - zod
 
-  vite-node@2.1.4(@types/node@22.10.4)(terser@5.37.0):
+  vite-node@2.1.4(@types/node@22.10.5)(terser@5.37.0):
     dependencies:
       cac: 6.7.14
       debug: 4.4.0(supports-color@8.1.1)
       pathe: 1.1.2
-      vite: 5.4.11(@types/node@22.10.4)(terser@5.37.0)
+      vite: 5.4.11(@types/node@22.10.5)(terser@5.37.0)
     transitivePeerDependencies:
       - '@types/node'
       - less
@@ -42860,13 +42540,13 @@ snapshots:
       - supports-color
       - terser
 
-  vite-node@2.1.5(@types/node@22.10.4)(terser@5.37.0):
+  vite-node@2.1.5(@types/node@22.10.5)(terser@5.37.0):
     dependencies:
       cac: 6.7.14
       debug: 4.4.0(supports-color@8.1.1)
       es-module-lexer: 1.6.0
       pathe: 1.1.2
-      vite: 5.4.11(@types/node@22.10.4)(terser@5.37.0)
+      vite: 5.4.11(@types/node@22.10.5)(terser@5.37.0)
     transitivePeerDependencies:
       - '@types/node'
       - less
@@ -42896,10 +42576,10 @@ snapshots:
       - supports-color
       - terser
 
-  vite-plugin-top-level-await@1.4.4(@swc/helpers@0.5.15)(rollup@4.29.1)(vite@client+@tanstack+router-plugin+vite):
+  vite-plugin-top-level-await@1.4.4(@swc/helpers@0.5.15)(rollup@4.30.1)(vite@client+@tanstack+router-plugin+vite):
     dependencies:
-      '@rollup/plugin-virtual': 3.0.2(rollup@4.29.1)
-      '@swc/core': 1.10.4(@swc/helpers@0.5.15)
+      '@rollup/plugin-virtual': 3.0.2(rollup@4.30.1)
+      '@swc/core': 1.10.7(@swc/helpers@0.5.15)
       uuid: 10.0.0
       vite: link:client/@tanstack/router-plugin/vite
     transitivePeerDependencies:
@@ -42910,13 +42590,13 @@ snapshots:
     dependencies:
       vite: link:client/@tanstack/router-plugin/vite
 
-  vite@5.4.11(@types/node@22.10.4)(terser@5.37.0):
+  vite@5.4.11(@types/node@22.10.5)(terser@5.37.0):
     dependencies:
       esbuild: 0.21.5
       postcss: 8.4.49
-      rollup: 4.29.1
+      rollup: 4.30.1
     optionalDependencies:
-      '@types/node': 22.10.4
+      '@types/node': 22.10.5
       fsevents: 2.3.3
       terser: 5.37.0
 
@@ -42924,16 +42604,16 @@ snapshots:
     dependencies:
       esbuild: 0.21.5
       postcss: 8.4.49
-      rollup: 4.29.1
+      rollup: 4.30.1
     optionalDependencies:
       '@types/node': 22.8.4
       fsevents: 2.3.3
       terser: 5.37.0
 
-  vitest@2.1.4(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0):
+  vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0):
     dependencies:
       '@vitest/expect': 2.1.4
-      '@vitest/mocker': 2.1.4(vite@5.4.11(@types/node@22.10.4)(terser@5.37.0))
+      '@vitest/mocker': 2.1.4(vite@5.4.11(@types/node@22.10.5)(terser@5.37.0))
       '@vitest/pretty-format': 2.1.8
       '@vitest/runner': 2.1.4
       '@vitest/snapshot': 2.1.4
@@ -42949,11 +42629,11 @@ snapshots:
       tinyexec: 0.3.2
       tinypool: 1.0.2
       tinyrainbow: 1.2.0
-      vite: 5.4.11(@types/node@22.10.4)(terser@5.37.0)
-      vite-node: 2.1.4(@types/node@22.10.4)(terser@5.37.0)
+      vite: 5.4.11(@types/node@22.10.5)(terser@5.37.0)
+      vite-node: 2.1.4(@types/node@22.10.5)(terser@5.37.0)
       why-is-node-running: 2.3.0
     optionalDependencies:
-      '@types/node': 22.10.4
+      '@types/node': 22.10.5
       jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10)
     transitivePeerDependencies:
       - less
@@ -42966,10 +42646,10 @@ snapshots:
       - supports-color
       - terser
 
-  vitest@2.1.5(@types/node@22.10.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0):
+  vitest@2.1.5(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0):
     dependencies:
       '@vitest/expect': 2.1.5
-      '@vitest/mocker': 2.1.5(vite@5.4.11(@types/node@22.10.4)(terser@5.37.0))
+      '@vitest/mocker': 2.1.5(vite@5.4.11(@types/node@22.10.5)(terser@5.37.0))
       '@vitest/pretty-format': 2.1.8
       '@vitest/runner': 2.1.5
       '@vitest/snapshot': 2.1.5
@@ -42985,11 +42665,11 @@ snapshots:
       tinyexec: 0.3.2
       tinypool: 1.0.2
       tinyrainbow: 1.2.0
-      vite: 5.4.11(@types/node@22.10.4)(terser@5.37.0)
-      vite-node: 2.1.5(@types/node@22.10.4)(terser@5.37.0)
+      vite: 5.4.11(@types/node@22.10.5)(terser@5.37.0)
+      vite-node: 2.1.5(@types/node@22.10.5)(terser@5.37.0)
       why-is-node-running: 2.3.0
     optionalDependencies:
-      '@types/node': 22.10.4
+      '@types/node': 22.10.5
       jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10)
     transitivePeerDependencies:
       - less
@@ -43005,7 +42685,7 @@ snapshots:
   vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0):
     dependencies:
       '@vitest/expect': 2.1.5
-      '@vitest/mocker': 2.1.5(vite@5.4.11(@types/node@22.10.4)(terser@5.37.0))
+      '@vitest/mocker': 2.1.5(vite@5.4.11(@types/node@22.10.5)(terser@5.37.0))
       '@vitest/pretty-format': 2.1.8
       '@vitest/runner': 2.1.5
       '@vitest/snapshot': 2.1.5
@@ -43253,10 +42933,10 @@ snapshots:
       - encoding
       - utf-8-validate
 
-  web3-plugin-zksync@1.0.8(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.4)(typescript@5.6.3))(typescript@5.6.3)(utf-8-validate@5.0.10)(web3@4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)):
+  web3-plugin-zksync@1.0.8(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.6.3))(typescript@5.6.3)(utf-8-validate@5.0.10)(web3@4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)):
     dependencies:
       ethereum-cryptography: 2.2.1
-      hardhat: 2.22.17(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.4)(typescript@5.6.3))(typescript@5.6.3)(utf-8-validate@5.0.10)
+      hardhat: 2.22.17(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.6.3))(typescript@5.6.3)(utf-8-validate@5.0.10)
       web3: 4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
     transitivePeerDependencies:
       - bufferutil
@@ -43398,16 +43078,16 @@ snapshots:
       - bufferutil
       - utf-8-validate
 
-  webpack-dev-middleware@5.3.4(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))):
+  webpack-dev-middleware@5.3.4(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
     dependencies:
       colorette: 2.0.20
       memfs: 3.5.3
       mime-types: 2.1.35
       range-parser: 1.2.1
       schema-utils: 4.3.0
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
 
-  webpack-dev-server@4.15.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))):
+  webpack-dev-server@4.15.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
     dependencies:
       '@types/bonjour': 3.5.13
       '@types/connect-history-api-fallback': 1.5.4
@@ -43437,10 +43117,10 @@ snapshots:
       serve-index: 1.9.1
       sockjs: 0.3.24
       spdy: 4.0.2
-      webpack-dev-middleware: 5.3.4(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
+      webpack-dev-middleware: 5.3.4(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
     optionalDependencies:
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
     transitivePeerDependencies:
       - bufferutil
       - debug
@@ -43461,7 +43141,7 @@ snapshots:
 
   webpack-sources@3.2.3: {}
 
-  webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)):
+  webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)):
     dependencies:
       '@types/eslint-scope': 3.7.7
       '@types/estree': 1.0.6
@@ -43469,7 +43149,7 @@ snapshots:
       '@webassemblyjs/wasm-edit': 1.14.1
       '@webassemblyjs/wasm-parser': 1.14.1
       acorn: 8.14.0
-      browserslist: 4.24.3
+      browserslist: 4.24.4
       chrome-trace-event: 1.0.4
       enhanced-resolve: 5.18.0
       es-module-lexer: 1.6.0
@@ -43483,7 +43163,7 @@ snapshots:
       neo-async: 2.6.2
       schema-utils: 3.3.0
       tapable: 2.2.1
-      terser-webpack-plugin: 5.3.11(@swc/core@1.10.4(@swc/helpers@0.5.15))(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15)))
+      terser-webpack-plugin: 5.3.11(@swc/core@1.10.7(@swc/helpers@0.5.15))(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       watchpack: 2.4.2
       webpack-sources: 3.2.3
     transitivePeerDependencies:
@@ -43491,7 +43171,7 @@ snapshots:
       - esbuild
       - uglify-js
 
-  webpackbar@6.0.1(webpack@5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))):
+  webpackbar@6.0.1(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
     dependencies:
       ansi-escapes: 4.3.2
       chalk: 4.1.2
@@ -43500,12 +43180,12 @@ snapshots:
       markdown-table: 2.0.0
       pretty-time: 1.1.0
       std-env: 3.8.0
-      webpack: 5.97.1(@swc/core@1.10.4(@swc/helpers@0.5.15))
+      webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
       wrap-ansi: 7.0.0
 
   websocket-driver@0.7.4:
     dependencies:
-      http-parser-js: 0.5.8
+      http-parser-js: 0.5.9
       safe-buffer: 5.2.1
       websocket-extensions: 0.1.4
 

From 6e0d433b26d5766f51c8830f534eba4d794378cc Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Fri, 10 Jan 2025 20:19:16 +0700
Subject: [PATCH 02/58] XX

---
 agent/src/index.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/agent/src/index.ts b/agent/src/index.ts
index 7e5a36f1497..4d43118d1ef 100644
--- a/agent/src/index.ts
+++ b/agent/src/index.ts
@@ -506,7 +506,7 @@ export async function createAgent(
         elizaLogger.error(
             "WALLET_SECRET_SALT required when TEE_MODE is enabled"
         );
-        throw new Error("Invalid TEE configuration");
+        throw new Error("Invalid TEES configuration");
     }
 
     let goatPlugin: any | undefined;

From a3b1fe198929be9be5f14f5038525ab45bbcc1ec Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Sun, 12 Jan 2025 09:55:15 +0700
Subject: [PATCH 03/58] OKE BRO

---
 agent/package.json                            |    3 +
 agent/src/index.ts                            |   13 +-
 package.json                                  |    2 +
 packages/core/src/context.ts                  |    3 +-
 packages/plugin-coinmarketcap/README.md       |  127 +
 .../README.md:Zone.Identifier                 |    0
 packages/plugin-coinmarketcap/package.json    |   19 +
 .../package.json:Zone.Identifier              |    0
 .../src/actions/getPrice/examples.ts          |   46 +
 .../getPrice/examples.ts:Zone.Identifier      |    0
 .../src/actions/getPrice/index.ts             |  118 +
 .../actions/getPrice/index.ts:Zone.Identifier |    0
 .../src/actions/getPrice/service.ts           |   71 +
 .../getPrice/service.ts:Zone.Identifier       |    0
 .../src/actions/getPrice/template.ts          |   27 +
 .../getPrice/template.ts:Zone.Identifier      |    0
 .../src/actions/getPrice/types.ts             |   28 +
 .../actions/getPrice/types.ts:Zone.Identifier |    0
 .../src/actions/getPrice/validation.ts        |   16 +
 .../getPrice/validation.ts:Zone.Identifier    |    0
 .../plugin-coinmarketcap/src/environment.ts   |   32 +
 .../src/environment.ts:Zone.Identifier        |    0
 packages/plugin-coinmarketcap/src/index.ts    |   12 +
 .../src/index.ts:Zone.Identifier              |    0
 packages/plugin-coinmarketcap/src/types.ts    |   28 +
 .../src/types.ts:Zone.Identifier              |    0
 packages/plugin-coinmarketcap/tsconfig.json   |   10 +
 .../tsconfig.json:Zone.Identifier             |    0
 packages/plugin-coinmarketcap/tsup.config.ts  |   19 +
 .../tsup.config.ts:Zone.Identifier            |    0
 packages/plugin-goplus/.npmignore             |    6 +
 .../plugin-goplus/.npmignore:Zone.Identifier  |    0
 packages/plugin-goplus/eslint.config.mjs      |    3 +
 .../eslint.config.mjs:Zone.Identifier         |    0
 packages/plugin-goplus/package.json           |   21 +
 .../package.json:Zone.Identifier              |    0
 packages/plugin-goplus/src/index.ts           |   17 +
 .../src/index.ts:Zone.Identifier              |    0
 .../plugin-goplus/src/lib/GoPlusManage.ts     |  130 +
 .../src/lib/GoPlusManage.ts:Zone.Identifier   |    0
 .../src/services/GoplusSecurityService.ts     |  140 ++
 .../GoplusSecurityService.ts:Zone.Identifier  |    0
 packages/plugin-goplus/src/templates/index.ts |  209 ++
 .../src/templates/index.ts:Zone.Identifier    |    0
 packages/plugin-goplus/tsconfig.json          |   11 +
 .../tsconfig.json:Zone.Identifier             |    0
 packages/plugin-goplus/tsup.config.ts         |   10 +
 .../tsup.config.ts:Zone.Identifier            |    0
 packages/plugin-market-analisys/.gitignore    |   37 +
 .../.gitignore:Zone.Identifier                |    0
 packages/plugin-market-analisys/.npmignore    |    6 +
 .../.npmignore:Zone.Identifier                |    0
 packages/plugin-market-analisys/README.md     |   35 +
 .../README.md:Zone.Identifier                 |    0
 .../plugin-market-analisys/eslint.config.mjs  |    3 +
 .../eslint.config.mjs:Zone.Identifier         |    0
 .../plugin-market-analisys/media/image.jpg    |  Bin 0 -> 160235 bytes
 .../media/image.jpg:Zone.Identifier           |    0
 .../media/screenshot.png                      |  Bin 0 -> 436159 bytes
 .../media/screenshot.png:Zone.Identifier      |    0
 packages/plugin-market-analisys/package.json  |   22 +
 .../package.json:Zone.Identifier              |    0
 .../plugin-market-analisys/scripts/install.py |    0
 .../scripts/install.py:Zone.Identifier        |    0
 .../src/actions/tokenOverview.ts              |  232 ++
 .../actions/tokenOverview.ts:Zone.Identifier  |    0
 packages/plugin-market-analisys/src/index.ts  |   11 +
 .../src/index.ts:Zone.Identifier              |    0
 .../providers/twitterTrendingMarketData.ts    |  113 +
 ...itterTrendingMarketData.ts:Zone.Identifier |    0
 .../src/tests/birdeye.test.ts                 |   77 +
 .../src/tests/birdeye.test.ts:Zone.Identifier |    0
 .../src/utils/birdeye.ts                      |  174 ++
 .../src/utils/birdeye.ts:Zone.Identifier      |    0
 packages/plugin-market-analisys/tsconfig.json |   13 +
 .../tsconfig.json:Zone.Identifier             |    0
 .../plugin-market-analisys/tsup.config.ts     |   23 +
 .../tsup.config.ts:Zone.Identifier            |    0
 pnpm-lock.yaml                                | 2157 +++++++++++------
 79 files changed, 3314 insertions(+), 710 deletions(-)
 create mode 100644 packages/plugin-coinmarketcap/README.md
 create mode 100644 packages/plugin-coinmarketcap/README.md:Zone.Identifier
 create mode 100644 packages/plugin-coinmarketcap/package.json
 create mode 100644 packages/plugin-coinmarketcap/package.json:Zone.Identifier
 create mode 100644 packages/plugin-coinmarketcap/src/actions/getPrice/examples.ts
 create mode 100644 packages/plugin-coinmarketcap/src/actions/getPrice/examples.ts:Zone.Identifier
 create mode 100644 packages/plugin-coinmarketcap/src/actions/getPrice/index.ts
 create mode 100644 packages/plugin-coinmarketcap/src/actions/getPrice/index.ts:Zone.Identifier
 create mode 100644 packages/plugin-coinmarketcap/src/actions/getPrice/service.ts
 create mode 100644 packages/plugin-coinmarketcap/src/actions/getPrice/service.ts:Zone.Identifier
 create mode 100644 packages/plugin-coinmarketcap/src/actions/getPrice/template.ts
 create mode 100644 packages/plugin-coinmarketcap/src/actions/getPrice/template.ts:Zone.Identifier
 create mode 100644 packages/plugin-coinmarketcap/src/actions/getPrice/types.ts
 create mode 100644 packages/plugin-coinmarketcap/src/actions/getPrice/types.ts:Zone.Identifier
 create mode 100644 packages/plugin-coinmarketcap/src/actions/getPrice/validation.ts
 create mode 100644 packages/plugin-coinmarketcap/src/actions/getPrice/validation.ts:Zone.Identifier
 create mode 100644 packages/plugin-coinmarketcap/src/environment.ts
 create mode 100644 packages/plugin-coinmarketcap/src/environment.ts:Zone.Identifier
 create mode 100644 packages/plugin-coinmarketcap/src/index.ts
 create mode 100644 packages/plugin-coinmarketcap/src/index.ts:Zone.Identifier
 create mode 100644 packages/plugin-coinmarketcap/src/types.ts
 create mode 100644 packages/plugin-coinmarketcap/src/types.ts:Zone.Identifier
 create mode 100644 packages/plugin-coinmarketcap/tsconfig.json
 create mode 100644 packages/plugin-coinmarketcap/tsconfig.json:Zone.Identifier
 create mode 100644 packages/plugin-coinmarketcap/tsup.config.ts
 create mode 100644 packages/plugin-coinmarketcap/tsup.config.ts:Zone.Identifier
 create mode 100644 packages/plugin-goplus/.npmignore
 create mode 100644 packages/plugin-goplus/.npmignore:Zone.Identifier
 create mode 100644 packages/plugin-goplus/eslint.config.mjs
 create mode 100644 packages/plugin-goplus/eslint.config.mjs:Zone.Identifier
 create mode 100644 packages/plugin-goplus/package.json
 create mode 100644 packages/plugin-goplus/package.json:Zone.Identifier
 create mode 100644 packages/plugin-goplus/src/index.ts
 create mode 100644 packages/plugin-goplus/src/index.ts:Zone.Identifier
 create mode 100644 packages/plugin-goplus/src/lib/GoPlusManage.ts
 create mode 100644 packages/plugin-goplus/src/lib/GoPlusManage.ts:Zone.Identifier
 create mode 100644 packages/plugin-goplus/src/services/GoplusSecurityService.ts
 create mode 100644 packages/plugin-goplus/src/services/GoplusSecurityService.ts:Zone.Identifier
 create mode 100644 packages/plugin-goplus/src/templates/index.ts
 create mode 100644 packages/plugin-goplus/src/templates/index.ts:Zone.Identifier
 create mode 100644 packages/plugin-goplus/tsconfig.json
 create mode 100644 packages/plugin-goplus/tsconfig.json:Zone.Identifier
 create mode 100644 packages/plugin-goplus/tsup.config.ts
 create mode 100644 packages/plugin-goplus/tsup.config.ts:Zone.Identifier
 create mode 100644 packages/plugin-market-analisys/.gitignore
 create mode 100644 packages/plugin-market-analisys/.gitignore:Zone.Identifier
 create mode 100644 packages/plugin-market-analisys/.npmignore
 create mode 100644 packages/plugin-market-analisys/.npmignore:Zone.Identifier
 create mode 100644 packages/plugin-market-analisys/README.md
 create mode 100644 packages/plugin-market-analisys/README.md:Zone.Identifier
 create mode 100644 packages/plugin-market-analisys/eslint.config.mjs
 create mode 100644 packages/plugin-market-analisys/eslint.config.mjs:Zone.Identifier
 create mode 100644 packages/plugin-market-analisys/media/image.jpg
 create mode 100644 packages/plugin-market-analisys/media/image.jpg:Zone.Identifier
 create mode 100644 packages/plugin-market-analisys/media/screenshot.png
 create mode 100644 packages/plugin-market-analisys/media/screenshot.png:Zone.Identifier
 create mode 100644 packages/plugin-market-analisys/package.json
 create mode 100644 packages/plugin-market-analisys/package.json:Zone.Identifier
 create mode 100644 packages/plugin-market-analisys/scripts/install.py
 create mode 100644 packages/plugin-market-analisys/scripts/install.py:Zone.Identifier
 create mode 100644 packages/plugin-market-analisys/src/actions/tokenOverview.ts
 create mode 100644 packages/plugin-market-analisys/src/actions/tokenOverview.ts:Zone.Identifier
 create mode 100644 packages/plugin-market-analisys/src/index.ts
 create mode 100644 packages/plugin-market-analisys/src/index.ts:Zone.Identifier
 create mode 100644 packages/plugin-market-analisys/src/providers/twitterTrendingMarketData.ts
 create mode 100644 packages/plugin-market-analisys/src/providers/twitterTrendingMarketData.ts:Zone.Identifier
 create mode 100644 packages/plugin-market-analisys/src/tests/birdeye.test.ts
 create mode 100644 packages/plugin-market-analisys/src/tests/birdeye.test.ts:Zone.Identifier
 create mode 100644 packages/plugin-market-analisys/src/utils/birdeye.ts
 create mode 100644 packages/plugin-market-analisys/src/utils/birdeye.ts:Zone.Identifier
 create mode 100644 packages/plugin-market-analisys/tsconfig.json
 create mode 100644 packages/plugin-market-analisys/tsconfig.json:Zone.Identifier
 create mode 100644 packages/plugin-market-analisys/tsup.config.ts
 create mode 100644 packages/plugin-market-analisys/tsup.config.ts:Zone.Identifier

diff --git a/agent/package.json b/agent/package.json
index f4fa0f33e03..e643528fae6 100644
--- a/agent/package.json
+++ b/agent/package.json
@@ -19,6 +19,8 @@
     },
     "dependencies": {
         "@elizaos/adapter-postgres": "workspace:*",
+        "@elizaos/plugin-coinmarketcap": "workspace:*",
+        "@elizaos/plugin-goplus": "workspace:*",
         "@elizaos/adapter-redis": "workspace:*",
         "@elizaos/adapter-sqlite": "workspace:*",
         "@elizaos/client-auto": "workspace:*",
@@ -62,6 +64,7 @@
         "@elizaos/plugin-avalanche": "workspace:*",
         "@elizaos/plugin-web-search": "workspace:*",
         "readline": "1.3.0",
+        "@ethosdao/plugin-market-analisys": "workspace:*",
         "ws": "8.18.0",
         "yargs": "17.7.2"
     },
diff --git a/agent/src/index.ts b/agent/src/index.ts
index 4d43118d1ef..48298ac2d6e 100644
--- a/agent/src/index.ts
+++ b/agent/src/index.ts
@@ -26,7 +26,7 @@ import {
     ModelProviderName,
     settings,
     stringToUuid,
-    validateCharacterConfig
+    validateCharacterConfig,
 } from "@elizaos/core";
 import { zgPlugin } from "@elizaos/plugin-0g";
 import { bootstrapPlugin } from "@elizaos/plugin-bootstrap";
@@ -45,12 +45,14 @@ import {
     tradePlugin,
     webhookPlugin,
 } from "@elizaos/plugin-coinbase";
+import { coinmarketcapPlugin } from "@elizaos/plugin-coinmarketcap";
 import { confluxPlugin } from "@elizaos/plugin-conflux";
 import { cronosZkEVMPlugin } from "@elizaos/plugin-cronoszkevm";
 import { echoChamberPlugin } from "@elizaos/plugin-echochambers";
 import { evmPlugin } from "@elizaos/plugin-evm";
 import { flowPlugin } from "@elizaos/plugin-flow";
 import { fuelPlugin } from "@elizaos/plugin-fuel";
+import { goplusPlugin } from "@elizaos/plugin-goplus";
 import { imageGenerationPlugin } from "@elizaos/plugin-image-generation";
 import { multiversxPlugin } from "@elizaos/plugin-multiversx";
 import { nearPlugin } from "@elizaos/plugin-near";
@@ -530,7 +532,10 @@ export async function createAgent(
                 ? confluxPlugin
                 : null,
             nodePlugin,
-            getSecret(character, "TAVILY_API_KEY") || getSecret(character, "SERPER_API_KEY") ? webSearchPlugin : null,
+            getSecret(character, "TAVILY_API_KEY") ||
+            getSecret(character, "SERPER_API_KEY")
+                ? webSearchPlugin
+                : null,
             getSecret(character, "SOLANA_PUBLIC_KEY") ||
             (getSecret(character, "WALLET_PUBLIC_KEY") &&
                 !getSecret(character, "WALLET_PUBLIC_KEY")?.startsWith("0x"))
@@ -557,6 +562,10 @@ export async function createAgent(
                 ? nftGenerationPlugin
                 : null,
             getSecret(character, "ZEROG_PRIVATE_KEY") ? zgPlugin : null,
+            goplusPlugin,
+            getSecret(character, "COINMARKETCAP_API_KEY")
+                ? coinmarketcapPlugin
+                : null,
             getSecret(character, "COINBASE_COMMERCE_KEY")
                 ? coinbaseCommercePlugin
                 : null,
diff --git a/package.json b/package.json
index 5bd706ecced..51c94937d6a 100644
--- a/package.json
+++ b/package.json
@@ -57,6 +57,8 @@
         "@0glabs/0g-ts-sdk": "0.2.1",
         "@coinbase/coinbase-sdk": "0.10.0",
         "@deepgram/sdk": "^3.9.0",
+        "@glacier-network/client": "^0.2.1",
+        "@glacier-network/elizaos-adapter": "0.0.1-alpha.1",
         "@vitest/eslint-plugin": "1.0.1",
         "amqplib": "0.10.5",
         "axios": "^1.7.9",
diff --git a/packages/core/src/context.ts b/packages/core/src/context.ts
index a682e6794c8..5527cd26523 100644
--- a/packages/core/src/context.ts
+++ b/packages/core/src/context.ts
@@ -1,6 +1,6 @@
 import handlebars from "handlebars";
-import { type State } from "./types.ts";
 import { names, uniqueNamesGenerator } from "unique-names-generator";
+import { type State } from "./types.ts";
 
 /**
  * Composes a context string by replacing placeholders in a template with corresponding values from the state.
@@ -45,6 +45,7 @@ export const composeContext = ({
         const key = match.replace(/{{|}}/g, "");
         return state[key] ?? "";
     });
+    //console.log('DEBUG OUT',out)
     return out;
 };
 
diff --git a/packages/plugin-coinmarketcap/README.md b/packages/plugin-coinmarketcap/README.md
new file mode 100644
index 00000000000..9c042d9e576
--- /dev/null
+++ b/packages/plugin-coinmarketcap/README.md
@@ -0,0 +1,127 @@
+# @elizaos/plugin-coinmarketcap
+
+A plugin for Eliza that enables cryptocurrency price checking using the CoinMarketCap API.
+
+## Features
+
+- Real-time cryptocurrency price checking
+- Support for multiple cryptocurrencies (BTC, ETH, SOL, etc.)
+- Currency conversion (USD, EUR, etc.)
+- Detailed price and market data
+- Natural language processing for price queries
+
+## Installation
+
+```bash
+npm install @elizaos/plugin-coinmarketcap
+```
+
+## Configuration
+
+1. Get your API key from [CoinMarketCap](https://pro.coinmarketcap.com)
+
+2. Set up your environment variables:
+
+```bash
+COINMARKETCAP_API_KEY=your_api_key
+```
+
+3. Register the plugin in your Eliza configuration:
+
+```typescript
+import { CoinMarketCapPlugin } from "@elizaos/plugin-coinmarketcap";
+
+// In your Eliza configuration
+plugins: [
+    new CoinMarketCapPlugin(),
+    // ... other plugins
+];
+```
+
+## Usage
+
+The plugin responds to natural language queries about cryptocurrency prices. Here are some examples:
+
+```plaintext
+"What's the current price of Bitcoin?"
+"Show me ETH price in USD"
+"Get the price of SOL"
+```
+
+### Supported Cryptocurrencies
+
+The plugin supports major cryptocurrencies including:
+
+- Bitcoin (BTC)
+- Ethereum (ETH)
+- Solana (SOL)
+- USD Coin (USDC)
+- And many more...
+
+### Available Actions
+
+#### GET_PRICE
+
+Fetches the current price of a cryptocurrency.
+
+```typescript
+// Example response format
+{
+  symbol: "BTC",
+  price: 50000.00,
+  currency: "USD",
+  marketCap: 1000000000000,
+  volume24h: 50000000000,
+  percentChange24h: 2.5
+}
+```
+
+## API Reference
+
+### Environment Variables
+
+| Variable              | Description                | Required |
+| --------------------- | -------------------------- | -------- |
+| COINMARKETCAP_API_KEY | Your CoinMarketCap API key | Yes      |
+
+### Types
+
+```typescript
+interface PriceData {
+    price: number;
+    marketCap: number;
+    volume24h: number;
+    percentChange24h: number;
+}
+
+interface GetPriceContent {
+    symbol: string;
+    currency: string;
+}
+```
+
+## Error Handling
+
+The plugin includes comprehensive error handling for:
+
+- Invalid API keys
+- Rate limiting
+- Network timeouts
+- Invalid cryptocurrency symbols
+- Unsupported currencies
+
+## Rate Limits
+
+CoinMarketCap API has different rate limits based on your subscription plan. Please refer to [CoinMarketCap's pricing page](https://coinmarketcap.com/api/pricing/) for detailed information.
+
+## Support
+
+For support, please open an issue in the repository or reach out to the maintainers:
+
+- Discord: 0xspit
+
+## Links
+
+- [CoinMarketCap API Documentation](https://coinmarketcap.com/api/documentation/v1/)
+
+- [GitHub Repository](https://github.com/elizaos/eliza/tree/main/packages/plugin-coinmarketcap)
diff --git a/packages/plugin-coinmarketcap/README.md:Zone.Identifier b/packages/plugin-coinmarketcap/README.md:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-coinmarketcap/package.json b/packages/plugin-coinmarketcap/package.json
new file mode 100644
index 00000000000..0d537ed9a18
--- /dev/null
+++ b/packages/plugin-coinmarketcap/package.json
@@ -0,0 +1,19 @@
+{
+    "name": "@elizaos/plugin-coinmarketcap",
+    "version": "0.1.7-alpha.2",
+    "main": "dist/index.js",
+    "type": "module",
+    "types": "dist/index.d.ts",
+    "dependencies": {
+        "@elizaos/core": "^0.1.7",
+        "axios": "^1.6.7",
+        "zod": "^3.22.4"
+    },
+    "devDependencies": {
+        "tsup": "^8.3.5"
+    },
+    "scripts": {
+        "build": "tsup --format esm --dts",
+        "dev": "tsup --format esm --dts --watch"
+    }
+}
\ No newline at end of file
diff --git a/packages/plugin-coinmarketcap/package.json:Zone.Identifier b/packages/plugin-coinmarketcap/package.json:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-coinmarketcap/src/actions/getPrice/examples.ts b/packages/plugin-coinmarketcap/src/actions/getPrice/examples.ts
new file mode 100644
index 00000000000..5a6713b566f
--- /dev/null
+++ b/packages/plugin-coinmarketcap/src/actions/getPrice/examples.ts
@@ -0,0 +1,46 @@
+import { ActionExample } from "@elizaos/core";
+
+export const priceExamples: ActionExample[][] = [
+    [
+        {
+            user: "{{user1}}",
+            content: {
+                text: "What's the current price of Bitcoin?",
+            },
+        },
+        {
+            user: "{{agent}}",
+            content: {
+                text: "Let me check the current Bitcoin price for you.",
+                action: "GET_PRICE",
+            },
+        },
+        {
+            user: "{{agent}}",
+            content: {
+                text: "The current price of BTC is 65,432.21 USD",
+            },
+        },
+    ],
+    [
+        {
+            user: "{{user1}}",
+            content: {
+                text: "Check ETH price in EUR",
+            },
+        },
+        {
+            user: "{{agent}}",
+            content: {
+                text: "I'll check the current Ethereum price in EUR.",
+                action: "GET_PRICE",
+            },
+        },
+        {
+            user: "{{agent}}",
+            content: {
+                text: "The current price of ETH is 2,345.67 EUR",
+            },
+        },
+    ],
+];
diff --git a/packages/plugin-coinmarketcap/src/actions/getPrice/examples.ts:Zone.Identifier b/packages/plugin-coinmarketcap/src/actions/getPrice/examples.ts:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-coinmarketcap/src/actions/getPrice/index.ts b/packages/plugin-coinmarketcap/src/actions/getPrice/index.ts
new file mode 100644
index 00000000000..61ca090c021
--- /dev/null
+++ b/packages/plugin-coinmarketcap/src/actions/getPrice/index.ts
@@ -0,0 +1,118 @@
+import {
+    composeContext,
+    elizaLogger,
+    generateObjectDeprecated,
+    HandlerCallback,
+    IAgentRuntime,
+    Memory,
+    ModelClass,
+    State,
+    type Action,
+} from "@elizaos/core";
+import { validateCoinMarketCapConfig } from "../../environment";
+import { priceExamples } from "./examples";
+import { createPriceService } from "./service";
+import { getPriceTemplate } from "./template";
+import { GetPriceContent } from "./types";
+import { isGetPriceContent } from "./validation";
+
+export default {
+    name: "GET_PRICE",
+    similes: [
+        "CHECK_PRICE",
+        "PRICE_CHECK",
+        "GET_CRYPTO_PRICE",
+        "CHECK_CRYPTO_PRICE",
+        "GET_TOKEN_PRICE",
+        "CHECK_TOKEN_PRICE",
+    ],
+    validate: async (runtime: IAgentRuntime, message: Memory) => {
+        await validateCoinMarketCapConfig(runtime);
+        return true;
+    },
+    description: "Get the current price of a cryptocurrency from CoinMarketCap",
+    handler: async (
+        runtime: IAgentRuntime,
+        message: Memory,
+        state: State,
+        _options: { [key: string]: unknown },
+        callback?: HandlerCallback
+    ): Promise<boolean> => {
+        elizaLogger.log("Starting CoinMarketCap GET_PRICE handler...");
+
+        // Initialize or update state
+        if (!state) {
+            state = (await runtime.composeState(message)) as State;
+        } else {
+            state = await runtime.updateRecentMessageState(state);
+        }
+
+        try {
+            // Compose and generate price check content
+            const priceContext = composeContext({
+                state,
+                template: getPriceTemplate,
+            });
+
+            const content = (await generateObjectDeprecated({
+                runtime,
+                context: priceContext,
+                modelClass: ModelClass.SMALL,
+            })) as unknown as GetPriceContent;
+
+            // Validate content
+            if (!isGetPriceContent(content)) {
+                throw new Error("Invalid price check content");
+            }
+
+            // Get price from CoinMarketCap
+            const config = await validateCoinMarketCapConfig(runtime);
+
+            const priceService = createPriceService(
+                config.COINMARKETCAP_API_KEY
+            );
+
+            try {
+                const priceData = await priceService.getPrice(
+                    content.symbol,
+                    content.currency
+                );
+                elizaLogger.success(
+                    `Price retrieved successfully! ${content.symbol}: ${priceData.price} ${content.currency.toUpperCase()}`
+                );
+
+                if (callback) {
+                    callback({
+                        text: `The current price of ${content.symbol} is ${priceData.price} ${content.currency.toUpperCase()}`,
+                        content: {
+                            symbol: content.symbol,
+                            currency: content.currency,
+                            ...priceData,
+                        },
+                    });
+                }
+
+                return true;
+            } catch (error) {
+                elizaLogger.error("Error in GET_PRICE handler:", error);
+                if (callback) {
+                    callback({
+                        text: `Error fetching price: ${error.message}`,
+                        content: { error: error.message },
+                    });
+                }
+                return false;
+            }
+        } catch (error) {
+            elizaLogger.error("Error in GET_PRICE handler:", error);
+            if (callback) {
+                callback({
+                    text: `Error fetching price: ${error.message}`,
+                    content: { error: error.message },
+                });
+            }
+            return false;
+        }
+    },
+    examples: priceExamples,
+} as Action;
diff --git a/packages/plugin-coinmarketcap/src/actions/getPrice/index.ts:Zone.Identifier b/packages/plugin-coinmarketcap/src/actions/getPrice/index.ts:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-coinmarketcap/src/actions/getPrice/service.ts b/packages/plugin-coinmarketcap/src/actions/getPrice/service.ts
new file mode 100644
index 00000000000..2b2d9170926
--- /dev/null
+++ b/packages/plugin-coinmarketcap/src/actions/getPrice/service.ts
@@ -0,0 +1,71 @@
+import axios from "axios";
+import { ApiResponse, PriceData } from "./types";
+
+const BASE_URL = "https://pro-api.coinmarketcap.com/v1";
+
+export const createPriceService = (apiKey: string) => {
+    const client = axios.create({
+        baseURL: BASE_URL,
+        headers: {
+            "X-CMC_PRO_API_KEY": apiKey,
+            Accept: "application/json",
+        },
+    });
+
+    const getPrice = async (
+        symbol: string,
+        currency: string
+    ): Promise<PriceData> => {
+        const normalizedSymbol = symbol.toUpperCase().trim();
+        const normalizedCurrency = currency.toUpperCase().trim();
+
+        try {
+            const response = await client.get<ApiResponse>(
+                "/cryptocurrency/quotes/latest",
+                {
+                    params: {
+                        symbol: normalizedSymbol,
+                        convert: normalizedCurrency,
+                    },
+                }
+            );
+
+            console.log(
+                "API Response:",
+                JSON.stringify(response.data, null, 2)
+            );
+
+            const symbolData = response.data.data[normalizedSymbol];
+            if (!symbolData) {
+                throw new Error(
+                    `No data found for symbol: ${normalizedSymbol}`
+                );
+            }
+
+            const quoteData = symbolData.quote[normalizedCurrency];
+            if (!quoteData) {
+                throw new Error(
+                    `No quote data found for currency: ${normalizedCurrency}`
+                );
+            }
+
+            return {
+                price: quoteData.price,
+                marketCap: quoteData.market_cap,
+                volume24h: quoteData.volume_24h,
+                percentChange24h: quoteData.percent_change_24h,
+            };
+        } catch (error) {
+            if (axios.isAxiosError(error)) {
+                const errorMessage =
+                    error.response?.data?.status?.error_message ||
+                    error.message;
+                console.error("API Error:", errorMessage);
+                throw new Error(`API Error: ${errorMessage}`);
+            }
+            throw error;
+        }
+    };
+
+    return { getPrice };
+};
diff --git a/packages/plugin-coinmarketcap/src/actions/getPrice/service.ts:Zone.Identifier b/packages/plugin-coinmarketcap/src/actions/getPrice/service.ts:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-coinmarketcap/src/actions/getPrice/template.ts b/packages/plugin-coinmarketcap/src/actions/getPrice/template.ts
new file mode 100644
index 00000000000..46e439a2356
--- /dev/null
+++ b/packages/plugin-coinmarketcap/src/actions/getPrice/template.ts
@@ -0,0 +1,27 @@
+export const getPriceTemplate = `Respond with a JSON object containing BOTH symbol and currency. Currency must default to "USD" if not specified.
+
+Here are the cryptocurrency symbol mappings:
+- bitcoin/btc -> BTC
+- ethereum/eth -> ETH
+- solana/sol -> SOL
+- cardano/ada -> ADA
+- ripple/xrp -> XRP
+- dogecoin/doge -> DOGE
+- polkadot/dot -> DOT
+- usdc -> USDC
+- tether/usdt -> USDT
+
+IMPORTANT: Response must ALWAYS include both "symbol" and "currency" fields.
+
+Example response:
+\`\`\`json
+{
+    "symbol": "BTC",
+    "currency": "USD"
+}
+\`\`\`
+
+{{recentMessages}}
+
+Extract the cryptocurrency from the most recent message. Always include currency (default "USD").
+Respond with a JSON markdown block containing both symbol and currency.`;
diff --git a/packages/plugin-coinmarketcap/src/actions/getPrice/template.ts:Zone.Identifier b/packages/plugin-coinmarketcap/src/actions/getPrice/template.ts:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-coinmarketcap/src/actions/getPrice/types.ts b/packages/plugin-coinmarketcap/src/actions/getPrice/types.ts
new file mode 100644
index 00000000000..7b84dde3420
--- /dev/null
+++ b/packages/plugin-coinmarketcap/src/actions/getPrice/types.ts
@@ -0,0 +1,28 @@
+import { Content } from "@elizaos/core";
+
+export interface GetPriceContent extends Content {
+    symbol: string;
+    currency: string;
+}
+
+export interface PriceData {
+    price: number;
+    marketCap: number;
+    volume24h: number;
+    percentChange24h: number;
+}
+
+export interface ApiResponse {
+    data: {
+        [symbol: string]: {
+            quote: {
+                [currency: string]: {
+                    price: number;
+                    market_cap: number;
+                    volume_24h: number;
+                    percent_change_24h: number;
+                };
+            };
+        };
+    };
+}
diff --git a/packages/plugin-coinmarketcap/src/actions/getPrice/types.ts:Zone.Identifier b/packages/plugin-coinmarketcap/src/actions/getPrice/types.ts:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-coinmarketcap/src/actions/getPrice/validation.ts b/packages/plugin-coinmarketcap/src/actions/getPrice/validation.ts
new file mode 100644
index 00000000000..16bbf67d617
--- /dev/null
+++ b/packages/plugin-coinmarketcap/src/actions/getPrice/validation.ts
@@ -0,0 +1,16 @@
+import { z } from "zod";
+import { GetPriceContent } from "./types";
+
+export const GetPriceSchema = z.object({
+    symbol: z.string(),
+    currency: z.string().default("USD"),
+});
+
+export function isGetPriceContent(
+    content: GetPriceContent
+): content is GetPriceContent {
+    return (
+        typeof content.symbol === "string" &&
+        typeof content.currency === "string"
+    );
+}
diff --git a/packages/plugin-coinmarketcap/src/actions/getPrice/validation.ts:Zone.Identifier b/packages/plugin-coinmarketcap/src/actions/getPrice/validation.ts:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-coinmarketcap/src/environment.ts b/packages/plugin-coinmarketcap/src/environment.ts
new file mode 100644
index 00000000000..d21d13bfdf7
--- /dev/null
+++ b/packages/plugin-coinmarketcap/src/environment.ts
@@ -0,0 +1,32 @@
+import { IAgentRuntime } from "@elizaos/core";
+import { z } from "zod";
+
+export const coinmarketcapEnvSchema = z.object({
+    COINMARKETCAP_API_KEY: z
+        .string()
+        .min(1, "CoinMarketCap API key is required"),
+});
+
+export type CoinMarketCapConfig = z.infer<typeof coinmarketcapEnvSchema>;
+
+export async function validateCoinMarketCapConfig(
+    runtime: IAgentRuntime
+): Promise<CoinMarketCapConfig> {
+    try {
+        const config = {
+            COINMARKETCAP_API_KEY: runtime.getSetting("COINMARKETCAP_API_KEY"),
+        };
+
+        return coinmarketcapEnvSchema.parse(config);
+    } catch (error) {
+        if (error instanceof z.ZodError) {
+            const errorMessages = error.errors
+                .map((err) => `${err.path.join(".")}: ${err.message}`)
+                .join("\n");
+            throw new Error(
+                `CoinMarketCap configuration validation failed:\n${errorMessages}`
+            );
+        }
+        throw error;
+    }
+}
diff --git a/packages/plugin-coinmarketcap/src/environment.ts:Zone.Identifier b/packages/plugin-coinmarketcap/src/environment.ts:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-coinmarketcap/src/index.ts b/packages/plugin-coinmarketcap/src/index.ts
new file mode 100644
index 00000000000..5da30cf5abe
--- /dev/null
+++ b/packages/plugin-coinmarketcap/src/index.ts
@@ -0,0 +1,12 @@
+import { Plugin } from "@elizaos/core";
+import getPrice from "./actions/getPrice";
+
+export const coinmarketcapPlugin: Plugin = {
+    name: "coinmarketcap",
+    description: "CoinMarketCap Plugin for Eliza",
+    actions: [getPrice],
+    evaluators: [],
+    providers: [],
+};
+
+export default coinmarketcapPlugin;
diff --git a/packages/plugin-coinmarketcap/src/index.ts:Zone.Identifier b/packages/plugin-coinmarketcap/src/index.ts:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-coinmarketcap/src/types.ts b/packages/plugin-coinmarketcap/src/types.ts
new file mode 100644
index 00000000000..7b84dde3420
--- /dev/null
+++ b/packages/plugin-coinmarketcap/src/types.ts
@@ -0,0 +1,28 @@
+import { Content } from "@elizaos/core";
+
+export interface GetPriceContent extends Content {
+    symbol: string;
+    currency: string;
+}
+
+export interface PriceData {
+    price: number;
+    marketCap: number;
+    volume24h: number;
+    percentChange24h: number;
+}
+
+export interface ApiResponse {
+    data: {
+        [symbol: string]: {
+            quote: {
+                [currency: string]: {
+                    price: number;
+                    market_cap: number;
+                    volume_24h: number;
+                    percent_change_24h: number;
+                };
+            };
+        };
+    };
+}
diff --git a/packages/plugin-coinmarketcap/src/types.ts:Zone.Identifier b/packages/plugin-coinmarketcap/src/types.ts:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-coinmarketcap/tsconfig.json b/packages/plugin-coinmarketcap/tsconfig.json
new file mode 100644
index 00000000000..3b0a93b56e6
--- /dev/null
+++ b/packages/plugin-coinmarketcap/tsconfig.json
@@ -0,0 +1,10 @@
+{
+    "extends": "../../tsconfig.json",
+    "compilerOptions": {
+        "outDir": "dist",
+        "rootDir": "src"
+    },
+    "include": [
+        "src/**/*.ts"
+    ]
+}
\ No newline at end of file
diff --git a/packages/plugin-coinmarketcap/tsconfig.json:Zone.Identifier b/packages/plugin-coinmarketcap/tsconfig.json:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-coinmarketcap/tsup.config.ts b/packages/plugin-coinmarketcap/tsup.config.ts
new file mode 100644
index 00000000000..58ed52c4990
--- /dev/null
+++ b/packages/plugin-coinmarketcap/tsup.config.ts
@@ -0,0 +1,19 @@
+import { defineConfig } from "tsup";
+
+export default defineConfig({
+    entry: ["src/index.ts"],
+    outDir: "dist",
+    sourcemap: true,
+    clean: true,
+    format: ["esm"],
+    external: [
+        "dotenv",
+        "fs",
+        "path",
+        "@reflink/reflink",
+        "@node-llama-cpp",
+        "https",
+        "http",
+        "agentkeepalive",
+    ],
+});
diff --git a/packages/plugin-coinmarketcap/tsup.config.ts:Zone.Identifier b/packages/plugin-coinmarketcap/tsup.config.ts:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-goplus/.npmignore b/packages/plugin-goplus/.npmignore
new file mode 100644
index 00000000000..078562eceab
--- /dev/null
+++ b/packages/plugin-goplus/.npmignore
@@ -0,0 +1,6 @@
+*
+
+!dist/**
+!package.json
+!readme.md
+!tsup.config.ts
\ No newline at end of file
diff --git a/packages/plugin-goplus/.npmignore:Zone.Identifier b/packages/plugin-goplus/.npmignore:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-goplus/eslint.config.mjs b/packages/plugin-goplus/eslint.config.mjs
new file mode 100644
index 00000000000..92fe5bbebef
--- /dev/null
+++ b/packages/plugin-goplus/eslint.config.mjs
@@ -0,0 +1,3 @@
+import eslintGlobalConfig from "../../eslint.config.mjs";
+
+export default [...eslintGlobalConfig];
diff --git a/packages/plugin-goplus/eslint.config.mjs:Zone.Identifier b/packages/plugin-goplus/eslint.config.mjs:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-goplus/package.json b/packages/plugin-goplus/package.json
new file mode 100644
index 00000000000..d5968b1c873
--- /dev/null
+++ b/packages/plugin-goplus/package.json
@@ -0,0 +1,21 @@
+{
+  "name": "@elizaos/plugin-goplus",
+  "version": "0.1.7-alpha.2",
+  "main": "dist/index.js",
+  "type": "module",
+  "types": "dist/index.d.ts",
+  "dependencies": {
+    "@elizaos/core": "^0.1.7",
+    "tsup": "^8.3.5",
+    "ws": "^8.18.0"
+  },
+  "scripts": {
+    "build": "tsup --format esm --dts",
+    "dev": "tsx watch src/index.ts",
+    "lint": "eslint --fix  --cache ."
+  },
+  "devDependencies": {
+    "@types/ws": "^8.5.13",
+    "tsx": "^4.19.2"
+  }
+}
diff --git a/packages/plugin-goplus/package.json:Zone.Identifier b/packages/plugin-goplus/package.json:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-goplus/src/index.ts b/packages/plugin-goplus/src/index.ts
new file mode 100644
index 00000000000..3af4f756270
--- /dev/null
+++ b/packages/plugin-goplus/src/index.ts
@@ -0,0 +1,17 @@
+import { Plugin } from "@elizaos/core";
+import GoplusSecurityService from "./services/GoplusSecurityService";
+
+export * from "./services/GoplusSecurityService";
+
+
+export const goplusPlugin: Plugin = {
+  name: "goplus",
+  description:
+    "goplus Plugin for Eliza - Enables on-chain security checks",
+  actions: [],
+  evaluators: [],
+  providers: [],
+  services: [new GoplusSecurityService()],
+};
+
+export default goplusPlugin;
diff --git a/packages/plugin-goplus/src/index.ts:Zone.Identifier b/packages/plugin-goplus/src/index.ts:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-goplus/src/lib/GoPlusManage.ts b/packages/plugin-goplus/src/lib/GoPlusManage.ts
new file mode 100644
index 00000000000..1406e167ff4
--- /dev/null
+++ b/packages/plugin-goplus/src/lib/GoPlusManage.ts
@@ -0,0 +1,130 @@
+
+
+export const GoPlusType = {
+    EVMTOKEN_SECURITY_CHECK: "EVMTOKEN_SECURITY_CHECK",
+    SOLTOKEN_SECURITY_CHECK: "SOLTOKEN_SECURITY_CHECK",
+    SUITOKEN_SECURITY_CHECK: "SUITOKEN_SECURITY_CHECK",
+    RUGPULL_SECURITY_CHECK: "RUGPULL_SECURITY_CHECK",
+    NFT_SECURITY_CHECK: "NFT_SECURITY_CHECK",
+    ADRESS_SECURITY_CHECK: "ADRESS_SECURITY_CHECK",
+    APPROVAL_SECURITY_CHECK: "APPROVAL_SECURITY_CHECK",
+    ACCOUNT_ERC20_SECURITY_CHECK: "ACCOUNT_ERC20_SECURITY_CHECK",
+    ACCOUNT_ERC721_SECURITY_CHECK: "ACCOUNT_ERC721_SECURITY_CHECK",
+    ACCOUNT_ERC1155_SECURITY_CHECK: "ACCOUNT_ERC1155_SECURITY_CHECK",
+    SIGNATURE_SECURITY_CHECK: "SIGNATURE_SECURITY_CHECK",
+    URL_SECURITY_CHECK: "URL_SECURITY_CHECK",
+}
+
+export type GoPlusType = (typeof GoPlusType)[keyof typeof GoPlusType]
+
+export type GoPlusParamType = {
+    "type": GoPlusType,
+    "network"?: string,
+    "token"?: string,
+    "contract"?: string,
+    "wallet"?: string,
+    "url"?: string,
+    "data"?: string,
+}
+
+export class GoPlusManage {
+    private apiKey: string;
+
+    constructor(apiKey: string = null) {
+        this.apiKey = apiKey;
+    }
+
+    async requestGet(api: string) {
+        const myHeaders = new Headers();
+        if (this.apiKey) {
+            myHeaders.append("Authorization", this.apiKey);
+        }
+        const url = `https://api.gopluslabs.io/${api}`
+        const res = await fetch(url, {
+            method: "GET",
+            headers: myHeaders,
+            redirect: "follow"
+            })
+
+        return await res.json();
+    }
+
+    async tokenSecurity(chainId: string, address: string) {
+        const api = `api/v1/token_security/${chainId}?contract_addresses=${address}`;
+        return await this.requestGet(api)
+    }
+
+    async rugpullDetection(chainId: string, address: string) {
+        const api = `api/v1/rugpull_detecting/${chainId}?contract_addresses=${address}`;
+        return await this.requestGet(api)
+    }
+
+    async solanaTokenSecurityUsingGET(address: string) {
+        const api = `api/v1/solana/token_security?contract_addresses=${address}`;
+        return await this.requestGet(api)
+    }
+
+    async suiTokenSecurityUsingGET(address: string) {
+        const api = `api/v1/sui/token_security?contract_addresses=${address}`;
+        return await this.requestGet(api)
+    }
+
+    async nftSecurity(chainId: string, address: string) {
+        const api = `api/v1/nft_security/${chainId}?contract_addresses=${address}`;
+        return await this.requestGet(api)
+    }
+
+    async addressSecurity(address: string) {
+        const api = `api/v1/address_security/${address}`;
+        return await this.requestGet(api)
+    }
+
+    async approvalSecurity(chainId: string, contract: string) {
+        const api = `api/v1/approval_security/${chainId}?contract_addresses=${contract}`;
+        return await this.requestGet(api)
+    }
+
+    async erc20ApprovalSecurity(chainId: string, wallet: string) {
+        const api = `api/v2/token_approval_security/${chainId}?addresses=${wallet}`;
+        return await this.requestGet(api)
+    }
+
+    async erc721ApprovalSecurity(chainId: string, wallet: string) {
+        const api = `api/v2/nft721_approval_security/${chainId}?addresses=${wallet}`;
+        return await this.requestGet(api)
+    }
+
+    async erc1155ApprovalSecurity(chainId: string, wallet: string) {
+        const api = `api/v2/nft1155_approval_security/${chainId}?addresses=${wallet}`;
+        return await this.requestGet(api)
+    }
+
+    async inputDecode(chainId: string, data: string) {
+        const body = JSON.stringify({
+            chain_id: chainId,
+            data: data,
+        })
+        const res = await fetch("https://api.gopluslabs.io/api/v1/abi/input_decode", {
+            "headers": {
+              "accept": "*/*",
+              "accept-language": "en,zh-CN;q=0.9,zh;q=0.8",
+              "content-type": "application/json"
+            },
+            "body": body,
+            "method": "POST"
+          });
+        return await res.json();
+    }
+
+    async dappSecurityAndPhishingSite(url: string) {
+        const api = `api/v1/dapp_security?url=${url}`;
+        const data1 = await this.requestGet(api)
+
+        const api2 = `api/v1/phishing_site?url=${url}`;
+        const data2 = await this.requestGet(api2)
+        return {
+            data1,
+            data2
+        }
+    }
+}
\ No newline at end of file
diff --git a/packages/plugin-goplus/src/lib/GoPlusManage.ts:Zone.Identifier b/packages/plugin-goplus/src/lib/GoPlusManage.ts:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-goplus/src/services/GoplusSecurityService.ts b/packages/plugin-goplus/src/services/GoplusSecurityService.ts
new file mode 100644
index 00000000000..559b5ecdd7c
--- /dev/null
+++ b/packages/plugin-goplus/src/services/GoplusSecurityService.ts
@@ -0,0 +1,140 @@
+import {
+    IAgentRuntime,
+    ModelClass,
+    Service,
+    ServiceType,
+    elizaLogger,
+    generateObjectDeprecated,
+    generateText,
+} from "@elizaos/core";
+import { GoPlusManage, GoPlusParamType, GoPlusType } from "../lib/GoPlusManage";
+import { requestPrompt, responsePrompt } from "../templates";
+
+export interface IGoplusSecurityService extends Service {
+    check(text: string): Promise<string>;
+}
+
+export class GoplusSecurityService
+    extends Service
+    implements IGoplusSecurityService
+{
+    private apiKey: string;
+    private runtime: IAgentRuntime;
+    getInstance(): GoplusSecurityService {
+        return this;
+    }
+    static get serviceType() {
+        return "goplus_security" as ServiceType; // ServiceType.GOPLUS_SECURITY;
+    }
+
+    initialize(runtime: IAgentRuntime): Promise<void> {
+        this.runtime = runtime;
+        this.apiKey = runtime.getSetting("GOPLUS_API_KEY");
+        return;
+    }
+
+    /**
+     * Connect to WebSocket and send a message
+     */
+    async check(text: string): Promise<string> {
+        try {
+            elizaLogger.log("check input text", text);
+            const obj = (await generateObjectDeprecated({
+                runtime: this.runtime,
+                context: requestPrompt(text),
+                modelClass: ModelClass.SMALL, // gpt-4o-mini
+            })) as GoPlusParamType;
+
+            elizaLogger.log("check generateObjectDeprecated text", obj);
+
+            const goPlusManage = new GoPlusManage(this.apiKey);
+            let checkResult: any;
+            switch (obj.type) {
+                case GoPlusType.EVMTOKEN_SECURITY_CHECK:
+                    checkResult = await goPlusManage.tokenSecurity(
+                        obj.network,
+                        obj.token
+                    );
+                    break;
+                case GoPlusType.SOLTOKEN_SECURITY_CHECK:
+                    checkResult =
+                        await goPlusManage.solanaTokenSecurityUsingGET(
+                            obj.token
+                        );
+                    break;
+                case GoPlusType.SUITOKEN_SECURITY_CHECK:
+                    checkResult = await goPlusManage.suiTokenSecurityUsingGET(
+                        obj.token
+                    );
+                    break;
+                case GoPlusType.RUGPULL_SECURITY_CHECK:
+                    checkResult = await goPlusManage.rugpullDetection(
+                        obj.network,
+                        obj.contract
+                    );
+                    break;
+                case GoPlusType.NFT_SECURITY_CHECK:
+                    checkResult = await goPlusManage.nftSecurity(
+                        obj.network,
+                        obj.token
+                    );
+                    break;
+                case GoPlusType.ADRESS_SECURITY_CHECK:
+                    checkResult = await goPlusManage.addressSecurity(
+                        obj.wallet
+                    );
+                    break;
+                case GoPlusType.APPROVAL_SECURITY_CHECK:
+                    checkResult = await goPlusManage.approvalSecurity(
+                        obj.network,
+                        obj.contract
+                    );
+                    break;
+                case GoPlusType.ACCOUNT_ERC20_SECURITY_CHECK:
+                    checkResult = await goPlusManage.erc20ApprovalSecurity(
+                        obj.network,
+                        obj.wallet
+                    );
+                    break;
+                case GoPlusType.ACCOUNT_ERC721_SECURITY_CHECK:
+                    checkResult = await goPlusManage.erc721ApprovalSecurity(
+                        obj.network,
+                        obj.wallet
+                    );
+                    break;
+                case GoPlusType.ACCOUNT_ERC1155_SECURITY_CHECK:
+                    checkResult = await goPlusManage.erc1155ApprovalSecurity(
+                        obj.network,
+                        obj.wallet
+                    );
+                    break;
+                case GoPlusType.SIGNATURE_SECURITY_CHECK:
+                    checkResult = await goPlusManage.inputDecode(
+                        obj.network,
+                        obj.data
+                    );
+                    break;
+                case GoPlusType.URL_SECURITY_CHECK:
+                    checkResult =
+                        await goPlusManage.dappSecurityAndPhishingSite(obj.url);
+                    break;
+                default:
+                    throw new Error("type is invaild");
+            }
+
+            elizaLogger.log("checkResult text", checkResult);
+            const checkResponse = await generateText({
+                runtime: this.runtime,
+                context: responsePrompt(JSON.stringify(checkResult), text),
+                modelClass: ModelClass.SMALL,
+            });
+            elizaLogger.log("checkResponse text", checkResponse);
+            return checkResponse;
+        } catch (e) {
+            elizaLogger.error(e);
+            return "error";
+        }
+    }
+}
+
+export default GoplusSecurityService;
diff --git a/packages/plugin-goplus/src/services/GoplusSecurityService.ts:Zone.Identifier b/packages/plugin-goplus/src/services/GoplusSecurityService.ts:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-goplus/src/templates/index.ts b/packages/plugin-goplus/src/templates/index.ts
new file mode 100644
index 00000000000..6886211d7f4
--- /dev/null
+++ b/packages/plugin-goplus/src/templates/index.ts
@@ -0,0 +1,209 @@
+export const requestPrompt = (text:string) => `You are a security action detector for blockchain interactions. Your task is to analyze the user's input text and determine which security checks are needed.
+
+Text to analyze:"""
+${text}
+"""
+If the user is not sure which network the sent address belongs to, then according to the following logic initially determine which network the user sends the address belongs to.
+
+Detection Logic:
+1. First check if address starts with "0x":
+   - If yes:
+     - If length is 42 -> EVM address
+     - If the address has a non-standard suffix (e.g., " ::s::S "), you may treat the base address (without the suffix) as the -> SUI address. , but the full address including the suffix should be placed in the "token" field.
+   - If no:
+     - If length is 44 and starts with letter -> Solana address
+
+2. If none of the above patterns match:
+   - -> EVM address
+3. If detection is EVM address:
+   - -> EVM address
+
+Networks format
+EVM: 0x26e550ac11b26f78a04489d5f20f24e3559f7dd9
+Solana: 9DHe3pycTuymFk4H4bbPoAJ4hQrr2kaLDF6J6aAKpump
+SUI: 0xea65bb5a79ff34ca83e2995f9ff6edd0887b08da9b45bf2e31f930d3efb82866::s::S
+
+After determining which action to use, please reply in the json format below the action.
+
+Available actions:
+- [EVMTOKEN_SECURITY_CHECK]: For checking ERC20 token contract security
+    Description: Security assessment for tokens on EVM-compatible chains (like Ethereum, BSC), including contract risks, permission configurations, transaction mechanisms
+    Keywords: EVM token, ETH token, BEP20, smart contract, ERC20 security, on-chain token
+    Respond with a JSON markdown block containing only the extracted values:
+
+\`\`\`json
+{
+"type": "EVMTOKEN_SECURITY_CHECK"
+"network": "1", //default: 1 (Ethereum:1, Optimism:10, Cronos:25, BSC:56, Gnosis:100, HECO:128, Polygon:137, Fantom:250, KCC:321, zkSync Era:324, ETHW:10001, FON:201022, Arbitrum:42161, Avalanche:43114, Linea Mainnet:59144, Base:8453, Tron:tron, Scroll:534352, opBNB:204, Mantle:5000, ZKFair:42766, Blast:81457, Manta Pacific:169, Berachain Artio Testnet:80085, Merlin:4200, Bitlayer Mainnet:200901, zkLink Nova:810180, X Layer Mainnet:196)
+"token": "" ,
+}
+\`\`\`
+
+
+- [SOLTOKEN_SECURITY_CHECK]: For checking SPL token contract security
+    Description: Security audit for Solana-based tokens, analyzing program authority settings, account states, transfer restrictions and other security factors
+    Keywords: Solana token, SOL token, SPL token, Solana security, SOL contract
+    Respond with a JSON markdown block containing only the extracted values:
+
+\`\`\`json
+{
+"type": "SOLTOKEN_SECURITY_CHECK"
+"token": "" ,
+}
+\`\`\`
+
+
+- [SUITOKEN_SECURITY_CHECK]: For checking Sui token contract security
+    Description: Security inspection for tokens on SUI blockchain, examining token contract permissions, transaction restrictions, minting mechanisms and other security configurations
+    Keywords: SUI token, SUI coins, MOVE token, SUI contract, SUI security
+    Respond with a JSON markdown block containing only the extracted values:
+
+\`\`\`json
+{
+"type": "SUITOKEN_SECURITY_CHECK"
+"token": "" ,
+}
+\`\`\`
+
+
+- [RUGPULL_SECURITY_CHECK]:
+    Description: Detection of potential rugpull risks in tokens/projects, including contract permissions, liquidity locks, team holdings and other risk factors
+    Keywords: rugpull risk, token security, project reliability, contract risk, liquidity, team wallet
+    Respond with a JSON markdown block containing only the extracted values:
+
+\`\`\`json
+{
+"type": "RUGPULL_SECURITY_CHECK"
+"network": "1", //default: 1 (Ethereum:1, BSC:56)
+"contract": "" | null,
+}
+\`\`\`
+
+
+- [NFT_SECURITY_CHECK]
+    Description: Security analysis of NFT project smart contracts, including minting mechanisms, trading restrictions, permission settings
+    Keywords: NFT security, digital collectibles, minting risk, NFT trading, NFT contract
+    Respond with a JSON markdown block containing only the extracted values:
+
+\`\`\`json
+{
+"type": "NFT_SECURITY_CHECK"
+"network": "1", //default: 1 (Ethereum:1, Optimism:10, Cronos:25, BSC:56, Gnosis:100, HECO:128, Polygon:137, Fantom:250, KCC:321, zkSync Era:324, FON:201022, Arbitrum:42161, Avalanche:43114, Linea Mainnet:59144, Base:8453, Mantle:5000)
+"token": "" | null,
+}
+\`\`\`
+
+
+- [ADRESS_SECURITY_CHECK]
+    Description: Analysis of specific address security status, detecting known malicious addresses, scam addresses or high-risk addresses
+    Keywords: wallet security, malicious address, scam address, blacklist
+    Respond with a JSON markdown block containing only the extracted values:
+
+\`\`\`json
+{
+"type": "ADRESS_SECURITY_CHECK"
+"network": "1", //default: 1 (Ethereum:1, Optimism:10, Cronos:25, BSC:56, Gnosis:100, HECO:128, Polygon:137, Fantom:250, KCC:321, zkSync Era:324, FON:201022, Arbitrum:42161, Avalanche:43114, Linea Mainnet:59144, Tron:tron, Scroll:534352, opBNB:204, Base:8453, Solana:solana)
+"wallet": "" | null,
+}
+\`\`\`
+
+
+- [APPROVAL_SECURITY_CHECK]
+    Description: Examination of smart contract approval settings, evaluating risk levels of third-party authorizations
+    Keywords: approval check, contract authorization, spending approval, approval risk
+    Respond with a JSON markdown block containing only the extracted values:
+
+\`\`\`json
+{
+"type": "APPROVAL_SECURITY_CHECK"
+"network": "1", //default: 1 (Ethereum:1, BSC: 56, OKC: 66, Heco: 128, Polygon: 137, Fantom:250, Arbitrum: 42161, Avalanche: 43114)
+"contract": "" | null,
+}
+\`\`\`
+
+
+- [ACCOUNT_ERC20_SECURITY_CHECK]
+    Description: Security assessment of account-related ERC20 token transactions and holdings
+    Keywords: ERC20, token account, token security, account detection
+    Respond with a JSON markdown block containing only the extracted values:
+
+\`\`\`json
+{
+"type": "ACCOUNT_ERC20_SECURITY_CHECK"
+"network": "1", //default: 1 (Ethereum:1, Optimism:10, Cronos:25, BSC:56, Gnosis:100, HECO:128, Polygon:137, Fantom:250, KCC:321, zkSync Era:324, FON:201022, Arbitrum:42161, Avalanche:43114, Linea Mainnet:59144, Base:8453, Mantle:5000)
+"wallet": "" | null,
+}
+\`\`\`
+
+
+- [ACCOUNT_ERC721_SECURITY_CHECK]
+    Description: Security analysis of account's ERC721 NFT assets
+    Keywords: ERC721, NFT account, NFT assets, collectibles security
+    Respond with a JSON markdown block containing only the extracted values:
+\`\`\`json
+{
+"type": "ACCOUNT_ERC721_SECURITY_CHECK"
+"network": "1", //default: 1 (Ethereum:1, Optimism:10, Cronos:25, BSC:56, Gnosis:100, HECO:128, Polygon:137, Fantom:250, KCC:321, zkSync Era:324, FON:201022, Arbitrum:42161, Avalanche:43114, Linea Mainnet:59144, Base:8453, Mantle:5000)
+"wallet": "" | null,
+}
+\`\`\`
+
+
+- [ACCOUNT_ERC1155_SECURITY_CHECK]
+    Description: Security evaluation of account's ERC1155 multi-token standard assets
+    Keywords: ERC1155, multi-token, hybrid assets, account security
+    Respond with a JSON markdown block containing only the extracted values:
+
+\`\`\`json
+{
+"type": "ACCOUNT_ERC1155_SECURITY_CHECK"
+"network": "1", //default: 1 (Ethereum:1, Optimism:10, Cronos:25, BSC:56, Gnosis:100, HECO:128, Polygon:137, Fantom:250, KCC:321, zkSync Era:324, FON:201022, Arbitrum:42161, Avalanche:43114, Linea Mainnet:59144, Base:8453, Mantle:5000)
+"wallet": "" | null,
+}
+\`\`\`
+
+
+- [SIGNATURE_SECURITY_CHECK]
+    Description: Verification of signature security, preventing signature fraud risks
+    Keywords: signature verification, message signing, signature risk, signature fraud
+    Respond with a JSON markdown block containing only the extracted values:
+
+\`\`\`json
+{
+"type": "SIGNATURE_SECURITY_CHECK"
+"network": "1", //default: 1 (Ethereum: 1, Cronos:25, BSC: 56, Heco: 128, Polygon: 137, Fantom:250, KCC: 321, Arbitrum: 42161, Avalanche: 43114)
+"data": "" | null,
+}
+\`\`\`
+
+
+- [URL_SECURITY_CHECK]
+    Description: Detection of known phishing websites, malicious sites or other security risks in URLs
+    Keywords: link detection, phishing website, malicious URL, website security
+    Respond with a JSON markdown block containing only the extracted values:
+\`\`\`json
+{
+"type": "URL_SECURITY_CHECK"
+"url": "" | null,
+}
+\`\`\`
+
+Extract the necessary information(All fields present in the json are important information) and choose the appropriate action(s) based on the text. Return the JSON response following the format above.
+important: do not response anything except json`
+
+
+
+export const responsePrompt = (apiresult: string, text:string) => `You are a security action detector for blockchain interactions. Your task is to analyze the security API’s response from GoPlus and summary the API result.
+API to analyze:“”"
+${apiresult}
+“”"
+user’s request:“”
+${text}
+“”
+Instructions:
+1. **Identify the Action**: Analyze the API response to determine which specific action it relates to.
+2. **Extract Relevant Information**: From the action and its parameters, extract and highlight the key details.
+3. **Formulate a Clear Response**: Combine the action type, extracted information, and an analysis of the results. Provide a clear, concise response based on the security context. Focus on delivering the most relevant answer without unnecessary detail.
+- Only reply with your conclusion.
+- Do not discuss the safety aspects of the action; just focus on identifying and pointing out any risks.
+- Tailor your response to the user’s request, focusing on their specific query.`
\ No newline at end of file
diff --git a/packages/plugin-goplus/src/templates/index.ts:Zone.Identifier b/packages/plugin-goplus/src/templates/index.ts:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-goplus/tsconfig.json b/packages/plugin-goplus/tsconfig.json
new file mode 100644
index 00000000000..a0a14e0b63d
--- /dev/null
+++ b/packages/plugin-goplus/tsconfig.json
@@ -0,0 +1,11 @@
+{
+    "extends": "../../tsconfig.json",
+    "compilerOptions": {
+        "outDir": "dist",
+        "rootDir": "./src",
+        "declaration": true
+    },
+    "include": [
+        "src"
+    ]
+}
\ No newline at end of file
diff --git a/packages/plugin-goplus/tsconfig.json:Zone.Identifier b/packages/plugin-goplus/tsconfig.json:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-goplus/tsup.config.ts b/packages/plugin-goplus/tsup.config.ts
new file mode 100644
index 00000000000..c7bf2d61a74
--- /dev/null
+++ b/packages/plugin-goplus/tsup.config.ts
@@ -0,0 +1,10 @@
+import { defineConfig } from "tsup";
+
+export default defineConfig({
+  entry: ["src/index.ts"],
+  format: ["esm"],
+  dts: true,
+  sourcemap: true,
+  splitting: false,
+  clean: true,
+});
diff --git a/packages/plugin-goplus/tsup.config.ts:Zone.Identifier b/packages/plugin-goplus/tsup.config.ts:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-market-analisys/.gitignore b/packages/plugin-market-analisys/.gitignore
new file mode 100644
index 00000000000..f781f0bc4b3
--- /dev/null
+++ b/packages/plugin-market-analisys/.gitignore
@@ -0,0 +1,37 @@
+# Node modules
+node_modules/
+
+# Logs
+logs
+*.log
+npm-debug.log*
+
+# Build output
+dist/
+build/
+
+# Dependency directories
+jspm_packages/
+
+# Optional npm cache directory
+.npm/
+
+# dotenv environment variable file
+.env
+
+# Turborepo
+.turbo/
+
+# IDE specific files
+.idea/
+.vscode/
+*.sublime-project
+*.sublime-workspace
+
+# Mac system files
+.DS_Store
+
+# Windows system files
+Thumbs.db
+ehthumbs.db
+Icon?
diff --git a/packages/plugin-market-analisys/.gitignore:Zone.Identifier b/packages/plugin-market-analisys/.gitignore:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-market-analisys/.npmignore b/packages/plugin-market-analisys/.npmignore
new file mode 100644
index 00000000000..078562eceab
--- /dev/null
+++ b/packages/plugin-market-analisys/.npmignore
@@ -0,0 +1,6 @@
+*
+
+!dist/**
+!package.json
+!readme.md
+!tsup.config.ts
\ No newline at end of file
diff --git a/packages/plugin-market-analisys/.npmignore:Zone.Identifier b/packages/plugin-market-analisys/.npmignore:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-market-analisys/README.md b/packages/plugin-market-analisys/README.md
new file mode 100644
index 00000000000..1c3e1c971bc
--- /dev/null
+++ b/packages/plugin-market-analisys/README.md
@@ -0,0 +1,35 @@
+# @ethosdao/plugin-market-analisys
+
+<div align="center">
+    <img src="./media/image.jpg" alt="market-analisys" width="500"/>
+    <br>
+    <br>
+    <a href="https://ethosdao.ai">🌐 EthosDAO Website</a>
+    <br>
+</div>
+
+# Description
+
+This plugin enables your agent to get comprehensive market data for any token using Birdeye API.
+
+# Actions
+
+- **tokenOverview**: Provides an overview of a token's market data.
+
+
+# Requirements
+
+- Birdeye API Key
+
+# Setup
+
+1. Navigate your character file and add the `"BIRDEYE_API_KEY"` to the `"secrets"` property.
+2. Add "@ethosdao/plugin-market-analisys" to `"dependencies"` property in `eliza/agent/package.json`.
+3. Add `import { pluginMarketAnalisys } from "@ethosdao/plugin-market-analisys";` in `eliza/agent/src/index.ts`.
+4. Add the following parameter `getSecret(character, "BIRDEYE_API_KEY") ? marketAnalisysPlugin : null,` in the `plugins` array in `eliza/agent/src/index.ts`.
+
+
+# Example
+
+<img src="./media/screenshot.png" alt="market-analisys" />
+
diff --git a/packages/plugin-market-analisys/README.md:Zone.Identifier b/packages/plugin-market-analisys/README.md:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-market-analisys/eslint.config.mjs b/packages/plugin-market-analisys/eslint.config.mjs
new file mode 100644
index 00000000000..92fe5bbebef
--- /dev/null
+++ b/packages/plugin-market-analisys/eslint.config.mjs
@@ -0,0 +1,3 @@
+import eslintGlobalConfig from "../../eslint.config.mjs";
+
+export default [...eslintGlobalConfig];
diff --git a/packages/plugin-market-analisys/eslint.config.mjs:Zone.Identifier b/packages/plugin-market-analisys/eslint.config.mjs:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-market-analisys/media/image.jpg b/packages/plugin-market-analisys/media/image.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b189d14cb1f785e1d6384fcbaa1ecf443eb166cd
GIT binary patch
literal 160235
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

literal 0
HcmV?d00001

diff --git a/packages/plugin-market-analisys/media/image.jpg:Zone.Identifier b/packages/plugin-market-analisys/media/image.jpg:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-market-analisys/media/screenshot.png b/packages/plugin-market-analisys/media/screenshot.png
new file mode 100644
index 0000000000000000000000000000000000000000..f59520c6c8e19348953f087128ef050a5bf6cf89
GIT binary patch
literal 436159
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%0A??d$Q2os$fIFgTTGEF(mZi!
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
XnML09+>tv1yi{&#D3$!{{?q>feoaEE

literal 0
HcmV?d00001

diff --git a/packages/plugin-market-analisys/media/screenshot.png:Zone.Identifier b/packages/plugin-market-analisys/media/screenshot.png:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-market-analisys/package.json b/packages/plugin-market-analisys/package.json
new file mode 100644
index 00000000000..c4d1db4b176
--- /dev/null
+++ b/packages/plugin-market-analisys/package.json
@@ -0,0 +1,22 @@
+{
+    "name": "@ethosdao/plugin-market-analisys",
+    "version": "0.1.5-alpha.5",
+    "main": "dist/index.js",
+    "type": "module",
+    "author": "metaanomaly",
+    "types": "dist/index.d.ts",
+    "dependencies": {
+        "@elizaos/core": "workspace:*"
+    },
+    "devDependencies": {
+        "@types/node": "^20.0.0",
+        "tsup": "8.3.5",
+        "tsx": "^4.19.2"
+    },
+    "scripts": {
+        "build": "tsup --format esm --dts",
+        "dev": "tsup --format esm --dts --watch",
+        "lint": "eslint --fix  --cache .",
+        "test-birdeye": "tsx src/tests/birdeye.test.ts"
+    }
+}
diff --git a/packages/plugin-market-analisys/package.json:Zone.Identifier b/packages/plugin-market-analisys/package.json:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-market-analisys/scripts/install.py b/packages/plugin-market-analisys/scripts/install.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-market-analisys/scripts/install.py:Zone.Identifier b/packages/plugin-market-analisys/scripts/install.py:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-market-analisys/src/actions/tokenOverview.ts b/packages/plugin-market-analisys/src/actions/tokenOverview.ts
new file mode 100644
index 00000000000..9e6b8c8c9a1
--- /dev/null
+++ b/packages/plugin-market-analisys/src/actions/tokenOverview.ts
@@ -0,0 +1,232 @@
+import {
+    Action,
+    IAgentRuntime,
+    Memory,
+    State,
+    HandlerCallback,
+    ModelClass,
+    Content,
+    elizaLogger,
+    composeContext,
+    generateMessageResponse,
+    parseJSONObjectFromText,
+    generateText,
+    messageCompletionFooter,
+} from "@elizaos/core";
+import { fetchTokenOverview } from "../utils/birdeye";
+
+interface TokenQuery {
+    address?: string;
+    symbol?: string;
+}
+
+const tokenExtractionTemplate = `Respond with a JSON markdown block containing only the extracted values.
+
+Example response:
+\`\`\`json
+{
+    "address": "So11111111111111111111111111111111111111112",
+    "symbol": "SOL"
+}
+\`\`\`
+
+{{recentMessages}}
+
+Given the recent messages, extract the following information about the token query, please refer to last message for context:
+- Token contract address if provided
+- Token symbol if provided
+
+NOTE: If you see addresses like this 2gkevSAUExkSUwwwj6uNbzwwNCXyzEBkGLg4wAyUpump remember that pump suffix IS PART OF THE ADDRESS, do not remove it.
+
+Respond with a JSON markdown block containing only the extracted values. Use "" (empty string) for any values that cannot be determined.
+IMPORTANT: Response format should be in this format:
+\`\`\`json
+{
+    "address": "So11111111111111111111111111111111111111112",
+    "symbol": "SOL"
+}
+\`\`\``;
+
+const marketAnalysisTemplate = `You are {{agentName}}, a professional market analyst.
+
+About you:
+{{bio}}
+{{lore}}
+
+Recent conversation:
+{{recentMessages}}
+
+Available market data:
+{{marketData}}
+
+Analyze the market data and provide insights about:
+1. Price performance across different timeframes
+2. Trading volume and liquidity
+3. Holder behavior and wallet activity
+4. Overall market sentiment
+
+Keep the analysis concise and data-driven, focusing on the most relevant metrics.` + messageCompletionFooter;
+
+export const getTokenOverviewAction: Action = {
+    name: "GET_TOKEN_OVERVIEW",
+    similes: ["CHECK_TOKEN", "TOKEN_INFO", "MARKET_DATA", "TOKEN_ANALYSIS"],
+    description: "Retrieve and analyze token market data from Birdeye",
+
+    validate: async (runtime: IAgentRuntime, message: Memory) => {
+        //const text = (message.content as Content).text?.toLowerCase() || "";
+        //return text.includes("token") || text.includes("price") || text.includes("market");
+        return true;
+    },
+
+    handler: async (
+        runtime: IAgentRuntime,
+        message: Memory,
+        state: State,
+        _options: { [key: string]: unknown },
+        callback?: HandlerCallback
+    ): Promise<boolean> => {
+        try {
+            // Initialize or update state
+            if (!state) {
+                state = await runtime.composeState(message);
+            } else {
+                state = await runtime.updateRecentMessageState(state);
+            }
+
+            // Extract token information from message
+            const extractionContext = composeContext({
+                state,
+                template: tokenExtractionTemplate,
+            });
+
+            elizaLogger.log(`Extracting token info...`);
+
+            const response = await generateText({
+                runtime,
+                context: extractionContext,
+                modelClass: ModelClass.SMALL,
+            });
+
+            const tokenQuery = parseJSONObjectFromText(response) as TokenQuery;
+
+            elizaLogger.info(`Token query: ${JSON.stringify(tokenQuery)}`);
+
+            if (!tokenQuery.address && !tokenQuery.symbol) {
+                callback?.({
+                    text: "I couldn't identify which token you're asking about. Could you please provide a token symbol or contract address?",
+                });
+                return false;
+            }
+
+            if (tokenQuery.symbol && !tokenQuery.address) {
+                callback?.({
+                    text: "Ticker is not enough please provide me the contract address",
+                });
+                return false;
+            }
+
+            elizaLogger.log(`Fetching token data...`);
+
+            // Fetch token data
+            const tokenAddress = tokenQuery.address || "So11111111111111111111111111111111111111112"; // Default to SOL if only symbol provided
+            const tokenData = await fetchTokenOverview(tokenAddress as string, runtime.character.settings.secrets.BIRDEYE_API_KEY);
+
+
+            elizaLogger.log(`Market data: ${JSON.stringify(tokenData, null, 2)}`);
+
+            // Update state with market data
+            if (!state) {
+                state = await runtime.composeState(message);
+            }
+
+            state = {
+                ...state,
+                marketData: JSON.stringify(tokenData, null, 2),
+            };
+
+            // Generate market analysis
+            const analysisContext = composeContext({
+                state,
+                template: marketAnalysisTemplate,
+            });
+
+            const analysis = await generateMessageResponse({
+                runtime,
+                context: analysisContext,
+                modelClass: ModelClass.LARGE,
+            });
+
+            callback?.(analysis);
+
+            return true;
+        } catch (error) {
+            elizaLogger.error(`Error in GET_TOKEN_OVERVIEW action: ${error}`);
+            callback?.({
+                text: "I encountered an error while fetching the token data. Please try again later.",
+            });
+            return false;
+        }
+    },
+
+    examples: [
+        [
+            {
+                user: "{{user1}}",
+                content: { text: "What's the current market data for DV44rX6H8pEu4qwruwUvjswyRPTUib5qHTjWNRigpump?" },
+            },
+            {
+                user: "{{agentName}}",
+                content: {
+                    text: "Let me analyze the market data for DV44rX6H8pEu4qwruwUvjswyRPTUib5qHTjWNRigpump",
+                    action: "GET_TOKEN_OVERVIEW",
+                },
+            },
+        ],
+        [
+            {
+                user: "{{user1}}",
+                content: { text: "DV44rX6H8pEu4qwruwUvjswyRPTUib5qHTjWNRigpump" },
+            },
+            {
+                user: "{{agentName}}",
+                content: {
+                    text: "Checking market data for DV44rX6H8pEu4qwruwUvjswyRPTUib5qHTjWNRigpump",
+                    action: "GET_TOKEN_OVERVIEW",
+                },
+            },
+        ],
+        [
+            {
+                user: "{{user1}}",
+                content: {
+                    text: "Can you check the token at address So11111111111111111111111111111111111111112?"
+                },
+            },
+            {
+                user: "{{agentName}}",
+                content: {
+                    text: "I'll fetch the market data for this token...",
+                    action: "GET_TOKEN_OVERVIEW",
+                },
+            },
+        ],
+        [
+            {
+                user: "{{user1}}",
+                content: { text: "Can you make an analysis of $AVB?" },
+            },
+            {
+                user: "{{agentName}}",
+                content: { text: "Can you provide the address of $AVB?", action: "NONE" },
+            },
+            {
+                user: "{{user1}}",
+                content: { text: "6d5zHW5B8RkGKd51Lpb9RqFQSqDudr9GJgZ1SgQZpump" },
+            },
+            {
+                user: "{{agentName}}",
+                content: { text: "Checking market data for $AVB", action: "GET_TOKEN_OVERVIEW" },
+            },
+        ],
+    ],
+};
\ No newline at end of file
diff --git a/packages/plugin-market-analisys/src/actions/tokenOverview.ts:Zone.Identifier b/packages/plugin-market-analisys/src/actions/tokenOverview.ts:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-market-analisys/src/index.ts b/packages/plugin-market-analisys/src/index.ts
new file mode 100644
index 00000000000..dc47fbdc506
--- /dev/null
+++ b/packages/plugin-market-analisys/src/index.ts
@@ -0,0 +1,11 @@
+import { Plugin } from "@elizaos/core";
+import { getTokenOverviewAction } from "./actions/tokenOverview";
+import { twitterTrendingMarketData } from "./providers/twitterTrendingMarketData";
+
+export const marketAnalisysPlugin: Plugin = {
+    name: "market-analisys",
+    description: "Provides market analisys capabilities",
+    actions: [getTokenOverviewAction],
+    providers: [twitterTrendingMarketData],
+    evaluators: [],
+};
\ No newline at end of file
diff --git a/packages/plugin-market-analisys/src/index.ts:Zone.Identifier b/packages/plugin-market-analisys/src/index.ts:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-market-analisys/src/providers/twitterTrendingMarketData.ts b/packages/plugin-market-analisys/src/providers/twitterTrendingMarketData.ts
new file mode 100644
index 00000000000..55d9ee320d4
--- /dev/null
+++ b/packages/plugin-market-analisys/src/providers/twitterTrendingMarketData.ts
@@ -0,0 +1,113 @@
+import { elizaLogger, Provider } from "@elizaos/core";
+import { fetchTrendingTokens, fetchTokenOverview } from "../utils/birdeye";
+
+interface FormattedMarketData {
+    symbol: string;
+    name: string;
+    price: string;
+    priceChange24h: string;
+    priceChange1h: string;
+    volume24h: string;
+    volume1h: string;
+    marketCap: string;
+    realMarketCap: string;
+    liquidity: string;
+    holders: string;
+    uniqueWallets24h: string;
+    uniqueWallets1h: string;
+    socialLinks: string[];
+}
+
+function formatNumber(num: number): string {
+    if (num >= 1e9) {
+        return `$${(num / 1e9).toFixed(2)}B`;
+    } else if (num >= 1e6) {
+        return `$${(num / 1e6).toFixed(2)}M`;
+    } else if (num >= 1e3) {
+        return `$${(num / 1e3).toFixed(2)}K`;
+    }
+    return `$${num.toFixed(2)}`;
+}
+
+function formatPercentage(num: number): string {
+    const sign = num > 0 ? "+" : "";
+    return `${sign}${num.toFixed(2)}%`;
+}
+
+function getSocialLinks(extensions: any): string[] {
+    const links = [];
+    if (extensions.website) links.push(`🌐 ${extensions.website}`);
+    if (extensions.twitter) links.push(`🐦 ${extensions.twitter}`);
+    if (extensions.telegram) links.push(`📱 ${extensions.telegram}`);
+    if (extensions.discord) links.push(`💬 ${extensions.discord}`);
+    return links;
+}
+
+export const twitterTrendingMarketData: Provider = {
+    get: async (runtime, message, state) => {
+        if (!message.content.action || message.content.action !== "TWEET") {
+            return "";
+        }
+
+        try {
+            const trendingTokens = await fetchTrendingTokens(
+                runtime.character.settings.secrets.BIRDEYE_API_KEY
+            );
+
+            const randomIndex = Math.floor(Math.random() * Math.min(10, trendingTokens.tokens.length));
+            const selectedToken = trendingTokens.tokens[randomIndex];
+
+            const tokenData = await fetchTokenOverview(
+                selectedToken.address,
+                runtime.character.settings.secrets.BIRDEYE_API_KEY
+            );
+
+            const formattedData: FormattedMarketData = {
+                symbol: tokenData.symbol,
+                name: tokenData.name,
+                price: formatNumber(tokenData.price),
+                priceChange24h: formatPercentage(tokenData.priceChange24hPercent),
+                priceChange1h: formatPercentage(tokenData.priceChange1hPercent),
+                volume24h: formatNumber(tokenData.v24hUSD),
+                volume1h: formatNumber(tokenData.v1hUSD),
+                marketCap: formatNumber(tokenData.mc),
+                realMarketCap: formatNumber(tokenData.realMc),
+                liquidity: formatNumber(tokenData.liquidity),
+                holders: tokenData.holder.toLocaleString(),
+                uniqueWallets24h: tokenData.uniqueWallet24h.toLocaleString(),
+                uniqueWallets1h: tokenData.uniqueWallet1h.toLocaleString(),
+                socialLinks: getSocialLinks(tokenData.extensions),
+            };
+
+            // Build comprehensive market report
+            let report = `🚀 ${formattedData.name} ($${formattedData.symbol}) Market Report\n\n`;
+
+            // Price and Changes
+            report += `💰 Price: ${formattedData.price}\n`;
+            report += `📈 24h Change: ${formattedData.priceChange24h}\n`;
+            report += `⏰ 1h Change: ${formattedData.priceChange1h}\n\n`;
+
+            // Volume and Liquidity
+            report += `📊 24h Volume: ${formattedData.volume24h}\n`;
+            report += `📊 1h Volume: ${formattedData.volume1h}\n`;
+            report += `💧 Liquidity: ${formattedData.liquidity}\n\n`;
+
+            // Market Caps
+            report += `💎 Market Cap: ${formattedData.marketCap}\n`;
+            report += `💎 Real MC: ${formattedData.realMarketCap}\n\n`;
+
+            // Holder Metrics
+            report += `👥 Holders: ${formattedData.holders}\n`;
+            report += `🔄 24h Active Wallets: ${formattedData.uniqueWallets24h}\n`;
+            report += `🔄 1h Active Wallets: ${formattedData.uniqueWallets1h}\n\n`;
+
+            elizaLogger.log(report);
+
+            return report;
+
+        } catch (error) {
+            console.error("Error in twitterTrendingMarketData provider:", error);
+            return "";
+        }
+    }
+};
\ No newline at end of file
diff --git a/packages/plugin-market-analisys/src/providers/twitterTrendingMarketData.ts:Zone.Identifier b/packages/plugin-market-analisys/src/providers/twitterTrendingMarketData.ts:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-market-analisys/src/tests/birdeye.test.ts b/packages/plugin-market-analisys/src/tests/birdeye.test.ts
new file mode 100644
index 00000000000..3cdfc8539c7
--- /dev/null
+++ b/packages/plugin-market-analisys/src/tests/birdeye.test.ts
@@ -0,0 +1,77 @@
+import assert from 'assert';
+import { fetchTokenOverview } from "../utils/birdeye";
+
+async function runTests() {
+    const WRAPPED_SOL_ADDRESS = "So11111111111111111111111111111111111111112";
+    const apiKey = process.argv[2];
+
+    if (!apiKey) {
+        console.error("API key must be provided as command line argument");
+        process.exit(1);
+    }
+
+    console.log("Running Birdeye API Integration Tests...\n");
+
+    // Test 1: Basic token overview fetch
+    try {
+        console.log("Test 1: Fetching token overview data...");
+        const result = await fetchTokenOverview(WRAPPED_SOL_ADDRESS, apiKey, undefined);
+
+        assert(result, "Result should be defined");
+        assert.strictEqual(result.address, WRAPPED_SOL_ADDRESS, "Address should match");
+        assert.strictEqual(result.symbol, "SOL", "Symbol should be SOL");
+        assert.strictEqual(result.name, "Wrapped SOL", "Name should be Wrapped SOL");
+        assert.strictEqual(result.decimals, 9, "Decimals should be 9");
+        assert(result.price > 0, "Price should be greater than 0");
+        assert(result.liquidity > 0, "Liquidity should be greater than 0");
+        assert(result.mc > 0, "Market cap should be greater than 0");
+        assert(result.holder > 0, "Holder count should be greater than 0");
+        assert(result.v24hUSD > 0, "24h volume should be greater than 0");
+        assert(result.v1hUSD > 0, "1h volume should be greater than 0");
+        console.log("✅ Test 1 passed\n");
+    } catch (error) {
+        console.error("❌ Test 1 failed:", error);
+        process.exit(1);
+    }
+
+    // Test 2: Cache functionality
+    try {
+        console.log("Test 2: Testing cache functionality...");
+        const mockCache = {
+            get: (key: string) => {
+                console.log("Cache get called with key:", key);
+                return null;
+            },
+            set: (key: string, value: any) => {
+                console.log("Cache set called with key:", key);
+                assert(value, "Cache value should be defined");
+            }
+        };
+
+        await fetchTokenOverview(WRAPPED_SOL_ADDRESS, apiKey, mockCache);
+        console.log("✅ Test 2 passed\n");
+    } catch (error) {
+        console.error("❌ Test 2 failed:", error);
+        process.exit(1);
+    }
+
+    // Test 3: Invalid token address
+    try {
+        console.log("Test 3: Testing invalid token address...");
+        const invalidAddress = "invalid_address";
+        try {
+            await fetchTokenOverview(invalidAddress, apiKey, undefined);
+            assert.fail("Should throw an error for invalid address");
+        } catch (error) {
+            assert(error, "Should throw an error");
+        }
+        console.log("✅ Test 3 passed\n");
+    } catch (error) {
+        console.error("❌ Test 3 failed:", error);
+        process.exit(1);
+    }
+
+    console.log("All tests passed! 🎉");
+}
+
+runTests().catch(console.error);
\ No newline at end of file
diff --git a/packages/plugin-market-analisys/src/tests/birdeye.test.ts:Zone.Identifier b/packages/plugin-market-analisys/src/tests/birdeye.test.ts:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-market-analisys/src/utils/birdeye.ts b/packages/plugin-market-analisys/src/utils/birdeye.ts
new file mode 100644
index 00000000000..5383f6fe301
--- /dev/null
+++ b/packages/plugin-market-analisys/src/utils/birdeye.ts
@@ -0,0 +1,174 @@
+export interface TokenOverviewResponse {
+  address: string;
+  decimals: number;
+  symbol: string;
+  name: string;
+  extensions: {
+    coingeckoId: string | null;
+    website: string | null;
+    telegram: string | null;
+    twitter: string | null;
+    description: string | null;
+    discord: string | null;
+    medium: string | null;
+  };
+  logoURI: string;
+  liquidity: number;
+  lastTradeUnixTime: number;
+  lastTradeHumanTime: string;
+  price: number;
+  supply: number;
+  mc: number;
+  circulatingSupply: number;
+  realMc: number;
+  holder: number;
+  // Price changes
+  priceChange24hPercent: number;
+  priceChange12hPercent: number;
+  priceChange8hPercent: number;
+  priceChange4hPercent: number;
+  priceChange2hPercent: number;
+  priceChange1hPercent: number;
+  priceChange30mPercent: number;
+  // Volume data
+  v24hUSD: number;
+  v12hUSD: number;
+  v8hUSD: number;
+  v4hUSD: number;
+  v2hUSD: number;
+  v1hUSD: number;
+  v30mUSD: number;
+  // Unique wallets
+  uniqueWallet24h: number;
+  uniqueWallet12h: number;
+  uniqueWallet8h: number;
+  uniqueWallet4h: number;
+  uniqueWallet2h: number;
+  uniqueWallet1h: number;
+  uniqueWallet30m: number;
+}
+
+export interface BirdeyeApiError {
+  success: false;
+  error: string;
+}
+
+export async function fetchTokenOverview(
+  tokenAddress: string,
+  apiKey?: string,
+  cache?: { get: (key: string) => any; set: (key: string, value: any) => void },
+): Promise<TokenOverviewResponse> {
+  try {
+    // Check cache first if provided
+    if (cache) {
+      const cacheKey = `token_overview_${tokenAddress}`;
+      const cachedData = cache.get(cacheKey);
+      if (cachedData) {
+        console.log(`Returning cached token overview for ${tokenAddress}`);
+        return cachedData;
+      }
+    }
+
+    const response = await fetch(
+      `https://public-api.birdeye.so/defi/token_overview?address=${tokenAddress}`,
+      {
+        method: "GET",
+        headers: {
+          "accept": "application/json",
+          "x-api-key": apiKey || "",
+        },
+      }
+    );
+
+    if (!response.ok) {
+      throw new Error(`HTTP error! status: ${response.status}`);
+    }
+
+    const data = await response.json();
+
+    if (!data.success || !data.data) {
+      throw new Error("Failed to fetch token overview data");
+    }
+
+    // Cache the response if cache is provided
+    if (cache) {
+      const cacheKey = `token_overview_${tokenAddress}`;
+      cache.set(cacheKey, data.data);
+    }
+
+    return data.data;
+  } catch (error) {
+    console.error("Error fetching token overview:", error);
+    throw error;
+  }
+}
+
+export interface TrendingToken {
+  address: string;
+  decimals: number;
+  liquidity: number;
+  logoURI: string;
+  name: string;
+  symbol: string;
+  volume24hUSD: number;
+  rank: number;
+  price: number;
+}
+
+export interface TrendingTokensResponse {
+  updateUnixTime: number;
+  updateTime: string;
+  tokens: TrendingToken[];
+  total: number;
+}
+
+export async function fetchTrendingTokens(
+  apiKey?: string,
+  cache?: { get: (key: string) => any; set: (key: string, value: any) => void },
+  limit: number = 20
+): Promise<TrendingTokensResponse> {
+  try {
+    // Check cache first if provided
+    if (cache) {
+      const cacheKey = `trending_tokens_${limit}`;
+      const cachedData = cache.get(cacheKey);
+      if (cachedData) {
+        console.log(`Returning cached trending tokens`);
+        return cachedData;
+      }
+    }
+
+    const response = await fetch(
+      `https://public-api.birdeye.so/defi/token_trending?sort_by=rank&sort_type=asc&offset=0&limit=${limit}`,
+      {
+        method: "GET",
+        headers: {
+          "accept": "application/json",
+          "x-api-key": apiKey || "",
+          "x-chain": "solana"
+        },
+      }
+    );
+
+    if (!response.ok) {
+      throw new Error(`HTTP error! status: ${response.status}`);
+    }
+
+    const data = await response.json();
+
+    if (!data.success || !data.data) {
+      throw new Error("Failed to fetch trending tokens data");
+    }
+
+    // Cache the response if cache is provided
+    if (cache) {
+      const cacheKey = `trending_tokens_${limit}`;
+      cache.set(cacheKey, data.data);
+    }
+
+    return data.data;
+  } catch (error) {
+    console.error("Error fetching trending tokens:", error);
+    throw error;
+  }
+}
\ No newline at end of file
diff --git a/packages/plugin-market-analisys/src/utils/birdeye.ts:Zone.Identifier b/packages/plugin-market-analisys/src/utils/birdeye.ts:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-market-analisys/tsconfig.json b/packages/plugin-market-analisys/tsconfig.json
new file mode 100644
index 00000000000..18c600eec05
--- /dev/null
+++ b/packages/plugin-market-analisys/tsconfig.json
@@ -0,0 +1,13 @@
+{
+    "extends": "../core/tsconfig.json",
+    "compilerOptions": {
+        "outDir": "dist",
+        "rootDir": "src",
+        "types": [
+            "node"
+        ]
+    },
+    "include": [
+        "src/**/*.ts",
+    ]
+}
\ No newline at end of file
diff --git a/packages/plugin-market-analisys/tsconfig.json:Zone.Identifier b/packages/plugin-market-analisys/tsconfig.json:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-market-analisys/tsup.config.ts b/packages/plugin-market-analisys/tsup.config.ts
new file mode 100644
index 00000000000..0efba439d76
--- /dev/null
+++ b/packages/plugin-market-analisys/tsup.config.ts
@@ -0,0 +1,23 @@
+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",
+        "safe-buffer",
+        "zod",
+        // Add other modules you want to externalize
+    ],
+});
+
diff --git a/packages/plugin-market-analisys/tsup.config.ts:Zone.Identifier b/packages/plugin-market-analisys/tsup.config.ts:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 4508adcad81..ddcef1406ba 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -20,6 +20,12 @@ importers:
       '@deepgram/sdk':
         specifier: ^3.9.0
         version: 3.9.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
+      '@glacier-network/client':
+        specifier: ^0.2.1
+        version: 0.2.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+      '@glacier-network/elizaos-adapter':
+        specifier: 0.0.1-alpha.1
+        version: 0.0.1-alpha.1(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.29(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(bufferutil@4.0.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)(utf-8-validate@5.0.10)
       '@vitest/eslint-plugin':
         specifier: 1.0.1
         version: 1.0.1(@typescript-eslint/utils@8.16.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
@@ -162,6 +168,9 @@ importers:
       '@elizaos/plugin-coinbase':
         specifier: workspace:*
         version: link:../packages/plugin-coinbase
+      '@elizaos/plugin-coinmarketcap':
+        specifier: workspace:*
+        version: link:../packages/plugin-coinmarketcap
       '@elizaos/plugin-conflux':
         specifier: workspace:*
         version: link:../packages/plugin-conflux
@@ -186,6 +195,9 @@ importers:
       '@elizaos/plugin-goat':
         specifier: workspace:*
         version: link:../packages/plugin-goat
+      '@elizaos/plugin-goplus':
+        specifier: workspace:*
+        version: link:../packages/plugin-goplus
       '@elizaos/plugin-icp':
         specifier: workspace:*
         version: link:../packages/plugin-icp
@@ -234,6 +246,9 @@ importers:
       '@elizaos/plugin-zksync-era':
         specifier: workspace:*
         version: link:../packages/plugin-zksync-era
+      '@ethosdao/plugin-market-analisys':
+        specifier: workspace:*
+        version: link:../packages/plugin-market-analisys
       readline:
         specifier: 1.3.0
         version: 1.3.0
@@ -249,16 +264,16 @@ importers:
         version: 29.5.14
       jest:
         specifier: ^29.7.0
-        version: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+        version: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3))
       ts-jest:
         specifier: ^29.2.5
-        version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)))(typescript@5.6.3)
+        version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3)))(typescript@5.7.3)
       ts-node:
         specifier: 10.9.2
-        version: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)
+        version: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   client:
     dependencies:
@@ -358,25 +373,25 @@ importers:
     dependencies:
       '@docusaurus/core':
         specifier: 3.6.3
-        version: 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+        version: 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/plugin-content-blog':
         specifier: 3.6.3
-        version: 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+        version: 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/plugin-content-docs':
         specifier: 3.6.3
-        version: 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+        version: 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/plugin-ideal-image':
         specifier: 3.6.3
-        version: 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+        version: 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/preset-classic':
         specifier: 3.6.3
-        version: 3.6.3(@algolia/client-search@5.19.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3)(utf-8-validate@5.0.10)
+        version: 3.6.3(@algolia/client-search@5.19.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/theme-common':
         specifier: 3.6.3
-        version: 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+        version: 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/theme-mermaid':
         specifier: 3.6.3
-        version: 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+        version: 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@mdx-js/react':
         specifier: 3.0.1
         version: 3.0.1(@types/react@18.3.12)(react@18.3.1)
@@ -385,7 +400,7 @@ importers:
         version: 2.1.1
       docusaurus-lunr-search:
         specifier: 3.5.0
-        version: 3.5.0(@docusaurus/core@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+        version: 3.5.0(@docusaurus/core@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       dotenv:
         specifier: ^16.4.7
         version: 16.4.7
@@ -413,13 +428,13 @@ importers:
         version: 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       docusaurus-plugin-typedoc:
         specifier: 1.0.5
-        version: 1.0.5(typedoc-plugin-markdown@4.2.10(typedoc@0.26.11(typescript@5.6.3)))
+        version: 1.0.5(typedoc-plugin-markdown@4.2.10(typedoc@0.26.11(typescript@5.7.3)))
       typedoc:
         specifier: 0.26.11
-        version: 0.26.11(typescript@5.6.3)
+        version: 0.26.11(typescript@5.7.3)
       typedoc-plugin-markdown:
         specifier: 4.2.10
-        version: 4.2.10(typedoc@0.26.11(typescript@5.6.3))
+        version: 4.2.10(typedoc@0.26.11(typescript@5.7.3))
 
   packages/adapter-postgres:
     dependencies:
@@ -435,7 +450,7 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   packages/adapter-redis:
     dependencies:
@@ -454,7 +469,7 @@ importers:
         version: 5.0.0
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   packages/adapter-sqlite:
     dependencies:
@@ -476,7 +491,7 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   packages/adapter-sqljs:
     dependencies:
@@ -498,7 +513,7 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   packages/adapter-supabase:
     dependencies:
@@ -514,7 +529,7 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   packages/client-auto:
     dependencies:
@@ -545,7 +560,7 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   packages/client-direct:
     dependencies:
@@ -588,7 +603,7 @@ importers:
         version: 1.4.12
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   packages/client-discord:
     dependencies:
@@ -625,7 +640,7 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   packages/client-farcaster:
     dependencies:
@@ -634,11 +649,11 @@ importers:
         version: link:../core
       '@neynar/nodejs-sdk':
         specifier: ^2.0.3
-        version: 2.8.0(bufferutil@4.0.9)(class-transformer@0.5.1)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+        version: 2.8.0(bufferutil@4.0.9)(class-transformer@0.5.1)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
     devDependencies:
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   packages/client-github:
     dependencies:
@@ -663,7 +678,7 @@ importers:
         version: 8.1.0
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   packages/client-lens:
     dependencies:
@@ -672,7 +687,7 @@ importers:
         version: link:../core
       '@lens-protocol/client':
         specifier: 2.2.0
-        version: 2.2.0(@jest/globals@29.7.0)(@lens-protocol/metadata@1.2.0(zod@3.23.8))(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)
+        version: 2.2.0(@jest/globals@29.7.0)(@lens-protocol/metadata@1.2.0(zod@3.23.8))(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10)
       '@lens-protocol/metadata':
         specifier: 1.2.0
         version: 1.2.0(zod@3.23.8)
@@ -682,7 +697,7 @@ importers:
     devDependencies:
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   packages/client-slack:
     dependencies:
@@ -740,7 +755,7 @@ importers:
         version: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3)
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
       typescript:
         specifier: ^5.0.0
         version: 5.6.3
@@ -762,7 +777,7 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   packages/client-twitter:
     dependencies:
@@ -784,7 +799,7 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   packages/core:
     dependencies:
@@ -841,7 +856,7 @@ importers:
         version: 1.0.15
       langchain:
         specifier: 0.3.6
-        version: 0.3.6(@langchain/core@0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))
+        version: 0.3.6(@langchain/core@0.3.29(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))
       ollama-ai-provider:
         specifier: 0.16.1
         version: 0.16.1(zod@3.23.8)
@@ -953,7 +968,7 @@ importers:
         version: 2.8.1
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
       typescript:
         specifier: 5.6.3
         version: 5.6.3
@@ -975,7 +990,7 @@ importers:
         version: 2.4.0
       unbuild:
         specifier: 2.0.0
-        version: 2.0.0(typescript@5.6.3)
+        version: 2.0.0(typescript@5.7.3)
 
   packages/plugin-0g:
     dependencies:
@@ -990,7 +1005,7 @@ importers:
         version: 6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   packages/plugin-3d-generation:
     dependencies:
@@ -999,7 +1014,7 @@ importers:
         version: link:../core
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1011,10 +1026,10 @@ importers:
         version: link:../core
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       web3:
         specifier: ^4.15.0
-        version: 4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+        version: 4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1041,7 +1056,7 @@ importers:
         version: 5.1.2
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       vitest:
         specifier: 2.1.4
         version: 2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
@@ -1060,7 +1075,7 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   packages/plugin-bootstrap:
     dependencies:
@@ -1069,7 +1084,7 @@ importers:
         version: link:../core
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1100,7 +1115,23 @@ importers:
         version: 20.17.9
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+
+  packages/plugin-coinmarketcap:
+    dependencies:
+      '@elizaos/core':
+        specifier: ^0.1.7
+        version: 0.1.7(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.29(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)
+      axios:
+        specifier: ^1.6.7
+        version: 1.7.9(debug@4.4.0)
+      zod:
+        specifier: ^3.22.4
+        version: 3.23.8
+    devDependencies:
+      tsup:
+        specifier: ^8.3.5
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   packages/plugin-conflux:
     dependencies:
@@ -1109,7 +1140,7 @@ importers:
         version: link:../core
       cive:
         specifier: 0.7.1
-        version: 0.7.1(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)
+        version: 0.7.1(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)
 
   packages/plugin-cronoszkevm:
     dependencies:
@@ -1121,13 +1152,13 @@ importers:
         version: link:../plugin-trustdb
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       web3:
         specifier: ^4.15.0
-        version: 4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+        version: 4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
       web3-plugin-zksync:
         specifier: ^1.0.8
-        version: 1.0.8(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.6.3))(typescript@5.6.3)(utf-8-validate@5.0.10)(web3@4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))
+        version: 1.0.8(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)(web3@4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8))
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1154,13 +1185,13 @@ importers:
         version: 5.15.5
       '@lifi/sdk':
         specifier: 3.4.1
-        version: 3.4.1(@solana/wallet-adapter-base@0.9.23(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(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))(typescript@5.6.3)(viem@2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))
+        version: 3.4.1(@solana/wallet-adapter-base@0.9.23(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(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))(typescript@5.7.3)(viem@2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8))
       '@lifi/types':
         specifier: 16.3.0
         version: 16.3.0
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1175,7 +1206,7 @@ importers:
         version: 1.5.1
       '@onflow/fcl':
         specifier: 1.13.1
-        version: 1.13.1(@types/react@18.3.12)(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.4.49)(react@18.3.1)(utf-8-validate@5.0.10)
+        version: 1.13.1(@types/react@18.3.12)(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.4.49)(react@18.3.1)(tsx@4.19.2)(utf-8-validate@5.0.10)
       '@onflow/typedefs':
         specifier: 1.4.0
         version: 1.4.0
@@ -1212,7 +1243,7 @@ importers:
         version: 10.0.0
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       vitest:
         specifier: 2.1.4
         version: 2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
@@ -1230,7 +1261,7 @@ importers:
         version: 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       vitest:
         specifier: 2.1.4
         version: 2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
@@ -1245,7 +1276,7 @@ importers:
         version: link:../core
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   packages/plugin-goat:
     dependencies:
@@ -1254,32 +1285,51 @@ importers:
         version: link:../core
       '@goat-sdk/adapter-vercel-ai':
         specifier: 0.2.0
-        version: 0.2.0(@goat-sdk/core@0.4.0)(ai@3.4.33(openai@4.78.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8))
+        version: 0.2.0(@goat-sdk/core@0.4.0)(ai@3.4.33(openai@4.78.1(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)(vue@3.5.13(typescript@5.7.3))(zod@3.23.8))
       '@goat-sdk/core':
         specifier: 0.4.0
         version: 0.4.0
       '@goat-sdk/plugin-erc20':
         specifier: 0.2.2
-        version: 0.2.2(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(viem@2.21.53(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))
+        version: 0.2.2(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(viem@2.21.53(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8))
       '@goat-sdk/plugin-kim':
         specifier: 0.1.2
-        version: 0.1.2(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(viem@2.21.53(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))
+        version: 0.1.2(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(viem@2.21.53(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8))
       '@goat-sdk/wallet-evm':
         specifier: 0.2.0
-        version: 0.2.0(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)
+        version: 0.2.0(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@goat-sdk/wallet-viem':
         specifier: 0.2.0
-        version: 0.2.0(@goat-sdk/wallet-evm@0.2.0(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10))(viem@2.21.53(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))
+        version: 0.2.0(@goat-sdk/wallet-evm@0.2.0(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10))(viem@2.21.53(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8))
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       viem:
         specifier: 2.21.53
-        version: 2.21.53(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+        version: 2.21.53(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
 
+  packages/plugin-goplus:
+    dependencies:
+      '@elizaos/core':
+        specifier: ^0.1.7
+        version: 0.1.7(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.29(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)
+      tsup:
+        specifier: ^8.3.5
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+      ws:
+        specifier: ^8.18.0
+        version: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+    devDependencies:
+      '@types/ws':
+        specifier: ^8.5.13
+        version: 8.5.13
+      tsx:
+        specifier: ^4.19.2
+        version: 4.19.2
+
   packages/plugin-icp:
     dependencies:
       '@dfinity/agent':
@@ -1306,7 +1356,7 @@ importers:
         version: 29.7.0(@types/node@22.10.5)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
       typescript:
         specifier: 5.6.3
         version: 5.6.3
@@ -1318,7 +1368,7 @@ importers:
         version: link:../core
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1336,11 +1386,27 @@ importers:
         version: 1.0.2
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
 
+  packages/plugin-market-analisys:
+    dependencies:
+      '@elizaos/core':
+        specifier: workspace:*
+        version: link:../core
+    devDependencies:
+      '@types/node':
+        specifier: ^20.0.0
+        version: 20.17.9
+      tsup:
+        specifier: 8.3.5
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+      tsx:
+        specifier: ^4.19.2
+        version: 4.19.2
+
   packages/plugin-multiversx:
     dependencies:
       '@elizaos/core':
@@ -1363,7 +1429,7 @@ importers:
         version: 2.1.1
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       vitest:
         specifier: 2.1.5
         version: 2.1.5(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
@@ -1393,7 +1459,7 @@ importers:
         version: 5.1.2
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1423,7 +1489,7 @@ importers:
         version: 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(encoding@0.1.13)
       '@solana-developers/helpers':
         specifier: ^2.5.6
-        version: 2.5.6(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)
+        version: 2.5.6(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@solana/web3.js':
         specifier: 1.95.5
         version: 1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
@@ -1438,7 +1504,7 @@ importers:
         version: 5.1.2
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1447,10 +1513,10 @@ importers:
     dependencies:
       '@aws-sdk/client-s3':
         specifier: ^3.705.0
-        version: 3.726.0
+        version: 3.726.1
       '@aws-sdk/s3-request-presigner':
         specifier: ^3.705.0
-        version: 3.726.0
+        version: 3.726.1
       '@cliqz/adblocker-playwright':
         specifier: 1.34.0
         version: 1.34.0(playwright@1.48.2)
@@ -1555,7 +1621,7 @@ importers:
         version: 5.1.2
       node-llama-cpp:
         specifier: 3.1.1
-        version: 3.1.1(typescript@5.6.3)
+        version: 3.1.1(typescript@5.7.3)
       nodejs-whisper:
         specifier: 0.1.18
         version: 0.1.18
@@ -1573,10 +1639,10 @@ importers:
         version: 5.4.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)
       puppeteer-extra:
         specifier: 3.3.6
-        version: 3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))
+        version: 3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10))
       puppeteer-extra-plugin-capsolver:
         specifier: 2.0.1
-        version: 2.0.1(bufferutil@4.0.9)(encoding@0.1.13)(puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(typescript@5.6.3)(utf-8-validate@5.0.10)
+        version: 2.0.1(bufferutil@4.0.9)(encoding@0.1.13)(puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10))(typescript@5.7.3)(utf-8-validate@5.0.10)
       sharp:
         specifier: 0.33.5
         version: 0.33.5
@@ -1619,7 +1685,7 @@ importers:
         version: 22.8.4
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   packages/plugin-solana:
     dependencies:
@@ -1637,7 +1703,7 @@ importers:
         version: link:../plugin-trustdb
       '@solana/spl-token':
         specifier: 0.4.9
-        version: 0.4.9(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)
+        version: 0.4.9(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@solana/web3.js':
         specifier: 1.95.8
         version: 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
@@ -1652,7 +1718,7 @@ importers:
         version: 6.0.0
       fomo-sdk-solana:
         specifier: 1.3.2
-        version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)
+        version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10)
       form-data:
         specifier: 4.0.1
         version: 4.0.1
@@ -1661,10 +1727,10 @@ importers:
         version: 5.1.2
       pumpdotfun-sdk:
         specifier: 1.3.2
-        version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.30.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+        version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.30.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       vitest:
         specifier: 2.1.4
         version: 2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
@@ -1694,7 +1760,7 @@ importers:
         version: 6.18.0(encoding@0.1.13)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       unruggable-sdk:
         specifier: 1.4.0
         version: 1.4.0(starknet@6.18.0(encoding@0.1.13))
@@ -1718,10 +1784,10 @@ importers:
         version: 2.1.0
       '@story-protocol/core-sdk':
         specifier: 1.2.0-rc.3
-        version: 1.2.0-rc.3(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+        version: 1.2.0-rc.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1740,7 +1806,7 @@ importers:
         version: link:../plugin-trustdb
       '@mysten/sui':
         specifier: ^1.16.0
-        version: 1.18.1(typescript@5.6.3)
+        version: 1.19.0(typescript@5.7.3)
       bignumber:
         specifier: 1.1.0
         version: 1.1.0
@@ -1755,7 +1821,7 @@ importers:
         version: 5.1.2
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       vitest:
         specifier: 2.1.4
         version: 2.1.4(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
@@ -1770,10 +1836,10 @@ importers:
         version: link:../core
       '@phala/dstack-sdk':
         specifier: 0.1.6
-        version: 0.1.6(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+        version: 0.1.6(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
       '@solana/spl-token':
         specifier: 0.4.9
-        version: 0.4.9(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)
+        version: 0.4.9(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@solana/web3.js':
         specifier: 1.95.8
         version: 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
@@ -1791,10 +1857,10 @@ importers:
         version: 5.1.2
       pumpdotfun-sdk:
         specifier: 1.3.2
-        version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.30.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+        version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.30.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1824,7 +1890,7 @@ importers:
         version: 5.1.2
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1839,7 +1905,7 @@ importers:
         version: 3.2.2
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       uuid:
         specifier: 11.0.3
         version: 11.0.3
@@ -1864,7 +1930,7 @@ importers:
         version: 0.0.17
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   packages/plugin-video-generation:
     dependencies:
@@ -1873,7 +1939,7 @@ importers:
         version: link:../core
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1888,7 +1954,7 @@ importers:
         version: 1.7.9(debug@4.4.0)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1916,10 +1982,10 @@ importers:
         version: 8.16.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)
       jest:
         specifier: 29.7.0
-        version: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+        version: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3))
       ts-jest:
         specifier: 29.2.5
-        version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)))(typescript@5.6.3)
+        version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@20.17.9))(typescript@5.6.3)
       typescript:
         specifier: 5.6.3
         version: 5.6.3
@@ -1934,13 +2000,13 @@ importers:
         version: link:../plugin-trustdb
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       web3:
         specifier: ^4.15.0
-        version: 4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+        version: 4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
       web3-plugin-zksync:
         specifier: ^1.0.8
-        version: 1.0.8(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.6.3))(typescript@5.6.3)(utf-8-validate@5.0.10)(web3@4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))
+        version: 1.0.8(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)(web3@4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8))
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -2298,12 +2364,12 @@ packages:
   '@aws-crypto/util@5.2.0':
     resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==}
 
-  '@aws-sdk/client-polly@3.726.0':
-    resolution: {integrity: sha512-vhPUddycCdFupNeksBgMR4WN//LbNQzhHbV41LgDYShd1Ea3QmfGPij+yCIZWmCtmv9y0sWnRTydXKAlmE1Vsw==}
+  '@aws-sdk/client-polly@3.726.1':
+    resolution: {integrity: sha512-Q4ZoSmCXskIQ3T5AdO0OyH3vCeoKCed9AjqNIZ5Bxo7T1aBLaIb0VmjKOEubsYrfl+0Ot++FRmy7G45UUHSs4Q==}
     engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/client-s3@3.726.0':
-    resolution: {integrity: sha512-cxn2WvOCfGrME2xygWbfj/vIf2sIdv/UbQ9zJbN4aK6rpYQf/e/YtY/HIPkejCuw2Iwqm4jfDGFqaUcwu3nFew==}
+  '@aws-sdk/client-s3@3.726.1':
+    resolution: {integrity: sha512-UpOGcob87DiuS2d3fW6vDZg94g57mNiOSkzvR/6GOdvBSlUgk8LLwVzGASB71FdKMl1EGEr4MeD5uKH9JsG+dw==}
     engines: {node: '>=18.0.0'}
 
   '@aws-sdk/client-sso-oidc@3.726.0':
@@ -2316,12 +2382,12 @@ packages:
     resolution: {integrity: sha512-NM5pjv2qglEc4XN3nnDqtqGsSGv1k5YTmzDo3W3pObItHmpS8grSeNfX9zSH+aVl0Q8hE4ZIgvTPNZ+GzwVlqg==}
     engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/client-sts@3.726.0':
-    resolution: {integrity: sha512-047EqXv2BAn/43eP92zsozPnR3paFFMsj5gjytx9kGNtp+WV0fUZNztCOobtouAxBY0ZQ8Xx5RFnmjpRb6Kjsg==}
+  '@aws-sdk/client-sts@3.726.1':
+    resolution: {integrity: sha512-qh9Q9Vu1hrM/wMBOBIaskwnE4GTFaZu26Q6WHwyWNfj7J8a40vBxpW16c2vYXHLBtwRKM1be8uRLkmDwghpiNw==}
     engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/client-transcribe-streaming@3.726.0':
-    resolution: {integrity: sha512-RT17D/lzkMCkLMqiWFMfZRxJzlOQQhAdx+IXE3SuauGHu1iSULpsifewJsLlfE72K9On5QbbVKGU7RcUScV+GQ==}
+  '@aws-sdk/client-transcribe-streaming@3.726.1':
+    resolution: {integrity: sha512-A1FtcvFi0SnY193SEnhHVEGB8xaMKHJdioE6/TcW0oka2ezvfZkl6EsmKEP30vLov+NRRzzoHUjitdiYKOpVzg==}
     engines: {node: '>=18.0.0'}
 
   '@aws-sdk/core@3.723.0':
@@ -2420,8 +2486,8 @@ packages:
     resolution: {integrity: sha512-tGF/Cvch3uQjZIj34LY2mg8M2Dr4kYG8VU8Yd0dFnB1ybOEOveIK/9ypUo9ycZpB9oO6q01KRe5ijBaxNueUQg==}
     engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/s3-request-presigner@3.726.0':
-    resolution: {integrity: sha512-7avBbUXYEii2qYxM2AFoCPVTt+AtSIFgq+Gk6/MLUOGId5KGCSkN3Y/4liVi3VLkvZ+ADg2JZqYQUrf3wgWsEQ==}
+  '@aws-sdk/s3-request-presigner@3.726.1':
+    resolution: {integrity: sha512-IoM/u1gaZiSHEZkkf+Hn6MvCFUtLJgJysApW6NFbM2GYt4hqGLX5jhbjo5KVxC3wFfAhAwK1deSOM0FriBrKrg==}
     engines: {node: '>=18.0.0'}
 
   '@aws-sdk/signature-v4-multi-region@3.723.0':
@@ -2474,24 +2540,24 @@ packages:
     resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
     engines: {node: '>=6.9.0'}
 
-  '@babel/compat-data@7.26.3':
-    resolution: {integrity: sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==}
+  '@babel/compat-data@7.26.5':
+    resolution: {integrity: sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==}
     engines: {node: '>=6.9.0'}
 
   '@babel/core@7.26.0':
     resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==}
     engines: {node: '>=6.9.0'}
 
-  '@babel/generator@7.26.3':
-    resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==}
+  '@babel/generator@7.26.5':
+    resolution: {integrity: sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==}
     engines: {node: '>=6.9.0'}
 
   '@babel/helper-annotate-as-pure@7.25.9':
     resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==}
     engines: {node: '>=6.9.0'}
 
-  '@babel/helper-compilation-targets@7.25.9':
-    resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==}
+  '@babel/helper-compilation-targets@7.26.5':
+    resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==}
     engines: {node: '>=6.9.0'}
 
   '@babel/helper-create-class-features-plugin@7.25.9':
@@ -2529,8 +2595,8 @@ packages:
     resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==}
     engines: {node: '>=6.9.0'}
 
-  '@babel/helper-plugin-utils@7.25.9':
-    resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==}
+  '@babel/helper-plugin-utils@7.26.5':
+    resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==}
     engines: {node: '>=6.9.0'}
 
   '@babel/helper-remap-async-to-generator@7.25.9':
@@ -2539,8 +2605,8 @@ packages:
     peerDependencies:
       '@babel/core': ^7.0.0
 
-  '@babel/helper-replace-supers@7.25.9':
-    resolution: {integrity: sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==}
+  '@babel/helper-replace-supers@7.26.5':
+    resolution: {integrity: sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0
@@ -2569,8 +2635,8 @@ packages:
     resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==}
     engines: {node: '>=6.9.0'}
 
-  '@babel/parser@7.26.3':
-    resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==}
+  '@babel/parser@7.26.5':
+    resolution: {integrity: sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==}
     engines: {node: '>=6.0.0'}
     hasBin: true
 
@@ -2736,8 +2802,8 @@ packages:
     peerDependencies:
       '@babel/core': ^7.0.0-0
 
-  '@babel/plugin-transform-block-scoped-functions@7.25.9':
-    resolution: {integrity: sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==}
+  '@babel/plugin-transform-block-scoped-functions@7.26.5':
+    resolution: {integrity: sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
@@ -2886,8 +2952,8 @@ packages:
     peerDependencies:
       '@babel/core': ^7.0.0-0
 
-  '@babel/plugin-transform-nullish-coalescing-operator@7.25.9':
-    resolution: {integrity: sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==}
+  '@babel/plugin-transform-nullish-coalescing-operator@7.26.5':
+    resolution: {integrity: sha512-OHqczNm4NTQlW1ghrVY43FPoiRzbmzNVbcgVnMKZN/RQYezHUSdjACjaX50CD3B7UIAjv39+MlsrVDb3v741FA==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
@@ -3042,8 +3108,8 @@ packages:
     peerDependencies:
       '@babel/core': ^7.0.0-0
 
-  '@babel/plugin-transform-typescript@7.26.3':
-    resolution: {integrity: sha512-6+5hpdr6mETwSKjmJUdYw0EIkATiQhnELWlE3kJFBwSg/BGIVwVaVbX+gOXBCdc7Ln1RXZxyWGecIXhUfnl7oA==}
+  '@babel/plugin-transform-typescript@7.26.5':
+    resolution: {integrity: sha512-GJhPO0y8SD5EYVCy2Zr+9dSZcEgaSmq5BLR0Oc25TOEhC+ba49vUAGZFjy8v79z9E1mdldq4x9d1xgh4L1d5dQ==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
@@ -3103,20 +3169,20 @@ packages:
     resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==}
     engines: {node: '>=6.9.0'}
 
-  '@babel/standalone@7.26.4':
-    resolution: {integrity: sha512-SF+g7S2mhTT1b7CHyfNjDkPU1corxg4LPYsyP0x5KuCl+EbtBQHRLqr9N3q7e7+x7NQ5LYxQf8mJ2PmzebLr0A==}
+  '@babel/standalone@7.26.5':
+    resolution: {integrity: sha512-vXbSrFq1WauHvOg/XWcjkF6r7wDSHbN3+3Aro6LYjfODpGw8dCyqqbUMRX5LXlgzVAUrTSN6JkepFiHhLKHV5Q==}
     engines: {node: '>=6.9.0'}
 
   '@babel/template@7.25.9':
     resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==}
     engines: {node: '>=6.9.0'}
 
-  '@babel/traverse@7.26.4':
-    resolution: {integrity: sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==}
+  '@babel/traverse@7.26.5':
+    resolution: {integrity: sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==}
     engines: {node: '>=6.9.0'}
 
-  '@babel/types@7.26.3':
-    resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==}
+  '@babel/types@7.26.5':
+    resolution: {integrity: sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==}
     engines: {node: '>=6.9.0'}
 
   '@bcoe/v8-coverage@0.2.3':
@@ -3867,6 +3933,9 @@ packages:
     peerDependencies:
       onnxruntime-node: 1.20.1
 
+  '@elizaos/core@0.1.7':
+    resolution: {integrity: sha512-oorLGxE0LAdboNFhf62erTxu0+woNHZn98at/X3caDX34Fxr+d1cRQ6/W34WPAOIlv1tg3Q0ZArcpCCOaDTcMw==}
+
   '@emnapi/core@1.3.1':
     resolution: {integrity: sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==}
 
@@ -3892,6 +3961,12 @@ packages:
     cpu: [ppc64]
     os: [aix]
 
+  '@esbuild/aix-ppc64@0.23.1':
+    resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==}
+    engines: {node: '>=18'}
+    cpu: [ppc64]
+    os: [aix]
+
   '@esbuild/aix-ppc64@0.24.2':
     resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==}
     engines: {node: '>=18'}
@@ -3910,6 +3985,12 @@ packages:
     cpu: [arm64]
     os: [android]
 
+  '@esbuild/android-arm64@0.23.1':
+    resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==}
+    engines: {node: '>=18'}
+    cpu: [arm64]
+    os: [android]
+
   '@esbuild/android-arm64@0.24.2':
     resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==}
     engines: {node: '>=18'}
@@ -3928,6 +4009,12 @@ packages:
     cpu: [arm]
     os: [android]
 
+  '@esbuild/android-arm@0.23.1':
+    resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==}
+    engines: {node: '>=18'}
+    cpu: [arm]
+    os: [android]
+
   '@esbuild/android-arm@0.24.2':
     resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==}
     engines: {node: '>=18'}
@@ -3946,6 +4033,12 @@ packages:
     cpu: [x64]
     os: [android]
 
+  '@esbuild/android-x64@0.23.1':
+    resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [android]
+
   '@esbuild/android-x64@0.24.2':
     resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==}
     engines: {node: '>=18'}
@@ -3964,6 +4057,12 @@ packages:
     cpu: [arm64]
     os: [darwin]
 
+  '@esbuild/darwin-arm64@0.23.1':
+    resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==}
+    engines: {node: '>=18'}
+    cpu: [arm64]
+    os: [darwin]
+
   '@esbuild/darwin-arm64@0.24.2':
     resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==}
     engines: {node: '>=18'}
@@ -3982,6 +4081,12 @@ packages:
     cpu: [x64]
     os: [darwin]
 
+  '@esbuild/darwin-x64@0.23.1':
+    resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [darwin]
+
   '@esbuild/darwin-x64@0.24.2':
     resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==}
     engines: {node: '>=18'}
@@ -4000,6 +4105,12 @@ packages:
     cpu: [arm64]
     os: [freebsd]
 
+  '@esbuild/freebsd-arm64@0.23.1':
+    resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==}
+    engines: {node: '>=18'}
+    cpu: [arm64]
+    os: [freebsd]
+
   '@esbuild/freebsd-arm64@0.24.2':
     resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==}
     engines: {node: '>=18'}
@@ -4018,6 +4129,12 @@ packages:
     cpu: [x64]
     os: [freebsd]
 
+  '@esbuild/freebsd-x64@0.23.1':
+    resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [freebsd]
+
   '@esbuild/freebsd-x64@0.24.2':
     resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==}
     engines: {node: '>=18'}
@@ -4036,6 +4153,12 @@ packages:
     cpu: [arm64]
     os: [linux]
 
+  '@esbuild/linux-arm64@0.23.1':
+    resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==}
+    engines: {node: '>=18'}
+    cpu: [arm64]
+    os: [linux]
+
   '@esbuild/linux-arm64@0.24.2':
     resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==}
     engines: {node: '>=18'}
@@ -4054,6 +4177,12 @@ packages:
     cpu: [arm]
     os: [linux]
 
+  '@esbuild/linux-arm@0.23.1':
+    resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==}
+    engines: {node: '>=18'}
+    cpu: [arm]
+    os: [linux]
+
   '@esbuild/linux-arm@0.24.2':
     resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==}
     engines: {node: '>=18'}
@@ -4072,6 +4201,12 @@ packages:
     cpu: [ia32]
     os: [linux]
 
+  '@esbuild/linux-ia32@0.23.1':
+    resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==}
+    engines: {node: '>=18'}
+    cpu: [ia32]
+    os: [linux]
+
   '@esbuild/linux-ia32@0.24.2':
     resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==}
     engines: {node: '>=18'}
@@ -4090,6 +4225,12 @@ packages:
     cpu: [loong64]
     os: [linux]
 
+  '@esbuild/linux-loong64@0.23.1':
+    resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==}
+    engines: {node: '>=18'}
+    cpu: [loong64]
+    os: [linux]
+
   '@esbuild/linux-loong64@0.24.2':
     resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==}
     engines: {node: '>=18'}
@@ -4108,6 +4249,12 @@ packages:
     cpu: [mips64el]
     os: [linux]
 
+  '@esbuild/linux-mips64el@0.23.1':
+    resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==}
+    engines: {node: '>=18'}
+    cpu: [mips64el]
+    os: [linux]
+
   '@esbuild/linux-mips64el@0.24.2':
     resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==}
     engines: {node: '>=18'}
@@ -4126,6 +4273,12 @@ packages:
     cpu: [ppc64]
     os: [linux]
 
+  '@esbuild/linux-ppc64@0.23.1':
+    resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==}
+    engines: {node: '>=18'}
+    cpu: [ppc64]
+    os: [linux]
+
   '@esbuild/linux-ppc64@0.24.2':
     resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==}
     engines: {node: '>=18'}
@@ -4144,6 +4297,12 @@ packages:
     cpu: [riscv64]
     os: [linux]
 
+  '@esbuild/linux-riscv64@0.23.1':
+    resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==}
+    engines: {node: '>=18'}
+    cpu: [riscv64]
+    os: [linux]
+
   '@esbuild/linux-riscv64@0.24.2':
     resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==}
     engines: {node: '>=18'}
@@ -4162,6 +4321,12 @@ packages:
     cpu: [s390x]
     os: [linux]
 
+  '@esbuild/linux-s390x@0.23.1':
+    resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==}
+    engines: {node: '>=18'}
+    cpu: [s390x]
+    os: [linux]
+
   '@esbuild/linux-s390x@0.24.2':
     resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==}
     engines: {node: '>=18'}
@@ -4180,6 +4345,12 @@ packages:
     cpu: [x64]
     os: [linux]
 
+  '@esbuild/linux-x64@0.23.1':
+    resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [linux]
+
   '@esbuild/linux-x64@0.24.2':
     resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==}
     engines: {node: '>=18'}
@@ -4204,12 +4375,24 @@ packages:
     cpu: [x64]
     os: [netbsd]
 
+  '@esbuild/netbsd-x64@0.23.1':
+    resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [netbsd]
+
   '@esbuild/netbsd-x64@0.24.2':
     resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==}
     engines: {node: '>=18'}
     cpu: [x64]
     os: [netbsd]
 
+  '@esbuild/openbsd-arm64@0.23.1':
+    resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==}
+    engines: {node: '>=18'}
+    cpu: [arm64]
+    os: [openbsd]
+
   '@esbuild/openbsd-arm64@0.24.2':
     resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==}
     engines: {node: '>=18'}
@@ -4228,6 +4411,12 @@ packages:
     cpu: [x64]
     os: [openbsd]
 
+  '@esbuild/openbsd-x64@0.23.1':
+    resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [openbsd]
+
   '@esbuild/openbsd-x64@0.24.2':
     resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==}
     engines: {node: '>=18'}
@@ -4246,6 +4435,12 @@ packages:
     cpu: [x64]
     os: [sunos]
 
+  '@esbuild/sunos-x64@0.23.1':
+    resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [sunos]
+
   '@esbuild/sunos-x64@0.24.2':
     resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==}
     engines: {node: '>=18'}
@@ -4264,6 +4459,12 @@ packages:
     cpu: [arm64]
     os: [win32]
 
+  '@esbuild/win32-arm64@0.23.1':
+    resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==}
+    engines: {node: '>=18'}
+    cpu: [arm64]
+    os: [win32]
+
   '@esbuild/win32-arm64@0.24.2':
     resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==}
     engines: {node: '>=18'}
@@ -4282,6 +4483,12 @@ packages:
     cpu: [ia32]
     os: [win32]
 
+  '@esbuild/win32-ia32@0.23.1':
+    resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==}
+    engines: {node: '>=18'}
+    cpu: [ia32]
+    os: [win32]
+
   '@esbuild/win32-ia32@0.24.2':
     resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==}
     engines: {node: '>=18'}
@@ -4300,6 +4507,12 @@ packages:
     cpu: [x64]
     os: [win32]
 
+  '@esbuild/win32-x64@0.23.1':
+    resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [win32]
+
   '@esbuild/win32-x64@0.24.2':
     resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==}
     engines: {node: '>=18'}
@@ -4320,6 +4533,10 @@ packages:
     resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
+  '@eslint/core@0.10.0':
+    resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
   '@eslint/core@0.9.1':
     resolution: {integrity: sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -4344,8 +4561,8 @@ packages:
     resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  '@eslint/plugin-kit@0.2.4':
-    resolution: {integrity: sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==}
+  '@eslint/plugin-kit@0.2.5':
+    resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
   '@ethereumjs/rlp@4.0.1':
@@ -4589,6 +4806,12 @@ packages:
   '@fuels/vm-asm@0.58.2':
     resolution: {integrity: sha512-1/5azTzKJP508BXbZvM6Y0V5bCCX5JgEnd/8mXdBFmFvNLOhiYbwb25yk26auqOokfBXvthSkdkrvipEFft6jQ==}
 
+  '@glacier-network/client@0.2.1':
+    resolution: {integrity: sha512-NjHyMbarWCSe4EogFBxKbaElG8hmHTCS6PXhBKsk7bU0u+hYl86EGIOK/uC0Q2e+0A5XmQKJRAdtecQ91Nz4gg==}
+
+  '@glacier-network/elizaos-adapter@0.0.1-alpha.1':
+    resolution: {integrity: sha512-LJxIN5xqyAq+vakPCNZM3ekKAqsJhnLfo0Rj2AXQ86jnb31hUUU4HhC8fU47rMRSpGYNwrOBLAtcA5VD7txCMw==}
+
   '@goat-sdk/adapter-vercel-ai@0.2.0':
     resolution: {integrity: sha512-NqUyO38i6ELbWXSDHddfkD1k4QCUcvfs3jVQArlJ9OO9NSlkKvnbZjO1tTjoVoERjRKfKsCqfMPgsgo3akx7tA==}
     peerDependencies:
@@ -4945,15 +5168,15 @@ packages:
   '@kwsites/promise-deferred@1.1.1':
     resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==}
 
-  '@langchain/core@0.3.27':
-    resolution: {integrity: sha512-jtJKbJWB1NPU1YvtrExOB2rumvUFgkJwlWGxyjSIV9A6zcLVmUbcZGV8fCSuXgl5bbzOIQLJ1xcLYQmbW9TkTg==}
+  '@langchain/core@0.3.29':
+    resolution: {integrity: sha512-LGjJq/UV43GnEzBpO2NWelIlzsAWoci+FEqofYqDE+F6O3EvTrSyma27NXs8eurM8MqWxjeL0t4RCmCSlJs2RQ==}
     engines: {node: '>=18'}
 
-  '@langchain/openai@0.3.16':
-    resolution: {integrity: sha512-Om9HRlTeI0Ou6D4pfxbWHop4WGfkCdV/7v1W/+Jr7NSf0BNoA9jk5GqGms8ZtOYSGgPvizDu3i0TrM3B4cN4NA==}
+  '@langchain/openai@0.3.17':
+    resolution: {integrity: sha512-uw4po32OKptVjq+CYHrumgbfh4NuD7LqyE+ZgqY9I/LrLc6bHLMc+sisHmI17vgek0K/yqtarI0alPJbzrwyag==}
     engines: {node: '>=18'}
     peerDependencies:
-      '@langchain/core': '>=0.2.26 <0.4.0'
+      '@langchain/core': '>=0.3.29 <0.4.0'
 
   '@langchain/textsplitters@0.1.0':
     resolution: {integrity: sha512-djI4uw9rlkAb5iMhtLED+xJebDdAG935AdP4eRTB02R7OB/act55Bj9wsskhZsvuyQRpO4O1wQOp85s6T6GWmw==}
@@ -5041,8 +5264,8 @@ packages:
   '@lifi/types@16.3.0':
     resolution: {integrity: sha512-rYMdXRdNOyJb5tI5CXfqxU4k62GiJrElx0DEZ8ZRFYFtljg69X6hrMKER1wVWkRpcB67Ca8SKebLnufy7qCaTw==}
 
-  '@lit-labs/ssr-dom-shim@1.2.1':
-    resolution: {integrity: sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==}
+  '@lit-labs/ssr-dom-shim@1.3.0':
+    resolution: {integrity: sha512-nQIWonJ6eFAvUUrSlwyHDm/aE8PBDu5kRpL0vHMg6K8fK3Diq1xdPjTnsJSwxABhaZ+5eBi1btQB5ShUTKo4nQ==}
 
   '@lit-protocol/access-control-conditions@2.1.62':
     resolution: {integrity: sha512-nP+iqiLUzQa6bfZL9hM9a+s+YVW21HoHkHP7s2E11VFQmucdnJmUUr7Aw46SK/4yClTjLb6RuHyfIPvCdmIKhQ==}
@@ -5248,8 +5471,8 @@ packages:
   '@mysten/bcs@1.2.1':
     resolution: {integrity: sha512-RMSaUsNb8oR0rTRVIOOcyoEVJqQi6DLvMXN+7mvDcki12FJFQ0lF89zQa7AV7cIurWlDQfJ8VIbCuRDyK+955A==}
 
-  '@mysten/sui@1.18.1':
-    resolution: {integrity: sha512-ccMVOHM4KQhUvbBirE1rkn9THDJUX7y7W1cDMoCKnlPsIwTtQifZc7ysyBNjCMAS42y8Kq4VpiRagPjf13Am5A==}
+  '@mysten/sui@1.19.0':
+    resolution: {integrity: sha512-hjNCArz7upZaGZNNmMeQRKSlQK73eN+p8MlKJvlZpx/6gorK0WWFWWjEcIyJndkIDbLb06nbQbWIWZ8KoI036Q==}
     engines: {node: '>=18'}
 
   '@napi-rs/wasm-runtime@0.2.4':
@@ -11073,6 +11296,11 @@ packages:
     engines: {node: '>=12'}
     hasBin: true
 
+  esbuild@0.23.1:
+    resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==}
+    engines: {node: '>=18'}
+    hasBin: true
+
   esbuild@0.24.2:
     resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==}
     engines: {node: '>=18'}
@@ -11843,6 +12071,9 @@ packages:
     resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
     engines: {node: '>= 0.4'}
 
+  get-tsconfig@4.8.1:
+    resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==}
+
   get-uri@6.0.4:
     resolution: {integrity: sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==}
     engines: {node: '>= 14'}
@@ -12063,8 +12294,8 @@ packages:
     resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
     engines: {node: '>=10'}
 
-  h3@1.13.0:
-    resolution: {integrity: sha512-vFEAu/yf8UMUcB4s43OaDaigcqpQd14yanmOsn+NcRX3/guSKncyE2rOYhq8RIchgJrPSs/QiIddnTTR1ddiAg==}
+  h3@1.13.1:
+    resolution: {integrity: sha512-u/z6Z4YY+ANZ05cRRfsFJadTBrNA6e3jxdU+AN5UCbZSZEUwgHiwjvUEe0k1NoQmAvQmETwr+xB5jd7mhCJuIQ==}
 
   hachure-fill@0.5.2:
     resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==}
@@ -14838,8 +15069,8 @@ packages:
       zod:
         optional: true
 
-  openai@4.78.0:
-    resolution: {integrity: sha512-4rRsKkx++5m1zayxkryVH+K/z91cv1sRbaNJAhSQjZiSCQOR7eaM8KpfIssXrS9Hlpta7+VcuO/fi57pW8xGjA==}
+  openai@4.78.1:
+    resolution: {integrity: sha512-drt0lHZBd2lMyORckOXFPQTmnGLWSLt8VK0W9BhOKWpMFBEoHMoz5gxMPmVq5icp+sOrsbMnsmZTVHUlKvD1Ow==}
     hasBin: true
     peerDependencies:
       zod: ^3.23.8
@@ -16575,9 +16806,9 @@ packages:
     resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
     engines: {node: '>=8.10.0'}
 
-  readdirp@4.0.2:
-    resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==}
-    engines: {node: '>= 14.16.0'}
+  readdirp@4.1.1:
+    resolution: {integrity: sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==}
+    engines: {node: '>= 14.18.0'}
 
   reading-time@1.5.0:
     resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==}
@@ -16786,6 +17017,9 @@ packages:
   resolve-pathname@3.0.0:
     resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==}
 
+  resolve-pkg-maps@1.0.0:
+    resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
+
   resolve.exports@2.0.3:
     resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==}
     engines: {node: '>=10'}
@@ -18098,6 +18332,11 @@ packages:
       typescript:
         optional: true
 
+  tsx@4.19.2:
+    resolution: {integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==}
+    engines: {node: '>=18.0.0'}
+    hasBin: true
+
   tty-browserify@0.0.1:
     resolution: {integrity: sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==}
 
@@ -18279,6 +18518,11 @@ packages:
     engines: {node: '>=14.17'}
     hasBin: true
 
+  typescript@5.7.3:
+    resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==}
+    engines: {node: '>=14.17'}
+    hasBin: true
+
   u3@0.1.1:
     resolution: {integrity: sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w==}
 
@@ -19453,11 +19697,11 @@ snapshots:
     optionalDependencies:
       graphql: 16.10.0
 
-  '@0no-co/graphqlsp@1.12.16(graphql@16.10.0)(typescript@5.6.3)':
+  '@0no-co/graphqlsp@1.12.16(graphql@16.10.0)(typescript@5.7.3)':
     dependencies:
-      '@gql.tada/internal': 1.0.8(graphql@16.10.0)(typescript@5.6.3)
+      '@gql.tada/internal': 1.0.8(graphql@16.10.0)(typescript@5.7.3)
       graphql: 16.10.0
-      typescript: 5.6.3
+      typescript: 5.7.3
 
   '@acuminous/bitsyntax@0.1.2':
     dependencies:
@@ -19588,6 +19832,16 @@ snapshots:
     transitivePeerDependencies:
       - zod
 
+  '@ai-sdk/vue@0.0.59(vue@3.5.13(typescript@5.7.3))(zod@3.23.8)':
+    dependencies:
+      '@ai-sdk/provider-utils': 1.0.22(zod@3.23.8)
+      '@ai-sdk/ui-utils': 0.0.50(zod@3.23.8)
+      swrv: 1.0.4(vue@3.5.13(typescript@5.7.3))
+    optionalDependencies:
+      vue: 3.5.13(typescript@5.7.3)
+    transitivePeerDependencies:
+      - zod
+
   '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.19.0)(algoliasearch@5.19.0)(search-insights@2.17.3)':
     dependencies:
       '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.19.0)(algoliasearch@5.19.0)(search-insights@2.17.3)
@@ -19900,14 +20154,14 @@ snapshots:
       '@smithy/util-utf8': 2.3.0
       tslib: 2.8.1
 
-  '@aws-sdk/client-polly@3.726.0':
+  '@aws-sdk/client-polly@3.726.1':
     dependencies:
       '@aws-crypto/sha256-browser': 5.2.0
       '@aws-crypto/sha256-js': 5.2.0
-      '@aws-sdk/client-sso-oidc': 3.726.0(@aws-sdk/client-sts@3.726.0)
-      '@aws-sdk/client-sts': 3.726.0
+      '@aws-sdk/client-sso-oidc': 3.726.0(@aws-sdk/client-sts@3.726.1)
+      '@aws-sdk/client-sts': 3.726.1
       '@aws-sdk/core': 3.723.0
-      '@aws-sdk/credential-provider-node': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))(@aws-sdk/client-sts@3.726.0)
+      '@aws-sdk/credential-provider-node': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))(@aws-sdk/client-sts@3.726.1)
       '@aws-sdk/middleware-host-header': 3.723.0
       '@aws-sdk/middleware-logger': 3.723.0
       '@aws-sdk/middleware-recursion-detection': 3.723.0
@@ -19947,15 +20201,15 @@ snapshots:
     transitivePeerDependencies:
       - aws-crt
 
-  '@aws-sdk/client-s3@3.726.0':
+  '@aws-sdk/client-s3@3.726.1':
     dependencies:
       '@aws-crypto/sha1-browser': 5.2.0
       '@aws-crypto/sha256-browser': 5.2.0
       '@aws-crypto/sha256-js': 5.2.0
-      '@aws-sdk/client-sso-oidc': 3.726.0(@aws-sdk/client-sts@3.726.0)
-      '@aws-sdk/client-sts': 3.726.0
+      '@aws-sdk/client-sso-oidc': 3.726.0(@aws-sdk/client-sts@3.726.1)
+      '@aws-sdk/client-sts': 3.726.1
       '@aws-sdk/core': 3.723.0
-      '@aws-sdk/credential-provider-node': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))(@aws-sdk/client-sts@3.726.0)
+      '@aws-sdk/credential-provider-node': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))(@aws-sdk/client-sts@3.726.1)
       '@aws-sdk/middleware-bucket-endpoint': 3.726.0
       '@aws-sdk/middleware-expect-continue': 3.723.0
       '@aws-sdk/middleware-flexible-checksums': 3.723.0
@@ -20010,13 +20264,13 @@ snapshots:
     transitivePeerDependencies:
       - aws-crt
 
-  '@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0)':
+  '@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1)':
     dependencies:
       '@aws-crypto/sha256-browser': 5.2.0
       '@aws-crypto/sha256-js': 5.2.0
-      '@aws-sdk/client-sts': 3.726.0
+      '@aws-sdk/client-sts': 3.726.1
       '@aws-sdk/core': 3.723.0
-      '@aws-sdk/credential-provider-node': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))(@aws-sdk/client-sts@3.726.0)
+      '@aws-sdk/credential-provider-node': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))(@aws-sdk/client-sts@3.726.1)
       '@aws-sdk/middleware-host-header': 3.723.0
       '@aws-sdk/middleware-logger': 3.723.0
       '@aws-sdk/middleware-recursion-detection': 3.723.0
@@ -20098,13 +20352,13 @@ snapshots:
     transitivePeerDependencies:
       - aws-crt
 
-  '@aws-sdk/client-sts@3.726.0':
+  '@aws-sdk/client-sts@3.726.1':
     dependencies:
       '@aws-crypto/sha256-browser': 5.2.0
       '@aws-crypto/sha256-js': 5.2.0
-      '@aws-sdk/client-sso-oidc': 3.726.0(@aws-sdk/client-sts@3.726.0)
+      '@aws-sdk/client-sso-oidc': 3.726.0(@aws-sdk/client-sts@3.726.1)
       '@aws-sdk/core': 3.723.0
-      '@aws-sdk/credential-provider-node': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))(@aws-sdk/client-sts@3.726.0)
+      '@aws-sdk/credential-provider-node': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))(@aws-sdk/client-sts@3.726.1)
       '@aws-sdk/middleware-host-header': 3.723.0
       '@aws-sdk/middleware-logger': 3.723.0
       '@aws-sdk/middleware-recursion-detection': 3.723.0
@@ -20143,14 +20397,14 @@ snapshots:
     transitivePeerDependencies:
       - aws-crt
 
-  '@aws-sdk/client-transcribe-streaming@3.726.0':
+  '@aws-sdk/client-transcribe-streaming@3.726.1':
     dependencies:
       '@aws-crypto/sha256-browser': 5.2.0
       '@aws-crypto/sha256-js': 5.2.0
-      '@aws-sdk/client-sso-oidc': 3.726.0(@aws-sdk/client-sts@3.726.0)
-      '@aws-sdk/client-sts': 3.726.0
+      '@aws-sdk/client-sso-oidc': 3.726.0(@aws-sdk/client-sts@3.726.1)
+      '@aws-sdk/client-sts': 3.726.1
       '@aws-sdk/core': 3.723.0
-      '@aws-sdk/credential-provider-node': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))(@aws-sdk/client-sts@3.726.0)
+      '@aws-sdk/credential-provider-node': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))(@aws-sdk/client-sts@3.726.1)
       '@aws-sdk/eventstream-handler-node': 3.723.0
       '@aws-sdk/middleware-eventstream': 3.723.0
       '@aws-sdk/middleware-host-header': 3.723.0
@@ -20231,15 +20485,15 @@ snapshots:
       '@smithy/util-stream': 4.0.1
       tslib: 2.8.1
 
-  '@aws-sdk/credential-provider-ini@3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))(@aws-sdk/client-sts@3.726.0)':
+  '@aws-sdk/credential-provider-ini@3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))(@aws-sdk/client-sts@3.726.1)':
     dependencies:
-      '@aws-sdk/client-sts': 3.726.0
+      '@aws-sdk/client-sts': 3.726.1
       '@aws-sdk/core': 3.723.0
       '@aws-sdk/credential-provider-env': 3.723.0
       '@aws-sdk/credential-provider-http': 3.723.0
       '@aws-sdk/credential-provider-process': 3.723.0
-      '@aws-sdk/credential-provider-sso': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))
-      '@aws-sdk/credential-provider-web-identity': 3.723.0(@aws-sdk/client-sts@3.726.0)
+      '@aws-sdk/credential-provider-sso': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))
+      '@aws-sdk/credential-provider-web-identity': 3.723.0(@aws-sdk/client-sts@3.726.1)
       '@aws-sdk/types': 3.723.0
       '@smithy/credential-provider-imds': 4.0.1
       '@smithy/property-provider': 4.0.1
@@ -20250,14 +20504,14 @@ snapshots:
       - '@aws-sdk/client-sso-oidc'
       - aws-crt
 
-  '@aws-sdk/credential-provider-node@3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))(@aws-sdk/client-sts@3.726.0)':
+  '@aws-sdk/credential-provider-node@3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))(@aws-sdk/client-sts@3.726.1)':
     dependencies:
       '@aws-sdk/credential-provider-env': 3.723.0
       '@aws-sdk/credential-provider-http': 3.723.0
-      '@aws-sdk/credential-provider-ini': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))(@aws-sdk/client-sts@3.726.0)
+      '@aws-sdk/credential-provider-ini': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))(@aws-sdk/client-sts@3.726.1)
       '@aws-sdk/credential-provider-process': 3.723.0
-      '@aws-sdk/credential-provider-sso': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))
-      '@aws-sdk/credential-provider-web-identity': 3.723.0(@aws-sdk/client-sts@3.726.0)
+      '@aws-sdk/credential-provider-sso': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))
+      '@aws-sdk/credential-provider-web-identity': 3.723.0(@aws-sdk/client-sts@3.726.1)
       '@aws-sdk/types': 3.723.0
       '@smithy/credential-provider-imds': 4.0.1
       '@smithy/property-provider': 4.0.1
@@ -20278,11 +20532,11 @@ snapshots:
       '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@aws-sdk/credential-provider-sso@3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))':
+  '@aws-sdk/credential-provider-sso@3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))':
     dependencies:
       '@aws-sdk/client-sso': 3.726.0
       '@aws-sdk/core': 3.723.0
-      '@aws-sdk/token-providers': 3.723.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))
+      '@aws-sdk/token-providers': 3.723.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))
       '@aws-sdk/types': 3.723.0
       '@smithy/property-provider': 4.0.1
       '@smithy/shared-ini-file-loader': 4.0.1
@@ -20292,9 +20546,9 @@ snapshots:
       - '@aws-sdk/client-sso-oidc'
       - aws-crt
 
-  '@aws-sdk/credential-provider-web-identity@3.723.0(@aws-sdk/client-sts@3.726.0)':
+  '@aws-sdk/credential-provider-web-identity@3.723.0(@aws-sdk/client-sts@3.726.1)':
     dependencies:
-      '@aws-sdk/client-sts': 3.726.0
+      '@aws-sdk/client-sts': 3.726.1
       '@aws-sdk/core': 3.723.0
       '@aws-sdk/types': 3.723.0
       '@smithy/property-provider': 4.0.1
@@ -20440,7 +20694,7 @@ snapshots:
       '@smithy/util-middleware': 4.0.1
       tslib: 2.8.1
 
-  '@aws-sdk/s3-request-presigner@3.726.0':
+  '@aws-sdk/s3-request-presigner@3.726.1':
     dependencies:
       '@aws-sdk/signature-v4-multi-region': 3.723.0
       '@aws-sdk/types': 3.723.0
@@ -20460,9 +20714,9 @@ snapshots:
       '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@aws-sdk/token-providers@3.723.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.0))':
+  '@aws-sdk/token-providers@3.723.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))':
     dependencies:
-      '@aws-sdk/client-sso-oidc': 3.726.0(@aws-sdk/client-sts@3.726.0)
+      '@aws-sdk/client-sso-oidc': 3.726.0(@aws-sdk/client-sts@3.726.1)
       '@aws-sdk/types': 3.723.0
       '@smithy/property-provider': 4.0.1
       '@smithy/shared-ini-file-loader': 4.0.1
@@ -20522,20 +20776,20 @@ snapshots:
       js-tokens: 4.0.0
       picocolors: 1.1.1
 
-  '@babel/compat-data@7.26.3': {}
+  '@babel/compat-data@7.26.5': {}
 
   '@babel/core@7.26.0':
     dependencies:
       '@ampproject/remapping': 2.3.0
       '@babel/code-frame': 7.26.2
-      '@babel/generator': 7.26.3
-      '@babel/helper-compilation-targets': 7.25.9
+      '@babel/generator': 7.26.5
+      '@babel/helper-compilation-targets': 7.26.5
       '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)
       '@babel/helpers': 7.26.0
-      '@babel/parser': 7.26.3
+      '@babel/parser': 7.26.5
       '@babel/template': 7.25.9
-      '@babel/traverse': 7.26.4
-      '@babel/types': 7.26.3
+      '@babel/traverse': 7.26.5
+      '@babel/types': 7.26.5
       convert-source-map: 2.0.0
       debug: 4.4.0(supports-color@8.1.1)
       gensync: 1.0.0-beta.2
@@ -20544,21 +20798,21 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@babel/generator@7.26.3':
+  '@babel/generator@7.26.5':
     dependencies:
-      '@babel/parser': 7.26.3
-      '@babel/types': 7.26.3
+      '@babel/parser': 7.26.5
+      '@babel/types': 7.26.5
       '@jridgewell/gen-mapping': 0.3.8
       '@jridgewell/trace-mapping': 0.3.25
       jsesc: 3.1.0
 
   '@babel/helper-annotate-as-pure@7.25.9':
     dependencies:
-      '@babel/types': 7.26.3
+      '@babel/types': 7.26.5
 
-  '@babel/helper-compilation-targets@7.25.9':
+  '@babel/helper-compilation-targets@7.26.5':
     dependencies:
-      '@babel/compat-data': 7.26.3
+      '@babel/compat-data': 7.26.5
       '@babel/helper-validator-option': 7.25.9
       browserslist: 4.24.4
       lru-cache: 5.1.1
@@ -20570,9 +20824,9 @@ snapshots:
       '@babel/helper-annotate-as-pure': 7.25.9
       '@babel/helper-member-expression-to-functions': 7.25.9
       '@babel/helper-optimise-call-expression': 7.25.9
-      '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0)
+      '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.0)
       '@babel/helper-skip-transparent-expression-wrappers': 7.25.9
-      '@babel/traverse': 7.26.4
+      '@babel/traverse': 7.26.5
       semver: 6.3.1
     transitivePeerDependencies:
       - supports-color
@@ -20587,8 +20841,8 @@ snapshots:
   '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-compilation-targets': 7.25.9
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-compilation-targets': 7.26.5
+      '@babel/helper-plugin-utils': 7.26.5
       debug: 4.4.0(supports-color@8.1.1)
       lodash.debounce: 4.0.8
       resolve: 1.22.10
@@ -20597,15 +20851,15 @@ snapshots:
 
   '@babel/helper-member-expression-to-functions@7.25.9':
     dependencies:
-      '@babel/traverse': 7.26.4
-      '@babel/types': 7.26.3
+      '@babel/traverse': 7.26.5
+      '@babel/types': 7.26.5
     transitivePeerDependencies:
       - supports-color
 
   '@babel/helper-module-imports@7.25.9':
     dependencies:
-      '@babel/traverse': 7.26.4
-      '@babel/types': 7.26.3
+      '@babel/traverse': 7.26.5
+      '@babel/types': 7.26.5
     transitivePeerDependencies:
       - supports-color
 
@@ -20614,38 +20868,38 @@ snapshots:
       '@babel/core': 7.26.0
       '@babel/helper-module-imports': 7.25.9
       '@babel/helper-validator-identifier': 7.25.9
-      '@babel/traverse': 7.26.4
+      '@babel/traverse': 7.26.5
     transitivePeerDependencies:
       - supports-color
 
   '@babel/helper-optimise-call-expression@7.25.9':
     dependencies:
-      '@babel/types': 7.26.3
+      '@babel/types': 7.26.5
 
-  '@babel/helper-plugin-utils@7.25.9': {}
+  '@babel/helper-plugin-utils@7.26.5': {}
 
   '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
       '@babel/helper-annotate-as-pure': 7.25.9
       '@babel/helper-wrap-function': 7.25.9
-      '@babel/traverse': 7.26.4
+      '@babel/traverse': 7.26.5
     transitivePeerDependencies:
       - supports-color
 
-  '@babel/helper-replace-supers@7.25.9(@babel/core@7.26.0)':
+  '@babel/helper-replace-supers@7.26.5(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
       '@babel/helper-member-expression-to-functions': 7.25.9
       '@babel/helper-optimise-call-expression': 7.25.9
-      '@babel/traverse': 7.26.4
+      '@babel/traverse': 7.26.5
     transitivePeerDependencies:
       - supports-color
 
   '@babel/helper-skip-transparent-expression-wrappers@7.25.9':
     dependencies:
-      '@babel/traverse': 7.26.4
-      '@babel/types': 7.26.3
+      '@babel/traverse': 7.26.5
+      '@babel/types': 7.26.5
     transitivePeerDependencies:
       - supports-color
 
@@ -20658,42 +20912,42 @@ snapshots:
   '@babel/helper-wrap-function@7.25.9':
     dependencies:
       '@babel/template': 7.25.9
-      '@babel/traverse': 7.26.4
-      '@babel/types': 7.26.3
+      '@babel/traverse': 7.26.5
+      '@babel/types': 7.26.5
     transitivePeerDependencies:
       - supports-color
 
   '@babel/helpers@7.26.0':
     dependencies:
       '@babel/template': 7.25.9
-      '@babel/types': 7.26.3
+      '@babel/types': 7.26.5
 
-  '@babel/parser@7.26.3':
+  '@babel/parser@7.26.5':
     dependencies:
-      '@babel/types': 7.26.3
+      '@babel/types': 7.26.5
 
   '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
-      '@babel/traverse': 7.26.4
+      '@babel/helper-plugin-utils': 7.26.5
+      '@babel/traverse': 7.26.5
     transitivePeerDependencies:
       - supports-color
 
   '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
       '@babel/helper-skip-transparent-expression-wrappers': 7.25.9
       '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0)
     transitivePeerDependencies:
@@ -20702,8 +20956,8 @@ snapshots:
   '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
-      '@babel/traverse': 7.26.4
+      '@babel/helper-plugin-utils': 7.26.5
+      '@babel/traverse': 7.26.5
     transitivePeerDependencies:
       - supports-color
 
@@ -20714,115 +20968,115 @@ snapshots:
   '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
       '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0)
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
       '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0)
-      '@babel/traverse': 7.26.4
+      '@babel/traverse': 7.26.5
     transitivePeerDependencies:
       - supports-color
 
@@ -20830,26 +21084,26 @@ snapshots:
     dependencies:
       '@babel/core': 7.26.0
       '@babel/helper-module-imports': 7.25.9
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
       '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0)
     transitivePeerDependencies:
       - supports-color
 
-  '@babel/plugin-transform-block-scoped-functions@7.25.9(@babel/core@7.26.0)':
+  '@babel/plugin-transform-block-scoped-functions@7.26.5(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
       '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0)
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
     transitivePeerDependencies:
       - supports-color
 
@@ -20857,7 +21111,7 @@ snapshots:
     dependencies:
       '@babel/core': 7.26.0
       '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0)
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
     transitivePeerDependencies:
       - supports-color
 
@@ -20865,10 +21119,10 @@ snapshots:
     dependencies:
       '@babel/core': 7.26.0
       '@babel/helper-annotate-as-pure': 7.25.9
-      '@babel/helper-compilation-targets': 7.25.9
-      '@babel/helper-plugin-utils': 7.25.9
-      '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0)
-      '@babel/traverse': 7.26.4
+      '@babel/helper-compilation-targets': 7.26.5
+      '@babel/helper-plugin-utils': 7.26.5
+      '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.0)
+      '@babel/traverse': 7.26.5
       globals: 11.12.0
     transitivePeerDependencies:
       - supports-color
@@ -20876,50 +21130,50 @@ snapshots:
   '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
       '@babel/template': 7.25.9
 
   '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
       '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0)
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
       '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0)
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
       '@babel/helper-skip-transparent-expression-wrappers': 7.25.9
     transitivePeerDependencies:
       - supports-color
@@ -20927,37 +21181,37 @@ snapshots:
   '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-compilation-targets': 7.25.9
-      '@babel/helper-plugin-utils': 7.25.9
-      '@babel/traverse': 7.26.4
+      '@babel/helper-compilation-targets': 7.26.5
+      '@babel/helper-plugin-utils': 7.26.5
+      '@babel/traverse': 7.26.5
     transitivePeerDependencies:
       - supports-color
 
   '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
       '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
     transitivePeerDependencies:
       - supports-color
 
@@ -20965,7 +21219,7 @@ snapshots:
     dependencies:
       '@babel/core': 7.26.0
       '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
     transitivePeerDependencies:
       - supports-color
 
@@ -20973,9 +21227,9 @@ snapshots:
     dependencies:
       '@babel/core': 7.26.0
       '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
       '@babel/helper-validator-identifier': 7.25.9
-      '@babel/traverse': 7.26.4
+      '@babel/traverse': 7.26.5
     transitivePeerDependencies:
       - supports-color
 
@@ -20983,7 +21237,7 @@ snapshots:
     dependencies:
       '@babel/core': 7.26.0
       '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
     transitivePeerDependencies:
       - supports-color
 
@@ -20991,47 +21245,47 @@ snapshots:
     dependencies:
       '@babel/core': 7.26.0
       '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0)
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
-  '@babel/plugin-transform-nullish-coalescing-operator@7.25.9(@babel/core@7.26.0)':
+  '@babel/plugin-transform-nullish-coalescing-operator@7.26.5(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-compilation-targets': 7.25.9
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-compilation-targets': 7.26.5
+      '@babel/helper-plugin-utils': 7.26.5
       '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0)
 
   '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
-      '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0)
+      '@babel/helper-plugin-utils': 7.26.5
+      '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.0)
     transitivePeerDependencies:
       - supports-color
 
   '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
       '@babel/helper-skip-transparent-expression-wrappers': 7.25.9
     transitivePeerDependencies:
       - supports-color
@@ -21039,13 +21293,13 @@ snapshots:
   '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
       '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0)
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
     transitivePeerDependencies:
       - supports-color
 
@@ -21054,24 +21308,24 @@ snapshots:
       '@babel/core': 7.26.0
       '@babel/helper-annotate-as-pure': 7.25.9
       '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0)
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
     transitivePeerDependencies:
       - supports-color
 
   '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-react-constant-elements@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-react-display-name@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-react-jsx-development@7.25.9(@babel/core@7.26.0)':
     dependencies:
@@ -21083,21 +21337,21 @@ snapshots:
   '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
       '@babel/helper-annotate-as-pure': 7.25.9
       '@babel/helper-module-imports': 7.25.9
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
       '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0)
-      '@babel/types': 7.26.3
+      '@babel/types': 7.26.5
     transitivePeerDependencies:
       - supports-color
 
@@ -21105,30 +21359,30 @@ snapshots:
     dependencies:
       '@babel/core': 7.26.0
       '@babel/helper-annotate-as-pure': 7.25.9
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
       regenerator-transform: 0.15.2
 
   '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
       '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0)
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
       '@babel/helper-module-imports': 7.25.9
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
       babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.0)
       babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0)
       babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.0)
@@ -21139,12 +21393,12 @@ snapshots:
   '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
       '@babel/helper-skip-transparent-expression-wrappers': 7.25.9
     transitivePeerDependencies:
       - supports-color
@@ -21152,24 +21406,24 @@ snapshots:
   '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-typeof-symbol@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
-  '@babel/plugin-transform-typescript@7.26.3(@babel/core@7.26.0)':
+  '@babel/plugin-transform-typescript@7.26.5(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
       '@babel/helper-annotate-as-pure': 7.25.9
       '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0)
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
       '@babel/helper-skip-transparent-expression-wrappers': 7.25.9
       '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0)
     transitivePeerDependencies:
@@ -21178,32 +21432,32 @@ snapshots:
   '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
       '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0)
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
       '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0)
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
       '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0)
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
 
   '@babel/preset-env@7.26.0(@babel/core@7.26.0)':
     dependencies:
-      '@babel/compat-data': 7.26.3
+      '@babel/compat-data': 7.26.5
       '@babel/core': 7.26.0
-      '@babel/helper-compilation-targets': 7.25.9
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-compilation-targets': 7.26.5
+      '@babel/helper-plugin-utils': 7.26.5
       '@babel/helper-validator-option': 7.25.9
       '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.26.0)
       '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.26.0)
@@ -21217,7 +21471,7 @@ snapshots:
       '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.0)
       '@babel/plugin-transform-async-generator-functions': 7.25.9(@babel/core@7.26.0)
       '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.0)
-      '@babel/plugin-transform-block-scoped-functions': 7.25.9(@babel/core@7.26.0)
+      '@babel/plugin-transform-block-scoped-functions': 7.26.5(@babel/core@7.26.0)
       '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.26.0)
       '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.0)
       '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.0)
@@ -21242,7 +21496,7 @@ snapshots:
       '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.26.0)
       '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0)
       '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.26.0)
-      '@babel/plugin-transform-nullish-coalescing-operator': 7.25.9(@babel/core@7.26.0)
+      '@babel/plugin-transform-nullish-coalescing-operator': 7.26.5(@babel/core@7.26.0)
       '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.26.0)
       '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.0)
       '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.26.0)
@@ -21276,14 +21530,14 @@ snapshots:
   '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
-      '@babel/types': 7.26.3
+      '@babel/helper-plugin-utils': 7.26.5
+      '@babel/types': 7.26.5
       esutils: 2.0.3
 
   '@babel/preset-react@7.26.3(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
       '@babel/helper-validator-option': 7.25.9
       '@babel/plugin-transform-react-display-name': 7.25.9(@babel/core@7.26.0)
       '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0)
@@ -21295,11 +21549,11 @@ snapshots:
   '@babel/preset-typescript@7.26.0(@babel/core@7.26.0)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
       '@babel/helper-validator-option': 7.25.9
       '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0)
       '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.0)
-      '@babel/plugin-transform-typescript': 7.26.3(@babel/core@7.26.0)
+      '@babel/plugin-transform-typescript': 7.26.5(@babel/core@7.26.0)
     transitivePeerDependencies:
       - supports-color
 
@@ -21312,40 +21566,40 @@ snapshots:
     dependencies:
       regenerator-runtime: 0.14.1
 
-  '@babel/standalone@7.26.4': {}
+  '@babel/standalone@7.26.5': {}
 
   '@babel/template@7.25.9':
     dependencies:
       '@babel/code-frame': 7.26.2
-      '@babel/parser': 7.26.3
-      '@babel/types': 7.26.3
+      '@babel/parser': 7.26.5
+      '@babel/types': 7.26.5
 
-  '@babel/traverse@7.26.4':
+  '@babel/traverse@7.26.5':
     dependencies:
       '@babel/code-frame': 7.26.2
-      '@babel/generator': 7.26.3
-      '@babel/parser': 7.26.3
+      '@babel/generator': 7.26.5
+      '@babel/parser': 7.26.5
       '@babel/template': 7.25.9
-      '@babel/types': 7.26.3
+      '@babel/types': 7.26.5
       debug: 4.4.0(supports-color@8.1.1)
       globals: 11.12.0
     transitivePeerDependencies:
       - supports-color
 
-  '@babel/types@7.26.3':
+  '@babel/types@7.26.5':
     dependencies:
       '@babel/helper-string-parser': 7.25.9
       '@babel/helper-validator-identifier': 7.25.9
 
   '@bcoe/v8-coverage@0.2.3': {}
 
-  '@bigmi/core@0.0.4(bitcoinjs-lib@7.0.0-rc.0(typescript@5.6.3))(bs58@6.0.0)(viem@2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))':
+  '@bigmi/core@0.0.4(bitcoinjs-lib@7.0.0-rc.0(typescript@5.7.3))(bs58@6.0.0)(viem@2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8))':
     dependencies:
       '@noble/hashes': 1.7.0
       bech32: 2.0.0
-      bitcoinjs-lib: 7.0.0-rc.0(typescript@5.6.3)
+      bitcoinjs-lib: 7.0.0-rc.0(typescript@5.7.3)
       bs58: 6.0.0
-      viem: 2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+      viem: 2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
 
   '@braintree/sanitize-url@7.1.1': {}
 
@@ -22009,10 +22263,10 @@ snapshots:
     transitivePeerDependencies:
       - '@algolia/client-search'
 
-  '@docusaurus/babel@3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
+  '@docusaurus/babel@3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)':
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/generator': 7.26.3
+      '@babel/generator': 7.26.5
       '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.26.0)
       '@babel/plugin-transform-runtime': 7.25.9(@babel/core@7.26.0)
       '@babel/preset-env': 7.26.0(@babel/core@7.26.0)
@@ -22020,9 +22274,9 @@ snapshots:
       '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0)
       '@babel/runtime': 7.26.0
       '@babel/runtime-corejs3': 7.26.0
-      '@babel/traverse': 7.26.4
+      '@babel/traverse': 7.26.5
       '@docusaurus/logger': 3.6.3
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       babel-plugin-dynamic-import-node: 2.3.3
       fs-extra: 11.2.0
       tslib: 2.8.1
@@ -22037,14 +22291,14 @@ snapshots:
       - uglify-js
       - webpack-cli
 
-  '@docusaurus/bundler@3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
+  '@docusaurus/bundler@3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)':
     dependencies:
       '@babel/core': 7.26.0
-      '@docusaurus/babel': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/babel': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/cssnano-preset': 3.6.3
       '@docusaurus/logger': 3.6.3
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       babel-loader: 9.2.1(@babel/core@7.26.0)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       clean-css: 5.3.3
       copy-webpack-plugin: 11.0.0(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
@@ -22056,9 +22310,9 @@ snapshots:
       mini-css-extract-plugin: 2.9.2(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       null-loader: 4.0.1(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       postcss: 8.4.49
-      postcss-loader: 7.3.4(postcss@8.4.49)(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
+      postcss-loader: 7.3.4(postcss@8.4.49)(typescript@5.7.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       postcss-preset-env: 10.1.3(postcss@8.4.49)
-      react-dev-utils: 12.0.1(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
+      react-dev-utils: 12.0.1(eslint@9.16.0(jiti@2.4.2))(typescript@5.7.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       terser-webpack-plugin: 5.3.11(@swc/core@1.10.7(@swc/helpers@0.5.15))(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       tslib: 2.8.1
       url-loader: 4.1.1(file-loader@6.2.0(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))))(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
@@ -22082,15 +22336,15 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/core@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/core@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/babel': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/bundler': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/babel': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
+      '@docusaurus/bundler': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/logger': 3.6.3
-      '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@mdx-js/react': 3.0.1(@types/react@18.3.12)(react@18.3.1)
       boxen: 6.2.1
       chalk: 4.1.2
@@ -22112,7 +22366,7 @@ snapshots:
       p-map: 4.0.0
       prompts: 2.4.2
       react: 18.3.1
-      react-dev-utils: 12.0.1(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
+      react-dev-utils: 12.0.1(eslint@9.16.0(jiti@2.4.2))(typescript@5.7.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       react-dom: 18.3.1(react@18.3.1)
       react-helmet-async: 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       react-loadable: '@docusaurus/react-loadable@6.0.0(react@18.3.1)'
@@ -22172,11 +22426,11 @@ snapshots:
     transitivePeerDependencies:
       - webpack
 
-  '@docusaurus/mdx-loader@3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
+  '@docusaurus/mdx-loader@3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)':
     dependencies:
       '@docusaurus/logger': 3.6.3
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@mdx-js/mdx': 3.1.0(acorn@8.14.0)
       '@slorber/remark-comment': 1.0.0
       escape-html: 1.0.3
@@ -22228,17 +22482,17 @@ snapshots:
       - uglify-js
       - webpack-cli
 
-  '@docusaurus/plugin-content-blog@3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-content-blog@3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/logger': 3.6.3
-      '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
+      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       cheerio: 1.0.0-rc.12
       feed: 4.2.2
       fs-extra: 11.2.0
@@ -22272,17 +22526,17 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/logger': 3.6.3
-      '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/module-type-aliases': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@types/react-router-config': 5.0.11
       combine-promises: 1.2.0
       fs-extra: 11.2.0
@@ -22314,13 +22568,13 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-content-pages@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-content-pages@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       fs-extra: 11.2.0
       react: 18.3.1
       react-dom: 18.3.1(react@18.3.1)
@@ -22347,11 +22601,11 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-debug@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-debug@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       fs-extra: 11.2.0
       react: 18.3.1
       react-dom: 18.3.1(react@18.3.1)
@@ -22378,11 +22632,11 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-google-analytics@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-google-analytics@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       react: 18.3.1
       react-dom: 18.3.1(react@18.3.1)
       tslib: 2.8.1
@@ -22407,11 +22661,11 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-google-gtag@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-google-gtag@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@types/gtag.js': 0.0.12
       react: 18.3.1
       react-dom: 18.3.1(react@18.3.1)
@@ -22437,11 +22691,11 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-google-tag-manager@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-google-tag-manager@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       react: 18.3.1
       react-dom: 18.3.1(react@18.3.1)
       tslib: 2.8.1
@@ -22466,14 +22720,14 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-ideal-image@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-ideal-image@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/lqip-loader': 3.6.3(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       '@docusaurus/responsive-loader': 1.7.0(sharp@0.32.6)
       '@docusaurus/theme-translations': 3.6.3
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@slorber/react-ideal-image': 0.0.12(prop-types@15.8.1)(react-waypoint@10.3.0(react@18.3.1))(react@18.3.1)
       react: 18.3.1
       react-dom: 18.3.1(react@18.3.1)
@@ -22503,14 +22757,14 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-sitemap@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-sitemap@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/logger': 3.6.3
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       fs-extra: 11.2.0
       react: 18.3.1
       react-dom: 18.3.1(react@18.3.1)
@@ -22537,20 +22791,20 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/preset-classic@3.6.3(@algolia/client-search@5.19.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3)(utf-8-validate@5.0.10)':
-    dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-content-blog': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-content-pages': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-debug': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-google-analytics': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-google-gtag': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-google-tag-manager': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-sitemap': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/theme-classic': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/theme-search-algolia': 3.6.3(@algolia/client-search@5.19.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3)(utf-8-validate@5.0.10)
+  '@docusaurus/preset-classic@3.6.3(@algolia/client-search@5.19.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.7.3)(utf-8-validate@5.0.10)':
+    dependencies:
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-content-blog': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-content-pages': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-debug': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-google-analytics': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-google-gtag': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-google-tag-manager': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-sitemap': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/theme-classic': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
+      '@docusaurus/theme-search-algolia': 3.6.3(@algolia/client-search@5.19.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       react: 18.3.1
       react-dom: 18.3.1(react@18.3.1)
@@ -22589,21 +22843,21 @@ snapshots:
     optionalDependencies:
       sharp: 0.32.6
 
-  '@docusaurus/theme-classic@3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/theme-classic@3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/logger': 3.6.3
-      '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/module-type-aliases': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/plugin-content-blog': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-content-pages': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/plugin-content-blog': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-content-pages': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/theme-translations': 3.6.3
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@mdx-js/react': 3.0.1(@types/react@18.3.12)(react@18.3.1)
       clsx: 2.1.1
       copy-text-to-clipboard: 3.2.0
@@ -22640,12 +22894,12 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/theme-common@3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
+  '@docusaurus/theme-common@3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)':
     dependencies:
-      '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/module-type-aliases': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@types/history': 4.7.11
       '@types/react': 18.3.12
@@ -22666,13 +22920,13 @@ snapshots:
       - uglify-js
       - webpack-cli
 
-  '@docusaurus/theme-mermaid@3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/theme-mermaid@3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/module-type-aliases': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       mermaid: 11.4.1
       react: 18.3.1
       react-dom: 18.3.1(react@18.3.1)
@@ -22699,16 +22953,16 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/theme-search-algolia@3.6.3(@algolia/client-search@5.19.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/theme-search-algolia@3.6.3(@algolia/client-search@5.19.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
       '@docsearch/react': 3.8.2(@algolia/client-search@5.19.0)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/logger': 3.6.3
-      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/theme-translations': 3.6.3
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
+      '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       algoliasearch: 4.24.0
       algoliasearch-helper: 3.22.6(algoliasearch@4.24.0)
       clsx: 2.1.1
@@ -22783,10 +23037,10 @@ snapshots:
       - uglify-js
       - webpack-cli
 
-  '@docusaurus/utils-validation@3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
+  '@docusaurus/utils-validation@3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)':
     dependencies:
       '@docusaurus/logger': 3.6.3
-      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       fs-extra: 11.2.0
       joi: 17.13.3
@@ -22804,12 +23058,12 @@ snapshots:
       - uglify-js
       - webpack-cli
 
-  '@docusaurus/utils@3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
+  '@docusaurus/utils@3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)':
     dependencies:
       '@docusaurus/logger': 3.6.3
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@svgr/webpack': 8.1.0(typescript@5.6.3)
+      '@svgr/webpack': 8.1.0(typescript@5.7.3)
       escape-string-regexp: 4.0.0
       file-loader: 6.2.0(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       fs-extra: 11.2.0
@@ -22869,6 +23123,106 @@ snapshots:
       '@huggingface/jinja': 0.2.2
       onnxruntime-node: 1.20.1
 
+  '@elizaos/core@0.1.7(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.29(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)':
+    dependencies:
+      '@ai-sdk/anthropic': 0.0.56(zod@3.23.8)
+      '@ai-sdk/google': 0.0.55(zod@3.23.8)
+      '@ai-sdk/google-vertex': 0.0.43(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(zod@3.23.8)
+      '@ai-sdk/groq': 0.0.3(zod@3.23.8)
+      '@ai-sdk/openai': 1.0.5(zod@3.23.8)
+      '@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.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.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
+      gaxios: 6.7.1(encoding@0.1.13)
+      glob: 11.0.0
+      handlebars: 4.7.8
+      js-sha1: 0.7.0
+      js-tiktoken: 1.0.15
+      langchain: 0.3.6(@langchain/core@0.3.29(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))
+      ollama-ai-provider: 0.16.1(zod@3.23.8)
+      openai: 4.73.0(encoding@0.1.13)(zod@3.23.8)
+      tinyld: 1.3.4
+      together-ai: 0.7.0(encoding@0.1.13)
+      unique-names-generator: 4.7.1
+      uuid: 11.0.3
+      zod: 3.23.8
+    transitivePeerDependencies:
+      - '@google-cloud/vertexai'
+      - '@langchain/anthropic'
+      - '@langchain/aws'
+      - '@langchain/cohere'
+      - '@langchain/core'
+      - '@langchain/google-genai'
+      - '@langchain/google-vertexai'
+      - '@langchain/groq'
+      - '@langchain/mistralai'
+      - '@langchain/ollama'
+      - axios
+      - cheerio
+      - encoding
+      - peggy
+      - react
+      - solid-js
+      - sswr
+      - supports-color
+      - svelte
+      - typeorm
+      - vue
+
+  '@elizaos/core@0.1.7(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.29(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)':
+    dependencies:
+      '@ai-sdk/anthropic': 0.0.56(zod@3.23.8)
+      '@ai-sdk/google': 0.0.55(zod@3.23.8)
+      '@ai-sdk/google-vertex': 0.0.43(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(zod@3.23.8)
+      '@ai-sdk/groq': 0.0.3(zod@3.23.8)
+      '@ai-sdk/openai': 1.0.5(zod@3.23.8)
+      '@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.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.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
+      gaxios: 6.7.1(encoding@0.1.13)
+      glob: 11.0.0
+      handlebars: 4.7.8
+      js-sha1: 0.7.0
+      js-tiktoken: 1.0.15
+      langchain: 0.3.6(@langchain/core@0.3.29(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))
+      ollama-ai-provider: 0.16.1(zod@3.23.8)
+      openai: 4.73.0(encoding@0.1.13)(zod@3.23.8)
+      tinyld: 1.3.4
+      together-ai: 0.7.0(encoding@0.1.13)
+      unique-names-generator: 4.7.1
+      uuid: 11.0.3
+      zod: 3.23.8
+    transitivePeerDependencies:
+      - '@google-cloud/vertexai'
+      - '@langchain/anthropic'
+      - '@langchain/aws'
+      - '@langchain/cohere'
+      - '@langchain/core'
+      - '@langchain/google-genai'
+      - '@langchain/google-vertexai'
+      - '@langchain/groq'
+      - '@langchain/mistralai'
+      - '@langchain/ollama'
+      - axios
+      - cheerio
+      - encoding
+      - peggy
+      - react
+      - solid-js
+      - sswr
+      - supports-color
+      - svelte
+      - typeorm
+      - vue
+
   '@emnapi/core@1.3.1':
     dependencies:
       '@emnapi/wasi-threads': 1.0.1
@@ -22894,6 +23248,9 @@ snapshots:
   '@esbuild/aix-ppc64@0.21.5':
     optional: true
 
+  '@esbuild/aix-ppc64@0.23.1':
+    optional: true
+
   '@esbuild/aix-ppc64@0.24.2':
     optional: true
 
@@ -22903,6 +23260,9 @@ snapshots:
   '@esbuild/android-arm64@0.21.5':
     optional: true
 
+  '@esbuild/android-arm64@0.23.1':
+    optional: true
+
   '@esbuild/android-arm64@0.24.2':
     optional: true
 
@@ -22912,6 +23272,9 @@ snapshots:
   '@esbuild/android-arm@0.21.5':
     optional: true
 
+  '@esbuild/android-arm@0.23.1':
+    optional: true
+
   '@esbuild/android-arm@0.24.2':
     optional: true
 
@@ -22921,6 +23284,9 @@ snapshots:
   '@esbuild/android-x64@0.21.5':
     optional: true
 
+  '@esbuild/android-x64@0.23.1':
+    optional: true
+
   '@esbuild/android-x64@0.24.2':
     optional: true
 
@@ -22930,6 +23296,9 @@ snapshots:
   '@esbuild/darwin-arm64@0.21.5':
     optional: true
 
+  '@esbuild/darwin-arm64@0.23.1':
+    optional: true
+
   '@esbuild/darwin-arm64@0.24.2':
     optional: true
 
@@ -22939,6 +23308,9 @@ snapshots:
   '@esbuild/darwin-x64@0.21.5':
     optional: true
 
+  '@esbuild/darwin-x64@0.23.1':
+    optional: true
+
   '@esbuild/darwin-x64@0.24.2':
     optional: true
 
@@ -22948,6 +23320,9 @@ snapshots:
   '@esbuild/freebsd-arm64@0.21.5':
     optional: true
 
+  '@esbuild/freebsd-arm64@0.23.1':
+    optional: true
+
   '@esbuild/freebsd-arm64@0.24.2':
     optional: true
 
@@ -22957,6 +23332,9 @@ snapshots:
   '@esbuild/freebsd-x64@0.21.5':
     optional: true
 
+  '@esbuild/freebsd-x64@0.23.1':
+    optional: true
+
   '@esbuild/freebsd-x64@0.24.2':
     optional: true
 
@@ -22966,6 +23344,9 @@ snapshots:
   '@esbuild/linux-arm64@0.21.5':
     optional: true
 
+  '@esbuild/linux-arm64@0.23.1':
+    optional: true
+
   '@esbuild/linux-arm64@0.24.2':
     optional: true
 
@@ -22975,6 +23356,9 @@ snapshots:
   '@esbuild/linux-arm@0.21.5':
     optional: true
 
+  '@esbuild/linux-arm@0.23.1':
+    optional: true
+
   '@esbuild/linux-arm@0.24.2':
     optional: true
 
@@ -22984,6 +23368,9 @@ snapshots:
   '@esbuild/linux-ia32@0.21.5':
     optional: true
 
+  '@esbuild/linux-ia32@0.23.1':
+    optional: true
+
   '@esbuild/linux-ia32@0.24.2':
     optional: true
 
@@ -22993,6 +23380,9 @@ snapshots:
   '@esbuild/linux-loong64@0.21.5':
     optional: true
 
+  '@esbuild/linux-loong64@0.23.1':
+    optional: true
+
   '@esbuild/linux-loong64@0.24.2':
     optional: true
 
@@ -23002,6 +23392,9 @@ snapshots:
   '@esbuild/linux-mips64el@0.21.5':
     optional: true
 
+  '@esbuild/linux-mips64el@0.23.1':
+    optional: true
+
   '@esbuild/linux-mips64el@0.24.2':
     optional: true
 
@@ -23011,6 +23404,9 @@ snapshots:
   '@esbuild/linux-ppc64@0.21.5':
     optional: true
 
+  '@esbuild/linux-ppc64@0.23.1':
+    optional: true
+
   '@esbuild/linux-ppc64@0.24.2':
     optional: true
 
@@ -23020,6 +23416,9 @@ snapshots:
   '@esbuild/linux-riscv64@0.21.5':
     optional: true
 
+  '@esbuild/linux-riscv64@0.23.1':
+    optional: true
+
   '@esbuild/linux-riscv64@0.24.2':
     optional: true
 
@@ -23029,6 +23428,9 @@ snapshots:
   '@esbuild/linux-s390x@0.21.5':
     optional: true
 
+  '@esbuild/linux-s390x@0.23.1':
+    optional: true
+
   '@esbuild/linux-s390x@0.24.2':
     optional: true
 
@@ -23038,6 +23440,9 @@ snapshots:
   '@esbuild/linux-x64@0.21.5':
     optional: true
 
+  '@esbuild/linux-x64@0.23.1':
+    optional: true
+
   '@esbuild/linux-x64@0.24.2':
     optional: true
 
@@ -23050,9 +23455,15 @@ snapshots:
   '@esbuild/netbsd-x64@0.21.5':
     optional: true
 
+  '@esbuild/netbsd-x64@0.23.1':
+    optional: true
+
   '@esbuild/netbsd-x64@0.24.2':
     optional: true
 
+  '@esbuild/openbsd-arm64@0.23.1':
+    optional: true
+
   '@esbuild/openbsd-arm64@0.24.2':
     optional: true
 
@@ -23062,6 +23473,9 @@ snapshots:
   '@esbuild/openbsd-x64@0.21.5':
     optional: true
 
+  '@esbuild/openbsd-x64@0.23.1':
+    optional: true
+
   '@esbuild/openbsd-x64@0.24.2':
     optional: true
 
@@ -23071,6 +23485,9 @@ snapshots:
   '@esbuild/sunos-x64@0.21.5':
     optional: true
 
+  '@esbuild/sunos-x64@0.23.1':
+    optional: true
+
   '@esbuild/sunos-x64@0.24.2':
     optional: true
 
@@ -23080,6 +23497,9 @@ snapshots:
   '@esbuild/win32-arm64@0.21.5':
     optional: true
 
+  '@esbuild/win32-arm64@0.23.1':
+    optional: true
+
   '@esbuild/win32-arm64@0.24.2':
     optional: true
 
@@ -23089,6 +23509,9 @@ snapshots:
   '@esbuild/win32-ia32@0.21.5':
     optional: true
 
+  '@esbuild/win32-ia32@0.23.1':
+    optional: true
+
   '@esbuild/win32-ia32@0.24.2':
     optional: true
 
@@ -23098,6 +23521,9 @@ snapshots:
   '@esbuild/win32-x64@0.21.5':
     optional: true
 
+  '@esbuild/win32-x64@0.23.1':
+    optional: true
+
   '@esbuild/win32-x64@0.24.2':
     optional: true
 
@@ -23121,6 +23547,10 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
+  '@eslint/core@0.10.0':
+    dependencies:
+      '@types/json-schema': 7.0.15
+
   '@eslint/core@0.9.1':
     dependencies:
       '@types/json-schema': 7.0.15
@@ -23159,8 +23589,9 @@ snapshots:
 
   '@eslint/object-schema@2.1.5': {}
 
-  '@eslint/plugin-kit@0.2.4':
+  '@eslint/plugin-kit@0.2.5':
     dependencies:
+      '@eslint/core': 0.10.0
       levn: 0.4.1
 
   '@ethereumjs/rlp@4.0.1': {}
@@ -23675,10 +24106,61 @@ snapshots:
 
   '@fuels/vm-asm@0.58.2': {}
 
-  '@goat-sdk/adapter-vercel-ai@0.2.0(@goat-sdk/core@0.4.0)(ai@3.4.33(openai@4.78.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8))':
+  '@glacier-network/client@0.2.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)':
+    dependencies:
+      '@ethersproject/abstract-signer': 5.7.0
+      '@ethersproject/bytes': 5.7.0
+      '@ethersproject/hash': 5.7.0
+      '@ethersproject/providers': 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+      '@ethersproject/sha2': 5.7.0
+      '@ethersproject/signing-key': 5.7.0
+      '@ethersproject/strings': 5.7.0
+      '@ethersproject/wallet': 5.7.0
+      '@types/json-schema': 7.0.15
+      axios: 1.7.9(debug@4.4.0)
+    transitivePeerDependencies:
+      - bufferutil
+      - debug
+      - utf-8-validate
+
+  '@glacier-network/elizaos-adapter@0.0.1-alpha.1(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.29(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(bufferutil@4.0.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)(utf-8-validate@5.0.10)':
+    dependencies:
+      '@elizaos/core': 0.1.7(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.29(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)
+      '@glacier-network/client': 0.2.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+      '@tavily/core': 0.0.2
+      dotenv: 16.4.7
+      sharp: 0.33.5
+      typescript: 5.7.3
+    transitivePeerDependencies:
+      - '@google-cloud/vertexai'
+      - '@langchain/anthropic'
+      - '@langchain/aws'
+      - '@langchain/cohere'
+      - '@langchain/core'
+      - '@langchain/google-genai'
+      - '@langchain/google-vertexai'
+      - '@langchain/groq'
+      - '@langchain/mistralai'
+      - '@langchain/ollama'
+      - axios
+      - bufferutil
+      - cheerio
+      - debug
+      - encoding
+      - peggy
+      - react
+      - solid-js
+      - sswr
+      - supports-color
+      - svelte
+      - typeorm
+      - utf-8-validate
+      - vue
+
+  '@goat-sdk/adapter-vercel-ai@0.2.0(@goat-sdk/core@0.4.0)(ai@3.4.33(openai@4.78.1(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)(vue@3.5.13(typescript@5.7.3))(zod@3.23.8))':
     dependencies:
       '@goat-sdk/core': 0.4.0
-      ai: 3.4.33(openai@4.78.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8)
+      ai: 3.4.33(openai@4.78.1(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)(vue@3.5.13(typescript@5.7.3))(zod@3.23.8)
       zod: 3.23.8
 
   '@goat-sdk/core@0.4.0':
@@ -23686,43 +24168,43 @@ snapshots:
       reflect-metadata: 0.2.2
       zod: 3.23.8
 
-  '@goat-sdk/plugin-erc20@0.2.2(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(viem@2.21.53(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))':
+  '@goat-sdk/plugin-erc20@0.2.2(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(viem@2.21.53(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8))':
     dependencies:
       '@goat-sdk/core': 0.4.0
-      '@goat-sdk/wallet-evm': 0.2.0(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      viem: 2.21.53(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+      '@goat-sdk/wallet-evm': 0.2.0(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      viem: 2.21.53(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
       zod: 3.23.8
     transitivePeerDependencies:
       - bufferutil
       - typescript
       - utf-8-validate
 
-  '@goat-sdk/plugin-kim@0.1.2(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(viem@2.21.53(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))':
+  '@goat-sdk/plugin-kim@0.1.2(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(viem@2.21.53(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8))':
     dependencies:
       '@goat-sdk/core': 0.4.0
-      '@goat-sdk/wallet-evm': 0.2.0(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      viem: 2.21.53(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+      '@goat-sdk/wallet-evm': 0.2.0(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      viem: 2.21.53(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
       zod: 3.23.8
     transitivePeerDependencies:
       - bufferutil
       - typescript
       - utf-8-validate
 
-  '@goat-sdk/wallet-evm@0.2.0(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@goat-sdk/wallet-evm@0.2.0(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
       '@goat-sdk/core': 0.4.0
-      abitype: 1.0.8(typescript@5.6.3)(zod@3.23.8)
-      viem: 2.21.49(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+      abitype: 1.0.8(typescript@5.7.3)(zod@3.23.8)
+      viem: 2.21.49(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
       zod: 3.23.8
     transitivePeerDependencies:
       - bufferutil
       - typescript
       - utf-8-validate
 
-  '@goat-sdk/wallet-viem@0.2.0(@goat-sdk/wallet-evm@0.2.0(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10))(viem@2.21.53(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))':
+  '@goat-sdk/wallet-viem@0.2.0(@goat-sdk/wallet-evm@0.2.0(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10))(viem@2.21.53(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8))':
     dependencies:
-      '@goat-sdk/wallet-evm': 0.2.0(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      viem: 2.21.53(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+      '@goat-sdk/wallet-evm': 0.2.0(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      viem: 2.21.53(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
 
   '@google-cloud/vertexai@1.9.2(encoding@0.1.13)':
     dependencies:
@@ -23731,18 +24213,18 @@ snapshots:
       - encoding
       - supports-color
 
-  '@gql.tada/cli-utils@1.6.3(@0no-co/graphqlsp@1.12.16(graphql@16.10.0)(typescript@5.6.3))(graphql@16.10.0)(typescript@5.6.3)':
+  '@gql.tada/cli-utils@1.6.3(@0no-co/graphqlsp@1.12.16(graphql@16.10.0)(typescript@5.7.3))(graphql@16.10.0)(typescript@5.7.3)':
     dependencies:
-      '@0no-co/graphqlsp': 1.12.16(graphql@16.10.0)(typescript@5.6.3)
-      '@gql.tada/internal': 1.0.8(graphql@16.10.0)(typescript@5.6.3)
+      '@0no-co/graphqlsp': 1.12.16(graphql@16.10.0)(typescript@5.7.3)
+      '@gql.tada/internal': 1.0.8(graphql@16.10.0)(typescript@5.7.3)
       graphql: 16.10.0
-      typescript: 5.6.3
+      typescript: 5.7.3
 
-  '@gql.tada/internal@1.0.8(graphql@16.10.0)(typescript@5.6.3)':
+  '@gql.tada/internal@1.0.8(graphql@16.10.0)(typescript@5.7.3)':
     dependencies:
       '@0no-co/graphql.web': 1.0.13(graphql@16.10.0)
       graphql: 16.10.0
-      typescript: 5.6.3
+      typescript: 5.7.3
 
   '@graphql-typed-document-node/core@3.2.0(graphql@16.10.0)':
     dependencies:
@@ -23958,7 +24440,7 @@ snapshots:
       - supports-color
       - ts-node
 
-  '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))':
+  '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3))':
     dependencies:
       '@jest/console': 29.7.0
       '@jest/reporters': 29.7.0
@@ -23972,7 +24454,7 @@ snapshots:
       exit: 0.1.2
       graceful-fs: 4.2.11
       jest-changed-files: 29.7.0
-      jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+      jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3))
       jest-haste-map: 29.7.0
       jest-message-util: 29.7.0
       jest-regex-util: 29.6.3
@@ -24185,7 +24667,7 @@ snapshots:
 
   '@kwsites/promise-deferred@1.1.1': {}
 
-  '@langchain/core@0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))':
+  '@langchain/core@0.3.29(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))':
     dependencies:
       '@cfworker/json-schema': 4.1.0
       ansi-styles: 5.2.0
@@ -24202,19 +24684,51 @@ snapshots:
     transitivePeerDependencies:
       - openai
 
-  '@langchain/openai@0.3.16(@langchain/core@0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)':
+  '@langchain/core@0.3.29(openai@4.78.1(encoding@0.1.13)(zod@3.23.8))':
+    dependencies:
+      '@cfworker/json-schema': 4.1.0
+      ansi-styles: 5.2.0
+      camelcase: 6.3.0
+      decamelize: 1.2.0
+      js-tiktoken: 1.0.15
+      langsmith: 0.2.15(openai@4.78.1(encoding@0.1.13)(zod@3.23.8))
+      mustache: 4.2.0
+      p-queue: 6.6.2
+      p-retry: 4.6.2
+      uuid: 10.0.0
+      zod: 3.23.8
+      zod-to-json-schema: 3.24.1(zod@3.23.8)
+    transitivePeerDependencies:
+      - openai
+
+  '@langchain/openai@0.3.17(@langchain/core@0.3.29(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)':
     dependencies:
-      '@langchain/core': 0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))
+      '@langchain/core': 0.3.29(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))
       js-tiktoken: 1.0.15
-      openai: 4.78.0(encoding@0.1.13)(zod@3.23.8)
+      openai: 4.78.1(encoding@0.1.13)(zod@3.23.8)
       zod: 3.23.8
       zod-to-json-schema: 3.24.1(zod@3.23.8)
     transitivePeerDependencies:
       - encoding
 
-  '@langchain/textsplitters@0.1.0(@langchain/core@0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))':
+  '@langchain/openai@0.3.17(@langchain/core@0.3.29(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)':
     dependencies:
-      '@langchain/core': 0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))
+      '@langchain/core': 0.3.29(openai@4.78.1(encoding@0.1.13)(zod@3.23.8))
+      js-tiktoken: 1.0.15
+      openai: 4.78.1(encoding@0.1.13)(zod@3.23.8)
+      zod: 3.23.8
+      zod-to-json-schema: 3.24.1(zod@3.23.8)
+    transitivePeerDependencies:
+      - encoding
+
+  '@langchain/textsplitters@0.1.0(@langchain/core@0.3.29(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))':
+    dependencies:
+      '@langchain/core': 0.3.29(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))
+      js-tiktoken: 1.0.15
+
+  '@langchain/textsplitters@0.1.0(@langchain/core@0.3.29(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))':
+    dependencies:
+      '@langchain/core': 0.3.29(openai@4.78.1(encoding@0.1.13)(zod@3.23.8))
       js-tiktoken: 1.0.15
 
   '@leichtgewicht/ip-codec@2.0.5': {}
@@ -24238,7 +24752,7 @@ snapshots:
       - utf-8-validate
       - wait-for-expect
 
-  '@lens-protocol/client@2.2.0(@jest/globals@29.7.0)(@lens-protocol/metadata@1.2.0(zod@3.23.8))(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)':
+  '@lens-protocol/client@2.2.0(@jest/globals@29.7.0)(@lens-protocol/metadata@1.2.0(zod@3.23.8))(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10)':
     dependencies:
       '@ethersproject/abi': 5.7.0
       '@ethersproject/abstract-signer': 5.7.0
@@ -24249,7 +24763,7 @@ snapshots:
       '@ethersproject/providers': 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)
       '@ethersproject/wallet': 5.7.0
       '@lens-protocol/blockchain-bindings': 0.10.2(@jest/globals@29.7.0)(bufferutil@4.0.9)(utf-8-validate@5.0.10)
-      '@lens-protocol/gated-content': 0.5.1(@ethersproject/abi@5.7.0)(@ethersproject/address@5.7.0)(@ethersproject/bignumber@5.7.0)(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(@lens-protocol/metadata@1.2.0(zod@3.23.8))(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)(zod@3.23.8)
+      '@lens-protocol/gated-content': 0.5.1(@ethersproject/abi@5.7.0)(@ethersproject/address@5.7.0)(@ethersproject/bignumber@5.7.0)(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(@lens-protocol/metadata@1.2.0(zod@3.23.8))(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10)(zod@3.23.8)
       '@lens-protocol/shared-kernel': 0.12.0
       '@lens-protocol/storage': 0.8.1
       graphql: 16.10.0
@@ -24298,7 +24812,7 @@ snapshots:
     optionalDependencies:
       '@jest/globals': 29.7.0
 
-  '@lens-protocol/gated-content@0.5.1(@ethersproject/abi@5.7.0)(@ethersproject/address@5.7.0)(@ethersproject/bignumber@5.7.0)(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(@lens-protocol/metadata@1.2.0(zod@3.23.8))(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)(zod@3.23.8)':
+  '@lens-protocol/gated-content@0.5.1(@ethersproject/abi@5.7.0)(@ethersproject/address@5.7.0)(@ethersproject/bignumber@5.7.0)(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(@lens-protocol/metadata@1.2.0(zod@3.23.8))(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10)(zod@3.23.8)':
     dependencies:
       '@ethersproject/abi': 5.7.0
       '@ethersproject/address': 5.7.0
@@ -24313,7 +24827,7 @@ snapshots:
       '@lit-protocol/constants': 2.1.62
       '@lit-protocol/crypto': 2.1.62(bufferutil@4.0.9)(utf-8-validate@5.0.10)
       '@lit-protocol/encryption': 2.1.62(bufferutil@4.0.9)(utf-8-validate@5.0.10)
-      '@lit-protocol/node-client': 2.1.62(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
+      '@lit-protocol/node-client': 2.1.62(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(bufferutil@4.0.9)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@5.0.10)
       '@lit-protocol/types': 2.1.62
       siwe: 2.3.2(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))
       tslib: 2.8.1
@@ -24450,24 +24964,24 @@ snapshots:
     dependencies:
       '@lifi/types': 16.3.0
 
-  '@lifi/sdk@3.4.1(@solana/wallet-adapter-base@0.9.23(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(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))(typescript@5.6.3)(viem@2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))':
+  '@lifi/sdk@3.4.1(@solana/wallet-adapter-base@0.9.23(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(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))(typescript@5.7.3)(viem@2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8))':
     dependencies:
-      '@bigmi/core': 0.0.4(bitcoinjs-lib@7.0.0-rc.0(typescript@5.6.3))(bs58@6.0.0)(viem@2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))
+      '@bigmi/core': 0.0.4(bitcoinjs-lib@7.0.0-rc.0(typescript@5.7.3))(bs58@6.0.0)(viem@2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8))
       '@lifi/types': 16.3.0
       '@noble/curves': 1.8.0
       '@noble/hashes': 1.7.0
       '@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(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)
       bech32: 2.0.0
-      bitcoinjs-lib: 7.0.0-rc.0(typescript@5.6.3)
+      bitcoinjs-lib: 7.0.0-rc.0(typescript@5.7.3)
       bs58: 6.0.0
-      viem: 2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+      viem: 2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
     transitivePeerDependencies:
       - typescript
 
   '@lifi/types@16.3.0': {}
 
-  '@lit-labs/ssr-dom-shim@1.2.1': {}
+  '@lit-labs/ssr-dom-shim@1.3.0': {}
 
   '@lit-protocol/access-control-conditions@2.1.62(bufferutil@4.0.9)(utf-8-validate@5.0.10)':
     dependencies:
@@ -24481,14 +24995,14 @@ snapshots:
       - bufferutil
       - utf-8-validate
 
-  '@lit-protocol/auth-browser@2.1.62(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)':
+  '@lit-protocol/auth-browser@2.1.62(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(bufferutil@4.0.9)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@5.0.10)':
     dependencies:
       '@lit-protocol/constants': 2.1.62
       '@lit-protocol/misc': 2.1.62
       '@lit-protocol/misc-browser': 2.1.62(bufferutil@4.0.9)(utf-8-validate@5.0.10)
       '@lit-protocol/types': 2.1.62
       '@lit-protocol/uint8arrays': 2.1.62
-      '@walletconnect/ethereum-provider': 2.17.3(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
+      '@walletconnect/ethereum-provider': 2.17.3(bufferutil@4.0.9)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@5.0.10)
       ethers: 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)
       lit-connect-modal: 0.1.11
       lit-siwe: 1.1.8(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)
@@ -24589,10 +25103,10 @@ snapshots:
 
   '@lit-protocol/nacl@2.1.62': {}
 
-  '@lit-protocol/node-client@2.1.62(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)':
+  '@lit-protocol/node-client@2.1.62(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(bufferutil@4.0.9)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@5.0.10)':
     dependencies:
       '@lit-protocol/access-control-conditions': 2.1.62(bufferutil@4.0.9)(utf-8-validate@5.0.10)
-      '@lit-protocol/auth-browser': 2.1.62(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
+      '@lit-protocol/auth-browser': 2.1.62(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(bufferutil@4.0.9)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@5.0.10)
       '@lit-protocol/bls-sdk': 2.1.62
       '@lit-protocol/constants': 2.1.62
       '@lit-protocol/crypto': 2.1.62(bufferutil@4.0.9)(utf-8-validate@5.0.10)
@@ -24604,7 +25118,7 @@ snapshots:
       '@lit-protocol/nacl': 2.1.62
       '@lit-protocol/types': 2.1.62
       '@lit-protocol/uint8arrays': 2.1.62
-      '@walletconnect/ethereum-provider': 2.17.3(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
+      '@walletconnect/ethereum-provider': 2.17.3(bufferutil@4.0.9)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@5.0.10)
       ethers: 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)
       jszip: 3.10.1
       lit-connect-modal: 0.1.11
@@ -24648,7 +25162,7 @@ snapshots:
 
   '@lit/reactive-element@1.6.3':
     dependencies:
-      '@lit-labs/ssr-dom-shim': 1.2.1
+      '@lit-labs/ssr-dom-shim': 1.3.0
 
   '@lukeed/csprng@1.1.0': {}
 
@@ -24902,7 +25416,7 @@ snapshots:
     dependencies:
       bs58: 6.0.0
 
-  '@mysten/sui@1.18.1(typescript@5.6.3)':
+  '@mysten/sui@1.19.0(typescript@5.7.3)':
     dependencies:
       '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0)
       '@mysten/bcs': 1.2.1
@@ -24913,7 +25427,7 @@ snapshots:
       '@simplewebauthn/typescript-types': 7.4.0
       '@suchipi/femver': 1.0.0
       bech32: 2.0.0
-      gql.tada: 1.8.10(graphql@16.10.0)(typescript@5.6.3)
+      gql.tada: 1.8.10(graphql@16.10.0)(typescript@5.7.3)
       graphql: 16.10.0
       jose: 5.9.6
       poseidon-lite: 0.2.1
@@ -25057,11 +25571,11 @@ snapshots:
     transitivePeerDependencies:
       - encoding
 
-  '@neynar/nodejs-sdk@2.8.0(bufferutil@4.0.9)(class-transformer@0.5.1)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)':
+  '@neynar/nodejs-sdk@2.8.0(bufferutil@4.0.9)(class-transformer@0.5.1)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)':
     dependencies:
       '@openapitools/openapi-generator-cli': 2.15.3(class-transformer@0.5.1)(encoding@0.1.13)
       semver: 7.6.3
-      viem: 2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+      viem: 2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
     transitivePeerDependencies:
       - '@nestjs/microservices'
       - '@nestjs/platform-express'
@@ -25770,7 +26284,7 @@ snapshots:
       - supports-color
       - utf-8-validate
 
-  '@onflow/fcl-wc@5.5.1(@onflow/fcl-core@1.13.1(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@5.0.10))(@types/react@18.3.12)(bufferutil@4.0.9)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.4.49)(react@18.3.1)(utf-8-validate@5.0.10)':
+  '@onflow/fcl-wc@5.5.1(@onflow/fcl-core@1.13.1(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@5.0.10))(@types/react@18.3.12)(bufferutil@4.0.9)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.4.49)(react@18.3.1)(tsx@4.19.2)(utf-8-validate@5.0.10)':
     dependencies:
       '@babel/runtime': 7.26.0
       '@onflow/config': 1.5.1
@@ -25782,7 +26296,7 @@ snapshots:
       '@walletconnect/sign-client': 2.17.3(bufferutil@4.0.9)(ioredis@5.4.2)(utf-8-validate@5.0.10)
       '@walletconnect/types': 2.17.3(ioredis@5.4.2)
       '@walletconnect/utils': 2.17.3(ioredis@5.4.2)
-      postcss-cli: 11.0.0(jiti@2.4.2)(postcss@8.4.49)
+      postcss-cli: 11.0.0(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)
       preact: 10.25.4
       tailwindcss: 3.4.15(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
     transitivePeerDependencies:
@@ -25815,12 +26329,12 @@ snapshots:
       - uploadthing
       - utf-8-validate
 
-  '@onflow/fcl@1.13.1(@types/react@18.3.12)(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.4.49)(react@18.3.1)(utf-8-validate@5.0.10)':
+  '@onflow/fcl@1.13.1(@types/react@18.3.12)(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.4.49)(react@18.3.1)(tsx@4.19.2)(utf-8-validate@5.0.10)':
     dependencies:
       '@babel/runtime': 7.26.0
       '@onflow/config': 1.5.1
       '@onflow/fcl-core': 1.13.1(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@5.0.10)
-      '@onflow/fcl-wc': 5.5.1(@onflow/fcl-core@1.13.1(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@5.0.10))(@types/react@18.3.12)(bufferutil@4.0.9)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.4.49)(react@18.3.1)(utf-8-validate@5.0.10)
+      '@onflow/fcl-wc': 5.5.1(@onflow/fcl-core@1.13.1(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@5.0.10))(@types/react@18.3.12)(bufferutil@4.0.9)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.4.49)(react@18.3.1)(tsx@4.19.2)(utf-8-validate@5.0.10)
       '@onflow/interaction': 0.0.11
       '@onflow/rlp': 1.2.3
       '@onflow/sdk': 1.5.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
@@ -26084,9 +26598,9 @@ snapshots:
       tslib: 2.8.1
       webcrypto-core: 1.8.1
 
-  '@phala/dstack-sdk@0.1.6(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)':
+  '@phala/dstack-sdk@0.1.6(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)':
     optionalDependencies:
-      viem: 2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+      viem: 2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
     transitivePeerDependencies:
       - bufferutil
       - typescript
@@ -26193,7 +26707,7 @@ snapshots:
 
   '@protobufjs/utf8@1.1.0': {}
 
-  '@puppeteer/browsers@0.5.0(typescript@5.6.3)':
+  '@puppeteer/browsers@0.5.0(typescript@5.7.3)':
     dependencies:
       debug: 4.3.4
       extract-zip: 2.0.1
@@ -26204,7 +26718,7 @@ snapshots:
       unbzip2-stream: 1.4.3
       yargs: 17.7.1
     optionalDependencies:
-      typescript: 5.6.3
+      typescript: 5.7.3
     transitivePeerDependencies:
       - supports-color
 
@@ -26430,10 +26944,10 @@ snapshots:
 
   '@radix-ui/rect@1.1.0': {}
 
-  '@raydium-io/raydium-sdk-v2@0.1.82-alpha(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@raydium-io/raydium-sdk-v2@0.1.82-alpha(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
       '@solana/buffer-layout': 4.0.1
-      '@solana/spl-token': 0.4.9(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@solana/spl-token': 0.4.9(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
       axios: 1.7.9(debug@4.4.0)
       big.js: 6.2.2
@@ -27335,10 +27849,10 @@ snapshots:
       '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@solana-developers/helpers@2.5.6(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@solana-developers/helpers@2.5.6(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@solana/spl-token': 0.4.9(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)
+      '@solana/spl-token': 0.4.9(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)
       '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
       bs58: 6.0.0
       dotenv: 16.4.7
@@ -27368,10 +27882,10 @@ snapshots:
     dependencies:
       '@solana/errors': 2.0.0-preview.2
 
-  '@solana/codecs-core@2.0.0-rc.1(typescript@5.6.3)':
+  '@solana/codecs-core@2.0.0-rc.1(typescript@5.7.3)':
     dependencies:
-      '@solana/errors': 2.0.0-rc.1(typescript@5.6.3)
-      typescript: 5.6.3
+      '@solana/errors': 2.0.0-rc.1(typescript@5.7.3)
+      typescript: 5.7.3
 
   '@solana/codecs-data-structures@2.0.0-preview.2':
     dependencies:
@@ -27379,23 +27893,23 @@ snapshots:
       '@solana/codecs-numbers': 2.0.0-preview.2
       '@solana/errors': 2.0.0-preview.2
 
-  '@solana/codecs-data-structures@2.0.0-rc.1(typescript@5.6.3)':
+  '@solana/codecs-data-structures@2.0.0-rc.1(typescript@5.7.3)':
     dependencies:
-      '@solana/codecs-core': 2.0.0-rc.1(typescript@5.6.3)
-      '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.6.3)
-      '@solana/errors': 2.0.0-rc.1(typescript@5.6.3)
-      typescript: 5.6.3
+      '@solana/codecs-core': 2.0.0-rc.1(typescript@5.7.3)
+      '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.7.3)
+      '@solana/errors': 2.0.0-rc.1(typescript@5.7.3)
+      typescript: 5.7.3
 
   '@solana/codecs-numbers@2.0.0-preview.2':
     dependencies:
       '@solana/codecs-core': 2.0.0-preview.2
       '@solana/errors': 2.0.0-preview.2
 
-  '@solana/codecs-numbers@2.0.0-rc.1(typescript@5.6.3)':
+  '@solana/codecs-numbers@2.0.0-rc.1(typescript@5.7.3)':
     dependencies:
-      '@solana/codecs-core': 2.0.0-rc.1(typescript@5.6.3)
-      '@solana/errors': 2.0.0-rc.1(typescript@5.6.3)
-      typescript: 5.6.3
+      '@solana/codecs-core': 2.0.0-rc.1(typescript@5.7.3)
+      '@solana/errors': 2.0.0-rc.1(typescript@5.7.3)
+      typescript: 5.7.3
 
   '@solana/codecs-strings@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)':
     dependencies:
@@ -27404,13 +27918,13 @@ snapshots:
       '@solana/errors': 2.0.0-preview.2
       fastestsmallesttextencoderdecoder: 1.0.22
 
-  '@solana/codecs-strings@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)':
+  '@solana/codecs-strings@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)':
     dependencies:
-      '@solana/codecs-core': 2.0.0-rc.1(typescript@5.6.3)
-      '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.6.3)
-      '@solana/errors': 2.0.0-rc.1(typescript@5.6.3)
+      '@solana/codecs-core': 2.0.0-rc.1(typescript@5.7.3)
+      '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.7.3)
+      '@solana/errors': 2.0.0-rc.1(typescript@5.7.3)
       fastestsmallesttextencoderdecoder: 1.0.22
-      typescript: 5.6.3
+      typescript: 5.7.3
 
   '@solana/codecs@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)':
     dependencies:
@@ -27422,14 +27936,14 @@ snapshots:
     transitivePeerDependencies:
       - fastestsmallesttextencoderdecoder
 
-  '@solana/codecs@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)':
+  '@solana/codecs@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)':
     dependencies:
-      '@solana/codecs-core': 2.0.0-rc.1(typescript@5.6.3)
-      '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.6.3)
-      '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.6.3)
-      '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)
-      '@solana/options': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)
-      typescript: 5.6.3
+      '@solana/codecs-core': 2.0.0-rc.1(typescript@5.7.3)
+      '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.7.3)
+      '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.7.3)
+      '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)
+      '@solana/options': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)
+      typescript: 5.7.3
     transitivePeerDependencies:
       - fastestsmallesttextencoderdecoder
 
@@ -27438,25 +27952,25 @@ snapshots:
       chalk: 5.4.1
       commander: 12.1.0
 
-  '@solana/errors@2.0.0-rc.1(typescript@5.6.3)':
+  '@solana/errors@2.0.0-rc.1(typescript@5.7.3)':
     dependencies:
       chalk: 5.4.1
       commander: 12.1.0
-      typescript: 5.6.3
+      typescript: 5.7.3
 
   '@solana/options@2.0.0-preview.2':
     dependencies:
       '@solana/codecs-core': 2.0.0-preview.2
       '@solana/codecs-numbers': 2.0.0-preview.2
 
-  '@solana/options@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)':
+  '@solana/options@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)':
     dependencies:
-      '@solana/codecs-core': 2.0.0-rc.1(typescript@5.6.3)
-      '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.6.3)
-      '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.6.3)
-      '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)
-      '@solana/errors': 2.0.0-rc.1(typescript@5.6.3)
-      typescript: 5.6.3
+      '@solana/codecs-core': 2.0.0-rc.1(typescript@5.7.3)
+      '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.7.3)
+      '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.7.3)
+      '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)
+      '@solana/errors': 2.0.0-rc.1(typescript@5.7.3)
+      typescript: 5.7.3
     transitivePeerDependencies:
       - fastestsmallesttextencoderdecoder
 
@@ -27468,28 +27982,28 @@ snapshots:
     transitivePeerDependencies:
       - fastestsmallesttextencoderdecoder
 
-  '@solana/spl-token-group@0.0.7(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)':
+  '@solana/spl-token-group@0.0.7(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)':
     dependencies:
-      '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)
+      '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)
       '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
     transitivePeerDependencies:
       - fastestsmallesttextencoderdecoder
       - typescript
 
-  '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)':
+  '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)':
     dependencies:
-      '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)
+      '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)
       '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
     transitivePeerDependencies:
       - fastestsmallesttextencoderdecoder
       - typescript
 
-  '@solana/spl-token@0.4.6(@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/spl-token@0.4.6(@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)':
     dependencies:
       '@solana/buffer-layout': 4.0.1
       '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
       '@solana/spl-token-group': 0.0.4(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)
-      '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)
+      '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)
       '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
       buffer: 6.0.3
     transitivePeerDependencies:
@@ -27499,12 +28013,12 @@ snapshots:
       - typescript
       - utf-8-validate
 
-  '@solana/spl-token@0.4.9(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)':
+  '@solana/spl-token@0.4.9(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
       '@solana/buffer-layout': 4.0.1
       '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
-      '@solana/spl-token-group': 0.0.7(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)
-      '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)
+      '@solana/spl-token-group': 0.0.7(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)
+      '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)
       '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
       buffer: 6.0.3
     transitivePeerDependencies:
@@ -27668,14 +28182,14 @@ snapshots:
 
   '@starknet-io/types-js@0.7.10': {}
 
-  '@story-protocol/core-sdk@1.2.0-rc.3(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)':
+  '@story-protocol/core-sdk@1.2.0-rc.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)':
     dependencies:
-      abitype: 0.10.3(typescript@5.6.3)(zod@3.23.8)
+      abitype: 0.10.3(typescript@5.7.3)(zod@3.23.8)
       axios: 1.7.9(debug@4.4.0)
       bs58: 6.0.0
       dotenv: 16.4.7
       multiformats: 9.9.0
-      viem: 2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+      viem: 2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
     transitivePeerDependencies:
       - bufferutil
       - debug
@@ -27771,12 +28285,12 @@ snapshots:
       '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.26.0)
       '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.26.0)
 
-  '@svgr/core@8.1.0(typescript@5.6.3)':
+  '@svgr/core@8.1.0(typescript@5.7.3)':
     dependencies:
       '@babel/core': 7.26.0
       '@svgr/babel-preset': 8.1.0(@babel/core@7.26.0)
       camelcase: 6.3.0
-      cosmiconfig: 8.3.6(typescript@5.6.3)
+      cosmiconfig: 8.3.6(typescript@5.7.3)
       snake-case: 3.0.4
     transitivePeerDependencies:
       - supports-color
@@ -27784,38 +28298,38 @@ snapshots:
 
   '@svgr/hast-util-to-babel-ast@8.0.0':
     dependencies:
-      '@babel/types': 7.26.3
+      '@babel/types': 7.26.5
       entities: 4.5.0
 
-  '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.6.3))':
+  '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.7.3))':
     dependencies:
       '@babel/core': 7.26.0
       '@svgr/babel-preset': 8.1.0(@babel/core@7.26.0)
-      '@svgr/core': 8.1.0(typescript@5.6.3)
+      '@svgr/core': 8.1.0(typescript@5.7.3)
       '@svgr/hast-util-to-babel-ast': 8.0.0
       svg-parser: 2.0.4
     transitivePeerDependencies:
       - supports-color
 
-  '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0(typescript@5.6.3))(typescript@5.6.3)':
+  '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0(typescript@5.7.3))(typescript@5.7.3)':
     dependencies:
-      '@svgr/core': 8.1.0(typescript@5.6.3)
-      cosmiconfig: 8.3.6(typescript@5.6.3)
+      '@svgr/core': 8.1.0(typescript@5.7.3)
+      cosmiconfig: 8.3.6(typescript@5.7.3)
       deepmerge: 4.3.1
       svgo: 3.3.2
     transitivePeerDependencies:
       - typescript
 
-  '@svgr/webpack@8.1.0(typescript@5.6.3)':
+  '@svgr/webpack@8.1.0(typescript@5.7.3)':
     dependencies:
       '@babel/core': 7.26.0
       '@babel/plugin-transform-react-constant-elements': 7.25.9(@babel/core@7.26.0)
       '@babel/preset-env': 7.26.0(@babel/core@7.26.0)
       '@babel/preset-react': 7.26.3(@babel/core@7.26.0)
       '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0)
-      '@svgr/core': 8.1.0(typescript@5.6.3)
-      '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.6.3))
-      '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.6.3))(typescript@5.6.3)
+      '@svgr/core': 8.1.0(typescript@5.7.3)
+      '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.7.3))
+      '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.7.3))(typescript@5.7.3)
     transitivePeerDependencies:
       - supports-color
       - typescript
@@ -27961,24 +28475,24 @@ snapshots:
 
   '@types/babel__core@7.20.5':
     dependencies:
-      '@babel/parser': 7.26.3
-      '@babel/types': 7.26.3
+      '@babel/parser': 7.26.5
+      '@babel/types': 7.26.5
       '@types/babel__generator': 7.6.8
       '@types/babel__template': 7.4.4
       '@types/babel__traverse': 7.20.6
 
   '@types/babel__generator@7.6.8':
     dependencies:
-      '@babel/types': 7.26.3
+      '@babel/types': 7.26.5
 
   '@types/babel__template@7.4.4':
     dependencies:
-      '@babel/parser': 7.26.3
-      '@babel/types': 7.26.3
+      '@babel/parser': 7.26.5
+      '@babel/types': 7.26.5
 
   '@types/babel__traverse@7.20.6':
     dependencies:
-      '@babel/types': 7.26.3
+      '@babel/types': 7.26.5
 
   '@types/better-sqlite3@7.6.12':
     dependencies:
@@ -28818,7 +29332,7 @@ snapshots:
 
   '@vue/compiler-core@3.5.13':
     dependencies:
-      '@babel/parser': 7.26.3
+      '@babel/parser': 7.26.5
       '@vue/shared': 3.5.13
       entities: 4.5.0
       estree-walker: 2.0.2
@@ -28831,7 +29345,7 @@ snapshots:
 
   '@vue/compiler-sfc@3.5.13':
     dependencies:
-      '@babel/parser': 7.26.3
+      '@babel/parser': 7.26.5
       '@vue/compiler-core': 3.5.13
       '@vue/compiler-dom': 3.5.13
       '@vue/compiler-ssr': 3.5.13
@@ -28868,6 +29382,12 @@ snapshots:
       '@vue/shared': 3.5.13
       vue: 3.5.13(typescript@5.6.3)
 
+  '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.7.3))':
+    dependencies:
+      '@vue/compiler-ssr': 3.5.13
+      '@vue/shared': 3.5.13
+      vue: 3.5.13(typescript@5.7.3)
+
   '@vue/shared@3.5.13': {}
 
   '@wallet-standard/base@1.1.0': {}
@@ -28921,7 +29441,7 @@ snapshots:
     dependencies:
       tslib: 1.14.1
 
-  '@walletconnect/ethereum-provider@2.17.3(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)':
+  '@walletconnect/ethereum-provider@2.17.3(bufferutil@4.0.9)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@5.0.10)':
     dependencies:
       '@walletconnect/jsonrpc-http-connection': 1.0.8(encoding@0.1.13)
       '@walletconnect/jsonrpc-provider': 1.0.14
@@ -29337,20 +29857,20 @@ snapshots:
       fs-extra: 10.1.0
       yargs: 17.7.2
 
-  abitype@0.10.3(typescript@5.6.3)(zod@3.23.8):
+  abitype@0.10.3(typescript@5.7.3)(zod@3.23.8):
     optionalDependencies:
-      typescript: 5.6.3
+      typescript: 5.7.3
       zod: 3.23.8
 
-  abitype@0.7.1(typescript@5.6.3)(zod@3.23.8):
+  abitype@0.7.1(typescript@5.7.3)(zod@3.23.8):
     dependencies:
-      typescript: 5.6.3
+      typescript: 5.7.3
     optionalDependencies:
       zod: 3.23.8
 
-  abitype@1.0.6(typescript@5.6.3)(zod@3.23.8):
+  abitype@1.0.6(typescript@5.7.3)(zod@3.23.8):
     optionalDependencies:
-      typescript: 5.6.3
+      typescript: 5.7.3
       zod: 3.23.8
 
   abitype@1.0.7(typescript@5.6.3)(zod@3.23.8):
@@ -29358,11 +29878,21 @@ snapshots:
       typescript: 5.6.3
       zod: 3.23.8
 
+  abitype@1.0.7(typescript@5.7.3)(zod@3.23.8):
+    optionalDependencies:
+      typescript: 5.7.3
+      zod: 3.23.8
+
   abitype@1.0.8(typescript@5.6.3)(zod@3.23.8):
     optionalDependencies:
       typescript: 5.6.3
       zod: 3.23.8
 
+  abitype@1.0.8(typescript@5.7.3)(zod@3.23.8):
+    optionalDependencies:
+      typescript: 5.7.3
+      zod: 3.23.8
+
   abort-controller@3.0.0:
     dependencies:
       event-target-shim: 5.0.1
@@ -29481,7 +30011,7 @@ snapshots:
       - solid-js
       - vue
 
-  ai@3.4.33(openai@4.78.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8):
+  ai@3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)(zod@3.23.8):
     dependencies:
       '@ai-sdk/provider': 0.0.26
       '@ai-sdk/provider-utils': 1.0.22(zod@3.23.8)
@@ -29489,7 +30019,32 @@ snapshots:
       '@ai-sdk/solid': 0.0.54(zod@3.23.8)
       '@ai-sdk/svelte': 0.0.57(svelte@5.17.3)(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.6.3))(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
+      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.24.1(zod@3.23.8)
+    optionalDependencies:
+      openai: 4.73.0(encoding@0.1.13)(zod@3.23.8)
+      react: 18.3.1
+      sswr: 2.1.0(svelte@5.17.3)
+      svelte: 5.17.3
+      zod: 3.23.8
+    transitivePeerDependencies:
+      - solid-js
+      - vue
+
+  ai@3.4.33(openai@4.78.1(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)(vue@3.5.13(typescript@5.7.3))(zod@3.23.8):
+    dependencies:
+      '@ai-sdk/provider': 0.0.26
+      '@ai-sdk/provider-utils': 1.0.22(zod@3.23.8)
+      '@ai-sdk/react': 0.0.70(react@18.3.1)(zod@3.23.8)
+      '@ai-sdk/solid': 0.0.54(zod@3.23.8)
+      '@ai-sdk/svelte': 0.0.57(svelte@5.17.3)(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
       eventsource-parser: 1.1.2
       json-schema: 0.4.0
@@ -29497,7 +30052,7 @@ snapshots:
       secure-json-parse: 2.7.0
       zod-to-json-schema: 3.24.1(zod@3.23.8)
     optionalDependencies:
-      openai: 4.78.0(encoding@0.1.13)(zod@3.23.8)
+      openai: 4.78.1(encoding@0.1.13)(zod@3.23.8)
       react: 18.3.1
       sswr: 2.1.0(svelte@5.17.3)
       svelte: 5.17.3
@@ -29902,7 +30457,7 @@ snapshots:
 
   babel-plugin-istanbul@6.1.1:
     dependencies:
-      '@babel/helper-plugin-utils': 7.25.9
+      '@babel/helper-plugin-utils': 7.26.5
       '@istanbuljs/load-nyc-config': 1.1.0
       '@istanbuljs/schema': 0.1.3
       istanbul-lib-instrument: 5.2.1
@@ -29913,13 +30468,13 @@ snapshots:
   babel-plugin-jest-hoist@29.6.3:
     dependencies:
       '@babel/template': 7.25.9
-      '@babel/types': 7.26.3
+      '@babel/types': 7.26.5
       '@types/babel__core': 7.20.5
       '@types/babel__traverse': 7.20.6
 
   babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.26.0):
     dependencies:
-      '@babel/compat-data': 7.26.3
+      '@babel/compat-data': 7.26.5
       '@babel/core': 7.26.0
       '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0)
       semver: 6.3.1
@@ -30137,14 +30692,14 @@ snapshots:
     dependencies:
       '@noble/hashes': 1.3.0
 
-  bitcoinjs-lib@7.0.0-rc.0(typescript@5.6.3):
+  bitcoinjs-lib@7.0.0-rc.0(typescript@5.7.3):
     dependencies:
       '@noble/hashes': 1.7.0
       bech32: 2.0.0
       bip174: 3.0.0-rc.1
       bs58check: 4.0.0
       uint8array-tools: 0.0.9
-      valibot: 0.38.0(typescript@5.6.3)
+      valibot: 0.38.0(typescript@5.7.3)
       varuint-bitcoin: 2.0.0
     transitivePeerDependencies:
       - typescript
@@ -30740,7 +31295,7 @@ snapshots:
 
   chokidar@4.0.3:
     dependencies:
-      readdirp: 4.0.2
+      readdirp: 4.1.1
 
   chownr@1.1.4: {}
 
@@ -30786,13 +31341,13 @@ snapshots:
     dependencies:
       consola: 3.3.3
 
-  cive@0.7.1(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10):
+  cive@0.7.1(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10):
     dependencies:
       '@noble/curves': 1.8.0
       '@noble/hashes': 1.7.0
       '@scure/bip32': 1.6.1
       '@scure/bip39': 1.5.1
-      viem: 2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+      viem: 2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
       zod: 3.23.8
     transitivePeerDependencies:
       - bufferutil
@@ -31272,6 +31827,15 @@ snapshots:
     optionalDependencies:
       typescript: 5.6.3
 
+  cosmiconfig@8.3.6(typescript@5.7.3):
+    dependencies:
+      import-fresh: 3.3.0
+      js-yaml: 4.1.0
+      parse-json: 5.2.0
+      path-type: 4.0.0
+    optionalDependencies:
+      typescript: 5.7.3
+
   crc-32@1.2.2: {}
 
   create-ecdh@4.0.4:
@@ -31311,13 +31875,13 @@ snapshots:
       - supports-color
       - ts-node
 
-  create-jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)):
+  create-jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3)):
     dependencies:
       '@jest/types': 29.6.3
       chalk: 4.1.2
       exit: 0.1.2
       graceful-fs: 4.2.11
-      jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+      jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3))
       jest-util: 29.7.0
       prompts: 2.4.2
     transitivePeerDependencies:
@@ -32127,9 +32691,9 @@ snapshots:
     dependencies:
       esutils: 2.0.3
 
-  docusaurus-lunr-search@3.5.0(@docusaurus/core@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10))(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+  docusaurus-lunr-search@3.5.0(@docusaurus/core@3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.16.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       autocomplete.js: 0.37.1
       clsx: 1.2.1
       gauge: 3.0.2
@@ -32147,9 +32711,9 @@ snapshots:
       unified: 9.2.2
       unist-util-is: 4.1.0
 
-  docusaurus-plugin-typedoc@1.0.5(typedoc-plugin-markdown@4.2.10(typedoc@0.26.11(typescript@5.6.3))):
+  docusaurus-plugin-typedoc@1.0.5(typedoc-plugin-markdown@4.2.10(typedoc@0.26.11(typescript@5.7.3))):
     dependencies:
-      typedoc-plugin-markdown: 4.2.10(typedoc@0.26.11(typescript@5.6.3))
+      typedoc-plugin-markdown: 4.2.10(typedoc@0.26.11(typescript@5.7.3))
 
   dom-converter@0.2.0:
     dependencies:
@@ -32259,8 +32823,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.23.8):
     dependencies:
-      '@aws-sdk/client-polly': 3.726.0
-      '@aws-sdk/client-transcribe-streaming': 3.726.0
+      '@aws-sdk/client-polly': 3.726.1
+      '@aws-sdk/client-transcribe-streaming': 3.726.1
       '@echogarden/audio-io': 0.2.3
       '@echogarden/espeak-ng-emscripten': 0.3.3
       '@echogarden/fasttext-wasm': 0.1.0
@@ -32600,6 +33164,33 @@ snapshots:
       '@esbuild/win32-ia32': 0.21.5
       '@esbuild/win32-x64': 0.21.5
 
+  esbuild@0.23.1:
+    optionalDependencies:
+      '@esbuild/aix-ppc64': 0.23.1
+      '@esbuild/android-arm': 0.23.1
+      '@esbuild/android-arm64': 0.23.1
+      '@esbuild/android-x64': 0.23.1
+      '@esbuild/darwin-arm64': 0.23.1
+      '@esbuild/darwin-x64': 0.23.1
+      '@esbuild/freebsd-arm64': 0.23.1
+      '@esbuild/freebsd-x64': 0.23.1
+      '@esbuild/linux-arm': 0.23.1
+      '@esbuild/linux-arm64': 0.23.1
+      '@esbuild/linux-ia32': 0.23.1
+      '@esbuild/linux-loong64': 0.23.1
+      '@esbuild/linux-mips64el': 0.23.1
+      '@esbuild/linux-ppc64': 0.23.1
+      '@esbuild/linux-riscv64': 0.23.1
+      '@esbuild/linux-s390x': 0.23.1
+      '@esbuild/linux-x64': 0.23.1
+      '@esbuild/netbsd-x64': 0.23.1
+      '@esbuild/openbsd-arm64': 0.23.1
+      '@esbuild/openbsd-x64': 0.23.1
+      '@esbuild/sunos-x64': 0.23.1
+      '@esbuild/win32-arm64': 0.23.1
+      '@esbuild/win32-ia32': 0.23.1
+      '@esbuild/win32-x64': 0.23.1
+
   esbuild@0.24.2:
     optionalDependencies:
       '@esbuild/aix-ppc64': 0.24.2
@@ -32749,7 +33340,7 @@ snapshots:
       '@eslint/core': 0.9.1
       '@eslint/eslintrc': 3.2.0
       '@eslint/js': 9.16.0
-      '@eslint/plugin-kit': 0.2.4
+      '@eslint/plugin-kit': 0.2.5
       '@humanfs/node': 0.16.6
       '@humanwhocodes/module-importer': 1.0.1
       '@humanwhocodes/retry': 0.4.1
@@ -33352,11 +33943,11 @@ snapshots:
     optionalDependencies:
       debug: 4.4.0(supports-color@8.1.1)
 
-  fomo-sdk-solana@1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10):
+  fomo-sdk-solana@1.3.2(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.30.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
-      '@raydium-io/raydium-sdk-v2': 0.1.82-alpha(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      '@solana/spl-token': 0.4.9(@solana/web3.js@1.95.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)
+      '@raydium-io/raydium-sdk-v2': 0.1.82-alpha(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@solana/spl-token': 0.4.9(@solana/web3.js@1.95.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)
       bs58: 6.0.0
       coral-xyz3: '@coral-xyz/anchor@0.29.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)'
@@ -33387,7 +33978,7 @@ snapshots:
 
   forever-agent@0.6.1: {}
 
-  fork-ts-checker-webpack-plugin@6.5.3(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
+  fork-ts-checker-webpack-plugin@6.5.3(eslint@9.16.0(jiti@2.4.2))(typescript@5.7.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
     dependencies:
       '@babel/code-frame': 7.26.2
       '@types/json-schema': 7.0.15
@@ -33402,7 +33993,7 @@ snapshots:
       schema-utils: 2.7.0
       semver: 7.6.3
       tapable: 1.1.3
-      typescript: 5.6.3
+      typescript: 5.7.3
       webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
     optionalDependencies:
       eslint: 9.16.0(jiti@2.4.2)
@@ -33675,6 +34266,10 @@ snapshots:
       es-errors: 1.3.0
       get-intrinsic: 1.2.7
 
+  get-tsconfig@4.8.1:
+    dependencies:
+      resolve-pkg-maps: 1.0.0
+
   get-uri@6.0.4:
     dependencies:
       basic-ftp: 5.0.5
@@ -33914,13 +34509,13 @@ snapshots:
       p-cancelable: 3.0.0
       responselike: 3.0.0
 
-  gql.tada@1.8.10(graphql@16.10.0)(typescript@5.6.3):
+  gql.tada@1.8.10(graphql@16.10.0)(typescript@5.7.3):
     dependencies:
       '@0no-co/graphql.web': 1.0.13(graphql@16.10.0)
-      '@0no-co/graphqlsp': 1.12.16(graphql@16.10.0)(typescript@5.6.3)
-      '@gql.tada/cli-utils': 1.6.3(@0no-co/graphqlsp@1.12.16(graphql@16.10.0)(typescript@5.6.3))(graphql@16.10.0)(typescript@5.6.3)
-      '@gql.tada/internal': 1.0.8(graphql@16.10.0)(typescript@5.6.3)
-      typescript: 5.6.3
+      '@0no-co/graphqlsp': 1.12.16(graphql@16.10.0)(typescript@5.7.3)
+      '@gql.tada/cli-utils': 1.6.3(@0no-co/graphqlsp@1.12.16(graphql@16.10.0)(typescript@5.7.3))(graphql@16.10.0)(typescript@5.7.3)
+      '@gql.tada/internal': 1.0.8(graphql@16.10.0)(typescript@5.7.3)
+      typescript: 5.7.3
     transitivePeerDependencies:
       - '@gql.tada/svelte-support'
       - '@gql.tada/vue-support'
@@ -33970,7 +34565,7 @@ snapshots:
     dependencies:
       duplexer: 0.1.2
 
-  h3@1.13.0:
+  h3@1.13.1:
     dependencies:
       cookie-es: 1.2.2
       crossws: 0.3.1
@@ -34005,7 +34600,7 @@ snapshots:
 
   hard-rejection@2.1.0: {}
 
-  hardhat@2.22.17(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.6.3))(typescript@5.6.3)(utf-8-validate@5.0.10):
+  hardhat@2.22.17(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10):
     dependencies:
       '@ethersproject/abi': 5.7.0
       '@metamask/eth-sig-util': 4.0.1
@@ -34052,8 +34647,8 @@ snapshots:
       uuid: 8.3.2
       ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)
     optionalDependencies:
-      ts-node: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.6.3)
-      typescript: 5.6.3
+      ts-node: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.7.3)
+      typescript: 5.7.3
     transitivePeerDependencies:
       - bufferutil
       - c-kzg
@@ -35025,7 +35620,7 @@ snapshots:
   istanbul-lib-instrument@5.2.1:
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/parser': 7.26.3
+      '@babel/parser': 7.26.5
       '@istanbuljs/schema': 0.1.3
       istanbul-lib-coverage: 3.2.2
       semver: 6.3.1
@@ -35035,7 +35630,7 @@ snapshots:
   istanbul-lib-instrument@6.0.3:
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/parser': 7.26.3
+      '@babel/parser': 7.26.5
       '@istanbuljs/schema': 0.1.3
       istanbul-lib-coverage: 3.2.2
       semver: 7.6.3
@@ -35159,16 +35754,16 @@ snapshots:
       - supports-color
       - ts-node
 
-  jest-cli@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)):
+  jest-cli@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3)):
     dependencies:
-      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3))
       '@jest/test-result': 29.7.0
       '@jest/types': 29.6.3
       chalk: 4.1.2
-      create-jest: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+      create-jest: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3))
       exit: 0.1.2
       import-local: 3.2.0
-      jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+      jest-config: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3))
       jest-util: 29.7.0
       jest-validate: 29.7.0
       yargs: 17.7.2
@@ -35180,7 +35775,7 @@ snapshots:
 
   jest-cli@29.7.0(@types/node@22.10.5):
     dependencies:
-      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3))
       '@jest/test-result': 29.7.0
       '@jest/types': 29.6.3
       chalk: 4.1.2
@@ -35278,7 +35873,7 @@ snapshots:
       - babel-plugin-macros
       - supports-color
 
-  jest-config@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)):
+  jest-config@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3)):
     dependencies:
       '@babel/core': 7.26.0
       '@jest/test-sequencer': 29.7.0
@@ -35304,7 +35899,7 @@ snapshots:
       strip-json-comments: 3.1.1
     optionalDependencies:
       '@types/node': 20.17.9
-      ts-node: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)
+      ts-node: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3)
     transitivePeerDependencies:
       - babel-plugin-macros
       - supports-color
@@ -35558,10 +36153,10 @@ snapshots:
   jest-snapshot@29.7.0:
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/generator': 7.26.3
+      '@babel/generator': 7.26.5
       '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0)
       '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0)
-      '@babel/types': 7.26.3
+      '@babel/types': 7.26.5
       '@jest/expect-utils': 29.7.0
       '@jest/transform': 29.7.0
       '@jest/types': 29.6.3
@@ -35634,12 +36229,12 @@ snapshots:
       - supports-color
       - ts-node
 
-  jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)):
+  jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3)):
     dependencies:
-      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3))
       '@jest/types': 29.6.3
       import-local: 3.2.0
-      jest-cli: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+      jest-cli: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3))
     transitivePeerDependencies:
       - '@types/node'
       - babel-plugin-macros
@@ -35648,7 +36243,7 @@ snapshots:
 
   jest@29.7.0(@types/node@22.10.5):
     dependencies:
-      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+      '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3))
       '@jest/types': 29.6.3
       import-local: 3.2.0
       jest-cli: 29.7.0(@types/node@22.10.5)
@@ -35940,11 +36535,33 @@ snapshots:
       inherits: 2.0.4
       stream-splicer: 2.0.1
 
-  langchain@0.3.6(@langchain/core@0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)):
+  langchain@0.3.6(@langchain/core@0.3.29(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)):
     dependencies:
-      '@langchain/core': 0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))
-      '@langchain/openai': 0.3.16(@langchain/core@0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)
-      '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.27(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))
+      '@langchain/core': 0.3.29(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))
+      '@langchain/openai': 0.3.17(@langchain/core@0.3.29(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)
+      '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.29(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))
+      js-tiktoken: 1.0.15
+      js-yaml: 4.1.0
+      jsonpointer: 5.0.1
+      langsmith: 0.2.15(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))
+      openapi-types: 12.1.3
+      p-retry: 4.6.2
+      uuid: 10.0.0
+      yaml: 2.7.0
+      zod: 3.23.8
+      zod-to-json-schema: 3.24.1(zod@3.23.8)
+    optionalDependencies:
+      axios: 1.7.9(debug@4.4.0)
+      handlebars: 4.7.8
+    transitivePeerDependencies:
+      - encoding
+      - openai
+
+  langchain@0.3.6(@langchain/core@0.3.29(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)):
+    dependencies:
+      '@langchain/core': 0.3.29(openai@4.78.1(encoding@0.1.13)(zod@3.23.8))
+      '@langchain/openai': 0.3.17(@langchain/core@0.3.29(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)
+      '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.29(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))
       js-tiktoken: 1.0.15
       js-yaml: 4.1.0
       jsonpointer: 5.0.1
@@ -35981,6 +36598,17 @@ snapshots:
     optionalDependencies:
       openai: 4.73.0(encoding@0.1.13)(zod@3.23.8)
 
+  langsmith@0.2.15(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)):
+    dependencies:
+      '@types/uuid': 10.0.0
+      commander: 10.0.1
+      p-queue: 6.6.2
+      p-retry: 4.6.2
+      semver: 7.6.3
+      uuid: 10.0.0
+    optionalDependencies:
+      openai: 4.78.1(encoding@0.1.13)(zod@3.23.8)
+
   latest-version@7.0.0:
     dependencies:
       package-json: 8.1.1
@@ -36173,7 +36801,7 @@ snapshots:
 
   lit-element@3.3.3:
     dependencies:
-      '@lit-labs/ssr-dom-shim': 1.2.1
+      '@lit-labs/ssr-dom-shim': 1.3.0
       '@lit/reactive-element': 1.6.3
       lit-html: 2.8.0
 
@@ -36395,8 +37023,8 @@ snapshots:
 
   magicast@0.3.5:
     dependencies:
-      '@babel/parser': 7.26.3
-      '@babel/types': 7.26.3
+      '@babel/parser': 7.26.5
+      '@babel/types': 7.26.5
       source-map-js: 1.2.1
 
   make-dir@2.1.0:
@@ -37238,7 +37866,7 @@ snapshots:
 
   mkdirp@3.0.1: {}
 
-  mkdist@1.6.0(typescript@5.6.3):
+  mkdist@1.6.0(typescript@5.7.3):
     dependencies:
       autoprefixer: 10.4.20(postcss@8.4.49)
       citty: 0.1.6
@@ -37254,7 +37882,7 @@ snapshots:
       semver: 7.6.3
       tinyglobby: 0.2.10
     optionalDependencies:
-      typescript: 5.6.3
+      typescript: 5.7.3
 
   mlly@1.7.3:
     dependencies:
@@ -37602,7 +38230,7 @@ snapshots:
       process: 0.11.10
       uuid: 9.0.1
 
-  node-llama-cpp@3.1.1(typescript@5.6.3):
+  node-llama-cpp@3.1.1(typescript@5.7.3):
     dependencies:
       '@huggingface/jinja': 0.3.2
       async-retry: 1.3.3
@@ -37646,7 +38274,7 @@ snapshots:
       '@node-llama-cpp/win-x64': 3.1.1
       '@node-llama-cpp/win-x64-cuda': 3.1.1
       '@node-llama-cpp/win-x64-vulkan': 3.1.1
-      typescript: 5.6.3
+      typescript: 5.7.3
     transitivePeerDependencies:
       - supports-color
 
@@ -37998,7 +38626,7 @@ snapshots:
     transitivePeerDependencies:
       - encoding
 
-  openai@4.78.0(encoding@0.1.13)(zod@3.23.8):
+  openai@4.78.1(encoding@0.1.13)(zod@3.23.8):
     dependencies:
       '@types/node': 18.19.70
       '@types/node-fetch': 2.6.12
@@ -38076,17 +38704,17 @@ snapshots:
       object-keys: 1.1.1
       safe-push-apply: 1.0.0
 
-  ox@0.1.2(typescript@5.6.3)(zod@3.23.8):
+  ox@0.1.2(typescript@5.7.3)(zod@3.23.8):
     dependencies:
       '@adraffy/ens-normalize': 1.11.0
       '@noble/curves': 1.6.0
       '@noble/hashes': 1.5.0
       '@scure/bip32': 1.5.0
       '@scure/bip39': 1.4.0
-      abitype: 1.0.6(typescript@5.6.3)(zod@3.23.8)
+      abitype: 1.0.6(typescript@5.7.3)(zod@3.23.8)
       eventemitter3: 5.0.1
     optionalDependencies:
-      typescript: 5.6.3
+      typescript: 5.7.3
     transitivePeerDependencies:
       - zod
 
@@ -38104,6 +38732,20 @@ snapshots:
     transitivePeerDependencies:
       - zod
 
+  ox@0.4.4(typescript@5.7.3)(zod@3.23.8):
+    dependencies:
+      '@adraffy/ens-normalize': 1.11.0
+      '@noble/curves': 1.7.0
+      '@noble/hashes': 1.6.1
+      '@scure/bip32': 1.6.0
+      '@scure/bip39': 1.5.0
+      abitype: 1.0.7(typescript@5.7.3)(zod@3.23.8)
+      eventemitter3: 5.0.1
+    optionalDependencies:
+      typescript: 5.7.3
+    transitivePeerDependencies:
+      - zod
+
   p-cancelable@2.1.1: {}
 
   p-cancelable@3.0.0: {}
@@ -38669,7 +39311,7 @@ snapshots:
       postcss: 8.4.49
       postcss-value-parser: 4.2.0
 
-  postcss-cli@11.0.0(jiti@2.4.2)(postcss@8.4.49):
+  postcss-cli@11.0.0(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2):
     dependencies:
       chokidar: 3.6.0
       dependency-graph: 0.11.0
@@ -38678,7 +39320,7 @@ snapshots:
       globby: 14.0.2
       picocolors: 1.1.1
       postcss: 8.4.49
-      postcss-load-config: 5.1.0(jiti@2.4.2)(postcss@8.4.49)
+      postcss-load-config: 5.1.0(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)
       postcss-reporter: 7.1.0(postcss@8.4.49)
       pretty-hrtime: 1.0.3
       read-cache: 1.0.0
@@ -38865,25 +39507,27 @@ snapshots:
       postcss: 8.4.49
       ts-node: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)
 
-  postcss-load-config@5.1.0(jiti@2.4.2)(postcss@8.4.49):
+  postcss-load-config@5.1.0(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2):
     dependencies:
       lilconfig: 3.1.3
       yaml: 2.7.0
     optionalDependencies:
       jiti: 2.4.2
       postcss: 8.4.49
+      tsx: 4.19.2
 
-  postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.4.49)(yaml@2.7.0):
+  postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(yaml@2.7.0):
     dependencies:
       lilconfig: 3.1.3
     optionalDependencies:
       jiti: 2.4.2
       postcss: 8.4.49
+      tsx: 4.19.2
       yaml: 2.7.0
 
-  postcss-loader@7.3.4(postcss@8.4.49)(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
+  postcss-loader@7.3.4(postcss@8.4.49)(typescript@5.7.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
     dependencies:
-      cosmiconfig: 8.3.6(typescript@5.6.3)
+      cosmiconfig: 8.3.6(typescript@5.7.3)
       jiti: 1.21.7
       postcss: 8.4.49
       semver: 7.6.3
@@ -39510,11 +40154,11 @@ snapshots:
       end-of-stream: 1.4.4
       once: 1.4.0
 
-  pumpdotfun-sdk@1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.30.1)(typescript@5.6.3)(utf-8-validate@5.0.10):
+  pumpdotfun-sdk@1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.30.1)(typescript@5.7.3)(utf-8-validate@5.0.10):
     dependencies:
       '@coral-xyz/anchor': 0.30.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
       '@rollup/plugin-json': 6.1.0(rollup@4.30.1)
-      '@solana/spl-token': 0.4.6(@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/spl-token': 0.4.6(@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)
     transitivePeerDependencies:
       - bufferutil
@@ -39534,9 +40178,9 @@ snapshots:
     dependencies:
       escape-goat: 4.0.0
 
-  puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10):
+  puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10):
     dependencies:
-      '@puppeteer/browsers': 0.5.0(typescript@5.6.3)
+      '@puppeteer/browsers': 0.5.0(typescript@5.7.3)
       chromium-bidi: 0.4.7(devtools-protocol@0.0.1107588)
       cross-fetch: 3.1.5(encoding@0.1.13)
       debug: 4.3.4
@@ -39548,20 +40192,20 @@ snapshots:
       unbzip2-stream: 1.4.3
       ws: 8.13.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
     optionalDependencies:
-      typescript: 5.6.3
+      typescript: 5.7.3
     transitivePeerDependencies:
       - bufferutil
       - encoding
       - supports-color
       - utf-8-validate
 
-  puppeteer-extra-plugin-capsolver@2.0.1(bufferutil@4.0.9)(encoding@0.1.13)(puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(typescript@5.6.3)(utf-8-validate@5.0.10):
+  puppeteer-extra-plugin-capsolver@2.0.1(bufferutil@4.0.9)(encoding@0.1.13)(puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10))(typescript@5.7.3)(utf-8-validate@5.0.10):
     dependencies:
       axios: 1.7.9(debug@4.4.0)
       capsolver-npm: 2.0.2
-      puppeteer: 19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      puppeteer-extra: 3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))
-      puppeteer-extra-plugin: 3.2.3(puppeteer-extra@3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)))
+      puppeteer: 19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      puppeteer-extra: 3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10))
+      puppeteer-extra-plugin: 3.2.3(puppeteer-extra@3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)))
     transitivePeerDependencies:
       - '@types/puppeteer'
       - bufferutil
@@ -39573,35 +40217,35 @@ snapshots:
       - typescript
       - utf-8-validate
 
-  puppeteer-extra-plugin@3.2.3(puppeteer-extra@3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))):
+  puppeteer-extra-plugin@3.2.3(puppeteer-extra@3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10))):
     dependencies:
       '@types/debug': 4.1.12
       debug: 4.4.0(supports-color@8.1.1)
       merge-deep: 3.0.3
     optionalDependencies:
-      puppeteer-extra: 3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))
+      puppeteer-extra: 3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10))
     transitivePeerDependencies:
       - supports-color
 
-  puppeteer-extra@3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)):
+  puppeteer-extra@3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)):
     dependencies:
       '@types/debug': 4.1.12
       debug: 4.4.0(supports-color@8.1.1)
       deepmerge: 4.3.1
     optionalDependencies:
-      puppeteer: 19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)
-      puppeteer-core: 19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      puppeteer: 19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      puppeteer-core: 19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)
     transitivePeerDependencies:
       - supports-color
 
-  puppeteer@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10):
+  puppeteer@19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10):
     dependencies:
-      '@puppeteer/browsers': 0.5.0(typescript@5.6.3)
+      '@puppeteer/browsers': 0.5.0(typescript@5.7.3)
       cosmiconfig: 8.1.3
       https-proxy-agent: 5.0.1
       progress: 2.0.3
       proxy-from-env: 1.1.0
-      puppeteer-core: 19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)
+      puppeteer-core: 19.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)
     transitivePeerDependencies:
       - bufferutil
       - encoding
@@ -39695,7 +40339,7 @@ snapshots:
       minimist: 1.2.8
       strip-json-comments: 2.0.1
 
-  react-dev-utils@12.0.1(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
+  react-dev-utils@12.0.1(eslint@9.16.0(jiti@2.4.2))(typescript@5.7.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
     dependencies:
       '@babel/code-frame': 7.26.2
       address: 1.2.2
@@ -39706,7 +40350,7 @@ snapshots:
       escape-string-regexp: 4.0.0
       filesize: 8.0.7
       find-up: 5.0.0
-      fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
+      fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.16.0(jiti@2.4.2))(typescript@5.7.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       global-modules: 2.0.0
       globby: 11.1.0
       gzip-size: 6.0.0
@@ -39723,7 +40367,7 @@ snapshots:
       text-table: 0.2.0
       webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
     optionalDependencies:
-      typescript: 5.6.3
+      typescript: 5.7.3
     transitivePeerDependencies:
       - eslint
       - supports-color
@@ -39947,7 +40591,7 @@ snapshots:
     dependencies:
       picomatch: 2.3.1
 
-  readdirp@4.0.2: {}
+  readdirp@4.1.1: {}
 
   reading-time@1.5.0: {}
 
@@ -40244,6 +40888,8 @@ snapshots:
 
   resolve-pathname@3.0.0: {}
 
+  resolve-pkg-maps@1.0.0: {}
+
   resolve.exports@2.0.3: {}
 
   resolve@1.17.0:
@@ -40312,11 +40958,11 @@ snapshots:
 
   robust-predicates@3.0.2: {}
 
-  rollup-plugin-dts@6.1.1(rollup@3.29.5)(typescript@5.6.3):
+  rollup-plugin-dts@6.1.1(rollup@3.29.5)(typescript@5.7.3):
     dependencies:
       magic-string: 0.30.17
       rollup: 3.29.5
-      typescript: 5.6.3
+      typescript: 5.7.3
     optionalDependencies:
       '@babel/code-frame': 7.26.2
 
@@ -41332,6 +41978,10 @@ snapshots:
     dependencies:
       vue: 3.5.13(typescript@5.6.3)
 
+  swrv@1.0.4(vue@3.5.13(typescript@5.7.3)):
+    dependencies:
+      vue: 3.5.13(typescript@5.7.3)
+
   symbol-tree@3.2.4: {}
 
   symbol.inspect@1.0.1: {}
@@ -41668,18 +42318,18 @@ snapshots:
 
   ts-interface-checker@0.1.13: {}
 
-  ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)))(typescript@5.6.3):
+  ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3)))(typescript@5.7.3):
     dependencies:
       bs-logger: 0.2.6
       ejs: 3.1.10
       fast-json-stable-stringify: 2.1.0
-      jest: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+      jest: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3))
       jest-util: 29.7.0
       json5: 2.2.3
       lodash.memoize: 4.1.2
       make-error: 1.3.6
       semver: 7.6.3
-      typescript: 5.6.3
+      typescript: 5.7.3
       yargs-parser: 21.1.1
     optionalDependencies:
       '@babel/core': 7.26.0
@@ -41707,6 +42357,25 @@ snapshots:
       '@jest/types': 29.6.3
       babel-jest: 29.7.0(@babel/core@7.26.0)
 
+  ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@20.17.9))(typescript@5.6.3):
+    dependencies:
+      bs-logger: 0.2.6
+      ejs: 3.1.10
+      fast-json-stable-stringify: 2.1.0
+      jest: 29.7.0(@types/node@20.17.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3))
+      jest-util: 29.7.0
+      json5: 2.2.3
+      lodash.memoize: 4.1.2
+      make-error: 1.3.6
+      semver: 7.6.3
+      typescript: 5.6.3
+      yargs-parser: 21.1.1
+    optionalDependencies:
+      '@babel/core': 7.26.0
+      '@jest/transform': 29.7.0
+      '@jest/types': 29.6.3
+      babel-jest: 29.7.0(@babel/core@7.26.0)
+
   ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)))(typescript@5.6.3):
     dependencies:
       bs-logger: 0.2.6
@@ -41748,7 +42417,7 @@ snapshots:
     optionalDependencies:
       '@swc/core': 1.10.7(@swc/helpers@0.5.15)
 
-  ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3):
+  ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3):
     dependencies:
       '@cspotcode/source-map-support': 0.8.1
       '@tsconfig/node10': 1.0.11
@@ -41762,13 +42431,13 @@ snapshots:
       create-require: 1.1.1
       diff: 4.0.2
       make-error: 1.3.6
-      typescript: 5.6.3
+      typescript: 5.7.3
       v8-compile-cache-lib: 3.0.1
       yn: 3.1.1
     optionalDependencies:
       '@swc/core': 1.10.7(@swc/helpers@0.5.15)
 
-  ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.6.3):
+  ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.7.3):
     dependencies:
       '@cspotcode/source-map-support': 0.8.1
       '@tsconfig/node10': 1.0.11
@@ -41782,7 +42451,7 @@ snapshots:
       create-require: 1.1.1
       diff: 4.0.2
       make-error: 1.3.6
-      typescript: 5.6.3
+      typescript: 5.7.3
       v8-compile-cache-lib: 3.0.1
       yn: 3.1.1
     optionalDependencies:
@@ -41829,7 +42498,7 @@ snapshots:
 
   tsscmp@1.0.6: {}
 
-  tsup@8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.7.0):
+  tsup@8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0):
     dependencies:
       bundle-require: 5.1.0(esbuild@0.24.2)
       cac: 6.7.14
@@ -41839,7 +42508,7 @@ snapshots:
       esbuild: 0.24.2
       joycon: 3.1.1
       picocolors: 1.1.1
-      postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.4.49)(yaml@2.7.0)
+      postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(yaml@2.7.0)
       resolve-from: 5.0.0
       rollup: 4.30.1
       source-map: 0.8.0-beta.0
@@ -41857,6 +42526,41 @@ snapshots:
       - tsx
       - yaml
 
+  tsup@8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0):
+    dependencies:
+      bundle-require: 5.1.0(esbuild@0.24.2)
+      cac: 6.7.14
+      chokidar: 4.0.3
+      consola: 3.3.3
+      debug: 4.4.0(supports-color@8.1.1)
+      esbuild: 0.24.2
+      joycon: 3.1.1
+      picocolors: 1.1.1
+      postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(yaml@2.7.0)
+      resolve-from: 5.0.0
+      rollup: 4.30.1
+      source-map: 0.8.0-beta.0
+      sucrase: 3.35.0
+      tinyexec: 0.3.2
+      tinyglobby: 0.2.10
+      tree-kill: 1.2.2
+    optionalDependencies:
+      '@swc/core': 1.10.7(@swc/helpers@0.5.15)
+      postcss: 8.4.49
+      typescript: 5.7.3
+    transitivePeerDependencies:
+      - jiti
+      - supports-color
+      - tsx
+      - yaml
+
+  tsx@4.19.2:
+    dependencies:
+      esbuild: 0.23.1
+      get-tsconfig: 4.8.1
+    optionalDependencies:
+      fsevents: 2.3.3
+
   tty-browserify@0.0.1: {}
 
   tuf-js@2.2.1:
@@ -42000,9 +42704,9 @@ snapshots:
 
   typedarray@0.0.6: {}
 
-  typedoc-plugin-markdown@4.2.10(typedoc@0.26.11(typescript@5.6.3)):
+  typedoc-plugin-markdown@4.2.10(typedoc@0.26.11(typescript@5.7.3)):
     dependencies:
-      typedoc: 0.26.11(typescript@5.6.3)
+      typedoc: 0.26.11(typescript@5.7.3)
 
   typedoc@0.26.11(typescript@5.6.3):
     dependencies:
@@ -42013,6 +42717,15 @@ snapshots:
       typescript: 5.6.3
       yaml: 2.7.0
 
+  typedoc@0.26.11(typescript@5.7.3):
+    dependencies:
+      lunr: 2.3.9
+      markdown-it: 14.1.0
+      minimatch: 9.0.5
+      shiki: 1.26.1
+      typescript: 5.7.3
+      yaml: 2.7.0
+
   typeforce@1.18.0: {}
 
   typescript-eslint@8.11.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3):
@@ -42028,6 +42741,8 @@ snapshots:
 
   typescript@5.6.3: {}
 
+  typescript@5.7.3: {}
+
   u3@0.1.1: {}
 
   uc.micro@2.1.0: {}
@@ -42057,7 +42772,7 @@ snapshots:
       has-symbols: 1.1.0
       which-boxed-primitive: 1.1.1
 
-  unbuild@2.0.0(typescript@5.6.3):
+  unbuild@2.0.0(typescript@5.7.3):
     dependencies:
       '@rollup/plugin-alias': 5.1.1(rollup@3.29.5)
       '@rollup/plugin-commonjs': 25.0.8(rollup@3.29.5)
@@ -42074,17 +42789,17 @@ snapshots:
       hookable: 5.5.3
       jiti: 1.21.7
       magic-string: 0.30.17
-      mkdist: 1.6.0(typescript@5.6.3)
+      mkdist: 1.6.0(typescript@5.7.3)
       mlly: 1.7.3
       pathe: 1.1.2
       pkg-types: 1.3.0
       pretty-bytes: 6.1.1
       rollup: 3.29.5
-      rollup-plugin-dts: 6.1.1(rollup@3.29.5)(typescript@5.6.3)
+      rollup-plugin-dts: 6.1.1(rollup@3.29.5)(typescript@5.7.3)
       scule: 1.3.0
       untyped: 1.5.2
     optionalDependencies:
-      typescript: 5.6.3
+      typescript: 5.7.3
     transitivePeerDependencies:
       - sass
       - supports-color
@@ -42262,7 +42977,7 @@ snapshots:
       anymatch: 3.1.3
       chokidar: 3.6.0
       destr: 2.0.3
-      h3: 1.13.0
+      h3: 1.13.1
       lru-cache: 10.4.3
       node-fetch-native: 1.6.4
       ofetch: 1.4.1
@@ -42274,8 +42989,8 @@ snapshots:
   untyped@1.5.2:
     dependencies:
       '@babel/core': 7.26.0
-      '@babel/standalone': 7.26.4
-      '@babel/types': 7.26.3
+      '@babel/standalone': 7.26.5
+      '@babel/types': 7.26.5
       citty: 0.1.6
       defu: 6.1.4
       jiti: 2.4.2
@@ -42403,9 +43118,9 @@ snapshots:
 
   valibot@0.36.0: {}
 
-  valibot@0.38.0(typescript@5.6.3):
+  valibot@0.38.0(typescript@5.7.3):
     optionalDependencies:
-      typescript: 5.6.3
+      typescript: 5.7.3
 
   valid-url@1.0.9: {}
 
@@ -42469,37 +43184,37 @@ snapshots:
       '@types/unist': 3.0.3
       vfile-message: 4.0.2
 
-  viem@2.21.49(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8):
+  viem@2.21.49(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8):
     dependencies:
       '@noble/curves': 1.6.0
       '@noble/hashes': 1.5.0
       '@scure/bip32': 1.5.0
       '@scure/bip39': 1.4.0
-      abitype: 1.0.6(typescript@5.6.3)(zod@3.23.8)
+      abitype: 1.0.6(typescript@5.7.3)(zod@3.23.8)
       isows: 1.0.6(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))
-      ox: 0.1.2(typescript@5.6.3)(zod@3.23.8)
+      ox: 0.1.2(typescript@5.7.3)(zod@3.23.8)
       webauthn-p256: 0.0.10
       ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
     optionalDependencies:
-      typescript: 5.6.3
+      typescript: 5.7.3
     transitivePeerDependencies:
       - bufferutil
       - utf-8-validate
       - zod
 
-  viem@2.21.53(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8):
+  viem@2.21.53(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8):
     dependencies:
       '@noble/curves': 1.6.0
       '@noble/hashes': 1.5.0
       '@scure/bip32': 1.5.0
       '@scure/bip39': 1.4.0
-      abitype: 1.0.6(typescript@5.6.3)(zod@3.23.8)
+      abitype: 1.0.6(typescript@5.7.3)(zod@3.23.8)
       isows: 1.0.6(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))
-      ox: 0.1.2(typescript@5.6.3)(zod@3.23.8)
+      ox: 0.1.2(typescript@5.7.3)(zod@3.23.8)
       webauthn-p256: 0.0.10
       ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
     optionalDependencies:
-      typescript: 5.6.3
+      typescript: 5.7.3
     transitivePeerDependencies:
       - bufferutil
       - utf-8-validate
@@ -42523,6 +43238,24 @@ snapshots:
       - utf-8-validate
       - zod
 
+  viem@2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8):
+    dependencies:
+      '@noble/curves': 1.7.0
+      '@noble/hashes': 1.6.1
+      '@scure/bip32': 1.6.0
+      '@scure/bip39': 1.5.0
+      abitype: 1.0.7(typescript@5.7.3)(zod@3.23.8)
+      isows: 1.0.6(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))
+      ox: 0.4.4(typescript@5.7.3)(zod@3.23.8)
+      webauthn-p256: 0.0.10
+      ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+    optionalDependencies:
+      typescript: 5.7.3
+    transitivePeerDependencies:
+      - bufferutil
+      - utf-8-validate
+      - zod
+
   vite-node@2.1.4(@types/node@22.10.5)(terser@5.37.0):
     dependencies:
       cac: 6.7.14
@@ -42754,6 +43487,16 @@ snapshots:
     optionalDependencies:
       typescript: 5.6.3
 
+  vue@3.5.13(typescript@5.7.3):
+    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@3.5.13(typescript@5.7.3))
+      '@vue/shared': 3.5.13
+    optionalDependencies:
+      typescript: 5.7.3
+
   w3c-xmlserializer@5.0.0:
     dependencies:
       xml-name-validator: 5.0.0
@@ -42824,9 +43567,9 @@ snapshots:
     dependencies:
       web3-types: 1.10.0
 
-  web3-eth-abi@4.4.1(typescript@5.6.3)(zod@3.23.8):
+  web3-eth-abi@4.4.1(typescript@5.7.3)(zod@3.23.8):
     dependencies:
-      abitype: 0.7.1(typescript@5.6.3)(zod@3.23.8)
+      abitype: 0.7.1(typescript@5.7.3)(zod@3.23.8)
       web3-errors: 1.3.1
       web3-types: 1.10.0
       web3-utils: 4.3.3
@@ -42845,13 +43588,13 @@ snapshots:
       web3-utils: 4.3.3
       web3-validator: 2.0.6
 
-  web3-eth-contract@4.7.2(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8):
+  web3-eth-contract@4.7.2(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8):
     dependencies:
       '@ethereumjs/rlp': 5.0.2
       web3-core: 4.7.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
       web3-errors: 1.3.1
-      web3-eth: 4.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
-      web3-eth-abi: 4.4.1(typescript@5.6.3)(zod@3.23.8)
+      web3-eth: 4.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+      web3-eth-abi: 4.4.1(typescript@5.7.3)(zod@3.23.8)
       web3-types: 1.10.0
       web3-utils: 4.3.3
       web3-validator: 2.0.6
@@ -42862,13 +43605,13 @@ snapshots:
       - utf-8-validate
       - zod
 
-  web3-eth-ens@4.4.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8):
+  web3-eth-ens@4.4.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8):
     dependencies:
       '@adraffy/ens-normalize': 1.11.0
       web3-core: 4.7.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
       web3-errors: 1.3.1
-      web3-eth: 4.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
-      web3-eth-contract: 4.7.2(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+      web3-eth: 4.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+      web3-eth-contract: 4.7.2(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
       web3-net: 4.1.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
       web3-types: 1.10.0
       web3-utils: 4.3.3
@@ -42887,10 +43630,10 @@ snapshots:
       web3-utils: 4.3.3
       web3-validator: 2.0.6
 
-  web3-eth-personal@4.1.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8):
+  web3-eth-personal@4.1.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8):
     dependencies:
       web3-core: 4.7.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
-      web3-eth: 4.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+      web3-eth: 4.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
       web3-rpc-methods: 1.3.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
       web3-types: 1.10.0
       web3-utils: 4.3.3
@@ -42902,12 +43645,12 @@ snapshots:
       - utf-8-validate
       - zod
 
-  web3-eth@4.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8):
+  web3-eth@4.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8):
     dependencies:
       setimmediate: 1.0.5
       web3-core: 4.7.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
       web3-errors: 1.3.1
-      web3-eth-abi: 4.4.1(typescript@5.6.3)(zod@3.23.8)
+      web3-eth-abi: 4.4.1(typescript@5.7.3)(zod@3.23.8)
       web3-eth-accounts: 4.3.1
       web3-net: 4.1.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
       web3-providers-ws: 4.0.8(bufferutil@4.0.9)(utf-8-validate@5.0.10)
@@ -42933,11 +43676,11 @@ snapshots:
       - encoding
       - utf-8-validate
 
-  web3-plugin-zksync@1.0.8(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.6.3))(typescript@5.6.3)(utf-8-validate@5.0.10)(web3@4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)):
+  web3-plugin-zksync@1.0.8(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)(web3@4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)):
     dependencies:
       ethereum-cryptography: 2.2.1
-      hardhat: 2.22.17(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.6.3))(typescript@5.6.3)(utf-8-validate@5.0.10)
-      web3: 4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+      hardhat: 2.22.17(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)
+      web3: 4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
     transitivePeerDependencies:
       - bufferutil
       - c-kzg
@@ -43015,17 +43758,17 @@ snapshots:
       web3-types: 1.10.0
       zod: 3.23.8
 
-  web3@4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8):
+  web3@4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8):
     dependencies:
       web3-core: 4.7.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
       web3-errors: 1.3.1
-      web3-eth: 4.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
-      web3-eth-abi: 4.4.1(typescript@5.6.3)(zod@3.23.8)
+      web3-eth: 4.11.1(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+      web3-eth-abi: 4.4.1(typescript@5.7.3)(zod@3.23.8)
       web3-eth-accounts: 4.3.1
-      web3-eth-contract: 4.7.2(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
-      web3-eth-ens: 4.4.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+      web3-eth-contract: 4.7.2(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+      web3-eth-ens: 4.4.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
       web3-eth-iban: 4.0.7
-      web3-eth-personal: 4.1.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
+      web3-eth-personal: 4.1.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
       web3-net: 4.1.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
       web3-providers-http: 4.2.0(encoding@0.1.13)
       web3-providers-ws: 4.0.8(bufferutil@4.0.9)(utf-8-validate@5.0.10)

From 88b1d5f3a42f75424182349bd10ed2168160521f Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Mon, 13 Jan 2025 08:56:09 +0700
Subject: [PATCH 04/58] adding news as its new post source

---
 agent/package.json                            |   1 +
 agent/src/index.ts                            |   5 +
 packages/client-twitter/src/post.ts           |  37 +-
 packages/plugin-crypto-news/.gitignore        |  37 ++
 packages/plugin-crypto-news/.npmignore        |   6 +
 packages/plugin-crypto-news/README.md         |  35 ++
 packages/plugin-crypto-news/eslint.config.mjs |   3 +
 packages/plugin-crypto-news/package.json      |  22 ++
 .../src/actions/tokenOverview.ts              | 232 +++++++++++++
 .../actions/tokenOverview.ts:Zone.Identifier  |   0
 packages/plugin-crypto-news/src/index.ts      |  12 +
 .../src/index.ts:Zone.Identifier              |   0
 .../src/providers/cryptoNewsData.ts           |  77 +++++
 .../src/tests/birdeye.test.ts                 |  77 +++++
 .../src/tests/birdeye.test.ts:Zone.Identifier |   0
 .../plugin-crypto-news/src/utils/birdeye.ts   | 182 ++++++++++
 .../src/utils/birdeye.ts:Zone.Identifier      |   0
 .../plugin-crypto-news/src/utils/serper.ts    | 210 ++++++++++++
 packages/plugin-crypto-news/tsconfig.json     |  13 +
 packages/plugin-crypto-news/tsup.config.ts    |  23 ++
 packages/plugin-market-analisys/src/index.ts  |   6 +-
 .../providers/twitterTrendingMarketData.ts    |  20 +-
 .../src/utils/birdeye.ts                      | 316 +++++++++---------
 pnpm-lock.yaml                                |  21 +-
 24 files changed, 1155 insertions(+), 180 deletions(-)
 create mode 100644 packages/plugin-crypto-news/.gitignore
 create mode 100644 packages/plugin-crypto-news/.npmignore
 create mode 100644 packages/plugin-crypto-news/README.md
 create mode 100644 packages/plugin-crypto-news/eslint.config.mjs
 create mode 100644 packages/plugin-crypto-news/package.json
 create mode 100644 packages/plugin-crypto-news/src/actions/tokenOverview.ts
 create mode 100644 packages/plugin-crypto-news/src/actions/tokenOverview.ts:Zone.Identifier
 create mode 100644 packages/plugin-crypto-news/src/index.ts
 create mode 100644 packages/plugin-crypto-news/src/index.ts:Zone.Identifier
 create mode 100644 packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
 create mode 100644 packages/plugin-crypto-news/src/tests/birdeye.test.ts
 create mode 100644 packages/plugin-crypto-news/src/tests/birdeye.test.ts:Zone.Identifier
 create mode 100644 packages/plugin-crypto-news/src/utils/birdeye.ts
 create mode 100644 packages/plugin-crypto-news/src/utils/birdeye.ts:Zone.Identifier
 create mode 100644 packages/plugin-crypto-news/src/utils/serper.ts
 create mode 100644 packages/plugin-crypto-news/tsconfig.json
 create mode 100644 packages/plugin-crypto-news/tsup.config.ts

diff --git a/agent/package.json b/agent/package.json
index e643528fae6..92667c3d4dd 100644
--- a/agent/package.json
+++ b/agent/package.json
@@ -65,6 +65,7 @@
         "@elizaos/plugin-web-search": "workspace:*",
         "readline": "1.3.0",
         "@ethosdao/plugin-market-analisys": "workspace:*",
+        "@srise/plugin-crypto-news": "workspace:*",
         "ws": "8.18.0",
         "yargs": "17.7.2"
     },
diff --git a/agent/src/index.ts b/agent/src/index.ts
index 48298ac2d6e..4c3dcb36791 100644
--- a/agent/src/index.ts
+++ b/agent/src/index.ts
@@ -65,6 +65,7 @@ import { TEEMode, teePlugin } from "@elizaos/plugin-tee";
 import { tonPlugin } from "@elizaos/plugin-ton";
 import { webSearchPlugin } from "@elizaos/plugin-web-search";
 import { zksyncEraPlugin } from "@elizaos/plugin-zksync-era";
+import { cryptoNewsPlugin } from "@srise/plugin-crypto-news";
 import Database from "better-sqlite3";
 import fs from "fs";
 import net from "net";
@@ -536,6 +537,7 @@ export async function createAgent(
             getSecret(character, "SERPER_API_KEY")
                 ? webSearchPlugin
                 : null,
+            getSecret(character, "SERPER_API_KEY") ? cryptoNewsPlugin : null,
             getSecret(character, "SOLANA_PUBLIC_KEY") ||
             (getSecret(character, "WALLET_PUBLIC_KEY") &&
                 !getSecret(character, "WALLET_PUBLIC_KEY")?.startsWith("0x"))
@@ -619,6 +621,9 @@ export async function createAgent(
             getSecret(character, "ECHOCHAMBERS_API_KEY")
                 ? echoChamberPlugin
                 : null,
+            // getSecret(character, "BIRDEYE_API_KEY")
+            //     ? marketAnalisysPlugin
+            //     : null,
         ].filter(Boolean),
         providers: [],
         actions: [],
diff --git a/packages/client-twitter/src/post.ts b/packages/client-twitter/src/post.ts
index 1c176cb7190..4298bc90744 100644
--- a/packages/client-twitter/src/post.ts
+++ b/packages/client-twitter/src/post.ts
@@ -1,21 +1,22 @@
-import { Tweet } from "agent-twitter-client";
 import {
     composeContext,
+    elizaLogger,
     generateText,
+    generateTweetActions,
     getEmbeddingZeroVector,
     IAgentRuntime,
+    IImageDescriptionService,
     ModelClass,
+    postActionResponseFooter,
+    ServiceType,
     stringToUuid,
     UUID,
 } from "@elizaos/core";
-import { elizaLogger } from "@elizaos/core";
+import { Tweet } from "agent-twitter-client";
 import { ClientBase } from "./base.ts";
-import { postActionResponseFooter } from "@elizaos/core";
-import { generateTweetActions } from "@elizaos/core";
-import { IImageDescriptionService, ServiceType } from "@elizaos/core";
-import { buildConversationThread } from "./utils.ts";
-import { twitterMessageHandlerTemplate } from "./interactions.ts";
 import { DEFAULT_MAX_TWEET_LENGTH } from "./environment.ts";
+import { twitterMessageHandlerTemplate } from "./interactions.ts";
+import { buildConversationThread } from "./utils.ts";
 
 const twitterPostTemplate = `
 # Areas of Expertise
@@ -34,6 +35,7 @@ const twitterPostTemplate = `
 
 # Task: Generate a post in the voice and style and perspective of {{agentName}} @{{twitterUserName}}.
 Write a post that is {{adjective}} about {{topic}} (without mentioning {{topic}} directly), from the perspective of {{agentName}}. Do not add commentary or acknowledge this request, just write the post.
+Your response should include the summary of the # NEWS above
 Your response should be 1, 2, or 3 sentences (choose the length at random).
 Your response should not contain any questions. Brief, concise statements only. The total character count MUST be less than {{maxTweetLength}}. No emojis. Use \\n\\n (double spaces) between statements if there are multiple statements in your response.`;
 
@@ -62,7 +64,8 @@ Actions (respond only with tags):
 Tweet:
 {{currentTweet}}
 
-# Respond with qualifying action tags only. Default to NO action unless extremely confident of relevance.` + postActionResponseFooter;
+# Respond with qualifying action tags only. Default to NO action unless extremely confident of relevance.` +
+    postActionResponseFooter;
 
 /**
  * Truncate text to fit within the Twitter character limit, ensuring it ends at a complete sentence.
@@ -111,7 +114,7 @@ export class TwitterPostClient {
         this.client = client;
         this.runtime = runtime;
         this.twitterUsername = this.client.twitterConfig.TWITTER_USERNAME;
-        this.isDryRun = this.client.twitterConfig.TWITTER_DRY_RUN
+        this.isDryRun = this.client.twitterConfig.TWITTER_DRY_RUN;
 
         // Log configuration on initialization
         elizaLogger.log("Twitter Client Configuration:");
@@ -188,8 +191,9 @@ export class TwitterPostClient {
                             `Next action processing scheduled in ${actionInterval} minutes`
                         );
                         // Wait for the full interval before next processing
-                        await new Promise((resolve) =>
-                            setTimeout(resolve, actionInterval * 60 * 1000) // now in minutes
+                        await new Promise(
+                            (resolve) =>
+                                setTimeout(resolve, actionInterval * 60 * 1000) // now in minutes
                         );
                     }
                 } catch (error) {
@@ -215,7 +219,10 @@ export class TwitterPostClient {
             elizaLogger.log("Tweet generation loop disabled (dry run mode)");
         }
 
-        if (this.client.twitterConfig.ENABLE_ACTION_PROCESSING && !this.isDryRun) {
+        if (
+            this.client.twitterConfig.ENABLE_ACTION_PROCESSING &&
+            !this.isDryRun
+        ) {
             processActionsLoop().catch((error) => {
                 elizaLogger.error(
                     "Fatal error in process actions loop:",
@@ -401,7 +408,7 @@ export class TwitterPostClient {
      * Generates and posts a new tweet. If isDryRun is true, only logs what would have been posted.
      */
     private async generateNewTweet() {
-        elizaLogger.log("Generating new tweet");
+        elizaLogger.log("Generating new tweet cuk");
 
         try {
             const roomId = stringToUuid(
@@ -437,7 +444,7 @@ export class TwitterPostClient {
                     this.runtime.character.templates?.twitterPostTemplate ||
                     twitterPostTemplate,
             });
-
+            console.log("PROMPT", context);
             elizaLogger.debug("generate post prompt:\n" + context);
 
             const newTweetContent = await generateText({
@@ -480,7 +487,7 @@ export class TwitterPostClient {
             }
 
             // Truncate the content to the maximum tweet length specified in the environment settings, ensuring the truncation respects sentence boundaries.
-            const maxTweetLength = this.client.twitterConfig.MAX_TWEET_LENGTH
+            const maxTweetLength = this.client.twitterConfig.MAX_TWEET_LENGTH;
             if (maxTweetLength) {
                 cleanedContent = truncateToCompleteSentence(
                     cleanedContent,
diff --git a/packages/plugin-crypto-news/.gitignore b/packages/plugin-crypto-news/.gitignore
new file mode 100644
index 00000000000..f781f0bc4b3
--- /dev/null
+++ b/packages/plugin-crypto-news/.gitignore
@@ -0,0 +1,37 @@
+# Node modules
+node_modules/
+
+# Logs
+logs
+*.log
+npm-debug.log*
+
+# Build output
+dist/
+build/
+
+# Dependency directories
+jspm_packages/
+
+# Optional npm cache directory
+.npm/
+
+# dotenv environment variable file
+.env
+
+# Turborepo
+.turbo/
+
+# IDE specific files
+.idea/
+.vscode/
+*.sublime-project
+*.sublime-workspace
+
+# Mac system files
+.DS_Store
+
+# Windows system files
+Thumbs.db
+ehthumbs.db
+Icon?
diff --git a/packages/plugin-crypto-news/.npmignore b/packages/plugin-crypto-news/.npmignore
new file mode 100644
index 00000000000..078562eceab
--- /dev/null
+++ b/packages/plugin-crypto-news/.npmignore
@@ -0,0 +1,6 @@
+*
+
+!dist/**
+!package.json
+!readme.md
+!tsup.config.ts
\ No newline at end of file
diff --git a/packages/plugin-crypto-news/README.md b/packages/plugin-crypto-news/README.md
new file mode 100644
index 00000000000..1c3e1c971bc
--- /dev/null
+++ b/packages/plugin-crypto-news/README.md
@@ -0,0 +1,35 @@
+# @ethosdao/plugin-market-analisys
+
+<div align="center">
+    <img src="./media/image.jpg" alt="market-analisys" width="500"/>
+    <br>
+    <br>
+    <a href="https://ethosdao.ai">🌐 EthosDAO Website</a>
+    <br>
+</div>
+
+# Description
+
+This plugin enables your agent to get comprehensive market data for any token using Birdeye API.
+
+# Actions
+
+- **tokenOverview**: Provides an overview of a token's market data.
+
+
+# Requirements
+
+- Birdeye API Key
+
+# Setup
+
+1. Navigate your character file and add the `"BIRDEYE_API_KEY"` to the `"secrets"` property.
+2. Add "@ethosdao/plugin-market-analisys" to `"dependencies"` property in `eliza/agent/package.json`.
+3. Add `import { pluginMarketAnalisys } from "@ethosdao/plugin-market-analisys";` in `eliza/agent/src/index.ts`.
+4. Add the following parameter `getSecret(character, "BIRDEYE_API_KEY") ? marketAnalisysPlugin : null,` in the `plugins` array in `eliza/agent/src/index.ts`.
+
+
+# Example
+
+<img src="./media/screenshot.png" alt="market-analisys" />
+
diff --git a/packages/plugin-crypto-news/eslint.config.mjs b/packages/plugin-crypto-news/eslint.config.mjs
new file mode 100644
index 00000000000..92fe5bbebef
--- /dev/null
+++ b/packages/plugin-crypto-news/eslint.config.mjs
@@ -0,0 +1,3 @@
+import eslintGlobalConfig from "../../eslint.config.mjs";
+
+export default [...eslintGlobalConfig];
diff --git a/packages/plugin-crypto-news/package.json b/packages/plugin-crypto-news/package.json
new file mode 100644
index 00000000000..3d1d97081a9
--- /dev/null
+++ b/packages/plugin-crypto-news/package.json
@@ -0,0 +1,22 @@
+{
+    "name": "@srise/plugin-crypto-news",
+    "version": "0.1.5-alpha.5",
+    "main": "dist/index.js",
+    "type": "module",
+    "author": "metaanomaly",
+    "types": "dist/index.d.ts",
+    "dependencies": {
+        "@elizaos/core": "workspace:*"
+    },
+    "devDependencies": {
+        "@types/node": "^20.0.0",
+        "tsup": "8.3.5",
+        "tsx": "^4.19.2"
+    },
+    "scripts": {
+        "build": "tsup --format esm --dts",
+        "dev": "tsup --format esm --dts --watch",
+        "lint": "eslint --fix  --cache .",
+        "test-birdeye": "tsx src/tests/birdeye.test.ts"
+    }
+}
diff --git a/packages/plugin-crypto-news/src/actions/tokenOverview.ts b/packages/plugin-crypto-news/src/actions/tokenOverview.ts
new file mode 100644
index 00000000000..9e6b8c8c9a1
--- /dev/null
+++ b/packages/plugin-crypto-news/src/actions/tokenOverview.ts
@@ -0,0 +1,232 @@
+import {
+    Action,
+    IAgentRuntime,
+    Memory,
+    State,
+    HandlerCallback,
+    ModelClass,
+    Content,
+    elizaLogger,
+    composeContext,
+    generateMessageResponse,
+    parseJSONObjectFromText,
+    generateText,
+    messageCompletionFooter,
+} from "@elizaos/core";
+import { fetchTokenOverview } from "../utils/birdeye";
+
+interface TokenQuery {
+    address?: string;
+    symbol?: string;
+}
+
+const tokenExtractionTemplate = `Respond with a JSON markdown block containing only the extracted values.
+
+Example response:
+\`\`\`json
+{
+    "address": "So11111111111111111111111111111111111111112",
+    "symbol": "SOL"
+}
+\`\`\`
+
+{{recentMessages}}
+
+Given the recent messages, extract the following information about the token query, please refer to last message for context:
+- Token contract address if provided
+- Token symbol if provided
+
+NOTE: If you see addresses like this 2gkevSAUExkSUwwwj6uNbzwwNCXyzEBkGLg4wAyUpump remember that pump suffix IS PART OF THE ADDRESS, do not remove it.
+
+Respond with a JSON markdown block containing only the extracted values. Use "" (empty string) for any values that cannot be determined.
+IMPORTANT: Response format should be in this format:
+\`\`\`json
+{
+    "address": "So11111111111111111111111111111111111111112",
+    "symbol": "SOL"
+}
+\`\`\``;
+
+const marketAnalysisTemplate = `You are {{agentName}}, a professional market analyst.
+
+About you:
+{{bio}}
+{{lore}}
+
+Recent conversation:
+{{recentMessages}}
+
+Available market data:
+{{marketData}}
+
+Analyze the market data and provide insights about:
+1. Price performance across different timeframes
+2. Trading volume and liquidity
+3. Holder behavior and wallet activity
+4. Overall market sentiment
+
+Keep the analysis concise and data-driven, focusing on the most relevant metrics.` + messageCompletionFooter;
+
+export const getTokenOverviewAction: Action = {
+    name: "GET_TOKEN_OVERVIEW",
+    similes: ["CHECK_TOKEN", "TOKEN_INFO", "MARKET_DATA", "TOKEN_ANALYSIS"],
+    description: "Retrieve and analyze token market data from Birdeye",
+
+    validate: async (runtime: IAgentRuntime, message: Memory) => {
+        //const text = (message.content as Content).text?.toLowerCase() || "";
+        //return text.includes("token") || text.includes("price") || text.includes("market");
+        return true;
+    },
+
+    handler: async (
+        runtime: IAgentRuntime,
+        message: Memory,
+        state: State,
+        _options: { [key: string]: unknown },
+        callback?: HandlerCallback
+    ): Promise<boolean> => {
+        try {
+            // Initialize or update state
+            if (!state) {
+                state = await runtime.composeState(message);
+            } else {
+                state = await runtime.updateRecentMessageState(state);
+            }
+
+            // Extract token information from message
+            const extractionContext = composeContext({
+                state,
+                template: tokenExtractionTemplate,
+            });
+
+            elizaLogger.log(`Extracting token info...`);
+
+            const response = await generateText({
+                runtime,
+                context: extractionContext,
+                modelClass: ModelClass.SMALL,
+            });
+
+            const tokenQuery = parseJSONObjectFromText(response) as TokenQuery;
+
+            elizaLogger.info(`Token query: ${JSON.stringify(tokenQuery)}`);
+
+            if (!tokenQuery.address && !tokenQuery.symbol) {
+                callback?.({
+                    text: "I couldn't identify which token you're asking about. Could you please provide a token symbol or contract address?",
+                });
+                return false;
+            }
+
+            if (tokenQuery.symbol && !tokenQuery.address) {
+                callback?.({
+                    text: "Ticker is not enough please provide me the contract address",
+                });
+                return false;
+            }
+
+            elizaLogger.log(`Fetching token data...`);
+
+            // Fetch token data
+            const tokenAddress = tokenQuery.address || "So11111111111111111111111111111111111111112"; // Default to SOL if only symbol provided
+            const tokenData = await fetchTokenOverview(tokenAddress as string, runtime.character.settings.secrets.BIRDEYE_API_KEY);
+
+
+            elizaLogger.log(`Market data: ${JSON.stringify(tokenData, null, 2)}`);
+
+            // Update state with market data
+            if (!state) {
+                state = await runtime.composeState(message);
+            }
+
+            state = {
+                ...state,
+                marketData: JSON.stringify(tokenData, null, 2),
+            };
+
+            // Generate market analysis
+            const analysisContext = composeContext({
+                state,
+                template: marketAnalysisTemplate,
+            });
+
+            const analysis = await generateMessageResponse({
+                runtime,
+                context: analysisContext,
+                modelClass: ModelClass.LARGE,
+            });
+
+            callback?.(analysis);
+
+            return true;
+        } catch (error) {
+            elizaLogger.error(`Error in GET_TOKEN_OVERVIEW action: ${error}`);
+            callback?.({
+                text: "I encountered an error while fetching the token data. Please try again later.",
+            });
+            return false;
+        }
+    },
+
+    examples: [
+        [
+            {
+                user: "{{user1}}",
+                content: { text: "What's the current market data for DV44rX6H8pEu4qwruwUvjswyRPTUib5qHTjWNRigpump?" },
+            },
+            {
+                user: "{{agentName}}",
+                content: {
+                    text: "Let me analyze the market data for DV44rX6H8pEu4qwruwUvjswyRPTUib5qHTjWNRigpump",
+                    action: "GET_TOKEN_OVERVIEW",
+                },
+            },
+        ],
+        [
+            {
+                user: "{{user1}}",
+                content: { text: "DV44rX6H8pEu4qwruwUvjswyRPTUib5qHTjWNRigpump" },
+            },
+            {
+                user: "{{agentName}}",
+                content: {
+                    text: "Checking market data for DV44rX6H8pEu4qwruwUvjswyRPTUib5qHTjWNRigpump",
+                    action: "GET_TOKEN_OVERVIEW",
+                },
+            },
+        ],
+        [
+            {
+                user: "{{user1}}",
+                content: {
+                    text: "Can you check the token at address So11111111111111111111111111111111111111112?"
+                },
+            },
+            {
+                user: "{{agentName}}",
+                content: {
+                    text: "I'll fetch the market data for this token...",
+                    action: "GET_TOKEN_OVERVIEW",
+                },
+            },
+        ],
+        [
+            {
+                user: "{{user1}}",
+                content: { text: "Can you make an analysis of $AVB?" },
+            },
+            {
+                user: "{{agentName}}",
+                content: { text: "Can you provide the address of $AVB?", action: "NONE" },
+            },
+            {
+                user: "{{user1}}",
+                content: { text: "6d5zHW5B8RkGKd51Lpb9RqFQSqDudr9GJgZ1SgQZpump" },
+            },
+            {
+                user: "{{agentName}}",
+                content: { text: "Checking market data for $AVB", action: "GET_TOKEN_OVERVIEW" },
+            },
+        ],
+    ],
+};
\ No newline at end of file
diff --git a/packages/plugin-crypto-news/src/actions/tokenOverview.ts:Zone.Identifier b/packages/plugin-crypto-news/src/actions/tokenOverview.ts:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-crypto-news/src/index.ts b/packages/plugin-crypto-news/src/index.ts
new file mode 100644
index 00000000000..30c6e4961b9
--- /dev/null
+++ b/packages/plugin-crypto-news/src/index.ts
@@ -0,0 +1,12 @@
+import { Plugin } from "@elizaos/core";
+import { cryptoNewsData } from "./providers/cryptoNewsData";
+//import { getTokenOverviewAction } from "./actions/tokenOverview";
+//import { twitterTrendingMarketData } from "./providers/twitterTrendingMarketData";
+
+export const cryptoNewsPlugin: Plugin = {
+    name: "crypto-news",
+    description: "Provides crypto news as providers",
+    actions: [],
+    providers: [cryptoNewsData],
+    evaluators: [],
+};
diff --git a/packages/plugin-crypto-news/src/index.ts:Zone.Identifier b/packages/plugin-crypto-news/src/index.ts:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts b/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
new file mode 100644
index 00000000000..a244d91d64f
--- /dev/null
+++ b/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
@@ -0,0 +1,77 @@
+import { elizaLogger, Provider } from "@elizaos/core";
+import { fetchSerperNews, SerperNewsResponse } from "../utils/serper";
+
+// interface FormattedMarketData {
+//     symbol: string;
+//     name: string;
+//     price: string;
+//     priceChange24h: string;
+//     priceChange1h: string;
+//     volume24h: string;
+//     volume1h: string;
+//     marketCap: string;
+//     realMarketCap: string;
+//     liquidity: string;
+//     holders: string;
+//     uniqueWallets24h: string;
+//     uniqueWallets1h: string;
+//     socialLinks: string[];
+// }
+
+// function formatNumber(num: number): string {
+//     if (num >= 1e9) {
+//         return `$${(num / 1e9).toFixed(2)}B`;
+//     } else if (num >= 1e6) {
+//         return `$${(num / 1e6).toFixed(2)}M`;
+//     } else if (num >= 1e3) {
+//         return `$${(num / 1e3).toFixed(2)}K`;
+//     }
+//     return `$${num.toFixed(2)}`;
+// }
+
+// function formatPercentage(num: number): string {
+//     const sign = num > 0 ? "+" : "";
+//     return `${sign}${num.toFixed(2)}%`;
+// }
+
+// function getSocialLinks(extensions: any): string[] {
+//     const links = [];
+//     if (extensions.website) links.push(`🌐 ${extensions.website}`);
+//     if (extensions.twitter) links.push(`🐦 ${extensions.twitter}`);
+//     if (extensions.telegram) links.push(`📱 ${extensions.telegram}`);
+//     if (extensions.discord) links.push(`💬 ${extensions.discord}`);
+//     return links;
+// }
+
+export const cryptoNewsData: Provider = {
+    get: async (runtime, message, state) => {
+        if (!message.content.action || message.content.action !== "TWEET") {
+            return "";
+        }
+
+        try {
+            // fetch several times
+            const cryptoNews: SerperNewsResponse =
+                await fetchSerperNews("crypto");
+            const suiNews: SerperNewsResponse = await fetchSerperNews("$SUI");
+            let output = "# NEWS\n\n";
+            cryptoNews.news.forEach((article) => {
+                output += `- ${article.title}\n${article.snippet}\n\n`;
+            });
+            suiNews.news.forEach((article) => {
+                output += `- ${article.title}\n${article.snippet}\n\n`;
+            });
+            output += `# END NEWS\n\n`;
+
+            elizaLogger.log(output);
+
+            return output;
+        } catch (error) {
+            console.error(
+                "Error in twitterTrendingMarketData provider:",
+                error
+            );
+            return "";
+        }
+    },
+};
diff --git a/packages/plugin-crypto-news/src/tests/birdeye.test.ts b/packages/plugin-crypto-news/src/tests/birdeye.test.ts
new file mode 100644
index 00000000000..3cdfc8539c7
--- /dev/null
+++ b/packages/plugin-crypto-news/src/tests/birdeye.test.ts
@@ -0,0 +1,77 @@
+import assert from 'assert';
+import { fetchTokenOverview } from "../utils/birdeye";
+
+async function runTests() {
+    const WRAPPED_SOL_ADDRESS = "So11111111111111111111111111111111111111112";
+    const apiKey = process.argv[2];
+
+    if (!apiKey) {
+        console.error("API key must be provided as command line argument");
+        process.exit(1);
+    }
+
+    console.log("Running Birdeye API Integration Tests...\n");
+
+    // Test 1: Basic token overview fetch
+    try {
+        console.log("Test 1: Fetching token overview data...");
+        const result = await fetchTokenOverview(WRAPPED_SOL_ADDRESS, apiKey, undefined);
+
+        assert(result, "Result should be defined");
+        assert.strictEqual(result.address, WRAPPED_SOL_ADDRESS, "Address should match");
+        assert.strictEqual(result.symbol, "SOL", "Symbol should be SOL");
+        assert.strictEqual(result.name, "Wrapped SOL", "Name should be Wrapped SOL");
+        assert.strictEqual(result.decimals, 9, "Decimals should be 9");
+        assert(result.price > 0, "Price should be greater than 0");
+        assert(result.liquidity > 0, "Liquidity should be greater than 0");
+        assert(result.mc > 0, "Market cap should be greater than 0");
+        assert(result.holder > 0, "Holder count should be greater than 0");
+        assert(result.v24hUSD > 0, "24h volume should be greater than 0");
+        assert(result.v1hUSD > 0, "1h volume should be greater than 0");
+        console.log("✅ Test 1 passed\n");
+    } catch (error) {
+        console.error("❌ Test 1 failed:", error);
+        process.exit(1);
+    }
+
+    // Test 2: Cache functionality
+    try {
+        console.log("Test 2: Testing cache functionality...");
+        const mockCache = {
+            get: (key: string) => {
+                console.log("Cache get called with key:", key);
+                return null;
+            },
+            set: (key: string, value: any) => {
+                console.log("Cache set called with key:", key);
+                assert(value, "Cache value should be defined");
+            }
+        };
+
+        await fetchTokenOverview(WRAPPED_SOL_ADDRESS, apiKey, mockCache);
+        console.log("✅ Test 2 passed\n");
+    } catch (error) {
+        console.error("❌ Test 2 failed:", error);
+        process.exit(1);
+    }
+
+    // Test 3: Invalid token address
+    try {
+        console.log("Test 3: Testing invalid token address...");
+        const invalidAddress = "invalid_address";
+        try {
+            await fetchTokenOverview(invalidAddress, apiKey, undefined);
+            assert.fail("Should throw an error for invalid address");
+        } catch (error) {
+            assert(error, "Should throw an error");
+        }
+        console.log("✅ Test 3 passed\n");
+    } catch (error) {
+        console.error("❌ Test 3 failed:", error);
+        process.exit(1);
+    }
+
+    console.log("All tests passed! 🎉");
+}
+
+runTests().catch(console.error);
\ No newline at end of file
diff --git a/packages/plugin-crypto-news/src/tests/birdeye.test.ts:Zone.Identifier b/packages/plugin-crypto-news/src/tests/birdeye.test.ts:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-crypto-news/src/utils/birdeye.ts b/packages/plugin-crypto-news/src/utils/birdeye.ts
new file mode 100644
index 00000000000..0d1620ae00a
--- /dev/null
+++ b/packages/plugin-crypto-news/src/utils/birdeye.ts
@@ -0,0 +1,182 @@
+export interface TokenOverviewResponse {
+    address: string;
+    decimals: number;
+    symbol: string;
+    name: string;
+    extensions: {
+        coingeckoId: string | null;
+        website: string | null;
+        telegram: string | null;
+        twitter: string | null;
+        description: string | null;
+        discord: string | null;
+        medium: string | null;
+    };
+    logoURI: string;
+    liquidity: number;
+    lastTradeUnixTime: number;
+    lastTradeHumanTime: string;
+    price: number;
+    supply: number;
+    mc: number;
+    circulatingSupply: number;
+    realMc: number;
+    holder: number;
+    // Price changes
+    priceChange24hPercent: number;
+    priceChange12hPercent: number;
+    priceChange8hPercent: number;
+    priceChange4hPercent: number;
+    priceChange2hPercent: number;
+    priceChange1hPercent: number;
+    priceChange30mPercent: number;
+    // Volume data
+    v24hUSD: number;
+    v12hUSD: number;
+    v8hUSD: number;
+    v4hUSD: number;
+    v2hUSD: number;
+    v1hUSD: number;
+    v30mUSD: number;
+    // Unique wallets
+    uniqueWallet24h: number;
+    uniqueWallet12h: number;
+    uniqueWallet8h: number;
+    uniqueWallet4h: number;
+    uniqueWallet2h: number;
+    uniqueWallet1h: number;
+    uniqueWallet30m: number;
+}
+
+export interface BirdeyeApiError {
+    success: false;
+    error: string;
+}
+
+export async function fetchTokenOverview(
+    tokenAddress: string,
+    apiKey?: string,
+    cache?: {
+        get: (key: string) => any;
+        set: (key: string, value: any) => void;
+    }
+): Promise<TokenOverviewResponse> {
+    try {
+        // Check cache first if provided
+        if (cache) {
+            const cacheKey = `token_overview_${tokenAddress}`;
+            const cachedData = cache.get(cacheKey);
+            if (cachedData) {
+                console.log(
+                    `Returning cached token overview for ${tokenAddress}`
+                );
+                return cachedData;
+            }
+        }
+
+        const response = await fetch(
+            `https://public-api.birdeye.so/defi/token_overview?address=${tokenAddress}`,
+            {
+                method: "GET",
+                headers: {
+                    accept: "application/json",
+                    "x-api-key": apiKey || "",
+                },
+            }
+        );
+
+        if (!response.ok) {
+            throw new Error(`HTTP error! status: ${response.status}`);
+        }
+
+        const data = await response.json();
+
+        if (!data.success || !data.data) {
+            throw new Error("Failed to fetch token overview data");
+        }
+
+        // Cache the response if cache is provided
+        if (cache) {
+            const cacheKey = `token_overview_${tokenAddress}`;
+            cache.set(cacheKey, data.data);
+        }
+
+        return data.data;
+    } catch (error) {
+        console.error("Error fetching token overview:", error);
+        throw error;
+    }
+}
+
+export interface TrendingToken {
+    address: string;
+    decimals: number;
+    liquidity: number;
+    logoURI: string;
+    name: string;
+    symbol: string;
+    volume24hUSD: number;
+    rank: number;
+    price: number;
+}
+
+export interface TrendingTokensResponse {
+    updateUnixTime: number;
+    updateTime: string;
+    tokens: TrendingToken[];
+    total: number;
+}
+
+export async function fetchTrendingTokens(
+    apiKey?: string,
+    cache?: {
+        get: (key: string) => any;
+        set: (key: string, value: any) => void;
+    },
+    limit: number = 20
+): Promise<TrendingTokensResponse> {
+    try {
+        // Check cache first if provided
+        if (cache) {
+            const cacheKey = `trending_tokens_${limit}`;
+            const cachedData = cache.get(cacheKey);
+            if (cachedData) {
+                console.log(`Returning cached trending tokens`);
+                return cachedData;
+            }
+        }
+
+        const response = await fetch(
+            `https://public-api.birdeye.so/defi/token_trending?sort_by=rank&sort_type=asc&offset=0&limit=${limit}`,
+            {
+                method: "GET",
+                headers: {
+                    accept: "application/json",
+                    "x-api-key": apiKey || "",
+                    "x-chain": "sui",
+                },
+            }
+        );
+
+        if (!response.ok) {
+            throw new Error(`HTTP error! status: ${response.status}`);
+        }
+
+        const data = await response.json();
+
+        if (!data.success || !data.data) {
+            throw new Error("Failed to fetch trending tokens data");
+        }
+
+        // Cache the response if cache is provided
+        if (cache) {
+            const cacheKey = `trending_tokens_${limit}`;
+            cache.set(cacheKey, data.data);
+        }
+
+        return data.data;
+    } catch (error) {
+        console.error("Error fetching trending tokens:", error);
+        throw error;
+    }
+}
diff --git a/packages/plugin-crypto-news/src/utils/birdeye.ts:Zone.Identifier b/packages/plugin-crypto-news/src/utils/birdeye.ts:Zone.Identifier
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/plugin-crypto-news/src/utils/serper.ts b/packages/plugin-crypto-news/src/utils/serper.ts
new file mode 100644
index 00000000000..f1c9cf6baf1
--- /dev/null
+++ b/packages/plugin-crypto-news/src/utils/serper.ts
@@ -0,0 +1,210 @@
+// export interface TokenOverviewResponse {
+//     address: string;
+//     decimals: number;
+//     symbol: string;
+//     name: string;
+//     extensions: {
+//         coingeckoId: string | null;
+//         website: string | null;
+//         telegram: string | null;
+//         twitter: string | null;
+//         description: string | null;
+//         discord: string | null;
+//         medium: string | null;
+//     };
+//     logoURI: string;
+//     liquidity: number;
+//     lastTradeUnixTime: number;
+//     lastTradeHumanTime: string;
+//     price: number;
+//     supply: number;
+//     mc: number;
+//     circulatingSupply: number;
+//     realMc: number;
+//     holder: number;
+//     // Price changes
+//     priceChange24hPercent: number;
+//     priceChange12hPercent: number;
+//     priceChange8hPercent: number;
+//     priceChange4hPercent: number;
+//     priceChange2hPercent: number;
+//     priceChange1hPercent: number;
+//     priceChange30mPercent: number;
+//     // Volume data
+//     v24hUSD: number;
+//     v12hUSD: number;
+//     v8hUSD: number;
+//     v4hUSD: number;
+//     v2hUSD: number;
+//     v1hUSD: number;
+//     v30mUSD: number;
+//     // Unique wallets
+//     uniqueWallet24h: number;
+//     uniqueWallet12h: number;
+//     uniqueWallet8h: number;
+//     uniqueWallet4h: number;
+//     uniqueWallet2h: number;
+//     uniqueWallet1h: number;
+//     uniqueWallet30m: number;
+// }
+
+// export interface BirdeyeApiError {
+//     success: false;
+//     error: string;
+// }
+
+// export async function fetchTokenOverview(
+//     tokenAddress: string,
+//     apiKey?: string,
+//     cache?: {
+//         get: (key: string) => any;
+//         set: (key: string, value: any) => void;
+//     }
+// ): Promise<TokenOverviewResponse> {
+//     try {
+//         // Check cache first if provided
+//         if (cache) {
+//             const cacheKey = `token_overview_${tokenAddress}`;
+//             const cachedData = cache.get(cacheKey);
+//             if (cachedData) {
+//                 console.log(
+//                     `Returning cached token overview for ${tokenAddress}`
+//                 );
+//                 return cachedData;
+//             }
+//         }
+
+//         const response = await fetch(
+//             `https://public-api.birdeye.so/defi/token_overview?address=${tokenAddress}`,
+//             {
+//                 method: "GET",
+//                 headers: {
+//                     accept: "application/json",
+//                     "x-api-key": apiKey || "",
+//                 },
+//             }
+//         );
+
+//         if (!response.ok) {
+//             throw new Error(`HTTP error! status: ${response.status}`);
+//         }
+
+//         const data = await response.json();
+
+//         if (!data.success || !data.data) {
+//             throw new Error("Failed to fetch token overview data");
+//         }
+
+//         // Cache the response if cache is provided
+//         if (cache) {
+//             const cacheKey = `token_overview_${tokenAddress}`;
+//             cache.set(cacheKey, data.data);
+//         }
+
+//         return data.data;
+//     } catch (error) {
+//         console.error("Error fetching token overview:", error);
+//         throw error;
+//     }
+// }
+
+// export interface TrendingToken {
+//     address: string;
+//     decimals: number;
+//     liquidity: number;
+//     logoURI: string;
+//     name: string;
+//     symbol: string;
+//     volume24hUSD: number;
+//     rank: number;
+//     price: number;
+// }
+
+// export interface TrendingTokensResponse {
+//     updateUnixTime: number;
+//     updateTime: string;
+//     tokens: TrendingToken[];
+//     total: number;
+// }
+
+export interface SerperNewsResponse {
+    searchParameters: SearchParameters;
+    news: News[];
+    credits: number;
+}
+
+export interface SearchParameters {
+    q: string;
+    type: string;
+    tbs: string;
+    engine: string;
+}
+
+export interface News {
+    title: string;
+    link: string;
+    snippet: string;
+    date: string;
+    source: string;
+    imageUrl: string;
+    position: number;
+}
+
+export async function fetchSerperNews(
+    q: string,
+    apiKey?: string,
+    cache?: {
+        get: (key: string) => any;
+        set: (key: string, value: any) => void;
+    },
+    limit: number = 20
+): Promise<SerperNewsResponse> {
+    try {
+        // Check cache first if provided
+        if (cache) {
+            const cacheKey = `cNews_${limit}`;
+            const cachedData = cache.get(cacheKey);
+            if (cachedData) {
+                console.log(`Returning cached news data`);
+                return cachedData;
+            }
+        }
+
+        const query = JSON.stringify({
+            q: q,
+            tbs: "qdr:d",
+        });
+        const config = {
+            method: "POST",
+            headers: {
+                "X-API-KEY": "b0c75fc1c24744969d7f06e59414eaef43baf8e0",
+                "Content-Type": "application/json",
+            },
+            body: query,
+        };
+        const response = await fetch(`https://google.serper.dev/news`, config);
+
+        if (!response.ok) {
+            const errorText = await response.text();
+            throw new Error(
+                `HTTP error! Status: ${response.status}, Message: ${errorText}`
+            );
+        }
+
+        const data = await response.json();
+        if (!data.news) {
+            throw new Error("Failed to fetch latest news data");
+        }
+
+        // Cache the response if cache is provided
+        if (cache) {
+            const cacheKey = `cNews_${limit}`;
+            cache.set(cacheKey, data.data);
+        }
+
+        return data;
+    } catch (error) {
+        console.error("Error fetching news data:", error);
+        throw error;
+    }
+}
diff --git a/packages/plugin-crypto-news/tsconfig.json b/packages/plugin-crypto-news/tsconfig.json
new file mode 100644
index 00000000000..18c600eec05
--- /dev/null
+++ b/packages/plugin-crypto-news/tsconfig.json
@@ -0,0 +1,13 @@
+{
+    "extends": "../core/tsconfig.json",
+    "compilerOptions": {
+        "outDir": "dist",
+        "rootDir": "src",
+        "types": [
+            "node"
+        ]
+    },
+    "include": [
+        "src/**/*.ts",
+    ]
+}
\ No newline at end of file
diff --git a/packages/plugin-crypto-news/tsup.config.ts b/packages/plugin-crypto-news/tsup.config.ts
new file mode 100644
index 00000000000..0efba439d76
--- /dev/null
+++ b/packages/plugin-crypto-news/tsup.config.ts
@@ -0,0 +1,23 @@
+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",
+        "safe-buffer",
+        "zod",
+        // Add other modules you want to externalize
+    ],
+});
+
diff --git a/packages/plugin-market-analisys/src/index.ts b/packages/plugin-market-analisys/src/index.ts
index dc47fbdc506..7a452296e19 100644
--- a/packages/plugin-market-analisys/src/index.ts
+++ b/packages/plugin-market-analisys/src/index.ts
@@ -1,11 +1,11 @@
 import { Plugin } from "@elizaos/core";
 import { getTokenOverviewAction } from "./actions/tokenOverview";
-import { twitterTrendingMarketData } from "./providers/twitterTrendingMarketData";
+//import { twitterTrendingMarketData } from "./providers/twitterTrendingMarketData";
 
 export const marketAnalisysPlugin: Plugin = {
     name: "market-analisys",
     description: "Provides market analisys capabilities",
     actions: [getTokenOverviewAction],
-    providers: [twitterTrendingMarketData],
+    providers: [],
     evaluators: [],
-};
\ No newline at end of file
+};
diff --git a/packages/plugin-market-analisys/src/providers/twitterTrendingMarketData.ts b/packages/plugin-market-analisys/src/providers/twitterTrendingMarketData.ts
index 55d9ee320d4..cfd7f51fb77 100644
--- a/packages/plugin-market-analisys/src/providers/twitterTrendingMarketData.ts
+++ b/packages/plugin-market-analisys/src/providers/twitterTrendingMarketData.ts
@@ -1,5 +1,5 @@
 import { elizaLogger, Provider } from "@elizaos/core";
-import { fetchTrendingTokens, fetchTokenOverview } from "../utils/birdeye";
+import { fetchTokenOverview, fetchTrendingTokens } from "../utils/birdeye";
 
 interface FormattedMarketData {
     symbol: string;
@@ -54,7 +54,9 @@ export const twitterTrendingMarketData: Provider = {
                 runtime.character.settings.secrets.BIRDEYE_API_KEY
             );
 
-            const randomIndex = Math.floor(Math.random() * Math.min(10, trendingTokens.tokens.length));
+            const randomIndex = Math.floor(
+                Math.random() * Math.min(10, trendingTokens.tokens.length)
+            );
             const selectedToken = trendingTokens.tokens[randomIndex];
 
             const tokenData = await fetchTokenOverview(
@@ -66,7 +68,9 @@ export const twitterTrendingMarketData: Provider = {
                 symbol: tokenData.symbol,
                 name: tokenData.name,
                 price: formatNumber(tokenData.price),
-                priceChange24h: formatPercentage(tokenData.priceChange24hPercent),
+                priceChange24h: formatPercentage(
+                    tokenData.priceChange24hPercent
+                ),
                 priceChange1h: formatPercentage(tokenData.priceChange1hPercent),
                 volume24h: formatNumber(tokenData.v24hUSD),
                 volume1h: formatNumber(tokenData.v1hUSD),
@@ -104,10 +108,12 @@ export const twitterTrendingMarketData: Provider = {
             elizaLogger.log(report);
 
             return report;
-
         } catch (error) {
-            console.error("Error in twitterTrendingMarketData provider:", error);
+            console.error(
+                "Error in twitterTrendingMarketData provider:",
+                error
+            );
             return "";
         }
-    }
-};
\ No newline at end of file
+    },
+};
diff --git a/packages/plugin-market-analisys/src/utils/birdeye.ts b/packages/plugin-market-analisys/src/utils/birdeye.ts
index 5383f6fe301..0d1620ae00a 100644
--- a/packages/plugin-market-analisys/src/utils/birdeye.ts
+++ b/packages/plugin-market-analisys/src/utils/birdeye.ts
@@ -1,174 +1,182 @@
 export interface TokenOverviewResponse {
-  address: string;
-  decimals: number;
-  symbol: string;
-  name: string;
-  extensions: {
-    coingeckoId: string | null;
-    website: string | null;
-    telegram: string | null;
-    twitter: string | null;
-    description: string | null;
-    discord: string | null;
-    medium: string | null;
-  };
-  logoURI: string;
-  liquidity: number;
-  lastTradeUnixTime: number;
-  lastTradeHumanTime: string;
-  price: number;
-  supply: number;
-  mc: number;
-  circulatingSupply: number;
-  realMc: number;
-  holder: number;
-  // Price changes
-  priceChange24hPercent: number;
-  priceChange12hPercent: number;
-  priceChange8hPercent: number;
-  priceChange4hPercent: number;
-  priceChange2hPercent: number;
-  priceChange1hPercent: number;
-  priceChange30mPercent: number;
-  // Volume data
-  v24hUSD: number;
-  v12hUSD: number;
-  v8hUSD: number;
-  v4hUSD: number;
-  v2hUSD: number;
-  v1hUSD: number;
-  v30mUSD: number;
-  // Unique wallets
-  uniqueWallet24h: number;
-  uniqueWallet12h: number;
-  uniqueWallet8h: number;
-  uniqueWallet4h: number;
-  uniqueWallet2h: number;
-  uniqueWallet1h: number;
-  uniqueWallet30m: number;
+    address: string;
+    decimals: number;
+    symbol: string;
+    name: string;
+    extensions: {
+        coingeckoId: string | null;
+        website: string | null;
+        telegram: string | null;
+        twitter: string | null;
+        description: string | null;
+        discord: string | null;
+        medium: string | null;
+    };
+    logoURI: string;
+    liquidity: number;
+    lastTradeUnixTime: number;
+    lastTradeHumanTime: string;
+    price: number;
+    supply: number;
+    mc: number;
+    circulatingSupply: number;
+    realMc: number;
+    holder: number;
+    // Price changes
+    priceChange24hPercent: number;
+    priceChange12hPercent: number;
+    priceChange8hPercent: number;
+    priceChange4hPercent: number;
+    priceChange2hPercent: number;
+    priceChange1hPercent: number;
+    priceChange30mPercent: number;
+    // Volume data
+    v24hUSD: number;
+    v12hUSD: number;
+    v8hUSD: number;
+    v4hUSD: number;
+    v2hUSD: number;
+    v1hUSD: number;
+    v30mUSD: number;
+    // Unique wallets
+    uniqueWallet24h: number;
+    uniqueWallet12h: number;
+    uniqueWallet8h: number;
+    uniqueWallet4h: number;
+    uniqueWallet2h: number;
+    uniqueWallet1h: number;
+    uniqueWallet30m: number;
 }
 
 export interface BirdeyeApiError {
-  success: false;
-  error: string;
+    success: false;
+    error: string;
 }
 
 export async function fetchTokenOverview(
-  tokenAddress: string,
-  apiKey?: string,
-  cache?: { get: (key: string) => any; set: (key: string, value: any) => void },
-): Promise<TokenOverviewResponse> {
-  try {
-    // Check cache first if provided
-    if (cache) {
-      const cacheKey = `token_overview_${tokenAddress}`;
-      const cachedData = cache.get(cacheKey);
-      if (cachedData) {
-        console.log(`Returning cached token overview for ${tokenAddress}`);
-        return cachedData;
-      }
-    }
-
-    const response = await fetch(
-      `https://public-api.birdeye.so/defi/token_overview?address=${tokenAddress}`,
-      {
-        method: "GET",
-        headers: {
-          "accept": "application/json",
-          "x-api-key": apiKey || "",
-        },
-      }
-    );
-
-    if (!response.ok) {
-      throw new Error(`HTTP error! status: ${response.status}`);
+    tokenAddress: string,
+    apiKey?: string,
+    cache?: {
+        get: (key: string) => any;
+        set: (key: string, value: any) => void;
     }
-
-    const data = await response.json();
-
-    if (!data.success || !data.data) {
-      throw new Error("Failed to fetch token overview data");
-    }
-
-    // Cache the response if cache is provided
-    if (cache) {
-      const cacheKey = `token_overview_${tokenAddress}`;
-      cache.set(cacheKey, data.data);
+): Promise<TokenOverviewResponse> {
+    try {
+        // Check cache first if provided
+        if (cache) {
+            const cacheKey = `token_overview_${tokenAddress}`;
+            const cachedData = cache.get(cacheKey);
+            if (cachedData) {
+                console.log(
+                    `Returning cached token overview for ${tokenAddress}`
+                );
+                return cachedData;
+            }
+        }
+
+        const response = await fetch(
+            `https://public-api.birdeye.so/defi/token_overview?address=${tokenAddress}`,
+            {
+                method: "GET",
+                headers: {
+                    accept: "application/json",
+                    "x-api-key": apiKey || "",
+                },
+            }
+        );
+
+        if (!response.ok) {
+            throw new Error(`HTTP error! status: ${response.status}`);
+        }
+
+        const data = await response.json();
+
+        if (!data.success || !data.data) {
+            throw new Error("Failed to fetch token overview data");
+        }
+
+        // Cache the response if cache is provided
+        if (cache) {
+            const cacheKey = `token_overview_${tokenAddress}`;
+            cache.set(cacheKey, data.data);
+        }
+
+        return data.data;
+    } catch (error) {
+        console.error("Error fetching token overview:", error);
+        throw error;
     }
-
-    return data.data;
-  } catch (error) {
-    console.error("Error fetching token overview:", error);
-    throw error;
-  }
 }
 
 export interface TrendingToken {
-  address: string;
-  decimals: number;
-  liquidity: number;
-  logoURI: string;
-  name: string;
-  symbol: string;
-  volume24hUSD: number;
-  rank: number;
-  price: number;
+    address: string;
+    decimals: number;
+    liquidity: number;
+    logoURI: string;
+    name: string;
+    symbol: string;
+    volume24hUSD: number;
+    rank: number;
+    price: number;
 }
 
 export interface TrendingTokensResponse {
-  updateUnixTime: number;
-  updateTime: string;
-  tokens: TrendingToken[];
-  total: number;
+    updateUnixTime: number;
+    updateTime: string;
+    tokens: TrendingToken[];
+    total: number;
 }
 
 export async function fetchTrendingTokens(
-  apiKey?: string,
-  cache?: { get: (key: string) => any; set: (key: string, value: any) => void },
-  limit: number = 20
+    apiKey?: string,
+    cache?: {
+        get: (key: string) => any;
+        set: (key: string, value: any) => void;
+    },
+    limit: number = 20
 ): Promise<TrendingTokensResponse> {
-  try {
-    // Check cache first if provided
-    if (cache) {
-      const cacheKey = `trending_tokens_${limit}`;
-      const cachedData = cache.get(cacheKey);
-      if (cachedData) {
-        console.log(`Returning cached trending tokens`);
-        return cachedData;
-      }
+    try {
+        // Check cache first if provided
+        if (cache) {
+            const cacheKey = `trending_tokens_${limit}`;
+            const cachedData = cache.get(cacheKey);
+            if (cachedData) {
+                console.log(`Returning cached trending tokens`);
+                return cachedData;
+            }
+        }
+
+        const response = await fetch(
+            `https://public-api.birdeye.so/defi/token_trending?sort_by=rank&sort_type=asc&offset=0&limit=${limit}`,
+            {
+                method: "GET",
+                headers: {
+                    accept: "application/json",
+                    "x-api-key": apiKey || "",
+                    "x-chain": "sui",
+                },
+            }
+        );
+
+        if (!response.ok) {
+            throw new Error(`HTTP error! status: ${response.status}`);
+        }
+
+        const data = await response.json();
+
+        if (!data.success || !data.data) {
+            throw new Error("Failed to fetch trending tokens data");
+        }
+
+        // Cache the response if cache is provided
+        if (cache) {
+            const cacheKey = `trending_tokens_${limit}`;
+            cache.set(cacheKey, data.data);
+        }
+
+        return data.data;
+    } catch (error) {
+        console.error("Error fetching trending tokens:", error);
+        throw error;
     }
-
-    const response = await fetch(
-      `https://public-api.birdeye.so/defi/token_trending?sort_by=rank&sort_type=asc&offset=0&limit=${limit}`,
-      {
-        method: "GET",
-        headers: {
-          "accept": "application/json",
-          "x-api-key": apiKey || "",
-          "x-chain": "solana"
-        },
-      }
-    );
-
-    if (!response.ok) {
-      throw new Error(`HTTP error! status: ${response.status}`);
-    }
-
-    const data = await response.json();
-
-    if (!data.success || !data.data) {
-      throw new Error("Failed to fetch trending tokens data");
-    }
-
-    // Cache the response if cache is provided
-    if (cache) {
-      const cacheKey = `trending_tokens_${limit}`;
-      cache.set(cacheKey, data.data);
-    }
-
-    return data.data;
-  } catch (error) {
-    console.error("Error fetching trending tokens:", error);
-    throw error;
-  }
-}
\ No newline at end of file
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ddcef1406ba..29ef3a83b24 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -249,6 +249,9 @@ importers:
       '@ethosdao/plugin-market-analisys':
         specifier: workspace:*
         version: link:../packages/plugin-market-analisys
+      '@srise/plugin-crypto-news':
+        specifier: workspace:*
+        version: link:../packages/plugin-crypto-news
       readline:
         specifier: 1.3.0
         version: 1.3.0
@@ -1163,6 +1166,22 @@ importers:
         specifier: 7.1.0
         version: 7.1.0
 
+  packages/plugin-crypto-news:
+    dependencies:
+      '@elizaos/core':
+        specifier: workspace:*
+        version: link:../core
+    devDependencies:
+      '@types/node':
+        specifier: ^20.0.0
+        version: 20.17.9
+      tsup:
+        specifier: 8.3.5
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+      tsx:
+        specifier: ^4.19.2
+        version: 4.19.2
+
   packages/plugin-echochambers:
     dependencies:
       '@elizaos/core':
@@ -33718,7 +33737,7 @@ snapshots:
 
   extract-zip@2.0.1:
     dependencies:
-      debug: 4.3.4
+      debug: 4.4.0(supports-color@8.1.1)
       get-stream: 5.2.0
       yauzl: 2.10.0
     optionalDependencies:

From ca682b32e22240d502c21f80a9d3ea2c048195f2 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Mon, 13 Jan 2025 12:49:10 +0700
Subject: [PATCH 05/58] chainCatcher

---
 packages/client-twitter/src/post.ts           |   2 +-
 packages/plugin-crypto-news/package.json      |   3 +-
 .../src/providers/cryptoNewsData.ts           |  33 ++--
 .../src/utils/chainCatcher.ts                 |  58 ++++++
 pnpm-lock.yaml                                | 183 +++++++++++++++---
 5 files changed, 236 insertions(+), 43 deletions(-)
 create mode 100644 packages/plugin-crypto-news/src/utils/chainCatcher.ts

diff --git a/packages/client-twitter/src/post.ts b/packages/client-twitter/src/post.ts
index 4298bc90744..6ac094c4e1d 100644
--- a/packages/client-twitter/src/post.ts
+++ b/packages/client-twitter/src/post.ts
@@ -35,7 +35,7 @@ const twitterPostTemplate = `
 
 # Task: Generate a post in the voice and style and perspective of {{agentName}} @{{twitterUserName}}.
 Write a post that is {{adjective}} about {{topic}} (without mentioning {{topic}} directly), from the perspective of {{agentName}}. Do not add commentary or acknowledge this request, just write the post.
-Your response should include the summary of the # NEWS above
+Your response must include the summary of the # NEWS above or pick any single news for your reference.
 Your response should be 1, 2, or 3 sentences (choose the length at random).
 Your response should not contain any questions. Brief, concise statements only. The total character count MUST be less than {{maxTweetLength}}. No emojis. Use \\n\\n (double spaces) between statements if there are multiple statements in your response.`;
 
diff --git a/packages/plugin-crypto-news/package.json b/packages/plugin-crypto-news/package.json
index 3d1d97081a9..3ff91e03223 100644
--- a/packages/plugin-crypto-news/package.json
+++ b/packages/plugin-crypto-news/package.json
@@ -6,7 +6,8 @@
     "author": "metaanomaly",
     "types": "dist/index.d.ts",
     "dependencies": {
-        "@elizaos/core": "workspace:*"
+        "@elizaos/core": "workspace:*",
+        "rss-to-json": "^2.1.1"
     },
     "devDependencies": {
         "@types/node": "^20.0.0",
diff --git a/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts b/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
index a244d91d64f..49270caeb27 100644
--- a/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
+++ b/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
@@ -1,5 +1,5 @@
 import { elizaLogger, Provider } from "@elizaos/core";
-import { fetchSerperNews, SerperNewsResponse } from "../utils/serper";
+import { ChainCatcherResponse, fetchChainCatcher } from "../utils/chainCatcher";
 
 // interface FormattedMarketData {
 //     symbol: string;
@@ -51,26 +51,31 @@ export const cryptoNewsData: Provider = {
 
         try {
             // fetch several times
-            const cryptoNews: SerperNewsResponse =
-                await fetchSerperNews("crypto");
-            const suiNews: SerperNewsResponse = await fetchSerperNews("$SUI");
+            const chainCatcher: ChainCatcherResponse =
+                await fetchChainCatcher();
+
+            // const cryptoNews: SerperNewsResponse =
+            //     await fetchSerperNews("crypto");
+            // const suiNews: SerperNewsResponse = await fetchSerperNews("$SUI");
             let output = "# NEWS\n\n";
-            cryptoNews.news.forEach((article) => {
-                output += `- ${article.title}\n${article.snippet}\n\n`;
-            });
-            suiNews.news.forEach((article) => {
-                output += `- ${article.title}\n${article.snippet}\n\n`;
+
+            chainCatcher.items.forEach((article) => {
+                output += `- ${article.title}\n${article.content}\n\n`;
             });
-            output += `# END NEWS\n\n`;
+
+            // cryptoNews.news.forEach((article) => {
+            //     output += `- ${article.title}\n${article.snippet}\n\n`;
+            // });
+            // suiNews.news.forEach((article) => {
+            //     output += `- ${article.title}\n${article.snippet}\n\n`;
+            // });
+            output += `# News above are in Chinese Language, you have to translate it to ENGLISH \n\n# END NEWS\n\n`;
 
             elizaLogger.log(output);
 
             return output;
         } catch (error) {
-            console.error(
-                "Error in twitterTrendingMarketData provider:",
-                error
-            );
+            console.error("Error in fetching news provider:", error);
             return "";
         }
     },
diff --git a/packages/plugin-crypto-news/src/utils/chainCatcher.ts b/packages/plugin-crypto-news/src/utils/chainCatcher.ts
new file mode 100644
index 00000000000..cd73157f5fc
--- /dev/null
+++ b/packages/plugin-crypto-news/src/utils/chainCatcher.ts
@@ -0,0 +1,58 @@
+export interface ChainCatcherItem {
+    title: string;
+    pubDate: string;
+    link: string;
+    guid: string;
+    thumbnail: string;
+    content: string;
+    description: string;
+    enclosure: any;
+    categories: any[];
+}
+export interface ChainCatcherFeed {
+    url: string;
+    title: string;
+    link: string;
+    author: string;
+    description: string;
+    image: string;
+}
+export interface ChainCatcherResponse {
+    status: string;
+    feed: ChainCatcherFeed;
+    items: ChainCatcherItem[];
+}
+
+export async function fetchChainCatcher(): Promise<ChainCatcherResponse> {
+    try {
+        // Check cache first if provided
+
+        const config = {
+            method: "GET",
+            headers: {
+                "Content-Type": "application/json",
+            },
+        };
+        const response = await fetch(
+            `https://api.rss2json.com/v1/api.json?rss_url=https%3A%2F%2Fwww.chaincatcher.com%2Frss%2Fclist`,
+            config
+        );
+
+        if (!response.ok) {
+            const errorText = await response.text();
+            throw new Error(
+                `HTTP error! Status: ${response.status}, Message: ${errorText}`
+            );
+        }
+
+        const data = await response.json();
+        if (!data.status || data.status !== "ok") {
+            throw new Error("Failed to fetch latest news data");
+        }
+
+        return data;
+    } catch (error) {
+        console.error("Error fetching news data:", error);
+        throw error;
+    }
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 29ef3a83b24..15ad946900c 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -25,7 +25,7 @@ importers:
         version: 0.2.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)
       '@glacier-network/elizaos-adapter':
         specifier: 0.0.1-alpha.1
-        version: 0.0.1-alpha.1(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.29(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(bufferutil@4.0.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)(utf-8-validate@5.0.10)
+        version: 0.0.1-alpha.1(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.29(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(bufferutil@4.0.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)(utf-8-validate@5.0.10)
       '@vitest/eslint-plugin':
         specifier: 1.0.1
         version: 1.0.1(@typescript-eslint/utils@8.16.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.10.5)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
@@ -1124,7 +1124,7 @@ importers:
     dependencies:
       '@elizaos/core':
         specifier: ^0.1.7
-        version: 0.1.7(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.29(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)
+        version: 0.1.8(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.29(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)
       axios:
         specifier: ^1.6.7
         version: 1.7.9(debug@4.4.0)
@@ -1171,6 +1171,9 @@ importers:
       '@elizaos/core':
         specifier: workspace:*
         version: link:../core
+      rss-to-json:
+        specifier: ^2.1.1
+        version: 2.1.1
     devDependencies:
       '@types/node':
         specifier: ^20.0.0
@@ -1334,7 +1337,7 @@ importers:
     dependencies:
       '@elizaos/core':
         specifier: ^0.1.7
-        version: 0.1.7(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.29(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)
+        version: 0.1.8(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.29(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)
       tsup:
         specifier: ^8.3.5
         version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
@@ -2086,6 +2089,12 @@ packages:
     peerDependencies:
       zod: ^3.0.0
 
+  '@ai-sdk/mistral@1.0.8':
+    resolution: {integrity: sha512-jWH4HHK4cYvXaac9UprMiSUBwOVb3e0hpbiL1wPb+2bF75pqQQKFQWQyfmoLFrh1oXlMOGn+B6IzwUDSFHLanA==}
+    engines: {node: '>=18'}
+    peerDependencies:
+      zod: ^3.0.0
+
   '@ai-sdk/openai@1.0.5':
     resolution: {integrity: sha512-JDCPBJQx9o3LgboBPaA55v+9EZ7Vm/ozy0+J5DIr2jJF8WETjeCnigdxixyzEy/Od4wX871jOTSuGffwNIi0kA==}
     engines: {node: '>=18'}
@@ -2119,6 +2128,15 @@ packages:
       zod:
         optional: true
 
+  '@ai-sdk/provider-utils@2.0.7':
+    resolution: {integrity: sha512-4sfPlKEALHPXLmMFcPlYksst3sWBJXmCDZpIBJisRrmwGG6Nn3mq0N1Zu/nZaGcrWZoOY+HT2Wbxla1oTElYHQ==}
+    engines: {node: '>=18'}
+    peerDependencies:
+      zod: ^3.0.0
+    peerDependenciesMeta:
+      zod:
+        optional: true
+
   '@ai-sdk/provider@0.0.24':
     resolution: {integrity: sha512-XMsNGJdGO+L0cxhhegtqZ8+T6nn4EoShS819OvCgI2kLbYTIvk0GWFGD0AXJmxkxs3DrpsJxKAFukFR7bvTkgQ==}
     engines: {node: '>=18'}
@@ -2131,6 +2149,10 @@ packages:
     resolution: {integrity: sha512-mV+3iNDkzUsZ0pR2jG0sVzU6xtQY5DtSCBy3JFycLp6PwjyLw/iodfL3MwdmMCRJWgs3dadcHejRnMvF9nGTBg==}
     engines: {node: '>=18'}
 
+  '@ai-sdk/provider@1.0.4':
+    resolution: {integrity: sha512-lJi5zwDosvvZER3e/pB8lj1MN3o3S7zJliQq56BRr4e9V3fcRyFtwP0JRxaRS5vHYX3OJ154VezVoQNrk0eaKw==}
+    engines: {node: '>=18'}
+
   '@ai-sdk/react@0.0.70':
     resolution: {integrity: sha512-GnwbtjW4/4z7MleLiW+TOZC2M29eCg1tOUpuEiYFMmFNZK8mkrqM0PFZMo6UsYeUYMWqEOOcPOU9OQVJMJh7IQ==}
     engines: {node: '>=18'}
@@ -3955,6 +3977,9 @@ packages:
   '@elizaos/core@0.1.7':
     resolution: {integrity: sha512-oorLGxE0LAdboNFhf62erTxu0+woNHZn98at/X3caDX34Fxr+d1cRQ6/W34WPAOIlv1tg3Q0ZArcpCCOaDTcMw==}
 
+  '@elizaos/core@0.1.8':
+    resolution: {integrity: sha512-nQT5uQTQVTZJ3CrhVkK4dRdP/RuBMiOv/u3JZvMJGhY45z0Gy0gY27NEn/BBlJ4Ymt/SmqtXOul/x2hOeQen4Q==}
+
   '@emnapi/core@1.3.1':
     resolution: {integrity: sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==}
 
@@ -11681,6 +11706,10 @@ packages:
     resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==}
     hasBin: true
 
+  fast-xml-parser@4.5.1:
+    resolution: {integrity: sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w==}
+    hasBin: true
+
   fastembed@1.14.1:
     resolution: {integrity: sha512-Y14v+FWZwjNUpQ7mRGYu4N5yF+hZkF7zqzPWzzLbwdIEtYsHy0DSpiVJ+Fg6Oi1fQjrBKASQt0hdSMSjw1/Wtw==}
 
@@ -13589,8 +13618,8 @@ packages:
     resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==}
     engines: {node: '>=18'}
 
-  katex@0.16.19:
-    resolution: {integrity: sha512-3IA6DYVhxhBabjSLTNO9S4+OliA3Qvb8pBQXMfC4WxXJgLwZgnfDl0BmB4z6nBMdznBsZ+CGM8DrGZ5hcguDZg==}
+  katex@0.16.20:
+    resolution: {integrity: sha512-jjuLaMGD/7P8jUTpdKhA9IoqnH+yMFB3sdAFtq5QdAqeP2PjiSbnC3EaguKPNtv6dXXanHxp1ckwvF4a86LBig==}
     hasBin: true
 
   keccak@3.0.2:
@@ -14550,8 +14579,8 @@ packages:
       vue-tsc:
         optional: true
 
-  mlly@1.7.3:
-    resolution: {integrity: sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==}
+  mlly@1.7.4:
+    resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==}
 
   mnemonist@0.38.5:
     resolution: {integrity: sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==}
@@ -15439,6 +15468,9 @@ packages:
   pathe@1.1.2:
     resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
 
+  pathe@2.0.1:
+    resolution: {integrity: sha512-6jpjMpOth5S9ITVu5clZ7NOgHNsv5vRQdheL9ztp2vZmM6fRbLvyua1tiBIL4lk8SAe3ARzeXEly6siXCjDHDw==}
+
   pathval@2.0.0:
     resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
     engines: {node: '>= 14.16'}
@@ -17147,6 +17179,9 @@ packages:
   rrweb-cssom@0.8.0:
     resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==}
 
+  rss-to-json@2.1.1:
+    resolution: {integrity: sha512-xXf93iDpOadPWMtAUA/bT1iyifscdbIdtAQBGRbXLfnDQ5Z4tWpmbrAhV3p54nWxwm4joGIDeUrj6CLGm8BI3A==}
+
   rtl-detect@1.1.2:
     resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==}
 
@@ -17973,8 +18008,11 @@ packages:
   tar-fs@2.1.1:
     resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==}
 
-  tar-fs@3.0.6:
-    resolution: {integrity: sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==}
+  tar-fs@2.1.2:
+    resolution: {integrity: sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==}
+
+  tar-fs@3.0.7:
+    resolution: {integrity: sha512-2sAfoF/zw/2n8goUGnGRZTWTD4INtnScPZvyYBI6BDlJ3wNR5o1dw03EfBvuhG6GBLvC4J+C7j7W+64aZ0ogQA==}
 
   tar-stream@2.2.0:
     resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
@@ -19759,6 +19797,12 @@ snapshots:
       '@ai-sdk/provider-utils': 1.0.22(zod@3.23.8)
       zod: 3.23.8
 
+  '@ai-sdk/mistral@1.0.8(zod@3.23.8)':
+    dependencies:
+      '@ai-sdk/provider': 1.0.4
+      '@ai-sdk/provider-utils': 2.0.7(zod@3.23.8)
+      zod: 3.23.8
+
   '@ai-sdk/openai@1.0.5(zod@3.23.8)':
     dependencies:
       '@ai-sdk/provider': 1.0.1
@@ -19792,6 +19836,15 @@ snapshots:
     optionalDependencies:
       zod: 3.23.8
 
+  '@ai-sdk/provider-utils@2.0.7(zod@3.23.8)':
+    dependencies:
+      '@ai-sdk/provider': 1.0.4
+      eventsource-parser: 3.0.0
+      nanoid: 3.3.8
+      secure-json-parse: 2.7.0
+    optionalDependencies:
+      zod: 3.23.8
+
   '@ai-sdk/provider@0.0.24':
     dependencies:
       json-schema: 0.4.0
@@ -19804,6 +19857,10 @@ snapshots:
     dependencies:
       json-schema: 0.4.0
 
+  '@ai-sdk/provider@1.0.4':
+    dependencies:
+      json-schema: 0.4.0
+
   '@ai-sdk/react@0.0.70(react@18.3.1)(zod@3.23.8)':
     dependencies:
       '@ai-sdk/provider-utils': 1.0.22(zod@3.23.8)
@@ -23192,12 +23249,64 @@ snapshots:
       - typeorm
       - vue
 
-  '@elizaos/core@0.1.7(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.29(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)':
+  '@elizaos/core@0.1.8(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.29(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)':
+    dependencies:
+      '@ai-sdk/anthropic': 0.0.56(zod@3.23.8)
+      '@ai-sdk/google': 0.0.55(zod@3.23.8)
+      '@ai-sdk/google-vertex': 0.0.43(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(zod@3.23.8)
+      '@ai-sdk/groq': 0.0.3(zod@3.23.8)
+      '@ai-sdk/mistral': 1.0.8(zod@3.23.8)
+      '@ai-sdk/openai': 1.0.5(zod@3.23.8)
+      '@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.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.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
+      gaxios: 6.7.1(encoding@0.1.13)
+      glob: 11.0.0
+      handlebars: 4.7.8
+      js-sha1: 0.7.0
+      js-tiktoken: 1.0.15
+      langchain: 0.3.6(@langchain/core@0.3.29(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))
+      ollama-ai-provider: 0.16.1(zod@3.23.8)
+      openai: 4.73.0(encoding@0.1.13)(zod@3.23.8)
+      tinyld: 1.3.4
+      together-ai: 0.7.0(encoding@0.1.13)
+      unique-names-generator: 4.7.1
+      uuid: 11.0.3
+      zod: 3.23.8
+    transitivePeerDependencies:
+      - '@google-cloud/vertexai'
+      - '@langchain/anthropic'
+      - '@langchain/aws'
+      - '@langchain/cohere'
+      - '@langchain/core'
+      - '@langchain/google-genai'
+      - '@langchain/google-vertexai'
+      - '@langchain/groq'
+      - '@langchain/mistralai'
+      - '@langchain/ollama'
+      - axios
+      - cheerio
+      - encoding
+      - peggy
+      - react
+      - solid-js
+      - sswr
+      - supports-color
+      - svelte
+      - typeorm
+      - vue
+
+  '@elizaos/core@0.1.8(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.29(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)':
     dependencies:
       '@ai-sdk/anthropic': 0.0.56(zod@3.23.8)
       '@ai-sdk/google': 0.0.55(zod@3.23.8)
       '@ai-sdk/google-vertex': 0.0.43(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(zod@3.23.8)
       '@ai-sdk/groq': 0.0.3(zod@3.23.8)
+      '@ai-sdk/mistral': 1.0.8(zod@3.23.8)
       '@ai-sdk/openai': 1.0.5(zod@3.23.8)
       '@anthropic-ai/sdk': 0.30.1(encoding@0.1.13)
       '@fal-ai/client': 1.2.0
@@ -24142,9 +24251,9 @@ snapshots:
       - debug
       - utf-8-validate
 
-  '@glacier-network/elizaos-adapter@0.0.1-alpha.1(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.29(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(bufferutil@4.0.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)(utf-8-validate@5.0.10)':
+  '@glacier-network/elizaos-adapter@0.0.1-alpha.1(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.29(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(bufferutil@4.0.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@elizaos/core': 0.1.7(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.29(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)
+      '@elizaos/core': 0.1.7(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.29(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(axios@1.7.9)(encoding@0.1.13)(react@18.3.1)(sswr@2.1.0(svelte@5.17.3))(svelte@5.17.3)
       '@glacier-network/client': 0.2.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)
       '@tavily/core': 0.0.2
       dotenv: 16.4.7
@@ -24302,7 +24411,7 @@ snapshots:
       globals: 15.14.0
       kolorist: 1.8.0
       local-pkg: 0.5.1
-      mlly: 1.7.3
+      mlly: 1.7.4
     transitivePeerDependencies:
       - supports-color
 
@@ -30345,7 +30454,7 @@ snapshots:
       globby: 14.0.2
       magic-string: 0.30.17
       mdbox: 0.1.1
-      mlly: 1.7.3
+      mlly: 1.7.4
       ofetch: 1.4.1
       pathe: 1.1.2
       perfect-debounce: 1.0.0
@@ -31080,7 +31189,7 @@ snapshots:
       dotenv: 16.4.7
       giget: 1.2.3
       jiti: 2.4.0
-      mlly: 1.7.3
+      mlly: 1.7.4
       ohash: 1.1.4
       pathe: 1.1.2
       perfect-debounce: 1.0.0
@@ -33737,7 +33846,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:
@@ -33787,6 +33896,10 @@ snapshots:
     dependencies:
       strnum: 1.0.5
 
+  fast-xml-parser@4.5.1:
+    dependencies:
+      strnum: 1.0.5
+
   fastembed@1.14.1:
     dependencies:
       '@anush008/tokenizers': 0.0.0
@@ -36503,7 +36616,7 @@ snapshots:
 
   jwt-decode@4.0.0: {}
 
-  katex@0.16.19:
+  katex@0.16.20:
     dependencies:
       commander: 8.3.0
 
@@ -36872,7 +36985,7 @@ snapshots:
 
   local-pkg@0.5.1:
     dependencies:
-      mlly: 1.7.3
+      mlly: 1.7.4
       pkg-types: 1.3.0
 
   locate-character@3.0.0: {}
@@ -37406,7 +37519,7 @@ snapshots:
       dagre-d3-es: 7.0.11
       dayjs: 1.11.13
       dompurify: 3.2.2
-      katex: 0.16.19
+      katex: 0.16.20
       khroma: 2.1.0
       lodash-es: 4.17.21
       marked: 13.0.3
@@ -37893,7 +38006,7 @@ snapshots:
       defu: 6.1.4
       esbuild: 0.24.2
       jiti: 1.21.7
-      mlly: 1.7.3
+      mlly: 1.7.4
       pathe: 1.1.2
       pkg-types: 1.3.0
       postcss: 8.4.49
@@ -37903,10 +38016,10 @@ snapshots:
     optionalDependencies:
       typescript: 5.7.3
 
-  mlly@1.7.3:
+  mlly@1.7.4:
     dependencies:
       acorn: 8.14.0
-      pathe: 1.1.2
+      pathe: 2.0.1
       pkg-types: 1.3.0
       ufo: 1.5.4
 
@@ -39059,6 +39172,8 @@ snapshots:
 
   pathe@1.1.2: {}
 
+  pathe@2.0.1: {}
+
   pathval@2.0.0: {}
 
   pbkdf2@3.1.2:
@@ -39191,7 +39306,7 @@ snapshots:
   pkg-types@1.3.0:
     dependencies:
       confbox: 0.1.8
-      mlly: 1.7.3
+      mlly: 1.7.4
       pathe: 1.1.2
 
   pkg-up@3.1.0:
@@ -39994,7 +40109,7 @@ snapshots:
       pump: 3.0.2
       rc: 1.2.8
       simple-get: 4.0.1
-      tar-fs: 2.1.1
+      tar-fs: 2.1.2
       tunnel-agent: 0.6.0
 
   prelude-ls@1.2.1: {}
@@ -41042,6 +41157,13 @@ snapshots:
 
   rrweb-cssom@0.8.0: {}
 
+  rss-to-json@2.1.1:
+    dependencies:
+      axios: 1.7.9(debug@4.4.0)
+      fast-xml-parser: 4.5.1
+    transitivePeerDependencies:
+      - debug
+
   rtl-detect@1.1.2: {}
 
   rtlcss@4.3.0:
@@ -41330,7 +41452,7 @@ snapshots:
       prebuild-install: 7.1.2
       semver: 7.6.3
       simple-get: 4.0.1
-      tar-fs: 3.0.6
+      tar-fs: 3.0.7
       tunnel-agent: 0.6.0
 
   sharp@0.33.5:
@@ -42055,7 +42177,14 @@ snapshots:
       pump: 3.0.2
       tar-stream: 2.2.0
 
-  tar-fs@3.0.6:
+  tar-fs@2.1.2:
+    dependencies:
+      chownr: 1.1.4
+      mkdirp-classic: 0.5.3
+      pump: 3.0.2
+      tar-stream: 2.2.0
+
+  tar-fs@3.0.7:
     dependencies:
       pump: 3.0.2
       tar-stream: 3.1.7
@@ -42809,7 +42938,7 @@ snapshots:
       jiti: 1.21.7
       magic-string: 0.30.17
       mkdist: 1.6.0(typescript@5.7.3)
-      mlly: 1.7.3
+      mlly: 1.7.4
       pathe: 1.1.2
       pkg-types: 1.3.0
       pretty-bytes: 6.1.1

From 3029b6cf0a80d6e07664982190fd3cb09ca87fc7 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Mon, 13 Jan 2025 15:07:06 +0700
Subject: [PATCH 06/58] goplus capability

---
 .../client-telegram/src/messageManager.ts     |  31 ++-
 packages/core/src/generation.ts               |  68 ++++--
 packages/core/src/runtime.ts                  |  37 +--
 packages/plugin-goplus/src/actions/scan.ts    | 211 ++++++++++++++++++
 packages/plugin-goplus/src/index.ts           |  15 +-
 .../plugin-goplus/src/lib/GoPlusManage.ts     |  83 +++----
 6 files changed, 350 insertions(+), 95 deletions(-)
 create mode 100644 packages/plugin-goplus/src/actions/scan.ts

diff --git a/packages/client-telegram/src/messageManager.ts b/packages/client-telegram/src/messageManager.ts
index bbf597232d5..4a14e71e479 100644
--- a/packages/client-telegram/src/messageManager.ts
+++ b/packages/client-telegram/src/messageManager.ts
@@ -1,30 +1,37 @@
-import { Message } from "@telegraf/types";
-import { Context, Telegraf } from "telegraf";
-import { composeContext, elizaLogger, ServiceType, composeRandomUser } from "@elizaos/core";
-import { getEmbeddingZeroVector } from "@elizaos/core";
 import {
+    composeContext,
+    composeRandomUser,
     Content,
+    elizaLogger,
+    getEmbeddingZeroVector,
     HandlerCallback,
     IAgentRuntime,
     IImageDescriptionService,
+    Media,
     Memory,
     ModelClass,
+    ServiceType,
     State,
+    stringToUuid,
     UUID,
-    Media,
 } from "@elizaos/core";
-import { stringToUuid } from "@elizaos/core";
+import { Message } from "@telegraf/types";
+import { Context, Telegraf } from "telegraf";
 
-import { generateMessageResponse, generateShouldRespond } from "@elizaos/core";
-import { messageCompletionFooter, shouldRespondFooter } from "@elizaos/core";
+import {
+    generateMessageResponse,
+    generateShouldRespond,
+    messageCompletionFooter,
+    shouldRespondFooter,
+} from "@elizaos/core";
 
-import { cosineSimilarity, escapeMarkdown } from "./utils";
 import {
     MESSAGE_CONSTANTS,
-    TIMING_CONSTANTS,
     RESPONSE_CHANCES,
     TEAM_COORDINATION,
+    TIMING_CONSTANTS,
 } from "./constants";
+import { cosineSimilarity, escapeMarkdown } from "./utils";
 
 import fs from "fs";
 
@@ -1117,6 +1124,10 @@ export class MessageManager {
 
                 // Execute callback to send messages and log memories
                 const responseMessages = await callback(responseContent);
+                // console.log({
+                //     responseMessages,
+                //     responseContent,
+                // });
 
                 // Update state after response
                 state = await this.runtime.updateRecentMessageState(state);
diff --git a/packages/core/src/generation.ts b/packages/core/src/generation.ts
index 570971c357b..600d7862486 100644
--- a/packages/core/src/generation.ts
+++ b/packages/core/src/generation.ts
@@ -13,7 +13,7 @@ import {
     GenerateObjectResult,
 } from "ai";
 import { Buffer } from "buffer";
-import https from 'https';
+import https from "https";
 import { encodingForModel, TiktokenModel } from "js-tiktoken";
 import { RecursiveCharacterTextSplitter } from "langchain/text_splitter";
 import { createOllama } from "ollama-ai-provider";
@@ -342,7 +342,23 @@ export async function generateText({
                     presencePenalty: presence_penalty,
                     experimental_telemetry: experimental_telemetry,
                 });
-
+                // console.log({
+                //     model: openai.languageModel(model),
+                //     prompt: context,
+                //     system:
+                //         runtime.character.system ??
+                //         settings.SYSTEM_PROMPT ??
+                //         undefined,
+                //     tools: tools,
+                //     onStepFinish: onStepFinish,
+                //     maxSteps: maxSteps,
+                //     temperature: temperature,
+                //     maxTokens: max_response_length,
+                //     frequencyPenalty: frequency_penalty,
+                //     presencePenalty: presence_penalty,
+                //     experimental_telemetry: experimental_telemetry,
+                //     openaiResponse,
+                // });
                 response = openaiResponse;
                 elizaLogger.debug("Received response from OpenAI model.");
                 break;
@@ -1506,7 +1522,7 @@ export const generateWebSearch = async (
             searchDepth: "advanced", // "basic"(default) "advanced"
             includeImages: false, // false (default) true
         });
-        console.log(`TVLY RES`,response);
+        console.log(`TVLY RES`, response);
         return response;
     } catch (error) {
         elizaLogger.error("Error:", error);
@@ -1524,45 +1540,59 @@ export const generateSerperSearch = async (
         //const cleanedQuery =  query.replace(/@\S+/g, '');
         //console.log(`CLEANED QUERY`,cleanedQuery)
         const data = JSON.stringify({
-            q: query
+            q: query,
         });
 
         const options = {
-            hostname: 'google.serper.dev',
+            hostname: "google.serper.dev",
             port: 443,
-            path: '/search',
-            method: 'POST',
+            path: "/search",
+            method: "POST",
             headers: {
-                'X-API-KEY': apiKey,
-                'Content-Type': 'application/json',
-                'Content-Length': Buffer.byteLength(data),
-            }
+                "X-API-KEY": apiKey,
+                "Content-Type": "application/json",
+                "Content-Length": Buffer.byteLength(data),
+            },
         };
 
         const sendRequest = (): Promise<SerperSearchResponse> => {
             return new Promise((resolve, reject) => {
                 const req = https.request(options, (res) => {
-                    let body = '';
+                    let body = "";
 
-                    res.on('data', (chunk) => {
+                    res.on("data", (chunk) => {
                         body += chunk;
                     });
 
-                    res.on('end', () => {
-                        if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {
+                    res.on("end", () => {
+                        if (
+                            res.statusCode &&
+                            res.statusCode >= 200 &&
+                            res.statusCode < 300
+                        ) {
                             try {
-                                const parsedData = JSON.parse(body) as SerperSearchResponse;
+                                const parsedData = JSON.parse(
+                                    body
+                                ) as SerperSearchResponse;
                                 resolve(parsedData);
                             } catch (err) {
-                                reject(new Error(`Failed to parse response: ${err}`));
+                                reject(
+                                    new Error(
+                                        `Failed to parse response: ${err}`
+                                    )
+                                );
                             }
                         } else {
-                            reject(new Error(`Request failed with status code: ${res.statusCode}`));
+                            reject(
+                                new Error(
+                                    `Request failed with status code: ${res.statusCode}`
+                                )
+                            );
                         }
                     });
                 });
 
-                req.on('error', (err) => {
+                req.on("error", (err) => {
                     reject(err);
                 });
 
diff --git a/packages/core/src/runtime.ts b/packages/core/src/runtime.ts
index 37bab24adf0..0dad3997008 100644
--- a/packages/core/src/runtime.ts
+++ b/packages/core/src/runtime.ts
@@ -103,8 +103,7 @@ export class AgentRuntime implements IAgentRuntime {
      */
     imageModelProvider: ModelProviderName;
 
-
-     /**
+    /**
      * The model to use for describing images.
      */
     imageVisionModelProvider: ModelProviderName;
@@ -331,14 +330,13 @@ export class AgentRuntime implements IAgentRuntime {
         );
 
         this.imageVisionModelProvider =
-        this.character.imageVisionModelProvider ?? this.modelProvider;
+            this.character.imageVisionModelProvider ?? this.modelProvider;
 
         elizaLogger.info("Selected model provider:", this.modelProvider);
-         elizaLogger.info(
+        elizaLogger.info(
             "Selected image model provider:",
             this.imageVisionModelProvider
-         );
-
+        );
 
         // Validate model provider
         if (!Object.values(ModelProviderName).includes(this.modelProvider)) {
@@ -426,22 +424,27 @@ export class AgentRuntime implements IAgentRuntime {
     }
 
     async stop() {
-      elizaLogger.debug('runtime::stop - character', this.character)
-      // stop services, they don't have a stop function
+        elizaLogger.debug("runtime::stop - character", this.character);
+        // stop services, they don't have a stop function
         // just initialize
 
-      // plugins
+        // plugins
         // have actions, providers, evaluators (no start/stop)
         // services (just initialized), clients
 
-      // client have a start
-      for(const cStr in this.clients) {
-        const c = this.clients[cStr]
-        elizaLogger.log('runtime::stop - requesting', cStr, 'client stop for', this.character.name)
-        c.stop()
-      }
-      // we don't need to unregister with directClient
-      // don't need to worry about knowledge
+        // client have a start
+        for (const cStr in this.clients) {
+            const c = this.clients[cStr];
+            elizaLogger.log(
+                "runtime::stop - requesting",
+                cStr,
+                "client stop for",
+                this.character.name
+            );
+            c.stop();
+        }
+        // we don't need to unregister with directClient
+        // don't need to worry about knowledge
     }
 
     /**
diff --git a/packages/plugin-goplus/src/actions/scan.ts b/packages/plugin-goplus/src/actions/scan.ts
new file mode 100644
index 00000000000..5550abc241a
--- /dev/null
+++ b/packages/plugin-goplus/src/actions/scan.ts
@@ -0,0 +1,211 @@
+import {
+    Action,
+    elizaLogger,
+    generateObjectDeprecated,
+    generateText,
+    HandlerCallback,
+    IAgentRuntime,
+    Memory,
+    ModelClass,
+    State,
+} from "@elizaos/core";
+import { GoPlusManage, GoPlusParamType, GoPlusType } from "../lib/GoPlusManage";
+import { requestPrompt, responsePrompt } from "../templates";
+
+export const scanTokenAction: Action = {
+    name: "TOKEN_SCAN",
+    similes: ["SCAN_TOKEN", "GOPLUS_SCAN"],
+    description: "Perform a token scan by given address.",
+    validate: async (runtime: IAgentRuntime, message: Memory) => {
+        const goplus = !!runtime.getSetting("GOPLUS_API_KEY");
+        return goplus;
+    },
+    handler: async (
+        runtime: IAgentRuntime,
+        message: Memory,
+        state: State,
+        options: any,
+        callback: HandlerCallback
+    ) => {
+        try {
+            elizaLogger.log("check input text", message.content.text);
+            const obj = (await generateObjectDeprecated({
+                runtime: runtime,
+                context: requestPrompt(message.content.text),
+                modelClass: ModelClass.LARGE, // gpt-4o-mini
+            })) as GoPlusParamType;
+
+            elizaLogger.log("check generateObjectDeprecated text", obj);
+            const goPlusManage = new GoPlusManage(
+                runtime.getSetting("GOPLUS_API_KEY")
+            );
+
+            let checkResult: any;
+            switch (obj.type) {
+                case GoPlusType.EVMTOKEN_SECURITY_CHECK:
+                    checkResult = await goPlusManage.tokenSecurity(
+                        obj.network,
+                        obj.token
+                    );
+                    break;
+                case GoPlusType.SOLTOKEN_SECURITY_CHECK:
+                    checkResult =
+                        await goPlusManage.solanaTokenSecurityUsingGET(
+                            obj.token
+                        );
+                    break;
+                case GoPlusType.SUITOKEN_SECURITY_CHECK:
+                    checkResult = await goPlusManage.suiTokenSecurityUsingGET(
+                        obj.token
+                    );
+                    break;
+                case GoPlusType.RUGPULL_SECURITY_CHECK:
+                    checkResult = await goPlusManage.rugpullDetection(
+                        obj.network,
+                        obj.contract
+                    );
+                    break;
+                case GoPlusType.NFT_SECURITY_CHECK:
+                    checkResult = await goPlusManage.nftSecurity(
+                        obj.network,
+                        obj.token
+                    );
+                    break;
+                case GoPlusType.ADRESS_SECURITY_CHECK:
+                    checkResult = await goPlusManage.addressSecurity(
+                        obj.wallet
+                    );
+                    break;
+                case GoPlusType.APPROVAL_SECURITY_CHECK:
+                    checkResult = await goPlusManage.approvalSecurity(
+                        obj.network,
+                        obj.contract
+                    );
+                    break;
+                case GoPlusType.ACCOUNT_ERC20_SECURITY_CHECK:
+                    checkResult = await goPlusManage.erc20ApprovalSecurity(
+                        obj.network,
+                        obj.wallet
+                    );
+                    break;
+                case GoPlusType.ACCOUNT_ERC721_SECURITY_CHECK:
+                    checkResult = await goPlusManage.erc721ApprovalSecurity(
+                        obj.network,
+                        obj.wallet
+                    );
+                    break;
+                case GoPlusType.ACCOUNT_ERC1155_SECURITY_CHECK:
+                    checkResult = await goPlusManage.erc1155ApprovalSecurity(
+                        obj.network,
+                        obj.wallet
+                    );
+                    break;
+                case GoPlusType.SIGNATURE_SECURITY_CHECK:
+                    checkResult = await goPlusManage.inputDecode(
+                        obj.network,
+                        obj.data
+                    );
+                    break;
+                case GoPlusType.URL_SECURITY_CHECK:
+                    checkResult =
+                        await goPlusManage.dappSecurityAndPhishingSite(obj.url);
+                    break;
+                default:
+                    throw new Error("type is invaild");
+            }
+            elizaLogger.log("checkResult text", checkResult);
+            const checkResponse = await generateText({
+                runtime: runtime,
+                context: responsePrompt(
+                    JSON.stringify(checkResult),
+                    message.content.text
+                ),
+                modelClass: ModelClass.LARGE,
+            });
+            elizaLogger.log("checkResponse text", checkResponse);
+            callback({
+                text: checkResponse,
+            });
+        } catch (e) {
+            elizaLogger.error("Error in scanTokenAction handler", e);
+            return "error";
+        }
+    },
+    examples: [
+        [
+            {
+                user: "{{user1}}",
+                content: {
+                    text: "what do you think about this token 0x",
+                },
+            },
+            {
+                user: "{{agentName}}",
+                content: {
+                    text: "Here is what i found about 0x:",
+                    action: "TOKEN_SCAN",
+                },
+            },
+        ],
+        [
+            {
+                user: "{{user1}}",
+                content: {
+                    text: "Can you find details about this token 0x",
+                },
+            },
+            {
+                user: "{{agentName}}",
+                content: {
+                    text: "Here are the scan result I found about the 0x:",
+                    action: "TOKEN_SCAN",
+                },
+            },
+        ],
+        [
+            {
+                user: "{{user1}}",
+                content: {
+                    text: "Can you scan this token 0x?",
+                },
+            },
+            {
+                user: "{{agentName}}",
+                content: {
+                    text: "Here is scan result about 0x:",
+                    action: "TOKEN_SCAN",
+                },
+            },
+        ],
+        [
+            {
+                user: "{{user1}}",
+                content: {
+                    text: "Check the security result for this token 0x.",
+                },
+            },
+            {
+                user: "{{agentName}}",
+                content: {
+                    text: "Here is security scan I found:",
+                    action: "TOKEN_SCAN",
+                },
+            },
+        ],
+        [
+            {
+                user: "{{user1}}",
+                content: {
+                    text: "Scan this token 0x .",
+                },
+            },
+            {
+                user: "{{agentName}}",
+                content: {
+                    text: "Here are the current scan result:",
+                    action: "TOKEN_SCAN",
+                },
+            },
+        ],
+    ],
+} as Action;
diff --git a/packages/plugin-goplus/src/index.ts b/packages/plugin-goplus/src/index.ts
index 3af4f756270..1af9797adce 100644
--- a/packages/plugin-goplus/src/index.ts
+++ b/packages/plugin-goplus/src/index.ts
@@ -1,17 +1,16 @@
 import { Plugin } from "@elizaos/core";
+import { scanTokenAction } from "./actions/scan";
 import GoplusSecurityService from "./services/GoplusSecurityService";
 
 export * from "./services/GoplusSecurityService";
 
-
 export const goplusPlugin: Plugin = {
-  name: "goplus",
-  description:
-    "goplus Plugin for Eliza - Enables on-chain security checks",
-  actions: [],
-  evaluators: [],
-  providers: [],
-  services: [new GoplusSecurityService()],
+    name: "goplus",
+    description: "goplus Plugin for Eliza - Enables on-chain security checks",
+    actions: [scanTokenAction],
+    evaluators: [],
+    providers: [],
+    services: [new GoplusSecurityService()],
 };
 
 export default goplusPlugin;
diff --git a/packages/plugin-goplus/src/lib/GoPlusManage.ts b/packages/plugin-goplus/src/lib/GoPlusManage.ts
index 1406e167ff4..2a4e47257ef 100644
--- a/packages/plugin-goplus/src/lib/GoPlusManage.ts
+++ b/packages/plugin-goplus/src/lib/GoPlusManage.ts
@@ -1,5 +1,3 @@
-
-
 export const GoPlusType = {
     EVMTOKEN_SECURITY_CHECK: "EVMTOKEN_SECURITY_CHECK",
     SOLTOKEN_SECURITY_CHECK: "SOLTOKEN_SECURITY_CHECK",
@@ -13,19 +11,19 @@ export const GoPlusType = {
     ACCOUNT_ERC1155_SECURITY_CHECK: "ACCOUNT_ERC1155_SECURITY_CHECK",
     SIGNATURE_SECURITY_CHECK: "SIGNATURE_SECURITY_CHECK",
     URL_SECURITY_CHECK: "URL_SECURITY_CHECK",
-}
+};
 
-export type GoPlusType = (typeof GoPlusType)[keyof typeof GoPlusType]
+export type GoPlusType = (typeof GoPlusType)[keyof typeof GoPlusType];
 
 export type GoPlusParamType = {
-    "type": GoPlusType,
-    "network"?: string,
-    "token"?: string,
-    "contract"?: string,
-    "wallet"?: string,
-    "url"?: string,
-    "data"?: string,
-}
+    type: GoPlusType;
+    network?: string;
+    token?: string;
+    contract?: string;
+    wallet?: string;
+    url?: string;
+    data?: string;
+};
 
 export class GoPlusManage {
     private apiKey: string;
@@ -37,94 +35,97 @@ export class GoPlusManage {
     async requestGet(api: string) {
         const myHeaders = new Headers();
         if (this.apiKey) {
-            myHeaders.append("Authorization", this.apiKey);
+            //myHeaders.append("Authorization", this.apiKey);
         }
-        const url = `https://api.gopluslabs.io/${api}`
+        const url = `https://api.gopluslabs.io/${api}`;
         const res = await fetch(url, {
             method: "GET",
             headers: myHeaders,
-            redirect: "follow"
-            })
+            redirect: "follow",
+        });
 
         return await res.json();
     }
 
     async tokenSecurity(chainId: string, address: string) {
         const api = `api/v1/token_security/${chainId}?contract_addresses=${address}`;
-        return await this.requestGet(api)
+        return await this.requestGet(api);
     }
 
     async rugpullDetection(chainId: string, address: string) {
         const api = `api/v1/rugpull_detecting/${chainId}?contract_addresses=${address}`;
-        return await this.requestGet(api)
+        return await this.requestGet(api);
     }
 
     async solanaTokenSecurityUsingGET(address: string) {
         const api = `api/v1/solana/token_security?contract_addresses=${address}`;
-        return await this.requestGet(api)
+        return await this.requestGet(api);
     }
 
     async suiTokenSecurityUsingGET(address: string) {
         const api = `api/v1/sui/token_security?contract_addresses=${address}`;
-        return await this.requestGet(api)
+        return await this.requestGet(api);
     }
 
     async nftSecurity(chainId: string, address: string) {
         const api = `api/v1/nft_security/${chainId}?contract_addresses=${address}`;
-        return await this.requestGet(api)
+        return await this.requestGet(api);
     }
 
     async addressSecurity(address: string) {
         const api = `api/v1/address_security/${address}`;
-        return await this.requestGet(api)
+        return await this.requestGet(api);
     }
 
     async approvalSecurity(chainId: string, contract: string) {
         const api = `api/v1/approval_security/${chainId}?contract_addresses=${contract}`;
-        return await this.requestGet(api)
+        return await this.requestGet(api);
     }
 
     async erc20ApprovalSecurity(chainId: string, wallet: string) {
         const api = `api/v2/token_approval_security/${chainId}?addresses=${wallet}`;
-        return await this.requestGet(api)
+        return await this.requestGet(api);
     }
 
     async erc721ApprovalSecurity(chainId: string, wallet: string) {
         const api = `api/v2/nft721_approval_security/${chainId}?addresses=${wallet}`;
-        return await this.requestGet(api)
+        return await this.requestGet(api);
     }
 
     async erc1155ApprovalSecurity(chainId: string, wallet: string) {
         const api = `api/v2/nft1155_approval_security/${chainId}?addresses=${wallet}`;
-        return await this.requestGet(api)
+        return await this.requestGet(api);
     }
 
     async inputDecode(chainId: string, data: string) {
         const body = JSON.stringify({
             chain_id: chainId,
             data: data,
-        })
-        const res = await fetch("https://api.gopluslabs.io/api/v1/abi/input_decode", {
-            "headers": {
-              "accept": "*/*",
-              "accept-language": "en,zh-CN;q=0.9,zh;q=0.8",
-              "content-type": "application/json"
-            },
-            "body": body,
-            "method": "POST"
-          });
+        });
+        const res = await fetch(
+            "https://api.gopluslabs.io/api/v1/abi/input_decode",
+            {
+                headers: {
+                    accept: "*/*",
+                    "accept-language": "en,zh-CN;q=0.9,zh;q=0.8",
+                    "content-type": "application/json",
+                },
+                body: body,
+                method: "POST",
+            }
+        );
         return await res.json();
     }
 
     async dappSecurityAndPhishingSite(url: string) {
         const api = `api/v1/dapp_security?url=${url}`;
-        const data1 = await this.requestGet(api)
+        const data1 = await this.requestGet(api);
 
         const api2 = `api/v1/phishing_site?url=${url}`;
-        const data2 = await this.requestGet(api2)
+        const data2 = await this.requestGet(api2);
         return {
             data1,
-            data2
-        }
+            data2,
+        };
     }
-}
\ No newline at end of file
+}

From 975a2588b25bada7bf56cecc3c8345cd5e4f700c Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Tue, 14 Jan 2025 10:03:44 +0700
Subject: [PATCH 07/58] chaincacther API

---
 agent/src/index.ts                            |   4 +-
 package.json                                  |   1 -
 packages/client-twitter/src/post.ts           |   4 +-
 packages/core/src/generation.ts               |   3 +
 .../src/actions/tokenOverview.ts              | 232 ------------------
 .../actions/tokenOverview.ts:Zone.Identifier  |   0
 .../src/providers/cryptoNewsData.ts           |  18 +-
 .../plugin-crypto-news/src/utils/birdeye.ts   | 182 --------------
 .../src/utils/chainCatcher.ts                 |  48 ++--
 packages/plugin-goplus/src/index.ts           |  15 --
 .../plugin-goplus/src/lib/GoPlusManage.ts     |   1 -
 11 files changed, 45 insertions(+), 463 deletions(-)
 delete mode 100644 packages/plugin-crypto-news/src/actions/tokenOverview.ts
 delete mode 100644 packages/plugin-crypto-news/src/actions/tokenOverview.ts:Zone.Identifier
 delete mode 100644 packages/plugin-crypto-news/src/utils/birdeye.ts

diff --git a/agent/src/index.ts b/agent/src/index.ts
index 8db42a13a5c..b5639de4e42 100644
--- a/agent/src/index.ts
+++ b/agent/src/index.ts
@@ -12,8 +12,6 @@ import { TelegramClientInterface } from "@elizaos/client-telegram";
 import { TwitterClientInterface } from "@elizaos/client-twitter";
 // import { ReclaimAdapter } from "@elizaos/plugin-reclaim";
 import { DirectClient } from "@elizaos/client-direct";
-import { PrimusAdapter } from "@elizaos/plugin-primus";
-
 import {
     AgentRuntime,
     CacheManager,
@@ -35,6 +33,8 @@ import {
     validateCharacterConfig,
 } from "@elizaos/core";
 import { zgPlugin } from "@elizaos/plugin-0g";
+import { goplusPlugin } from "@elizaos/plugin-goplus";
+import { PrimusAdapter } from "@elizaos/plugin-primus";
 
 import { bootstrapPlugin } from "@elizaos/plugin-bootstrap";
 import createGoatPlugin from "@elizaos/plugin-goat";
diff --git a/package.json b/package.json
index 0836e4ffaac..40479f9dfd4 100644
--- a/package.json
+++ b/package.json
@@ -44,7 +44,6 @@
         "viem": "2.21.58",
         "vite": "5.4.11",
         "vitest": "2.1.5",
-        "viem": "2.21.58",
         "ts-jest": "^29.1.1",
         "@types/jest": "^29.5.11",
         "jest": "^29.7.0"
diff --git a/packages/client-twitter/src/post.ts b/packages/client-twitter/src/post.ts
index d1dc79cd4b0..74ba6c646aa 100644
--- a/packages/client-twitter/src/post.ts
+++ b/packages/client-twitter/src/post.ts
@@ -46,7 +46,7 @@ const twitterPostTemplate = `
 
 # Task: Generate a post in the voice and style and perspective of {{agentName}} @{{twitterUserName}}.
 Write a post that is {{adjective}} about {{topic}} (without mentioning {{topic}} directly), from the perspective of {{agentName}}. Do not add commentary or acknowledge this request, just write the post.
-Your response must include the summary of the # NEWS above or pick any single news for your reference.
+Your response must include the summary of the # NEWS above into a sentences. Dont discard or remove any important numbers and informations
 Your response should be 1, 2, or 3 sentences (choose the length at random).
 Your response should not contain any questions. Brief, concise statements only. The total character count MUST be less than {{maxTweetLength}}. No emojis. Use \\n\\n (double spaces) between statements if there are multiple statements in your response.`;
 
@@ -494,7 +494,7 @@ export class TwitterPostClient {
                     this.runtime.character.templates?.twitterPostTemplate ||
                     twitterPostTemplate,
             });
-            console.log("PROMPT", context);
+            // console.log("PROMPT", context);
             elizaLogger.debug("generate post prompt:\n" + context);
 
             const newTweetContent = await generateText({
diff --git a/packages/core/src/generation.ts b/packages/core/src/generation.ts
index 1afa7e983e7..68ae4dea1ac 100644
--- a/packages/core/src/generation.ts
+++ b/packages/core/src/generation.ts
@@ -29,6 +29,7 @@ import {
     models,
 } from "./models.ts";
 import {
+    parseActionResponseFromText,
     parseBooleanFromText,
     parseJsonArrayFromText,
     parseJSONObjectFromText,
@@ -45,6 +46,8 @@ import {
     ModelClass,
     ModelProviderName,
     SearchResponse,
+    SerperSearchResponse,
+    ServiceType,
     //VerifiableInferenceProvider,
     TelemetrySettings,
     TokenizerType,
diff --git a/packages/plugin-crypto-news/src/actions/tokenOverview.ts b/packages/plugin-crypto-news/src/actions/tokenOverview.ts
deleted file mode 100644
index 9e6b8c8c9a1..00000000000
--- a/packages/plugin-crypto-news/src/actions/tokenOverview.ts
+++ /dev/null
@@ -1,232 +0,0 @@
-import {
-    Action,
-    IAgentRuntime,
-    Memory,
-    State,
-    HandlerCallback,
-    ModelClass,
-    Content,
-    elizaLogger,
-    composeContext,
-    generateMessageResponse,
-    parseJSONObjectFromText,
-    generateText,
-    messageCompletionFooter,
-} from "@elizaos/core";
-import { fetchTokenOverview } from "../utils/birdeye";
-
-interface TokenQuery {
-    address?: string;
-    symbol?: string;
-}
-
-const tokenExtractionTemplate = `Respond with a JSON markdown block containing only the extracted values.
-
-Example response:
-\`\`\`json
-{
-    "address": "So11111111111111111111111111111111111111112",
-    "symbol": "SOL"
-}
-\`\`\`
-
-{{recentMessages}}
-
-Given the recent messages, extract the following information about the token query, please refer to last message for context:
-- Token contract address if provided
-- Token symbol if provided
-
-NOTE: If you see addresses like this 2gkevSAUExkSUwwwj6uNbzwwNCXyzEBkGLg4wAyUpump remember that pump suffix IS PART OF THE ADDRESS, do not remove it.
-
-Respond with a JSON markdown block containing only the extracted values. Use "" (empty string) for any values that cannot be determined.
-IMPORTANT: Response format should be in this format:
-\`\`\`json
-{
-    "address": "So11111111111111111111111111111111111111112",
-    "symbol": "SOL"
-}
-\`\`\``;
-
-const marketAnalysisTemplate = `You are {{agentName}}, a professional market analyst.
-
-About you:
-{{bio}}
-{{lore}}
-
-Recent conversation:
-{{recentMessages}}
-
-Available market data:
-{{marketData}}
-
-Analyze the market data and provide insights about:
-1. Price performance across different timeframes
-2. Trading volume and liquidity
-3. Holder behavior and wallet activity
-4. Overall market sentiment
-
-Keep the analysis concise and data-driven, focusing on the most relevant metrics.` + messageCompletionFooter;
-
-export const getTokenOverviewAction: Action = {
-    name: "GET_TOKEN_OVERVIEW",
-    similes: ["CHECK_TOKEN", "TOKEN_INFO", "MARKET_DATA", "TOKEN_ANALYSIS"],
-    description: "Retrieve and analyze token market data from Birdeye",
-
-    validate: async (runtime: IAgentRuntime, message: Memory) => {
-        //const text = (message.content as Content).text?.toLowerCase() || "";
-        //return text.includes("token") || text.includes("price") || text.includes("market");
-        return true;
-    },
-
-    handler: async (
-        runtime: IAgentRuntime,
-        message: Memory,
-        state: State,
-        _options: { [key: string]: unknown },
-        callback?: HandlerCallback
-    ): Promise<boolean> => {
-        try {
-            // Initialize or update state
-            if (!state) {
-                state = await runtime.composeState(message);
-            } else {
-                state = await runtime.updateRecentMessageState(state);
-            }
-
-            // Extract token information from message
-            const extractionContext = composeContext({
-                state,
-                template: tokenExtractionTemplate,
-            });
-
-            elizaLogger.log(`Extracting token info...`);
-
-            const response = await generateText({
-                runtime,
-                context: extractionContext,
-                modelClass: ModelClass.SMALL,
-            });
-
-            const tokenQuery = parseJSONObjectFromText(response) as TokenQuery;
-
-            elizaLogger.info(`Token query: ${JSON.stringify(tokenQuery)}`);
-
-            if (!tokenQuery.address && !tokenQuery.symbol) {
-                callback?.({
-                    text: "I couldn't identify which token you're asking about. Could you please provide a token symbol or contract address?",
-                });
-                return false;
-            }
-
-            if (tokenQuery.symbol && !tokenQuery.address) {
-                callback?.({
-                    text: "Ticker is not enough please provide me the contract address",
-                });
-                return false;
-            }
-
-            elizaLogger.log(`Fetching token data...`);
-
-            // Fetch token data
-            const tokenAddress = tokenQuery.address || "So11111111111111111111111111111111111111112"; // Default to SOL if only symbol provided
-            const tokenData = await fetchTokenOverview(tokenAddress as string, runtime.character.settings.secrets.BIRDEYE_API_KEY);
-
-
-            elizaLogger.log(`Market data: ${JSON.stringify(tokenData, null, 2)}`);
-
-            // Update state with market data
-            if (!state) {
-                state = await runtime.composeState(message);
-            }
-
-            state = {
-                ...state,
-                marketData: JSON.stringify(tokenData, null, 2),
-            };
-
-            // Generate market analysis
-            const analysisContext = composeContext({
-                state,
-                template: marketAnalysisTemplate,
-            });
-
-            const analysis = await generateMessageResponse({
-                runtime,
-                context: analysisContext,
-                modelClass: ModelClass.LARGE,
-            });
-
-            callback?.(analysis);
-
-            return true;
-        } catch (error) {
-            elizaLogger.error(`Error in GET_TOKEN_OVERVIEW action: ${error}`);
-            callback?.({
-                text: "I encountered an error while fetching the token data. Please try again later.",
-            });
-            return false;
-        }
-    },
-
-    examples: [
-        [
-            {
-                user: "{{user1}}",
-                content: { text: "What's the current market data for DV44rX6H8pEu4qwruwUvjswyRPTUib5qHTjWNRigpump?" },
-            },
-            {
-                user: "{{agentName}}",
-                content: {
-                    text: "Let me analyze the market data for DV44rX6H8pEu4qwruwUvjswyRPTUib5qHTjWNRigpump",
-                    action: "GET_TOKEN_OVERVIEW",
-                },
-            },
-        ],
-        [
-            {
-                user: "{{user1}}",
-                content: { text: "DV44rX6H8pEu4qwruwUvjswyRPTUib5qHTjWNRigpump" },
-            },
-            {
-                user: "{{agentName}}",
-                content: {
-                    text: "Checking market data for DV44rX6H8pEu4qwruwUvjswyRPTUib5qHTjWNRigpump",
-                    action: "GET_TOKEN_OVERVIEW",
-                },
-            },
-        ],
-        [
-            {
-                user: "{{user1}}",
-                content: {
-                    text: "Can you check the token at address So11111111111111111111111111111111111111112?"
-                },
-            },
-            {
-                user: "{{agentName}}",
-                content: {
-                    text: "I'll fetch the market data for this token...",
-                    action: "GET_TOKEN_OVERVIEW",
-                },
-            },
-        ],
-        [
-            {
-                user: "{{user1}}",
-                content: { text: "Can you make an analysis of $AVB?" },
-            },
-            {
-                user: "{{agentName}}",
-                content: { text: "Can you provide the address of $AVB?", action: "NONE" },
-            },
-            {
-                user: "{{user1}}",
-                content: { text: "6d5zHW5B8RkGKd51Lpb9RqFQSqDudr9GJgZ1SgQZpump" },
-            },
-            {
-                user: "{{agentName}}",
-                content: { text: "Checking market data for $AVB", action: "GET_TOKEN_OVERVIEW" },
-            },
-        ],
-    ],
-};
\ No newline at end of file
diff --git a/packages/plugin-crypto-news/src/actions/tokenOverview.ts:Zone.Identifier b/packages/plugin-crypto-news/src/actions/tokenOverview.ts:Zone.Identifier
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts b/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
index 49270caeb27..dfb9d8d2cc2 100644
--- a/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
+++ b/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
@@ -1,4 +1,4 @@
-import { elizaLogger, Provider } from "@elizaos/core";
+import { Provider } from "@elizaos/core";
 import { ChainCatcherResponse, fetchChainCatcher } from "../utils/chainCatcher";
 
 // interface FormattedMarketData {
@@ -57,10 +57,16 @@ export const cryptoNewsData: Provider = {
             // const cryptoNews: SerperNewsResponse =
             //     await fetchSerperNews("crypto");
             // const suiNews: SerperNewsResponse = await fetchSerperNews("$SUI");
-            let output = "# NEWS\n\n";
+            let output = `# NEWS for ${runtime.character.name}\n\n`;
+            // output += `The News have this format:\n\n`;
+            // output += `
+            // - Title <--- Title of the news\n
+            // Description <--- Content of the news\n
+            // Timestamp <--- the time of the news\n\n
+            // `;
 
-            chainCatcher.items.forEach((article) => {
-                output += `- ${article.title}\n${article.content}\n\n`;
+            chainCatcher.data.list.forEach((article) => {
+                output += `- ${article.title}\n${article.description}\nTime: ${article.releaseTime}\n\n`;
             });
 
             // cryptoNews.news.forEach((article) => {
@@ -69,9 +75,9 @@ export const cryptoNewsData: Provider = {
             // suiNews.news.forEach((article) => {
             //     output += `- ${article.title}\n${article.snippet}\n\n`;
             // });
-            output += `# News above are in Chinese Language, you have to translate it to ENGLISH \n\n# END NEWS\n\n`;
+            //output += `you must summary and conclude all of news above into a sentences and include it to your respond\n\n# END NEWS\n\n`;
 
-            elizaLogger.log(output);
+            // elizaLogger.log(output);
 
             return output;
         } catch (error) {
diff --git a/packages/plugin-crypto-news/src/utils/birdeye.ts b/packages/plugin-crypto-news/src/utils/birdeye.ts
deleted file mode 100644
index 0d1620ae00a..00000000000
--- a/packages/plugin-crypto-news/src/utils/birdeye.ts
+++ /dev/null
@@ -1,182 +0,0 @@
-export interface TokenOverviewResponse {
-    address: string;
-    decimals: number;
-    symbol: string;
-    name: string;
-    extensions: {
-        coingeckoId: string | null;
-        website: string | null;
-        telegram: string | null;
-        twitter: string | null;
-        description: string | null;
-        discord: string | null;
-        medium: string | null;
-    };
-    logoURI: string;
-    liquidity: number;
-    lastTradeUnixTime: number;
-    lastTradeHumanTime: string;
-    price: number;
-    supply: number;
-    mc: number;
-    circulatingSupply: number;
-    realMc: number;
-    holder: number;
-    // Price changes
-    priceChange24hPercent: number;
-    priceChange12hPercent: number;
-    priceChange8hPercent: number;
-    priceChange4hPercent: number;
-    priceChange2hPercent: number;
-    priceChange1hPercent: number;
-    priceChange30mPercent: number;
-    // Volume data
-    v24hUSD: number;
-    v12hUSD: number;
-    v8hUSD: number;
-    v4hUSD: number;
-    v2hUSD: number;
-    v1hUSD: number;
-    v30mUSD: number;
-    // Unique wallets
-    uniqueWallet24h: number;
-    uniqueWallet12h: number;
-    uniqueWallet8h: number;
-    uniqueWallet4h: number;
-    uniqueWallet2h: number;
-    uniqueWallet1h: number;
-    uniqueWallet30m: number;
-}
-
-export interface BirdeyeApiError {
-    success: false;
-    error: string;
-}
-
-export async function fetchTokenOverview(
-    tokenAddress: string,
-    apiKey?: string,
-    cache?: {
-        get: (key: string) => any;
-        set: (key: string, value: any) => void;
-    }
-): Promise<TokenOverviewResponse> {
-    try {
-        // Check cache first if provided
-        if (cache) {
-            const cacheKey = `token_overview_${tokenAddress}`;
-            const cachedData = cache.get(cacheKey);
-            if (cachedData) {
-                console.log(
-                    `Returning cached token overview for ${tokenAddress}`
-                );
-                return cachedData;
-            }
-        }
-
-        const response = await fetch(
-            `https://public-api.birdeye.so/defi/token_overview?address=${tokenAddress}`,
-            {
-                method: "GET",
-                headers: {
-                    accept: "application/json",
-                    "x-api-key": apiKey || "",
-                },
-            }
-        );
-
-        if (!response.ok) {
-            throw new Error(`HTTP error! status: ${response.status}`);
-        }
-
-        const data = await response.json();
-
-        if (!data.success || !data.data) {
-            throw new Error("Failed to fetch token overview data");
-        }
-
-        // Cache the response if cache is provided
-        if (cache) {
-            const cacheKey = `token_overview_${tokenAddress}`;
-            cache.set(cacheKey, data.data);
-        }
-
-        return data.data;
-    } catch (error) {
-        console.error("Error fetching token overview:", error);
-        throw error;
-    }
-}
-
-export interface TrendingToken {
-    address: string;
-    decimals: number;
-    liquidity: number;
-    logoURI: string;
-    name: string;
-    symbol: string;
-    volume24hUSD: number;
-    rank: number;
-    price: number;
-}
-
-export interface TrendingTokensResponse {
-    updateUnixTime: number;
-    updateTime: string;
-    tokens: TrendingToken[];
-    total: number;
-}
-
-export async function fetchTrendingTokens(
-    apiKey?: string,
-    cache?: {
-        get: (key: string) => any;
-        set: (key: string, value: any) => void;
-    },
-    limit: number = 20
-): Promise<TrendingTokensResponse> {
-    try {
-        // Check cache first if provided
-        if (cache) {
-            const cacheKey = `trending_tokens_${limit}`;
-            const cachedData = cache.get(cacheKey);
-            if (cachedData) {
-                console.log(`Returning cached trending tokens`);
-                return cachedData;
-            }
-        }
-
-        const response = await fetch(
-            `https://public-api.birdeye.so/defi/token_trending?sort_by=rank&sort_type=asc&offset=0&limit=${limit}`,
-            {
-                method: "GET",
-                headers: {
-                    accept: "application/json",
-                    "x-api-key": apiKey || "",
-                    "x-chain": "sui",
-                },
-            }
-        );
-
-        if (!response.ok) {
-            throw new Error(`HTTP error! status: ${response.status}`);
-        }
-
-        const data = await response.json();
-
-        if (!data.success || !data.data) {
-            throw new Error("Failed to fetch trending tokens data");
-        }
-
-        // Cache the response if cache is provided
-        if (cache) {
-            const cacheKey = `trending_tokens_${limit}`;
-            cache.set(cacheKey, data.data);
-        }
-
-        return data.data;
-    } catch (error) {
-        console.error("Error fetching trending tokens:", error);
-        throw error;
-    }
-}
diff --git a/packages/plugin-crypto-news/src/utils/chainCatcher.ts b/packages/plugin-crypto-news/src/utils/chainCatcher.ts
index cd73157f5fc..8c6cde3076e 100644
--- a/packages/plugin-crypto-news/src/utils/chainCatcher.ts
+++ b/packages/plugin-crypto-news/src/utils/chainCatcher.ts
@@ -1,26 +1,23 @@
+export interface ChainCatcherResponse {
+    data: ChainCatcherData;
+    message: string;
+    result: number;
+}
+
+export interface ChainCatcherData {
+    totle: number;
+    list: ChainCatcherItem[];
+}
+
 export interface ChainCatcherItem {
-    title: string;
-    pubDate: string;
-    link: string;
-    guid: string;
-    thumbnail: string;
     content: string;
     description: string;
-    enclosure: any;
-    categories: any[];
-}
-export interface ChainCatcherFeed {
-    url: string;
+    id: number;
+    releaseTime: string;
+    thumb: string;
     title: string;
-    link: string;
-    author: string;
-    description: string;
-    image: string;
-}
-export interface ChainCatcherResponse {
-    status: string;
-    feed: ChainCatcherFeed;
-    items: ChainCatcherItem[];
+    type: number;
+    url: string;
 }
 
 export async function fetchChainCatcher(): Promise<ChainCatcherResponse> {
@@ -28,13 +25,20 @@ export async function fetchChainCatcher(): Promise<ChainCatcherResponse> {
         // Check cache first if provided
 
         const config = {
-            method: "GET",
+            method: "POST",
             headers: {
                 "Content-Type": "application/json",
+                token: "fsfa3sd45gU8945YY",
+                language: "en",
             },
+            body: JSON.stringify({
+                type: 2,
+                page: 1,
+                limit: 5,
+            }),
         };
         const response = await fetch(
-            `https://api.rss2json.com/v1/api.json?rss_url=https%3A%2F%2Fwww.chaincatcher.com%2Frss%2Fclist`,
+            `https://www.chaincatcher.com/OpenApi/FetchListByType`,
             config
         );
 
@@ -46,7 +50,7 @@ export async function fetchChainCatcher(): Promise<ChainCatcherResponse> {
         }
 
         const data = await response.json();
-        if (!data.status || data.status !== "ok") {
+        if (!data.data) {
             throw new Error("Failed to fetch latest news data");
         }
 
diff --git a/packages/plugin-goplus/src/index.ts b/packages/plugin-goplus/src/index.ts
index d7beefc41f7..88150e6e264 100644
--- a/packages/plugin-goplus/src/index.ts
+++ b/packages/plugin-goplus/src/index.ts
@@ -12,18 +12,3 @@ export const goplusPlugin: Plugin = {
     providers: [],
     services: [new GoplusSecurityService()],
 };
-
-export default goplusPlugin;
-
-export * from "./services/GoplusSecurityService";
-
-export const goplusPlugin: Plugin = {
-    name: "goplus",
-    description: "goplus Plugin for Eliza - Enables on-chain security checks",
-    actions: [],
-    evaluators: [],
-    providers: [],
-    services: [new GoplusSecurityService()],
-};
-
-export default goplusPlugin;
diff --git a/packages/plugin-goplus/src/lib/GoPlusManage.ts b/packages/plugin-goplus/src/lib/GoPlusManage.ts
index 2a4e47257ef..fab61fa0382 100644
--- a/packages/plugin-goplus/src/lib/GoPlusManage.ts
+++ b/packages/plugin-goplus/src/lib/GoPlusManage.ts
@@ -14,7 +14,6 @@ export const GoPlusType = {
 };
 
 export type GoPlusType = (typeof GoPlusType)[keyof typeof GoPlusType];
-
 export type GoPlusParamType = {
     type: GoPlusType;
     network?: string;

From 15287ce6830aca5156b6ccaf33f0cdcb04bd78a1 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Tue, 14 Jan 2025 10:17:36 +0700
Subject: [PATCH 08/58] dot bug

---
 packages/plugin-crypto-news/src/providers/cryptoNewsData.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts b/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
index dfb9d8d2cc2..2fd65c27b09 100644
--- a/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
+++ b/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
@@ -75,7 +75,7 @@ export const cryptoNewsData: Provider = {
             // suiNews.news.forEach((article) => {
             //     output += `- ${article.title}\n${article.snippet}\n\n`;
             // });
-            //output += `you must summary and conclude all of news above into a sentences and include it to your respond\n\n# END NEWS\n\n`;
+            output += `# ADDITIONAL_NOTES: you must replace all decimal separator with comma ( , ) instead of dot ( . ) \n\n# END NEWS\n\n`;
 
             // elizaLogger.log(output);
 

From f1db0cfd410980432023b44b12c1c1e703fbf27a Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Tue, 14 Jan 2025 10:48:34 +0700
Subject: [PATCH 09/58] some dot bug

---
 packages/plugin-crypto-news/src/providers/cryptoNewsData.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts b/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
index 2fd65c27b09..97c08e22f26 100644
--- a/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
+++ b/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
@@ -75,7 +75,7 @@ export const cryptoNewsData: Provider = {
             // suiNews.news.forEach((article) => {
             //     output += `- ${article.title}\n${article.snippet}\n\n`;
             // });
-            output += `# ADDITIONAL_NOTES: you must replace all decimal separator with comma ( , ) instead of dot ( . ) \n\n# END NEWS\n\n`;
+            output += `# ADDITIONAL_NOTES: you must round all decimal numbers ( dot separator ) if there's any \n\n# END NEWS\n\n`;
 
             // elizaLogger.log(output);
 

From ba0cb492426946f3e6517818233c295b48a01a96 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Tue, 14 Jan 2025 11:04:15 +0700
Subject: [PATCH 10/58] huhuhu

---
 packages/plugin-crypto-news/src/providers/cryptoNewsData.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts b/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
index 97c08e22f26..7dde3930cf0 100644
--- a/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
+++ b/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
@@ -75,7 +75,7 @@ export const cryptoNewsData: Provider = {
             // suiNews.news.forEach((article) => {
             //     output += `- ${article.title}\n${article.snippet}\n\n`;
             // });
-            output += `# ADDITIONAL_NOTES: you must round all decimal numbers ( dot separator ) if there's any \n\n# END NEWS\n\n`;
+            output += `# ADDITIONAL_NOTES: if there's any decimal numbers you should convert the decimal separator into comma instead of dot\n\n# END NEWS\n\n`;
 
             // elizaLogger.log(output);
 

From 2d3e953e86719396cbe21f02516e05444bcb4571 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Tue, 14 Jan 2025 11:50:15 +0700
Subject: [PATCH 11/58] okok

---
 packages/client-twitter/src/post.ts |   3 +
 packages/core/src/generation.ts     | 187 +++++++++++++---------------
 2 files changed, 88 insertions(+), 102 deletions(-)

diff --git a/packages/client-twitter/src/post.ts b/packages/client-twitter/src/post.ts
index 74ba6c646aa..282510c4df3 100644
--- a/packages/client-twitter/src/post.ts
+++ b/packages/client-twitter/src/post.ts
@@ -26,6 +26,8 @@ import {
 } from "discord.js";
 import { ClientBase } from "./base.ts";
 import { DEFAULT_MAX_TWEET_LENGTH } from "./environment.ts";
+import { twitterMessageHandlerTemplate } from "./interactions.ts";
+import { buildConversationThread } from "./utils.ts";
 
 const MAX_TIMELINES_TO_FETCH = 15;
 
@@ -743,6 +745,7 @@ export class TwitterPostClient {
                         );
                         continue;
                     }
+
                     processedTimelines.push({
                         tweet: tweet,
                         actionResponse: actionResponse,
diff --git a/packages/core/src/generation.ts b/packages/core/src/generation.ts
index 68ae4dea1ac..fcd9ece7d86 100644
--- a/packages/core/src/generation.ts
+++ b/packages/core/src/generation.ts
@@ -54,7 +54,6 @@ import {
     VerifiableInferenceOptions,
     VerifiableInferenceResult,
 } from "./types.ts";
-
 type Tool = CoreTool<any, any>;
 type StepResult = AIStepResult<any>;
 
@@ -457,23 +456,7 @@ export async function generateText({
                     presencePenalty: presence_penalty,
                     experimental_telemetry: experimental_telemetry,
                 });
-                // console.log({
-                //     model: openai.languageModel(model),
-                //     prompt: context,
-                //     system:
-                //         runtime.character.system ??
-                //         settings.SYSTEM_PROMPT ??
-                //         undefined,
-                //     tools: tools,
-                //     onStepFinish: onStepFinish,
-                //     maxSteps: maxSteps,
-                //     temperature: temperature,
-                //     maxTokens: max_response_length,
-                //     frequencyPenalty: frequency_penalty,
-                //     presencePenalty: presence_penalty,
-                //     experimental_telemetry: experimental_telemetry,
-                //     openaiResponse,
-                // });
+
                 response = openaiResponse;
                 console.log("Received response from OpenAI model.");
                 break;
@@ -1788,95 +1771,12 @@ export const generateWebSearch = async (
             includeAnswer: true,
             maxResults: 3, // 5 (default)
             topic: "general", // "general"(default) "news"
-            searchDepth: "advanced", // "basic"(default) "advanced"
+            searchDepth: "basic", // "basic"(default) "advanced"
             includeImages: false, // false (default) true
         });
-        console.log(`TVLY RES`, response);
-        return response;
-    } catch (error) {
-        elizaLogger.error("Error:", error);
-    }
-};
-export const generateSerperSearch = async (
-    query: string,
-    runtime: IAgentRuntime
-): Promise<SerperSearchResponse> => {
-    try {
-        const apiKey = runtime.getSetting("SERPER_API_KEY") as string;
-        if (!apiKey) {
-            throw new Error("SERPER_API_KEY is not set");
-        }
-        //const cleanedQuery =  query.replace(/@\S+/g, '');
-        //console.log(`CLEANED QUERY`,cleanedQuery)
-        const data = JSON.stringify({
-            q: query,
-        });
-
-        const options = {
-            hostname: "google.serper.dev",
-            port: 443,
-            path: "/search",
-            method: "POST",
-            headers: {
-                "X-API-KEY": apiKey,
-                "Content-Type": "application/json",
-                "Content-Length": Buffer.byteLength(data),
-            },
-        };
-
-        const sendRequest = (): Promise<SerperSearchResponse> => {
-            return new Promise((resolve, reject) => {
-                const req = https.request(options, (res) => {
-                    let body = "";
-
-                    res.on("data", (chunk) => {
-                        body += chunk;
-                    });
-
-                    res.on("end", () => {
-                        if (
-                            res.statusCode &&
-                            res.statusCode >= 200 &&
-                            res.statusCode < 300
-                        ) {
-                            try {
-                                const parsedData = JSON.parse(
-                                    body
-                                ) as SerperSearchResponse;
-                                resolve(parsedData);
-                            } catch (err) {
-                                reject(
-                                    new Error(
-                                        `Failed to parse response: ${err}`
-                                    )
-                                );
-                            }
-                        } else {
-                            reject(
-                                new Error(
-                                    `Request failed with status code: ${res.statusCode}`
-                                )
-                            );
-                        }
-                    });
-                });
-
-                req.on("error", (err) => {
-                    reject(err);
-                });
-
-                // Write data to the request body
-                req.write(data);
-                req.end();
-            });
-        };
-
-        const response = await sendRequest();
-        console.log(`TVLY RES`, response);
         return response;
     } catch (error) {
         elizaLogger.error("Error:", error);
-        throw error; // Re-throw the error for the caller to handle.
     }
 };
 /**
@@ -2398,3 +2298,86 @@ export async function generateTweetActions({
         retryDelay *= 2;
     }
 }
+
+export const generateSerperSearch = async (
+    query: string,
+    runtime: IAgentRuntime
+): Promise<SerperSearchResponse> => {
+    try {
+        const apiKey = runtime.getSetting("SERPER_API_KEY") as string;
+        if (!apiKey) {
+            throw new Error("SERPER_API_KEY is not set");
+        }
+        //const cleanedQuery =  query.replace(/@\S+/g, '');
+        //console.log(`CLEANED QUERY`,cleanedQuery)
+        const data = JSON.stringify({
+            q: query,
+        });
+
+        const options = {
+            hostname: "google.serper.dev",
+            port: 443,
+            path: "/search",
+            method: "POST",
+            headers: {
+                "X-API-KEY": apiKey,
+                "Content-Type": "application/json",
+                "Content-Length": Buffer.byteLength(data),
+            },
+        };
+
+        const sendRequest = (): Promise<SerperSearchResponse> => {
+            return new Promise((resolve, reject) => {
+                const req = https.request(options, (res) => {
+                    let body = "";
+
+                    res.on("data", (chunk) => {
+                        body += chunk;
+                    });
+
+                    res.on("end", () => {
+                        if (
+                            res.statusCode &&
+                            res.statusCode >= 200 &&
+                            res.statusCode < 300
+                        ) {
+                            try {
+                                const parsedData = JSON.parse(
+                                    body
+                                ) as SerperSearchResponse;
+                                resolve(parsedData);
+                            } catch (err) {
+                                reject(
+                                    new Error(
+                                        `Failed to parse response: ${err}`
+                                    )
+                                );
+                            }
+                        } else {
+                            reject(
+                                new Error(
+                                    `Request failed with status code: ${res.statusCode}`
+                                )
+                            );
+                        }
+                    });
+                });
+
+                req.on("error", (err) => {
+                    reject(err);
+                });
+
+                // Write data to the request body
+                req.write(data);
+                req.end();
+            });
+        };
+
+        const response = await sendRequest();
+        console.log(`TVLY RES`, response);
+        return response;
+    } catch (error) {
+        elizaLogger.error("Error:", error);
+        throw error; // Re-throw the error for the caller to handle.
+    }
+};

From 4fdfd2c3a138bb1007cf63ee23169c4c23028e68 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Tue, 14 Jan 2025 16:29:03 +0700
Subject: [PATCH 12/58] fix attempt media is missing

---
 agent/src/index.ts | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/agent/src/index.ts b/agent/src/index.ts
index b5639de4e42..0830c076ed6 100644
--- a/agent/src/index.ts
+++ b/agent/src/index.ts
@@ -69,7 +69,7 @@ import { genLayerPlugin } from "@elizaos/plugin-genlayer";
 import { imageGenerationPlugin } from "@elizaos/plugin-image-generation";
 import { lensPlugin } from "@elizaos/plugin-lensNetwork";
 import { multiversxPlugin } from "@elizaos/plugin-multiversx";
-import { nearPlugin } from "@elizaos/plugin-near";
+//import { nearPlugin } from "@elizaos/plugin-near"; // causing image generation error
 import { nftGenerationPlugin } from "@elizaos/plugin-nft-generation";
 import { createNodePlugin } from "@elizaos/plugin-node";
 import { obsidianPlugin } from "@elizaos/plugin-obsidian";
@@ -753,11 +753,11 @@ export async function createAgent(
                 ? solanaAgentkitPlguin
                 : 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, "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"))

From 1dac358f2a0ad47dd28b7aac06dc474168b51a6f Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Wed, 15 Jan 2025 08:36:28 +0700
Subject: [PATCH 13/58] goplus check token only

---
 .../plugin-goplus/src/templates/index.bak.ts  | 209 ++++++++++++++++++
 packages/plugin-goplus/src/templates/index.ts | 122 +---------
 2 files changed, 218 insertions(+), 113 deletions(-)
 create mode 100644 packages/plugin-goplus/src/templates/index.bak.ts

diff --git a/packages/plugin-goplus/src/templates/index.bak.ts b/packages/plugin-goplus/src/templates/index.bak.ts
new file mode 100644
index 00000000000..6886211d7f4
--- /dev/null
+++ b/packages/plugin-goplus/src/templates/index.bak.ts
@@ -0,0 +1,209 @@
+export const requestPrompt = (text:string) => `You are a security action detector for blockchain interactions. Your task is to analyze the user's input text and determine which security checks are needed.
+
+Text to analyze:"""
+${text}
+"""
+If the user is not sure which network the sent address belongs to, then according to the following logic initially determine which network the user sends the address belongs to.
+
+Detection Logic:
+1. First check if address starts with "0x":
+   - If yes:
+     - If length is 42 -> EVM address
+     - If the address has a non-standard suffix (e.g., " ::s::S "), you may treat the base address (without the suffix) as the -> SUI address. , but the full address including the suffix should be placed in the "token" field.
+   - If no:
+     - If length is 44 and starts with letter -> Solana address
+
+2. If none of the above patterns match:
+   - -> EVM address
+3. If detection is EVM address:
+   - -> EVM address
+
+Networks format
+EVM: 0x26e550ac11b26f78a04489d5f20f24e3559f7dd9
+Solana: 9DHe3pycTuymFk4H4bbPoAJ4hQrr2kaLDF6J6aAKpump
+SUI: 0xea65bb5a79ff34ca83e2995f9ff6edd0887b08da9b45bf2e31f930d3efb82866::s::S
+
+After determining which action to use, please reply in the json format below the action.
+
+Available actions:
+- [EVMTOKEN_SECURITY_CHECK]: For checking ERC20 token contract security
+    Description: Security assessment for tokens on EVM-compatible chains (like Ethereum, BSC), including contract risks, permission configurations, transaction mechanisms
+    Keywords: EVM token, ETH token, BEP20, smart contract, ERC20 security, on-chain token
+    Respond with a JSON markdown block containing only the extracted values:
+
+\`\`\`json
+{
+"type": "EVMTOKEN_SECURITY_CHECK"
+"network": "1", //default: 1 (Ethereum:1, Optimism:10, Cronos:25, BSC:56, Gnosis:100, HECO:128, Polygon:137, Fantom:250, KCC:321, zkSync Era:324, ETHW:10001, FON:201022, Arbitrum:42161, Avalanche:43114, Linea Mainnet:59144, Base:8453, Tron:tron, Scroll:534352, opBNB:204, Mantle:5000, ZKFair:42766, Blast:81457, Manta Pacific:169, Berachain Artio Testnet:80085, Merlin:4200, Bitlayer Mainnet:200901, zkLink Nova:810180, X Layer Mainnet:196)
+"token": "" ,
+}
+\`\`\`
+
+
+- [SOLTOKEN_SECURITY_CHECK]: For checking SPL token contract security
+    Description: Security audit for Solana-based tokens, analyzing program authority settings, account states, transfer restrictions and other security factors
+    Keywords: Solana token, SOL token, SPL token, Solana security, SOL contract
+    Respond with a JSON markdown block containing only the extracted values:
+
+\`\`\`json
+{
+"type": "SOLTOKEN_SECURITY_CHECK"
+"token": "" ,
+}
+\`\`\`
+
+
+- [SUITOKEN_SECURITY_CHECK]: For checking Sui token contract security
+    Description: Security inspection for tokens on SUI blockchain, examining token contract permissions, transaction restrictions, minting mechanisms and other security configurations
+    Keywords: SUI token, SUI coins, MOVE token, SUI contract, SUI security
+    Respond with a JSON markdown block containing only the extracted values:
+
+\`\`\`json
+{
+"type": "SUITOKEN_SECURITY_CHECK"
+"token": "" ,
+}
+\`\`\`
+
+
+- [RUGPULL_SECURITY_CHECK]:
+    Description: Detection of potential rugpull risks in tokens/projects, including contract permissions, liquidity locks, team holdings and other risk factors
+    Keywords: rugpull risk, token security, project reliability, contract risk, liquidity, team wallet
+    Respond with a JSON markdown block containing only the extracted values:
+
+\`\`\`json
+{
+"type": "RUGPULL_SECURITY_CHECK"
+"network": "1", //default: 1 (Ethereum:1, BSC:56)
+"contract": "" | null,
+}
+\`\`\`
+
+
+- [NFT_SECURITY_CHECK]
+    Description: Security analysis of NFT project smart contracts, including minting mechanisms, trading restrictions, permission settings
+    Keywords: NFT security, digital collectibles, minting risk, NFT trading, NFT contract
+    Respond with a JSON markdown block containing only the extracted values:
+
+\`\`\`json
+{
+"type": "NFT_SECURITY_CHECK"
+"network": "1", //default: 1 (Ethereum:1, Optimism:10, Cronos:25, BSC:56, Gnosis:100, HECO:128, Polygon:137, Fantom:250, KCC:321, zkSync Era:324, FON:201022, Arbitrum:42161, Avalanche:43114, Linea Mainnet:59144, Base:8453, Mantle:5000)
+"token": "" | null,
+}
+\`\`\`
+
+
+- [ADRESS_SECURITY_CHECK]
+    Description: Analysis of specific address security status, detecting known malicious addresses, scam addresses or high-risk addresses
+    Keywords: wallet security, malicious address, scam address, blacklist
+    Respond with a JSON markdown block containing only the extracted values:
+
+\`\`\`json
+{
+"type": "ADRESS_SECURITY_CHECK"
+"network": "1", //default: 1 (Ethereum:1, Optimism:10, Cronos:25, BSC:56, Gnosis:100, HECO:128, Polygon:137, Fantom:250, KCC:321, zkSync Era:324, FON:201022, Arbitrum:42161, Avalanche:43114, Linea Mainnet:59144, Tron:tron, Scroll:534352, opBNB:204, Base:8453, Solana:solana)
+"wallet": "" | null,
+}
+\`\`\`
+
+
+- [APPROVAL_SECURITY_CHECK]
+    Description: Examination of smart contract approval settings, evaluating risk levels of third-party authorizations
+    Keywords: approval check, contract authorization, spending approval, approval risk
+    Respond with a JSON markdown block containing only the extracted values:
+
+\`\`\`json
+{
+"type": "APPROVAL_SECURITY_CHECK"
+"network": "1", //default: 1 (Ethereum:1, BSC: 56, OKC: 66, Heco: 128, Polygon: 137, Fantom:250, Arbitrum: 42161, Avalanche: 43114)
+"contract": "" | null,
+}
+\`\`\`
+
+
+- [ACCOUNT_ERC20_SECURITY_CHECK]
+    Description: Security assessment of account-related ERC20 token transactions and holdings
+    Keywords: ERC20, token account, token security, account detection
+    Respond with a JSON markdown block containing only the extracted values:
+
+\`\`\`json
+{
+"type": "ACCOUNT_ERC20_SECURITY_CHECK"
+"network": "1", //default: 1 (Ethereum:1, Optimism:10, Cronos:25, BSC:56, Gnosis:100, HECO:128, Polygon:137, Fantom:250, KCC:321, zkSync Era:324, FON:201022, Arbitrum:42161, Avalanche:43114, Linea Mainnet:59144, Base:8453, Mantle:5000)
+"wallet": "" | null,
+}
+\`\`\`
+
+
+- [ACCOUNT_ERC721_SECURITY_CHECK]
+    Description: Security analysis of account's ERC721 NFT assets
+    Keywords: ERC721, NFT account, NFT assets, collectibles security
+    Respond with a JSON markdown block containing only the extracted values:
+\`\`\`json
+{
+"type": "ACCOUNT_ERC721_SECURITY_CHECK"
+"network": "1", //default: 1 (Ethereum:1, Optimism:10, Cronos:25, BSC:56, Gnosis:100, HECO:128, Polygon:137, Fantom:250, KCC:321, zkSync Era:324, FON:201022, Arbitrum:42161, Avalanche:43114, Linea Mainnet:59144, Base:8453, Mantle:5000)
+"wallet": "" | null,
+}
+\`\`\`
+
+
+- [ACCOUNT_ERC1155_SECURITY_CHECK]
+    Description: Security evaluation of account's ERC1155 multi-token standard assets
+    Keywords: ERC1155, multi-token, hybrid assets, account security
+    Respond with a JSON markdown block containing only the extracted values:
+
+\`\`\`json
+{
+"type": "ACCOUNT_ERC1155_SECURITY_CHECK"
+"network": "1", //default: 1 (Ethereum:1, Optimism:10, Cronos:25, BSC:56, Gnosis:100, HECO:128, Polygon:137, Fantom:250, KCC:321, zkSync Era:324, FON:201022, Arbitrum:42161, Avalanche:43114, Linea Mainnet:59144, Base:8453, Mantle:5000)
+"wallet": "" | null,
+}
+\`\`\`
+
+
+- [SIGNATURE_SECURITY_CHECK]
+    Description: Verification of signature security, preventing signature fraud risks
+    Keywords: signature verification, message signing, signature risk, signature fraud
+    Respond with a JSON markdown block containing only the extracted values:
+
+\`\`\`json
+{
+"type": "SIGNATURE_SECURITY_CHECK"
+"network": "1", //default: 1 (Ethereum: 1, Cronos:25, BSC: 56, Heco: 128, Polygon: 137, Fantom:250, KCC: 321, Arbitrum: 42161, Avalanche: 43114)
+"data": "" | null,
+}
+\`\`\`
+
+
+- [URL_SECURITY_CHECK]
+    Description: Detection of known phishing websites, malicious sites or other security risks in URLs
+    Keywords: link detection, phishing website, malicious URL, website security
+    Respond with a JSON markdown block containing only the extracted values:
+\`\`\`json
+{
+"type": "URL_SECURITY_CHECK"
+"url": "" | null,
+}
+\`\`\`
+
+Extract the necessary information(All fields present in the json are important information) and choose the appropriate action(s) based on the text. Return the JSON response following the format above.
+important: do not response anything except json`
+
+
+
+export const responsePrompt = (apiresult: string, text:string) => `You are a security action detector for blockchain interactions. Your task is to analyze the security API’s response from GoPlus and summary the API result.
+API to analyze:“”"
+${apiresult}
+“”"
+user’s request:“”
+${text}
+“”
+Instructions:
+1. **Identify the Action**: Analyze the API response to determine which specific action it relates to.
+2. **Extract Relevant Information**: From the action and its parameters, extract and highlight the key details.
+3. **Formulate a Clear Response**: Combine the action type, extracted information, and an analysis of the results. Provide a clear, concise response based on the security context. Focus on delivering the most relevant answer without unnecessary detail.
+- Only reply with your conclusion.
+- Do not discuss the safety aspects of the action; just focus on identifying and pointing out any risks.
+- Tailor your response to the user’s request, focusing on their specific query.`
\ No newline at end of file
diff --git a/packages/plugin-goplus/src/templates/index.ts b/packages/plugin-goplus/src/templates/index.ts
index 6886211d7f4..629ebb84b6f 100644
--- a/packages/plugin-goplus/src/templates/index.ts
+++ b/packages/plugin-goplus/src/templates/index.ts
@@ -1,4 +1,6 @@
-export const requestPrompt = (text:string) => `You are a security action detector for blockchain interactions. Your task is to analyze the user's input text and determine which security checks are needed.
+export const requestPrompt = (
+    text: string
+) => `You are a security action detector for blockchain interactions. Your task is to analyze the user's input text and determine which security checks are needed.
 
 Text to analyze:"""
 ${text}
@@ -80,120 +82,14 @@ Available actions:
 \`\`\`
 
 
-- [NFT_SECURITY_CHECK]
-    Description: Security analysis of NFT project smart contracts, including minting mechanisms, trading restrictions, permission settings
-    Keywords: NFT security, digital collectibles, minting risk, NFT trading, NFT contract
-    Respond with a JSON markdown block containing only the extracted values:
-
-\`\`\`json
-{
-"type": "NFT_SECURITY_CHECK"
-"network": "1", //default: 1 (Ethereum:1, Optimism:10, Cronos:25, BSC:56, Gnosis:100, HECO:128, Polygon:137, Fantom:250, KCC:321, zkSync Era:324, FON:201022, Arbitrum:42161, Avalanche:43114, Linea Mainnet:59144, Base:8453, Mantle:5000)
-"token": "" | null,
-}
-\`\`\`
-
-
-- [ADRESS_SECURITY_CHECK]
-    Description: Analysis of specific address security status, detecting known malicious addresses, scam addresses or high-risk addresses
-    Keywords: wallet security, malicious address, scam address, blacklist
-    Respond with a JSON markdown block containing only the extracted values:
-
-\`\`\`json
-{
-"type": "ADRESS_SECURITY_CHECK"
-"network": "1", //default: 1 (Ethereum:1, Optimism:10, Cronos:25, BSC:56, Gnosis:100, HECO:128, Polygon:137, Fantom:250, KCC:321, zkSync Era:324, FON:201022, Arbitrum:42161, Avalanche:43114, Linea Mainnet:59144, Tron:tron, Scroll:534352, opBNB:204, Base:8453, Solana:solana)
-"wallet": "" | null,
-}
-\`\`\`
-
-
-- [APPROVAL_SECURITY_CHECK]
-    Description: Examination of smart contract approval settings, evaluating risk levels of third-party authorizations
-    Keywords: approval check, contract authorization, spending approval, approval risk
-    Respond with a JSON markdown block containing only the extracted values:
-
-\`\`\`json
-{
-"type": "APPROVAL_SECURITY_CHECK"
-"network": "1", //default: 1 (Ethereum:1, BSC: 56, OKC: 66, Heco: 128, Polygon: 137, Fantom:250, Arbitrum: 42161, Avalanche: 43114)
-"contract": "" | null,
-}
-\`\`\`
-
-
-- [ACCOUNT_ERC20_SECURITY_CHECK]
-    Description: Security assessment of account-related ERC20 token transactions and holdings
-    Keywords: ERC20, token account, token security, account detection
-    Respond with a JSON markdown block containing only the extracted values:
-
-\`\`\`json
-{
-"type": "ACCOUNT_ERC20_SECURITY_CHECK"
-"network": "1", //default: 1 (Ethereum:1, Optimism:10, Cronos:25, BSC:56, Gnosis:100, HECO:128, Polygon:137, Fantom:250, KCC:321, zkSync Era:324, FON:201022, Arbitrum:42161, Avalanche:43114, Linea Mainnet:59144, Base:8453, Mantle:5000)
-"wallet": "" | null,
-}
-\`\`\`
-
-
-- [ACCOUNT_ERC721_SECURITY_CHECK]
-    Description: Security analysis of account's ERC721 NFT assets
-    Keywords: ERC721, NFT account, NFT assets, collectibles security
-    Respond with a JSON markdown block containing only the extracted values:
-\`\`\`json
-{
-"type": "ACCOUNT_ERC721_SECURITY_CHECK"
-"network": "1", //default: 1 (Ethereum:1, Optimism:10, Cronos:25, BSC:56, Gnosis:100, HECO:128, Polygon:137, Fantom:250, KCC:321, zkSync Era:324, FON:201022, Arbitrum:42161, Avalanche:43114, Linea Mainnet:59144, Base:8453, Mantle:5000)
-"wallet": "" | null,
-}
-\`\`\`
-
-
-- [ACCOUNT_ERC1155_SECURITY_CHECK]
-    Description: Security evaluation of account's ERC1155 multi-token standard assets
-    Keywords: ERC1155, multi-token, hybrid assets, account security
-    Respond with a JSON markdown block containing only the extracted values:
-
-\`\`\`json
-{
-"type": "ACCOUNT_ERC1155_SECURITY_CHECK"
-"network": "1", //default: 1 (Ethereum:1, Optimism:10, Cronos:25, BSC:56, Gnosis:100, HECO:128, Polygon:137, Fantom:250, KCC:321, zkSync Era:324, FON:201022, Arbitrum:42161, Avalanche:43114, Linea Mainnet:59144, Base:8453, Mantle:5000)
-"wallet": "" | null,
-}
-\`\`\`
-
-
-- [SIGNATURE_SECURITY_CHECK]
-    Description: Verification of signature security, preventing signature fraud risks
-    Keywords: signature verification, message signing, signature risk, signature fraud
-    Respond with a JSON markdown block containing only the extracted values:
-
-\`\`\`json
-{
-"type": "SIGNATURE_SECURITY_CHECK"
-"network": "1", //default: 1 (Ethereum: 1, Cronos:25, BSC: 56, Heco: 128, Polygon: 137, Fantom:250, KCC: 321, Arbitrum: 42161, Avalanche: 43114)
-"data": "" | null,
-}
-\`\`\`
-
-
-- [URL_SECURITY_CHECK]
-    Description: Detection of known phishing websites, malicious sites or other security risks in URLs
-    Keywords: link detection, phishing website, malicious URL, website security
-    Respond with a JSON markdown block containing only the extracted values:
-\`\`\`json
-{
-"type": "URL_SECURITY_CHECK"
-"url": "" | null,
-}
-\`\`\`
 
 Extract the necessary information(All fields present in the json are important information) and choose the appropriate action(s) based on the text. Return the JSON response following the format above.
-important: do not response anything except json`
-
-
+important: do not response anything except json`;
 
-export const responsePrompt = (apiresult: string, text:string) => `You are a security action detector for blockchain interactions. Your task is to analyze the security API’s response from GoPlus and summary the API result.
+export const responsePrompt = (
+    apiresult: string,
+    text: string
+) => `You are a security action detector for blockchain interactions. Your task is to analyze the security API’s response from GoPlus and summary the API result.
 API to analyze:“”"
 ${apiresult}
 “”"
@@ -206,4 +102,4 @@ Instructions:
 3. **Formulate a Clear Response**: Combine the action type, extracted information, and an analysis of the results. Provide a clear, concise response based on the security context. Focus on delivering the most relevant answer without unnecessary detail.
 - Only reply with your conclusion.
 - Do not discuss the safety aspects of the action; just focus on identifying and pointing out any risks.
-- Tailor your response to the user’s request, focusing on their specific query.`
\ No newline at end of file
+- Tailor your response to the user’s request, focusing on their specific query.`;

From 6a142249615d4ab8ecec88db485af7017cbeafb7 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Wed, 15 Jan 2025 11:23:41 +0700
Subject: [PATCH 14/58] DEBUG post

---
 packages/client-twitter/src/post.ts | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/packages/client-twitter/src/post.ts b/packages/client-twitter/src/post.ts
index 282510c4df3..e42a7a1b5cb 100644
--- a/packages/client-twitter/src/post.ts
+++ b/packages/client-twitter/src/post.ts
@@ -1163,7 +1163,10 @@ export class TwitterPostClient {
             }
 
             elizaLogger.debug("Final reply text to be sent:", replyText);
-
+            console.log("Final reply text to be sent:", {
+                replyText,
+                length: replyText.length,
+            });
             let result;
 
             if (replyText.length > DEFAULT_MAX_TWEET_LENGTH) {

From feadcc792fae3a462a956b6c0b1582d4755bd970 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Wed, 15 Jan 2025 11:24:11 +0700
Subject: [PATCH 15/58] supabase schema

---
 packages/adapter-supabase/schema.sql | 209 +++++++++++++++++++++++++++
 1 file changed, 209 insertions(+)

diff --git a/packages/adapter-supabase/schema.sql b/packages/adapter-supabase/schema.sql
index 5cb5dc38663..7d6f929ada9 100644
--- a/packages/adapter-supabase/schema.sql
+++ b/packages/adapter-supabase/schema.sql
@@ -13,6 +13,7 @@
 
 
 CREATE EXTENSION IF NOT EXISTS vector;
+CREATE EXTENSION IF NOT EXISTS fuzzystrmatch;
 
 BEGIN;
 
@@ -192,4 +193,212 @@ CREATE INDEX idx_knowledge_created ON knowledge("agentId", "createdAt");
 CREATE INDEX idx_knowledge_shared ON knowledge("isShared");
 CREATE INDEX idx_knowledge_embedding ON knowledge USING ivfflat (embedding vector_cosine_ops);
 
+CREATE OR REPLACE FUNCTION "public"."check_similarity_and_insert"("query_table_name" "text", "query_userid" "uuid", "query_content" "text", "query_roomid" "uuid", "query_embedding" "public"."vector", "query_createdat" timestamp with time zone, "similarity_threshold" double precision DEFAULT 0.95) RETURNS "void"
+    LANGUAGE "plpgsql"
+    AS $$
+DECLARE
+    similar_exists BOOLEAN;
+BEGIN
+    -- Check which table to query based on embedding size
+    CASE query_table_name
+    WHEN 'memories_1536' THEN
+        SELECT EXISTS (
+            SELECT 1 FROM memories_1536
+            WHERE roomId = query_roomId
+            AND userId = query_userId
+            AND content->>'text' = query_content
+            AND 1 - (embedding <=> query_embedding) > similarity_threshold
+        ) INTO similar_exists;
+    WHEN 'memories_1024' THEN
+        SELECT EXISTS (
+            SELECT 1 FROM memories_1024
+            WHERE roomId = query_roomId
+            AND userId = query_userId
+            AND content->>'text' = query_content
+            AND 1 - (embedding <=> query_embedding) > similarity_threshold
+        ) INTO similar_exists;
+    WHEN 'memories_768' THEN
+        SELECT EXISTS (
+            SELECT 1 FROM memories_768
+            WHERE roomId = query_roomId
+            AND userId = query_userId
+            AND content->>'text' = query_content
+            AND 1 - (embedding <=> query_embedding) > similarity_threshold
+        ) INTO similar_exists;
+    WHEN 'memories_384' THEN
+        SELECT EXISTS (
+            SELECT 1 FROM memories_384
+            WHERE roomId = query_roomId
+            AND userId = query_userId
+            AND content->>'text' = query_content
+            AND 1 - (embedding <=> query_embedding) > similarity_threshold
+        ) INTO similar_exists;
+    ELSE
+        RAISE EXCEPTION 'Invalid table name: %', query_table_name;
+    END CASE;
+
+    -- Only insert if no similar memory exists
+    IF NOT similar_exists THEN
+        CASE query_table_name
+        WHEN 'memories_1536' THEN
+            INSERT INTO memories_1536 (id, type, "createdAt", content, embedding, "userId", "roomId", "unique")
+            VALUES (gen_random_uuid(), 'message', query_createdAt, jsonb_build_object('text', query_content), query_embedding, query_userId, query_roomId, true);
+        WHEN 'memories_1024' THEN
+            INSERT INTO memories_1024 (id, type, "createdAt", content, embedding, "userId", "roomId", "unique")
+            VALUES (gen_random_uuid(), 'message', query_createdAt, jsonb_build_object('text', query_content), query_embedding, query_userId, query_roomId, true);
+        WHEN 'memories_768' THEN
+            INSERT INTO memories_768 (id, type, "createdAt", content, embedding, "userId", "roomId", "unique")
+            VALUES (gen_random_uuid(), 'message', query_createdAt, jsonb_build_object('text', query_content), query_embedding, query_userId, query_roomId, true);
+        WHEN 'memories_384' THEN
+            INSERT INTO memories_384 (id, type, "createdAt", content, embedding, "userId", "roomId", "unique")
+            VALUES (gen_random_uuid(), 'message', query_createdAt, jsonb_build_object('text', query_content), query_embedding, query_userId, query_roomId, true);
+        END CASE;
+    END IF;
+END;
+$$;
+
+
+CREATE OR REPLACE FUNCTION "public"."count_memories"("query_table_name" "text", "query_roomId" "uuid", "query_unique" boolean DEFAULT false) RETURNS bigint
+    LANGUAGE "plpgsql"
+    AS $$
+BEGIN
+    RETURN (
+        SELECT COUNT(*) FROM public.memories
+        WHERE public.memories."type" = "query_table_name"
+        AND ("query_roomId" IS NULL OR public.memories."roomId" = "query_roomId")
+        AND ("query_unique" IS FALSE OR public.memories."unique" = TRUE)
+    );
+END;
+$$;
+
+CREATE OR REPLACE FUNCTION "public"."create_room"("roomId" "uuid") RETURNS TABLE("id" "uuid")
+    LANGUAGE "plpgsql"
+    AS $$
+BEGIN
+    RETURN QUERY INSERT INTO public.rooms ("id") VALUES ("roomId") RETURNING public.rooms."id";
+END;
+$$;
+
+
+CREATE OR REPLACE FUNCTION "public"."get_embedding_list"("query_table_name" "text", "query_threshold" integer, "query_input" "text", "query_field_name" "text", "query_field_sub_name" "text", "query_match_count" integer) RETURNS TABLE("embedding" "public"."vector", "levenshtein_score" integer)
+    LANGUAGE "plpgsql"
+    AS $$
+BEGIN
+    RETURN QUERY
+    SELECT public.memories."embedding", levenshtein("query_input", (public.memories."content"->>"query_field_name")::TEXT) AS "levenshtein_score"
+    FROM public.memories
+    WHERE public.memories."type" = "query_table_name"
+    AND levenshtein("query_input", (public.memories."content"->>"query_field_name")::TEXT) <= "query_threshold"
+    ORDER BY "levenshtein_score"
+    LIMIT "query_match_count";
+END;
+$$;
+
+
+CREATE OR REPLACE FUNCTION "public"."get_goals"("query_roomid" "uuid", "query_userid" "uuid" DEFAULT NULL::"uuid", "only_in_progress" boolean DEFAULT true, "row_count" integer DEFAULT 5) RETURNS SETOF "public"."goals"
+    LANGUAGE "plpgsql"
+    AS $$
+BEGIN
+    RETURN QUERY
+    SELECT * FROM goals
+    WHERE
+        (query_userId IS NULL OR userId = query_userId)
+        AND (roomId = query_roomId)
+        AND (NOT only_in_progress OR status = 'IN_PROGRESS')
+    LIMIT row_count;
+END;
+$$;
+
+
+CREATE OR REPLACE FUNCTION "public"."get_relationship"("userA" "uuid", "userB" "uuid") RETURNS SETOF "public"."relationships"
+    LANGUAGE "plpgsql" STABLE
+    AS $$
+BEGIN
+    RETURN QUERY
+    SELECT * FROM public.relationships
+    WHERE (public.relationships."userA" = "userA" AND public.relationships."userB" = "userB")
+    OR (public.relationships."userA" = "userB" AND public.relationships."userB" = "userA");
+END;
+$$;
+
+
+CREATE OR REPLACE FUNCTION "public"."remove_memories"("query_table_name" "text", "query_roomId" "uuid") RETURNS "void"
+    LANGUAGE "plpgsql"
+    AS $$
+BEGIN
+    DELETE FROM public.memories WHERE public.memories."roomId" = "query_roomId" AND public.memories."type" = "query_table_name";
+END;
+$$;
+
+
+CREATE OR REPLACE FUNCTION "public"."search_knowledge"("query_embedding" "public"."vector", "query_agent_id" "uuid", "match_threshold" double precision, "match_count" integer, "search_text" "text") RETURNS TABLE("id" "uuid", "agentId" "uuid", "content" "jsonb", "embedding" "public"."vector", "createdAt" timestamp with time zone, "similarity" double precision)
+    LANGUAGE "plpgsql"
+    AS $$
+BEGIN
+    RETURN QUERY
+    WITH vector_matches AS (
+        SELECT public.knowledge."id",
+            1 - (public.knowledge."embedding" <=> "query_embedding") AS "vector_score"
+        FROM public.knowledge
+        WHERE (public.knowledge."agentId" IS NULL AND public.knowledge."isShared" = true) OR public.knowledge."agentId" = "query_agent_id"
+        AND public.knowledge."embedding" IS NOT NULL
+    ),
+    keyword_matches AS (
+        SELECT public.knowledge."id",
+        CASE
+            WHEN public.knowledge."content"->>'text' ILIKE '%' || "search_text" || '%' THEN 3.0
+            ELSE 1.0
+        END *
+        CASE
+            WHEN public.knowledge."content"->'metadata'->>'isChunk' = 'true' THEN 1.5
+            WHEN public.knowledge."content"->'metadata'->>'isMain' = 'true' THEN 1.2
+            ELSE 1.0
+        END AS "keyword_score"
+        FROM public.knowledge
+        WHERE (public.knowledge."agentId" IS NULL AND public.knowledge."isShared" = true) OR public.knowledge."agentId" = "query_agent_id"
+    )
+    SELECT
+        k."id",
+        k."agentId",
+        k."content",
+        k."embedding",
+        k."createdAt",
+        (v."vector_score" * kw."keyword_score") AS "similarity"
+    FROM public.knowledge k
+    JOIN vector_matches v ON k."id" = v."id"
+    LEFT JOIN keyword_matches kw ON k."id" = kw."id"
+    WHERE (k."agentId" IS NULL AND k."isShared" = true) OR k."agentId" = "query_agent_id"
+    AND (
+        v."vector_score" >= "match_threshold"
+        OR (kw."keyword_score" > 1.0 AND v."vector_score" >= 0.3)
+    )
+    ORDER BY "similarity" DESC
+    LIMIT "match_count";
+END;
+$$;
+
+
+CREATE OR REPLACE FUNCTION "public"."search_memories"("query_table_name" "text", "query_roomId" "uuid", "query_embedding" "public"."vector", "query_match_threshold" double precision, "query_match_count" integer, "query_unique" boolean) RETURNS TABLE("id" "uuid", "userId" "uuid", "content" "jsonb", "createdAt" timestamp with time zone, "similarity" double precision, "roomId" "uuid", "embedding" "public"."vector")
+    LANGUAGE "plpgsql"
+    AS $$
+BEGIN
+    RETURN QUERY
+    SELECT
+        public.memories."id",
+        public.memories."userId",
+        public.memories."content",
+        public.memories."createdAt",
+        1 - (public.memories."embedding" <=> "query_embedding") AS "similarity",
+        public.memories."roomId",
+        public.memories."embedding"
+    FROM public.memories
+    WHERE (1 - (public.memories."embedding" <=> "query_embedding") > "query_match_threshold")
+    AND public.memories."type" = "query_table_name"
+    AND ("query_unique" IS FALSE OR public.memories."unique" = TRUE)
+    AND ("query_roomId" IS NULL OR public.memories."roomId" = "query_roomId")
+    ORDER BY "similarity" DESC
+    LIMIT "query_match_count";
+END;
+$$;
+
 COMMIT;

From 077a8299b781270ee3b0a323c6854d625e3d69a6 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Wed, 15 Jan 2025 11:24:29 +0700
Subject: [PATCH 16/58] package.json duplicates fix

---
 package.json | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/package.json b/package.json
index 423adf1ff24..d058e525c29 100644
--- a/package.json
+++ b/package.json
@@ -27,7 +27,6 @@
     "devDependencies": {
         "@commitlint/cli": "18.6.1",
         "@commitlint/config-conventional": "18.6.3",
-        "@types/jest": "^29.5.11",
         "@typescript-eslint/eslint-plugin": "8.16.0",
         "@typescript-eslint/parser": "8.16.0",
         "@vitest/eslint-plugin": "1.1.13",
@@ -36,11 +35,9 @@
         "eslint": "9.16.0",
         "eslint-config-prettier": "9.1.0",
         "husky": "9.1.7",
-        "jest": "^29.7.0",
         "lerna": "8.1.5",
         "only-allow": "1.2.1",
         "prettier": "3.4.1",
-        "ts-jest": "^29.1.1",
         "turbo": "2.3.3",
         "typedoc": "0.26.11",
         "typescript": "5.6.3",

From 7189c8a3e5a3c936b062f73052d270026021935b Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Wed, 15 Jan 2025 11:39:40 +0700
Subject: [PATCH 17/58] dirty fix for json tweet

---
 packages/client-twitter/src/post.ts | 41 ++++++++++++++++++++++++++---
 1 file changed, 37 insertions(+), 4 deletions(-)

diff --git a/packages/client-twitter/src/post.ts b/packages/client-twitter/src/post.ts
index e42a7a1b5cb..8980d0c9ff7 100644
--- a/packages/client-twitter/src/post.ts
+++ b/packages/client-twitter/src/post.ts
@@ -1163,8 +1163,23 @@ export class TwitterPostClient {
             }
 
             elizaLogger.debug("Final reply text to be sent:", replyText);
+
+            // temporary fix
+            const _replyText = replyText;
+
+            // Regular expression untuk menangkap teks
+            const regex = /{ "user": "SUIRISE", "text": "(.*)/;
+
+            // Ekstrak teks menggunakan regex
+            const match = regex.exec(_replyText);
+            let finalReplyText;
+            if (match) {
+                finalReplyText = match[1]; // Ambil grup pertama
+            } else {
+                finalReplyText = replyText;
+            }
             console.log("Final reply text to be sent:", {
-                replyText,
+                finalReplyText,
                 length: replyText.length,
             });
             let result;
@@ -1172,25 +1187,43 @@ export class TwitterPostClient {
             if (replyText.length > DEFAULT_MAX_TWEET_LENGTH) {
                 result = await this.handleNoteTweet(
                     this.client,
-                    replyText,
+                    finalReplyText,
                     tweet.id
                 );
             } else {
                 result = await this.sendStandardTweet(
                     this.client,
-                    replyText,
+                    finalReplyText,
                     tweet.id
                 );
             }
 
+            // if (replyText.length > DEFAULT_MAX_TWEET_LENGTH) {
+            //     result = await this.handleNoteTweet(
+            //         this.client,
+            //         replyText,
+            //         tweet.id
+            //     );
+            // } else {
+            //     result = await this.sendStandardTweet(
+            //         this.client,
+            //         replyText,
+            //         tweet.id
+            //     );
+            // }
+
             if (result) {
                 elizaLogger.log("Successfully posted reply tweet");
                 executedActions.push("reply");
 
                 // Cache generation context for debugging
+                // await this.runtime.cacheManager.set(
+                //     `twitter/reply_generation_${tweet.id}.txt`,
+                //     `Context:\n${enrichedState}\n\nGenerated Reply:\n${replyText}`
+                // );
                 await this.runtime.cacheManager.set(
                     `twitter/reply_generation_${tweet.id}.txt`,
-                    `Context:\n${enrichedState}\n\nGenerated Reply:\n${replyText}`
+                    `Context:\n${enrichedState}\n\nGenerated Reply:\n${finalReplyText}`
                 );
             } else {
                 elizaLogger.error("Tweet reply creation failed");

From a9dbc632a80faebd57aeb76c8a31e99bdfdf6c5e Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Wed, 15 Jan 2025 16:10:31 +0700
Subject: [PATCH 18/58] prompt optimization

---
 packages/client-twitter/src/post.ts | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/packages/client-twitter/src/post.ts b/packages/client-twitter/src/post.ts
index 8980d0c9ff7..0f263ba709e 100644
--- a/packages/client-twitter/src/post.ts
+++ b/packages/client-twitter/src/post.ts
@@ -48,7 +48,8 @@ const twitterPostTemplate = `
 
 # Task: Generate a post in the voice and style and perspective of {{agentName}} @{{twitterUserName}}.
 Write a post that is {{adjective}} about {{topic}} (without mentioning {{topic}} directly), from the perspective of {{agentName}}. Do not add commentary or acknowledge this request, just write the post.
-Your response must include the summary of the # NEWS above into a sentences. Dont discard or remove any important numbers and informations
+Your response must include the summary of the # NEWS above into a sentences and Dont discard or remove any important numbers and informations
+If the news isnt about SUI or SUIRISE, dont mix the context with SUI Shilling. keep the original and relevant context of the news.
 Your response should be 1, 2, or 3 sentences (choose the length at random).
 Your response should not contain any questions. Brief, concise statements only. The total character count MUST be less than {{maxTweetLength}}. No emojis. Use \\n\\n (double spaces) between statements if there are multiple statements in your response.`;
 

From d3e4f507a990cb7a3475a4fa9c8a860ec19e3940 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Wed, 15 Jan 2025 16:25:22 +0700
Subject: [PATCH 19/58] debug

---
 packages/client-twitter/src/post.ts | 1 +
 1 file changed, 1 insertion(+)

diff --git a/packages/client-twitter/src/post.ts b/packages/client-twitter/src/post.ts
index 0f263ba709e..c2dad014cd6 100644
--- a/packages/client-twitter/src/post.ts
+++ b/packages/client-twitter/src/post.ts
@@ -1181,6 +1181,7 @@ export class TwitterPostClient {
             }
             console.log("Final reply text to be sent:", {
                 finalReplyText,
+                raw: replyText,
                 length: replyText.length,
             });
             let result;

From ed99a145e8bde3eff8df46a77c866d45794ea0dd Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Wed, 15 Jan 2025 16:26:41 +0700
Subject: [PATCH 20/58] XX debug

---
 packages/client-twitter/src/post.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packages/client-twitter/src/post.ts b/packages/client-twitter/src/post.ts
index c2dad014cd6..549009faa6f 100644
--- a/packages/client-twitter/src/post.ts
+++ b/packages/client-twitter/src/post.ts
@@ -1169,7 +1169,7 @@ export class TwitterPostClient {
             const _replyText = replyText;
 
             // Regular expression untuk menangkap teks
-            const regex = /{ "user": "SUIRISE", "text": "(.*)/;
+            const regex = /"text": "(.*)/s;
 
             // Ekstrak teks menggunakan regex
             const match = regex.exec(_replyText);

From 72d50f07a542df5c29c0598f2588e55f1a62f708 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Fri, 17 Jan 2025 11:13:33 +0700
Subject: [PATCH 21/58] put cache and memory to the news

---
 .../src/providers/cryptoNewsData.ts           | 81 ++++++++++++++-----
 1 file changed, 62 insertions(+), 19 deletions(-)

diff --git a/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts b/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
index 7dde3930cf0..931fe6c92f3 100644
--- a/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
+++ b/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
@@ -1,5 +1,9 @@
-import { Provider } from "@elizaos/core";
-import { ChainCatcherResponse, fetchChainCatcher } from "../utils/chainCatcher";
+import { Provider, stringToUuid } from "@elizaos/core";
+import {
+    ChainCatcherItem,
+    ChainCatcherResponse,
+    fetchChainCatcher,
+} from "../utils/chainCatcher";
 
 // interface FormattedMarketData {
 //     symbol: string;
@@ -53,29 +57,68 @@ export const cryptoNewsData: Provider = {
             // fetch several times
             const chainCatcher: ChainCatcherResponse =
                 await fetchChainCatcher();
+            const cacheManager = runtime.cacheManager;
+            const articles: ChainCatcherItem[] = [];
+            let output;
+
+            for (const article of chainCatcher.data.list) {
+                const cached = await cacheManager.get(
+                    `cryptoNews_${article.id}`
+                );
+                if (!cached) {
+                    // new acrticle
+                    console.log(
+                        `NEW ARTICLE : ${article.title} # ${article.id}`
+                    );
+                    // means it's not cached, then we push it to the articles
+                    articles.push(article);
+                    // cache it
+                    await cacheManager.set(`cryptoNews_${article.id}`, article);
+                    // put the news to knowledge as well
+                    await runtime.knowledgeManager.createMemory({
+                        // We namespace the knowledge base uuid to avoid id
+                        // collision with the document above.
+                        id: stringToUuid(`cryptoNews_${article.id}`),
+                        roomId: runtime.agentId,
+                        agentId: runtime.agentId,
+                        userId: runtime.agentId,
+                        createdAt: Date.now(),
+                        content: {
+                            text: article.description,
+                            type: "news",
+                        },
+                    });
+                } else {
+                    console.log(
+                        `ARTICLE ${article.id} is already cached, skipping`
+                    );
+                }
+            }
 
             // const cryptoNews: SerperNewsResponse =
             //     await fetchSerperNews("crypto");
             // const suiNews: SerperNewsResponse = await fetchSerperNews("$SUI");
-            let output = `# NEWS for ${runtime.character.name}\n\n`;
-            // output += `The News have this format:\n\n`;
-            // output += `
-            // - Title <--- Title of the news\n
-            // Description <--- Content of the news\n
-            // Timestamp <--- the time of the news\n\n
-            // `;
+            if (articles.length > 0) {
+                output = `# NEWS for ${runtime.character.name}\n\n`;
+                // output += `The News have this format:\n\n`;
+                // output += `
+                // - Title <--- Title of the news\n
+                // Description <--- Content of the news\n
+                // Timestamp <--- the time of the news\n\n
+                // `;
 
-            chainCatcher.data.list.forEach((article) => {
-                output += `- ${article.title}\n${article.description}\nTime: ${article.releaseTime}\n\n`;
-            });
+                chainCatcher.data.list.forEach((article) => {
+                    output += `- ${article.title}\n${article.description}\nTime: ${article.releaseTime}\n\n`;
+                });
 
-            // cryptoNews.news.forEach((article) => {
-            //     output += `- ${article.title}\n${article.snippet}\n\n`;
-            // });
-            // suiNews.news.forEach((article) => {
-            //     output += `- ${article.title}\n${article.snippet}\n\n`;
-            // });
-            output += `# ADDITIONAL_NOTES: if there's any decimal numbers you should convert the decimal separator into comma instead of dot\n\n# END NEWS\n\n`;
+                // cryptoNews.news.forEach((article) => {
+                //     output += `- ${article.title}\n${article.snippet}\n\n`;
+                // });
+                // suiNews.news.forEach((article) => {
+                //     output += `- ${article.title}\n${article.snippet}\n\n`;
+                // });
+                output += `# ADDITIONAL_NOTES: if there's any decimal numbers you should convert the decimal separator into comma instead of dot\n\n# END NEWS\n\n`;
+            }
 
             // elizaLogger.log(output);
 

From a511465ce17ef253c623631e3d1a84ca4d886261 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Fri, 17 Jan 2025 11:28:54 +0700
Subject: [PATCH 22/58] trimTweetLength additional fix if the text contains
 ugly json

---
 packages/client-twitter/src/post.ts | 23 +++++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)

diff --git a/packages/client-twitter/src/post.ts b/packages/client-twitter/src/post.ts
index 549009faa6f..fb1670051f6 100644
--- a/packages/client-twitter/src/post.ts
+++ b/packages/client-twitter/src/post.ts
@@ -658,11 +658,26 @@ export class TwitterPostClient {
         if (lastSentence > 0) {
             return text.slice(0, lastSentence + 1).trim();
         }
-
+        const _theText =
+            text.slice(0, text.lastIndexOf(" ", maxLength - 3)).trim() + "...";
+        const regex = /"text": "(.*)/s;
+
+        // Ekstrak teks menggunakan regex
+        const match = regex.exec(_theText);
+        let finalReplyText;
+        if (match) {
+            finalReplyText = match[1]; // Ambil grup pertama
+        } else {
+            finalReplyText = _theText;
+        }
+        // console.log("Final reply text to be sent:", {
+        //     finalReplyText,
+        //     raw: replyText,
+        //     length: replyText.length,
+        // });
+        // let result;
         // Fallback to word boundary
-        return (
-            text.slice(0, text.lastIndexOf(" ", maxLength - 3)).trim() + "..."
-        );
+        return finalReplyText;
     }
 
     /**

From ff3396f68b191b7b82121f7393ae88c7cb9cdb0c Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Fri, 17 Jan 2025 15:04:10 +0700
Subject: [PATCH 23/58] add embedding to news

---
 packages/plugin-crypto-news/src/providers/cryptoNewsData.ts | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts b/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
index 931fe6c92f3..e1bb9222142 100644
--- a/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
+++ b/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
@@ -1,4 +1,4 @@
-import { Provider, stringToUuid } from "@elizaos/core";
+import { embed, Provider, stringToUuid } from "@elizaos/core";
 import {
     ChainCatcherItem,
     ChainCatcherResponse,
@@ -74,6 +74,7 @@ export const cryptoNewsData: Provider = {
                     articles.push(article);
                     // cache it
                     await cacheManager.set(`cryptoNews_${article.id}`, article);
+                    const embedding = await embed(runtime, article.description);
                     // put the news to knowledge as well
                     await runtime.knowledgeManager.createMemory({
                         // We namespace the knowledge base uuid to avoid id
@@ -87,6 +88,7 @@ export const cryptoNewsData: Provider = {
                             text: article.description,
                             type: "news",
                         },
+                        embedding,
                     });
                 } else {
                     console.log(

From 0b1110170b07a507cc1e90e39803041060cc3f9c Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Fri, 17 Jan 2025 15:23:00 +0700
Subject: [PATCH 24/58] add embedding

---
 packages/plugin-crypto-news/src/providers/cryptoNewsData.ts | 1 +
 1 file changed, 1 insertion(+)

diff --git a/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts b/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
index e1bb9222142..d9dc4260184 100644
--- a/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
+++ b/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
@@ -75,6 +75,7 @@ export const cryptoNewsData: Provider = {
                     // cache it
                     await cacheManager.set(`cryptoNews_${article.id}`, article);
                     const embedding = await embed(runtime, article.description);
+                    console.log("embedding", embedding);
                     // put the news to knowledge as well
                     await runtime.knowledgeManager.createMemory({
                         // We namespace the knowledge base uuid to avoid id

From 4260319d2338e5ab4d069ebd1e8a34673e7d2caf Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Fri, 17 Jan 2025 15:44:28 +0700
Subject: [PATCH 25/58] realtime knowledge using RAG

---
 .../src/providers/cryptoNewsData.ts           | 31 ++++++++++++++-----
 1 file changed, 23 insertions(+), 8 deletions(-)

diff --git a/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts b/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
index d9dc4260184..e2856edce35 100644
--- a/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
+++ b/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
@@ -77,20 +77,35 @@ export const cryptoNewsData: Provider = {
                     const embedding = await embed(runtime, article.description);
                     console.log("embedding", embedding);
                     // put the news to knowledge as well
-                    await runtime.knowledgeManager.createMemory({
-                        // We namespace the knowledge base uuid to avoid id
-                        // collision with the document above.
+                    await runtime.ragKnowledgeManager.createKnowledge({
                         id: stringToUuid(`cryptoNews_${article.id}`),
-                        roomId: runtime.agentId,
                         agentId: runtime.agentId,
-                        userId: runtime.agentId,
-                        createdAt: Date.now(),
                         content: {
                             text: article.description,
-                            type: "news",
+                            metadata: {
+                                isMain: true,
+                                isShared: true,
+                                source: "articles",
+                            },
                         },
-                        embedding,
+                        embedding: new Float32Array(embedding),
                     });
+
+                    // await runtime.knowledgeManager.createMemory({
+                    //     // We namespace the knowledge base uuid to avoid id
+                    //     // collision with the document above.
+                    //     id: stringToUuid(`cryptoNews_${article.id}`),
+                    //     agentId: runtime.agentId,
+                    //     roomId: runtime.agentId,
+
+                    //     userId: runtime.agentId,
+                    //     createdAt: Date.now(),
+                    //     content: {
+                    //         text: article.description,
+                    //         type: "news",
+                    //     },
+                    //     embedding,
+                    // });
                 } else {
                     console.log(
                         `ARTICLE ${article.id} is already cached, skipping`

From 90948a28b0c1a57cefade60ebcde0508c77c699c Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Sat, 18 Jan 2025 00:44:53 +0700
Subject: [PATCH 26/58] disable birdeye

---
 agent/src/index.ts | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/agent/src/index.ts b/agent/src/index.ts
index 65a1ff645ca..73460105137 100644
--- a/agent/src/index.ts
+++ b/agent/src/index.ts
@@ -52,7 +52,6 @@ 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 {
     advancedTradePlugin,
     coinbaseCommercePlugin,
@@ -874,7 +873,7 @@ export async function createAgent(
             getSecret(character, "AVALANCHE_PRIVATE_KEY")
                 ? avalanchePlugin
                 : null,
-            getSecret(character, "BIRDEYE_API_KEY") ? birdeyePlugin : null,
+            // getSecret(character, "BIRDEYE_API_KEY") ? birdeyePlugin : null,
             getSecret(character, "ECHOCHAMBERS_API_URL") &&
             getSecret(character, "ECHOCHAMBERS_API_KEY")
                 ? echoChambersPlugin

From 6c5dd45f5b3be0b27d45f8f01560e2a802c81db6 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Sat, 18 Jan 2025 00:45:10 +0700
Subject: [PATCH 27/58] replace goplus with neocortex

---
 packages/plugin-goplus/src/templates/index.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packages/plugin-goplus/src/templates/index.ts b/packages/plugin-goplus/src/templates/index.ts
index 629ebb84b6f..641d739fba2 100644
--- a/packages/plugin-goplus/src/templates/index.ts
+++ b/packages/plugin-goplus/src/templates/index.ts
@@ -89,7 +89,7 @@ important: do not response anything except json`;
 export const responsePrompt = (
     apiresult: string,
     text: string
-) => `You are a security action detector for blockchain interactions. Your task is to analyze the security API’s response from GoPlus and summary the API result.
+) => `You are a security action detector for blockchain interactions. Your task is to analyze the security API’s response from NeoCorteX and summary the API result.
 API to analyze:“”"
 ${apiresult}
 “”"

From fa28855c5272decff0700a307dba50a039ee1d6d Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Tue, 21 Jan 2025 13:00:56 +0700
Subject: [PATCH 28/58] heleh

---
 packages/adapter-supabase/src/index.ts |  321 +-
 pnpm-lock.yaml                         | 3781 +++++++++++++-----------
 2 files changed, 2285 insertions(+), 1817 deletions(-)

diff --git a/packages/adapter-supabase/src/index.ts b/packages/adapter-supabase/src/index.ts
index dde145e896b..bcb4494d224 100644
--- a/packages/adapter-supabase/src/index.ts
+++ b/packages/adapter-supabase/src/index.ts
@@ -1,18 +1,17 @@
-import { createClient, type SupabaseClient } from "@supabase/supabase-js";
 import {
-    type Memory,
-    type Goal,
-    type Relationship,
+    Account,
     Actor,
+    DatabaseAdapter,
     GoalStatus,
-    Account,
-    type UUID,
     Participant,
-    Room,
     RAGKnowledgeItem,
     elizaLogger,
+    type Goal,
+    type Memory,
+    type Relationship,
+    type UUID,
 } from "@elizaos/core";
-import { DatabaseAdapter } from "@elizaos/core";
+import { createClient, type SupabaseClient } from "@supabase/supabase-js";
 import { v4 as uuid } from "uuid";
 export class SupabaseDatabaseAdapter extends DatabaseAdapter {
     async getRoom(roomId: UUID): Promise<UUID | null> {
@@ -48,19 +47,57 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
         roomId: UUID,
         userId: UUID
     ): Promise<"FOLLOWED" | "MUTED" | null> {
-        const { data, error } = await this.supabase
-            .from("participants")
-            .select("userState")
-            .eq("roomId", roomId)
-            .eq("userId", userId)
-            .single();
+        try {
+            const { data, error } = await this.supabase
+                .from("participants")
+                .select("userState")
+                .eq("roomId", roomId)
+                .eq("userId", userId)
+                .maybeSingle();
 
-        if (error) {
-            elizaLogger.error("Error getting participant user state:", error);
+            if (error) {
+                elizaLogger.error(
+                    "Error getting participant user state:",
+                    error
+                );
+                return null;
+            }
+
+            return data?.userState as "FOLLOWED" | "MUTED" | null;
+        } catch (error) {
+            elizaLogger.error(
+                "Unexpected error in getParticipantUserState:",
+                error
+            );
             return null;
         }
+    }
+
+    async getParticipantsForRoom(roomId: UUID): Promise<UUID[]> {
+        try {
+            const { data, error } = await this.supabase
+                .from("participants")
+                .select("userId")
+                .eq("roomId", roomId);
+
+            if (error) {
+                elizaLogger.error(
+                    "Error getting participants for room:",
+                    error
+                );
+                throw new Error(
+                    `Error getting participants for room: ${error.message}`
+                );
+            }
 
-        return data?.userState as "FOLLOWED" | "MUTED" | null;
+            return data.map((row) => row.userId as UUID);
+        } catch (error) {
+            elizaLogger.error(
+                "Unexpected error in getParticipantsForRoom:",
+                error
+            );
+            throw error;
+        }
     }
 
     async setParticipantUserState(
@@ -80,21 +117,6 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
         }
     }
 
-    async getParticipantsForRoom(roomId: UUID): Promise<UUID[]> {
-        const { data, error } = await this.supabase
-            .from("participants")
-            .select("userId")
-            .eq("roomId", roomId);
-
-        if (error) {
-            throw new Error(
-                `Error getting participants for room: ${error.message}`
-            );
-        }
-
-        return data.map((row) => row.userId as UUID);
-    }
-
     supabase: SupabaseClient;
 
     constructor(supabaseUrl: string, supabaseKey: string) {
@@ -114,22 +136,25 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
         roomIds: UUID[];
         agentId?: UUID;
         tableName: string;
-        limit?: number;
     }): Promise<Memory[]> {
+        // Determine which memories table to use based on the tableName
+        const embeddingSize = params.tableName.includes("_")
+            ? parseInt(params.tableName.split("_")[1])
+            : 1536; // default to 1536 if not specified
+
+        const actualTableName = `memories_${embeddingSize}`;
+
+        elizaLogger.info(`Querying memories from table: ${actualTableName}`);
+
         let query = this.supabase
-            .from(params.tableName)
+            .from(actualTableName)
             .select("*")
-            .in("roomId", params.roomIds)
-            .order("createdAt", { ascending: false });
+            .in("roomId", params.roomIds);
 
         if (params.agentId) {
             query = query.eq("agentId", params.agentId);
         }
 
-        if (params.limit) {
-            query = query.limit(params.limit);
-        }
-
         const { data, error } = await query;
 
         if (error) {
@@ -145,21 +170,11 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
         return memories as Memory[];
     }
 
-    async getAccountById(userId: UUID): Promise<Account | null> {
-        const { data, error } = await this.supabase
-            .from("accounts")
-            .select("*")
-            .eq("id", userId);
-        if (error) {
-            throw new Error(error.message);
-        }
-        return (data?.[0] as Account) || null;
-    }
-
     async createAccount(account: Account): Promise<boolean> {
         const { error } = await this.supabase
             .from("accounts")
             .upsert([account]);
+
         if (error) {
             elizaLogger.error(error.message);
             return false;
@@ -167,6 +182,19 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
         return true;
     }
 
+    async getAccountById(userId: UUID): Promise<Account | null> {
+        const { data, error } = await this.supabase
+            .from("accounts")
+            .select("*")
+            .eq("id", userId);
+
+        if (error) {
+            elizaLogger.error(error.message);
+            throw error;
+        }
+        return (data?.[0] as Account) || null;
+    }
+
     async getActorDetails(params: { roomId: UUID }): Promise<Actor[]> {
         try {
             const response = await this.supabase
@@ -266,6 +294,7 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
         type: string;
     }): Promise<void> {
         const { error } = await this.supabase.from("logs").insert({
+            id: uuid(),
             body: params.body,
             userId: params.userId,
             roomId: params.roomId,
@@ -287,17 +316,27 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
         start?: number;
         end?: number;
     }): Promise<Memory[]> {
+        // Determine which memories table to use based on the tableName
+        const embeddingSize = params.tableName.includes("_")
+            ? parseInt(params.tableName.split("_")[1])
+            : 1536; // default to 1536 if not specified
+
+        const actualTableName = `memories_${embeddingSize}`;
+
+        elizaLogger.info(`Querying memories from table: ${actualTableName}`);
+
         const query = this.supabase
-            .from(params.tableName)
+            .from(actualTableName)
             .select("*")
             .eq("roomId", params.roomId);
 
+        // Convert timestamps to ISO strings
         if (params.start) {
-            query.gte("createdAt", params.start);
+            query.gte("createdAt", new Date(params.start).toISOString());
         }
 
         if (params.end) {
-            query.lte("createdAt", params.end);
+            query.lte("createdAt", new Date(params.end).toISOString());
         }
 
         if (params.unique) {
@@ -320,7 +359,15 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
             throw new Error(`Error retrieving memories: ${error.message}`);
         }
 
-        return data as Memory[];
+        // map createdAt to Date
+        const memories = data.map((memory) => ({
+            ...memory,
+            createdAt: memory.createdAt
+                ? new Date(memory.createdAt).getTime()
+                : undefined,
+        }));
+
+        return memories as Memory[];
     }
 
     async searchMemoriesByEmbedding(
@@ -356,18 +403,50 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
     }
 
     async getMemoryById(memoryId: UUID): Promise<Memory | null> {
-        const { data, error } = await this.supabase
+        // Try each memory table since we don't know which one contains the memory
+        for (const size of [384, 768, 1024, 1536]) {
+            const { data, error } = await this.supabase
+                .from(`memories_${size}`)
+                .select("*")
+                .eq("id", memoryId)
+                .maybeSingle(); // Use maybeSingle() instead of single()
+            // PGRST116 means "no results found" - this is expected when checking other tables
+            if (error && error.code !== "PGRST116") {
+                elizaLogger.error(`Error checking memories_${size}:`, error);
+                continue;
+            }
+
+            if (data) {
+                return data as Memory;
+            }
+        }
+
+        return null;
+    }
+
+    async getMemoriesByIds(
+        memoryIds: UUID[],
+        tableName?: string
+    ): Promise<Memory[]> {
+        if (memoryIds.length === 0) return [];
+
+        let query = this.supabase
             .from("memories")
             .select("*")
-            .eq("id", memoryId)
-            .single();
+            .in("id", memoryIds);
+
+        if (tableName) {
+            query = query.eq("type", tableName);
+        }
+
+        const { data, error } = await query;
 
         if (error) {
-            elizaLogger.error("Error retrieving memory by ID:", error);
-            return null;
+            console.error("Error retrieving memories by IDs:", error);
+            return [];
         }
 
-        return data as Memory;
+        return data as Memory[];
     }
 
     async createMemory(
@@ -375,11 +454,27 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
         tableName: string,
         unique = false
     ): Promise<void> {
-        const createdAt = memory.createdAt ?? Date.now();
+        // ✅ Convert from milliseconds to seconds
+        const createdAt = memory.createdAt
+            ? new Date(memory.createdAt).toISOString()
+            : new Date().toISOString();
+
+        // Determine which table to use based on embedding size
+        const embeddingSize = memory.embedding?.length;
+        if (!embeddingSize) {
+            throw new Error("Memory must have an embedding");
+        }
+
+        // Validate embedding size
+        if (![384, 768, 1024, 1536].includes(embeddingSize)) {
+            throw new Error(`Unsupported embedding size: ${embeddingSize}`);
+        }
+
+        const actualTableName = `memories_${embeddingSize}`;
+
         if (unique) {
             const opts = {
-                // TODO: Add ID option, optionally
-                query_table_name: tableName,
+                query_table_name: actualTableName,
                 query_userId: memory.userId,
                 query_content: memory.content.text,
                 query_roomId: memory.roomId,
@@ -397,12 +492,15 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
                 throw new Error(JSON.stringify(result.error));
             }
         } else {
-            const result = await this.supabase
-                .from("memories")
-                .insert({ ...memory, createdAt, type: tableName });
-            const { error } = result;
-            if (error) {
-                throw new Error(JSON.stringify(error));
+            const result = await this.supabase.from(actualTableName).insert({
+                ...memory,
+                id: memory.id, // Ensure ID is included
+                createdAt,
+                type: tableName,
+            });
+
+            if (result.error) {
+                throw new Error(JSON.stringify(result.error));
             }
         }
     }
@@ -457,23 +555,34 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
         onlyInProgress?: boolean;
         count?: number;
     }): Promise<Goal[]> {
-        const opts = {
-            query_roomId: params.roomId,
-            query_userId: params.userId,
-            only_in_progress: params.onlyInProgress,
-            row_count: params.count,
-        };
+        try {
+            const opts = {
+                query_roomId: params.roomId,
+                query_userId: params.userId || null,
+                only_in_progress: params.onlyInProgress || false,
+                row_count: params.count || null,
+            };
 
-        const { data: goals, error } = await this.supabase.rpc(
-            "get_goals",
-            opts
-        );
+            elizaLogger.debug("Calling get_goals with params:", opts);
 
-        if (error) {
-            throw new Error(error.message);
-        }
+            const { data: goals, error } = await this.supabase.rpc(
+                "get_goals",
+                opts
+            );
 
-        return goals;
+            if (error) {
+                elizaLogger.error("Error fetching goals:", {
+                    error,
+                    params: opts,
+                });
+                throw new Error(error.message);
+            }
+
+            return goals;
+        } catch (error) {
+            elizaLogger.error("Unexpected error in getGoals:", error);
+            throw error;
+        }
     }
 
     async updateGoal(goal: Goal): Promise<void> {
@@ -487,7 +596,9 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
     }
 
     async createGoal(goal: Goal): Promise<void> {
-        const { error } = await this.supabase.from("goals").insert(goal);
+        const { error } = await this.supabase
+            .from("goals")
+            .insert({ ...goal, id: goal.id || uuid() });
         if (error) {
             throw new Error(`Error creating goal: ${error.message}`);
         }
@@ -572,9 +683,11 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
     }
 
     async addParticipant(userId: UUID, roomId: UUID): Promise<boolean> {
-        const { error } = await this.supabase
-            .from("participants")
-            .insert({ userId: userId, roomId: roomId });
+        const { error } = await this.supabase.from("participants").insert({
+            id: uuid(), // Generate a new UUID for the participant
+            userId: userId,
+            roomId: roomId,
+        });
 
         if (error) {
             elizaLogger.error(`Error adding participant: ${error.message}`);
@@ -609,27 +722,26 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
         let roomId: UUID;
 
         if (!allRoomData || allRoomData.length === 0) {
-            // If no existing room is found, create a new room
-            const { data: newRoomData, error: roomsError } = await this.supabase
+            // Create new room with UUID
+            const newRoomId = uuid() as UUID;
+            const { error: roomsError } = await this.supabase
                 .from("rooms")
-                .insert({})
-                .single();
+                .insert({ id: newRoomId });
 
             if (roomsError) {
                 throw new Error("Room creation error: " + roomsError.message);
             }
 
-            roomId = (newRoomData as Room)?.id as UUID;
+            roomId = newRoomId;
         } else {
-            // If an existing room is found, use the first room's ID
             roomId = allRoomData[0];
         }
 
         const { error: participantsError } = await this.supabase
             .from("participants")
             .insert([
-                { userId: params.userA, roomId },
-                { userId: params.userB, roomId },
+                { id: uuid(), userId: params.userA, roomId },
+                { id: uuid(), userId: params.userB, roomId },
             ]);
 
         if (participantsError) {
@@ -638,17 +750,16 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
             );
         }
 
-        // Create or update the relationship between the two users
+        // Create relationship with UUID
         const { error: relationshipError } = await this.supabase
             .from("relationships")
             .upsert({
+                id: uuid(),
                 userA: params.userA,
                 userB: params.userB,
                 userId: params.userA,
                 status: "FRIENDS",
-            })
-            .eq("userA", params.userA)
-            .eq("userB", params.userB);
+            });
 
         if (relationshipError) {
             throw new Error(
@@ -698,7 +809,7 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
             .select("value")
             .eq("key", params.key)
             .eq("agentId", params.agentId)
-            .single();
+            .maybeSingle();
 
         if (error) {
             elizaLogger.error("Error fetching cache:", error);
@@ -717,7 +828,7 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
             key: params.key,
             agentId: params.agentId,
             value: params.value,
-            createdAt: new Date(),
+            createdAt: new Date().toISOString(),
         });
 
         if (error) {
@@ -856,13 +967,15 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
             const metadata = knowledge.content.metadata || {};
 
             const { error } = await this.supabase.from("knowledge").insert({
-                id: knowledge.id,
+                id: knowledge.id || uuid(),
                 agentId: metadata.isShared ? null : knowledge.agentId,
                 content: knowledge.content,
                 embedding: knowledge.embedding
                     ? Array.from(knowledge.embedding)
                     : null,
-                createdAt: knowledge.createdAt || new Date(),
+                createdAt:
+                    new Date(knowledge.createdAt).toISOString() ||
+                    new Date().toISOString(),
                 isMain: metadata.isMain || false,
                 originalId: metadata.originalId || null,
                 chunkIndex: metadata.chunkIndex || null,
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 0473651e7b4..bbe864d3317 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -14,22 +14,28 @@ importers:
     dependencies:
       '@0glabs/0g-ts-sdk':
         specifier: 0.2.1
-        version: 0.2.1(bufferutil@4.0.9)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(utf-8-validate@6.0.5)
+        version: 0.2.1(bufferutil@4.0.9)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)
       '@coinbase/coinbase-sdk':
         specifier: 0.10.0
-        version: 0.10.0(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@6.0.5)(zod@3.24.1)
+        version: 0.10.0(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
       '@deepgram/sdk':
         specifier: ^3.9.0
-        version: 3.9.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@6.0.5)
+        version: 3.9.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
+      '@glacier-network/client':
+        specifier: ^0.2.1
+        version: 0.2.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+      '@glacier-network/elizaos-adapter':
+        specifier: 0.0.1-alpha.1
+        version: 0.0.1-alpha.1(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.30(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(@langchain/groq@0.1.3(@langchain/core@0.3.30(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13))(axios@1.7.9)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.18.0))(svelte@5.18.0)(utf-8-validate@5.0.10)(vue@3.5.13(typescript@5.6.3))
       '@vitest/eslint-plugin':
         specifier: 1.0.1
-        version: 1.0.1(@typescript-eslint/utils@8.20.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+        version: 1.0.1(@typescript-eslint/utils@8.20.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@20.17.9)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))
       amqplib:
         specifier: 0.10.5
         version: 0.10.5
       axios:
         specifier: ^1.7.9
-        version: 1.7.9(debug@4.4.0)
+        version: 1.7.9
       csv-parse:
         specifier: 5.6.0
         version: 5.6.0
@@ -38,7 +44,7 @@ importers:
         version: 0.2.1
       ollama-ai-provider:
         specifier: 0.16.1
-        version: 0.16.1(zod@3.24.1)
+        version: 0.16.1(zod@3.23.8)
       optional:
         specifier: 0.1.4
         version: 0.1.4
@@ -54,7 +60,7 @@ importers:
     devDependencies:
       '@commitlint/cli':
         specifier: 18.6.1
-        version: 18.6.1(@types/node@22.10.6)(typescript@5.6.3)
+        version: 18.6.1(@types/node@20.17.9)(typescript@5.6.3)
       '@commitlint/config-conventional':
         specifier: 18.6.3
         version: 18.6.3
@@ -84,7 +90,7 @@ importers:
         version: 9.1.7
       jest:
         specifier: ^29.7.0
-        version: 29.7.0(@types/node@22.10.6)(babel-plugin-macros@3.1.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.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
       lerna:
         specifier: 8.1.5
         version: 8.1.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(babel-plugin-macros@3.1.0)(encoding@0.1.13)
@@ -96,7 +102,7 @@ importers:
         version: 3.4.1
       ts-jest:
         specifier: ^29.1.1
-        version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.10.6)(babel-plugin-macros@3.1.0))(typescript@5.6.3)
+        version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@20.17.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)))(typescript@5.6.3)
       turbo:
         specifier: 2.3.3
         version: 2.3.3
@@ -108,13 +114,13 @@ importers:
         version: 5.6.3
       viem:
         specifier: 2.21.58
-        version: 2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@6.0.5)(zod@3.24.1)
+        version: 2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
       vite:
         specifier: 5.4.11
-        version: 5.4.11(@types/node@22.10.6)(terser@5.37.0)
+        version: 5.4.11(@types/node@20.17.9)(terser@5.37.0)
       vitest:
         specifier: 2.1.5
-        version: 2.1.5(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)
+        version: 2.1.5(@types/node@20.17.9)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
 
   agent:
     dependencies:
@@ -250,6 +256,9 @@ importers:
       '@elizaos/plugin-goat':
         specifier: workspace:*
         version: link:../packages/plugin-goat
+      '@elizaos/plugin-goplus':
+        specifier: workspace:*
+        version: link:../packages/plugin-goplus
       '@elizaos/plugin-hyperliquid':
         specifier: workspace:*
         version: link:../packages/plugin-hyperliquid
@@ -388,7 +397,7 @@ importers:
         version: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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)
 
   client:
     dependencies:
@@ -397,31 +406,31 @@ importers:
         version: link:../packages/core
       '@radix-ui/react-avatar':
         specifier: ^1.1.2
-        version: 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+        version: 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
       '@radix-ui/react-collapsible':
         specifier: ^1.1.2
-        version: 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+        version: 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
       '@radix-ui/react-dialog':
         specifier: ^1.1.4
-        version: 1.1.4(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+        version: 1.1.4(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
       '@radix-ui/react-label':
         specifier: ^2.1.1
-        version: 2.1.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+        version: 2.1.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
       '@radix-ui/react-separator':
         specifier: ^1.1.1
-        version: 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+        version: 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
       '@radix-ui/react-slot':
         specifier: ^1.1.1
-        version: 1.1.1(@types/react@19.0.6)(react@19.0.0)
+        version: 1.1.1(@types/react@19.0.7)(react@19.0.0)
       '@radix-ui/react-tabs':
         specifier: ^1.1.2
-        version: 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+        version: 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
       '@radix-ui/react-toast':
         specifier: ^1.2.4
-        version: 1.2.4(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+        version: 1.2.4(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
       '@radix-ui/react-tooltip':
         specifier: ^1.1.6
-        version: 1.1.6(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+        version: 1.1.6(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
       '@react-spring/web':
         specifier: ^9.7.5
         version: 9.7.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
@@ -466,23 +475,23 @@ importers:
         version: 2.6.0
       tailwindcss-animate:
         specifier: ^1.0.7
-        version: 1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.6)(typescript@5.6.3)))
+        version: 1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.7)(typescript@5.6.3)))
       vite-plugin-compression:
         specifier: ^0.5.1
-        version: 0.5.1(vite@6.0.7(@types/node@22.10.6)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))
+        version: 0.5.1(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))
     devDependencies:
       '@eslint/js':
         specifier: ^9.17.0
         version: 9.18.0
       '@types/node':
         specifier: ^22.10.5
-        version: 22.10.6
+        version: 22.10.7
       '@types/react':
         specifier: ^19.0.3
-        version: 19.0.6
+        version: 19.0.7
       '@types/react-dom':
         specifier: ^19.0.2
-        version: 19.0.3(@types/react@19.0.6)
+        version: 19.0.3(@types/react@19.0.7)
       '@types/semver':
         specifier: ^7.5.8
         version: 7.5.8
@@ -494,10 +503,10 @@ importers:
         version: 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.6.3)
       '@vitejs/plugin-react-swc':
         specifier: ^3.5.0
-        version: 3.7.2(@swc/helpers@0.5.15)(vite@6.0.7(@types/node@22.10.6)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))
+        version: 3.7.2(@swc/helpers@0.5.15)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))
       autoprefixer:
         specifier: ^10.4.19
-        version: 10.4.20(postcss@8.5.0)
+        version: 10.4.20(postcss@8.5.1)
       eslint:
         specifier: ^9.17.0
         version: 9.18.0(jiti@2.4.2)
@@ -524,13 +533,13 @@ importers:
         version: 15.14.0
       postcss:
         specifier: ^8.4.38
-        version: 8.5.0
+        version: 8.5.1
       rollup-plugin-visualizer:
         specifier: ^5.14.0
         version: 5.14.0(rollup@4.30.1)
       tailwindcss:
         specifier: ^3.4.4
-        version: 3.4.17(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.6)(typescript@5.6.3))
+        version: 3.4.17(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.7)(typescript@5.6.3))
       typescript:
         specifier: ~5.6.3
         version: 5.6.3
@@ -539,43 +548,43 @@ importers:
         version: 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.6.3)
       vite:
         specifier: ^6.0.5
-        version: 6.0.7(@types/node@22.10.6)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)
+        version: 6.0.7(@types/node@22.10.7)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)
       vite-tsconfig-paths:
         specifier: ^5.1.4
-        version: 5.1.4(typescript@5.6.3)(vite@6.0.7(@types/node@22.10.6)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))
+        version: 5.1.4(typescript@5.6.3)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))
 
   docs:
     dependencies:
       '@docusaurus/core':
         specifier: 3.6.3
-        version: 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+        version: 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/plugin-content-blog':
         specifier: 3.6.3
-        version: 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+        version: 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/plugin-content-docs':
         specifier: 3.6.3
-        version: 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+        version: 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/plugin-ideal-image':
         specifier: 3.6.3
-        version: 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bare-buffer@3.0.1)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+        version: 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/preset-classic':
         specifier: 3.6.3
-        version: 3.6.3(@algolia/client-search@5.19.0)(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@19.0.6)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.7.3)(utf-8-validate@5.0.10)
+        version: 3.6.3(@algolia/client-search@5.19.0)(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@19.0.7)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/theme-common':
         specifier: 3.6.3
-        version: 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
+        version: 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/theme-mermaid':
         specifier: 3.6.3
-        version: 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+        version: 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@mdx-js/react':
         specifier: 3.0.1
-        version: 3.0.1(@types/react@19.0.6)(react@18.3.1)
+        version: 3.0.1(@types/react@19.0.7)(react@18.3.1)
       clsx:
         specifier: 2.1.1
         version: 2.1.1
       docusaurus-lunr-search:
         specifier: 3.5.0
-        version: 3.5.0(@docusaurus/core@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+        version: 3.5.0(@docusaurus/core@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       dotenv:
         specifier: ^16.4.7
         version: 16.4.7
@@ -625,7 +634,7 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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-postgres:
     dependencies:
@@ -641,7 +650,7 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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:
@@ -660,7 +669,7 @@ importers:
         version: 5.0.0
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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-sqlite:
     dependencies:
@@ -682,7 +691,7 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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-sqljs:
     dependencies:
@@ -704,7 +713,7 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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-supabase:
     dependencies:
@@ -720,7 +729,7 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   packages/client-auto:
     dependencies:
@@ -751,7 +760,7 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   packages/client-direct:
     dependencies:
@@ -803,7 +812,7 @@ importers:
         version: 1.4.12
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   packages/client-discord:
     dependencies:
@@ -840,10 +849,10 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       vitest:
         specifier: 1.2.1
-        version: 1.2.1(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)
+        version: 1.2.1(@types/node@22.10.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.37.0)
 
   packages/client-farcaster:
     dependencies:
@@ -852,11 +861,11 @@ importers:
         version: link:../core
       '@neynar/nodejs-sdk':
         specifier: ^2.0.3
-        version: 2.8.1(bufferutil@4.0.9)(class-transformer@0.5.1)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@6.0.5)(zod@3.24.1)
+        version: 2.8.1(bufferutil@4.0.9)(class-transformer@0.5.1)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
     devDependencies:
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   packages/client-github:
     dependencies:
@@ -881,7 +890,7 @@ importers:
         version: 8.1.0
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   packages/client-lens:
     dependencies:
@@ -890,7 +899,7 @@ importers:
         version: link:../core
       '@lens-protocol/client':
         specifier: 2.2.0
-        version: 2.2.0(@jest/globals@29.7.0)(@lens-protocol/metadata@1.2.0(zod@3.23.8))(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10)
+        version: 2.2.0(@jest/globals@29.7.0)(@lens-protocol/metadata@1.2.0(zod@3.23.8))(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(react@19.0.0)(utf-8-validate@5.0.10)
       '@lens-protocol/metadata':
         specifier: 1.2.0
         version: 1.2.0(zod@3.23.8)
@@ -900,7 +909,7 @@ importers:
     devDependencies:
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
 
   packages/client-slack:
     dependencies:
@@ -943,22 +952,22 @@ importers:
         version: 29.5.14
       '@types/node':
         specifier: ^18.15.11
-        version: 18.19.70
+        version: 18.19.71
       jest:
         specifier: ^29.5.0
-        version: 29.7.0(@types/node@18.19.70)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3))
+        version: 29.7.0(@types/node@18.19.71)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.71)(typescript@5.6.3))
       rimraf:
         specifier: ^5.0.0
         version: 5.0.10
       ts-jest:
         specifier: ^29.1.0
-        version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@18.19.70)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3)))(typescript@5.6.3)
+        version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@18.19.71)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.71)(typescript@5.6.3)))(typescript@5.6.3)
       ts-node:
         specifier: ^10.9.1
-        version: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3)
+        version: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.71)(typescript@5.6.3)
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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)
       typescript:
         specifier: ^5.0.0
         version: 5.6.3
@@ -980,10 +989,10 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       vitest:
         specifier: 1.2.1
-        version: 1.2.1(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)
+        version: 1.2.1(@types/node@22.10.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.37.0)
 
   packages/client-twitter:
     dependencies:
@@ -1008,13 +1017,13 @@ importers:
     devDependencies:
       '@vitest/coverage-v8':
         specifier: 1.1.3
-        version: 1.1.3(vitest@1.1.3(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+        version: 1.1.3(vitest@1.1.3(@types/node@22.10.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.37.0))
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       vitest:
         specifier: 1.1.3
-        version: 1.1.3(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)
+        version: 1.1.3(@types/node@22.10.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.37.0)
 
   packages/core:
     dependencies:
@@ -1047,7 +1056,7 @@ importers:
         version: 10.0.0
       ai:
         specifier: 3.4.33
-        version: 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.17.3))(svelte@5.17.3)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8)
+        version: 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.18.0))(svelte@5.18.0)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8)
       anthropic-vertex-ai:
         specifier: 1.0.2
         version: 1.0.2(encoding@0.1.13)(zod@3.23.8)
@@ -1186,7 +1195,7 @@ importers:
         version: 2.8.1
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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)
       typescript:
         specifier: 5.6.3
         version: 5.6.3
@@ -1223,7 +1232,7 @@ importers:
         version: 6.13.4(bufferutil@4.0.9)(utf-8-validate@6.0.5)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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-3d-generation:
     dependencies:
@@ -1232,7 +1241,7 @@ importers:
         version: link:../core
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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
@@ -1247,7 +1256,7 @@ importers:
         version: link:../core
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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)
       viem:
         specifier: 2.21.58
         version: 2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)(zod@3.24.1)
@@ -1317,7 +1326,7 @@ importers:
         version: 9.18.0(jiti@2.4.2)
       tsup:
         specifier: ^8.0.1
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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)
       typescript:
         specifier: ^5.3.3
         version: 5.6.3
@@ -1344,10 +1353,10 @@ importers:
         version: 5.1.2
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       vitest:
         specifier: 2.1.8
-        version: 2.1.8(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)
+        version: 2.1.8(@types/node@22.10.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.37.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1365,7 +1374,7 @@ importers:
         version: 1.7.9(debug@4.4.0)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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
@@ -1389,10 +1398,10 @@ importers:
         version: 5.1.2
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       vitest:
         specifier: 2.1.4
-        version: 2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)
+        version: 2.1.4(@types/node@22.10.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.37.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1404,7 +1413,7 @@ importers:
         version: link:../core
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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)
       viem:
         specifier: 2.21.58
         version: 2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)(zod@3.24.1)
@@ -1454,13 +1463,13 @@ importers:
         version: 10.0.0
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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-autonome:
     dependencies:
       '@coral-xyz/anchor':
         specifier: 0.30.1
-        version: 0.30.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@6.0.5)
+        version: 0.30.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
       '@elizaos/core':
         specifier: workspace:*
         version: link:../core
@@ -1497,7 +1506,7 @@ importers:
         version: 20.17.9
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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-avalanche:
     dependencies:
@@ -1510,7 +1519,7 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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-b2:
     dependencies:
@@ -1519,7 +1528,7 @@ importers:
         version: link:../core
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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
@@ -1541,7 +1550,7 @@ importers:
         version: 20.17.9
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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-birdeye:
     dependencies:
@@ -1580,20 +1589,20 @@ importers:
         version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.30.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       vitest:
         specifier: 2.1.4
-        version: 2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
+        version: 2.1.4(@types/node@22.10.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.37.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
     devDependencies:
       '@types/node':
         specifier: ^22.10.2
-        version: 22.10.6
+        version: 22.10.7
       ts-node:
         specifier: ^10.9.2
-        version: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.6)(typescript@5.7.3)
+        version: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.7)(typescript@5.7.3)
       tsconfig-paths:
         specifier: ^4.2.0
         version: 4.2.0
@@ -1608,7 +1617,7 @@ importers:
         version: link:../core
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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
@@ -1639,7 +1648,7 @@ importers:
         version: 20.17.9
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       vitest:
         specifier: ^1.0.0
         version: 1.2.1(@types/node@20.17.9)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
@@ -1654,7 +1663,7 @@ importers:
         version: 1.7.9(debug@4.4.0)
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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-coinmarketcap:
     dependencies:
@@ -1670,7 +1679,7 @@ importers:
     devDependencies:
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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-conflux:
     dependencies:
@@ -1679,13 +1688,13 @@ importers:
         version: link:../core
       cive:
         specifier: 0.7.1
-        version: 0.7.1(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)
+        version: 0.7.1(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)
 
   packages/plugin-cosmos:
     dependencies:
       '@chain-registry/utils':
         specifier: ^1.51.41
-        version: 1.51.47
+        version: 1.51.50
       '@cosmjs/cosmwasm-stargate':
         specifier: ^0.32.4
         version: 0.32.4(bufferutil@4.0.9)(utf-8-validate@5.0.10)
@@ -1703,20 +1712,20 @@ importers:
         version: 9.1.2
       chain-registry:
         specifier: ^1.69.68
-        version: 1.69.91
+        version: 1.69.94
       interchain:
         specifier: ^1.10.4
         version: 1.10.4(bufferutil@4.0.9)(utf-8-validate@5.0.10)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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.23.8
         version: 3.23.8
     devDependencies:
       '@chain-registry/types':
         specifier: ^0.50.44
-        version: 0.50.47
+        version: 0.50.50
 
   packages/plugin-cronoszkevm:
     dependencies:
@@ -1725,7 +1734,7 @@ importers:
         version: link:../core
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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)
       viem:
         specifier: 2.21.58
         version: 2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)(zod@3.24.1)
@@ -1733,26 +1742,14 @@ importers:
         specifier: 7.1.0
         version: 7.1.0
 
-  packages/plugin-depin:
-    dependencies:
-      '@elizaos/core':
-        specifier: workspace:*
-        version: link:../core
-      axios:
-        specifier: ^1.7.9
-        version: 1.7.9(debug@4.4.0)
-      tsup:
-        specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
-      whatwg-url:
-        specifier: 7.1.0
-        version: 7.1.0
-
   packages/plugin-crypto-news:
     dependencies:
       '@elizaos/core':
         specifier: workspace:*
         version: link:../core
+      google-sr:
+        specifier: ^4.1.0
+        version: 4.1.0
       rss-to-json:
         specifier: ^2.1.1
         version: 2.1.1
@@ -1762,11 +1759,26 @@ importers:
         version: 20.17.9
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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)
       tsx:
         specifier: ^4.19.2
         version: 4.19.2
 
+  packages/plugin-depin:
+    dependencies:
+      '@elizaos/core':
+        specifier: workspace:*
+        version: link:../core
+      axios:
+        specifier: ^1.7.9
+        version: 1.7.9(debug@4.4.0)
+      tsup:
+        specifier: 8.3.5
+        version: 8.3.5(@swc/core@1.10.7(@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
+
   packages/plugin-echochambers:
     dependencies:
       '@elizaos/core':
@@ -1795,7 +1807,7 @@ importers:
         version: 16.3.0
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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
@@ -1810,7 +1822,7 @@ importers:
         version: 1.5.1
       '@onflow/fcl':
         specifier: 1.13.1
-        version: 1.13.1(@types/react@19.0.6)(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.5.0)(react@19.0.0)(tsx@4.19.2)(utf-8-validate@6.0.5)
+        version: 1.13.1(@types/react@19.0.7)(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.5.1)(react@19.0.0)(tsx@4.19.2)(utf-8-validate@6.0.5)
       '@onflow/typedefs':
         specifier: 1.4.0
         version: 1.4.0
@@ -1847,10 +1859,10 @@ importers:
         version: 10.0.0
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       vitest:
         specifier: 2.1.4
-        version: 2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)
+        version: 2.1.4(@types/node@22.10.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.37.0)
 
   packages/plugin-fuel:
     dependencies:
@@ -1862,13 +1874,13 @@ importers:
         version: 4.0.1
       fuels:
         specifier: 0.97.2
-        version: 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+        version: 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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.37.0))
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       vitest:
         specifier: 2.1.4
-        version: 2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)
+        version: 2.1.4(@types/node@22.10.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.37.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -1880,10 +1892,10 @@ importers:
         version: link:../core
       genlayer-js:
         specifier: 0.4.7
-        version: 0.4.7(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3))(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)(utf-8-validate@6.0.5)(zod@3.24.1)
+        version: 0.4.7(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3))(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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-giphy:
     dependencies:
@@ -1895,7 +1907,7 @@ importers:
         version: 1.7.9(debug@4.4.0)
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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.23.8
@@ -1907,7 +1919,7 @@ importers:
         version: link:../core
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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-gitcoin-passport:
     dependencies:
@@ -1916,7 +1928,7 @@ importers:
         version: link:../core
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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
@@ -1928,7 +1940,7 @@ importers:
         version: link:../core
       '@goat-sdk/adapter-vercel-ai':
         specifier: 0.2.0
-        version: 0.2.0(@goat-sdk/core@0.4.0)(ai@4.0.34(react@19.0.0)(zod@3.23.8))
+        version: 0.2.0(@goat-sdk/core@0.4.0)(ai@4.0.38(react@19.0.0)(zod@3.23.8))
       '@goat-sdk/core':
         specifier: 0.4.0
         version: 0.4.0
@@ -1946,7 +1958,7 @@ importers:
         version: 0.2.0(@goat-sdk/wallet-evm@0.2.0(@goat-sdk/core@0.4.0)(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5))(viem@2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)(zod@3.23.8))
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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
@@ -1958,7 +1970,7 @@ importers:
         version: link:../core
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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)
       ws:
         specifier: ^8.18.0
         version: 8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
@@ -1987,7 +1999,7 @@ importers:
         version: 20.17.9
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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-icp:
     dependencies:
@@ -2012,10 +2024,10 @@ importers:
         version: 29.5.14
       jest:
         specifier: 29.7.0
-        version: 29.7.0(@types/node@22.10.6)(babel-plugin-macros@3.1.0)
+        version: 29.7.0(@types/node@22.10.7)(babel-plugin-macros@3.1.0)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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)
       typescript:
         specifier: 5.6.3
         version: 5.6.3
@@ -2027,7 +2039,7 @@ importers:
         version: link:../core
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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
@@ -2045,7 +2057,7 @@ importers:
         version: 1.0.2
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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
@@ -2070,7 +2082,7 @@ importers:
         version: 20.17.9
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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-lensNetwork:
     dependencies:
@@ -2088,7 +2100,7 @@ importers:
         version: 6.13.4(bufferutil@4.0.9)(utf-8-validate@6.0.5)
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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)
       web3:
         specifier: ^4.15.0
         version: 4.16.0(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@6.0.5)(zod@3.24.1)
@@ -2106,7 +2118,23 @@ importers:
         version: link:../core
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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-market-analisys:
+    dependencies:
+      '@elizaos/core':
+        specifier: workspace:*
+        version: link:../core
+    devDependencies:
+      '@types/node':
+        specifier: ^20.0.0
+        version: 20.17.9
+      tsup:
+        specifier: 8.3.5
+        version: 8.3.5(@swc/core@1.10.7(@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)
+      tsx:
+        specifier: ^4.19.2
+        version: 4.19.2
 
   packages/plugin-massa:
     dependencies:
@@ -2115,10 +2143,10 @@ importers:
         version: link:../core
       '@massalabs/massa-web3':
         specifier: ^5.0.1-dev
-        version: 5.1.0
+        version: 5.1.1
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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
@@ -2149,13 +2177,13 @@ importers:
     devDependencies:
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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)
       typescript:
         specifier: ^5.0.0
         version: 5.6.3
       vitest:
         specifier: 2.1.4
-        version: 2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)
+        version: 2.1.4(@types/node@22.10.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.37.0)
 
   packages/plugin-multiversx:
     dependencies:
@@ -2179,10 +2207,10 @@ importers:
         version: 2.1.1
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       vitest:
         specifier: 2.1.5
-        version: 2.1.5(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)
+        version: 2.1.5(@types/node@22.10.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.37.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -2209,7 +2237,7 @@ importers:
         version: 5.1.2
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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
@@ -2227,7 +2255,7 @@ importers:
         version: 1.7.9(debug@4.4.0)
       rate-limiter-flexible:
         specifier: ^5.0.4
-        version: 5.0.4
+        version: 5.0.5
     devDependencies:
       '@types/node':
         specifier: ^20.11.16
@@ -2246,7 +2274,7 @@ importers:
         version: 3.4.1
       tsup:
         specifier: ^8.0.1
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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)
       typescript:
         specifier: ^5.3.3
         version: 5.6.3
@@ -2303,7 +2331,7 @@ importers:
         version: 0.8.28
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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)
       viem:
         specifier: 2.21.58
         version: 2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.24.1)
@@ -2315,10 +2343,10 @@ importers:
     dependencies:
       '@aws-sdk/client-s3':
         specifier: ^3.705.0
-        version: 3.726.1
+        version: 3.729.0
       '@aws-sdk/s3-request-presigner':
         specifier: ^3.705.0
-        version: 3.726.1
+        version: 3.729.0
       '@cliqz/adblocker-playwright':
         specifier: 1.34.0
         version: 1.34.0(playwright@1.48.2)
@@ -2484,7 +2512,7 @@ importers:
         version: 22.8.4
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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-obsidian:
     dependencies:
@@ -2499,7 +2527,7 @@ importers:
         version: 2.0.0
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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
@@ -2515,7 +2543,7 @@ importers:
     devDependencies:
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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-open-weather:
     dependencies:
@@ -2524,7 +2552,7 @@ importers:
         version: link:../core
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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
@@ -2545,13 +2573,13 @@ importers:
         version: 0.0.18(bufferutil@4.0.9)(utf-8-validate@6.0.5)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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-quai:
     dependencies:
       '@avnu/avnu-sdk':
         specifier: ^2.1.1
-        version: 2.1.1(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(qs@6.13.1)(starknet@6.18.0(encoding@0.1.13))
+        version: 2.1.1(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(qs@6.14.0)(starknet@6.18.0(encoding@0.1.13))
       '@elizaos/core':
         specifier: workspace:*
         version: link:../core
@@ -2563,10 +2591,10 @@ importers:
         version: 1.0.0-alpha.25(bufferutil@4.0.9)(utf-8-validate@6.0.5)
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       vitest:
         specifier: ^2.1.4
-        version: 2.1.8(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)
+        version: 2.1.8(@types/node@22.10.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.37.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -2611,7 +2639,7 @@ importers:
         version: 5.1.2
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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
@@ -2633,7 +2661,7 @@ importers:
         version: 20.17.9
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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-solana:
     dependencies:
@@ -2675,10 +2703,10 @@ importers:
         version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.30.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       vitest:
         specifier: 2.1.4
-        version: 2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
+        version: 2.1.4(@types/node@22.10.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.37.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -2729,7 +2757,7 @@ importers:
         version: 1.4.0(@noble/hashes@1.7.0)(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(arweave@1.15.5)(axios@1.7.9)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(handlebars@4.7.8)(react@19.0.0)(sodium-native@3.4.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       vitest:
         specifier: 2.1.4
         version: 2.1.4(@types/node@20.17.9)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
@@ -2744,7 +2772,7 @@ importers:
         version: link:../core
       '@spheron/protocol-sdk':
         specifier: ^1.0.0
-        version: 1.2.3(bufferutil@4.0.9)(utf-8-validate@6.0.5)
+        version: 1.2.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)
       zod:
         specifier: ^3.22.4
         version: 3.23.8
@@ -2778,7 +2806,7 @@ importers:
         version: 0.33.5
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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
@@ -2793,7 +2821,7 @@ importers:
         version: 1.7.9(debug@4.4.0)
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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.23.8
@@ -2802,7 +2830,7 @@ importers:
     dependencies:
       '@avnu/avnu-sdk':
         specifier: 2.1.1
-        version: 2.1.1(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(qs@6.13.1)(starknet@6.18.0(encoding@0.1.13))
+        version: 2.1.1(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(qs@6.14.0)(starknet@6.18.0(encoding@0.1.13))
       '@elizaos/core':
         specifier: workspace:*
         version: link:../core
@@ -2820,13 +2848,13 @@ importers:
         version: 6.18.0(encoding@0.1.13)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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)
       unruggable-sdk:
         specifier: 1.4.0
         version: 1.4.0(starknet@6.18.0(encoding@0.1.13))
       vitest:
         specifier: 2.1.5
-        version: 2.1.5(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)
+        version: 2.1.5(@types/node@22.10.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.37.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -2841,17 +2869,17 @@ importers:
         version: 2.1.0
       '@story-protocol/core-sdk':
         specifier: 1.2.0-rc.3
-        version: 1.2.0-rc.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)(zod@3.24.1)
+        version: 1.2.0-rc.3(bufferutil@4.0.9)(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.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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
     devDependencies:
       '@types/node':
         specifier: ^22.10.1
-        version: 22.10.6
+        version: 22.10.7
 
   packages/plugin-sui:
     dependencies:
@@ -2872,10 +2900,10 @@ importers:
         version: 5.1.2
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
       vitest:
         specifier: 2.1.4
-        version: 2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)
+        version: 2.1.4(@types/node@22.10.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.37.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -2908,7 +2936,7 @@ importers:
         version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.30.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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
@@ -2936,7 +2964,7 @@ importers:
         version: 20.17.9
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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-tee-marlin:
     dependencies:
@@ -2945,7 +2973,7 @@ importers:
         version: link:../core
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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
@@ -2969,13 +2997,13 @@ importers:
         version: 3.0.0
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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)
       uuid:
         specifier: 11.0.3
         version: 11.0.3
       vitest:
         specifier: 2.1.5
-        version: 2.1.5(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)
+        version: 2.1.5(@types/node@22.10.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.37.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -2985,7 +3013,7 @@ importers:
         version: 3.2.0
       ts-node:
         specifier: ^10.9.2
-        version: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.6)(typescript@5.7.3)
+        version: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.7)(typescript@5.7.3)
 
   packages/plugin-thirdweb:
     dependencies:
@@ -2994,10 +3022,10 @@ importers:
         version: link:../core
       thirdweb:
         specifier: ^5.80.0
-        version: 5.83.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.4(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.84.0(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.4(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.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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
@@ -3021,7 +3049,7 @@ importers:
         version: 5.1.2
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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
@@ -3036,13 +3064,13 @@ importers:
         version: 3.2.2
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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)
       uuid:
         specifier: 11.0.3
         version: 11.0.3
       vitest:
         specifier: 2.1.5
-        version: 2.1.5(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)
+        version: 2.1.5(@types/node@22.10.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.37.0)
       whatwg-url:
         specifier: 7.1.0
         version: 7.1.0
@@ -3061,7 +3089,7 @@ importers:
         version: 0.2.1
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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
@@ -3076,11 +3104,11 @@ importers:
         version: 0.0.18(bufferutil@4.0.9)(utf-8-validate@6.0.5)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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)
     devDependencies:
       vitest:
         specifier: ^1.0.0
-        version: 1.2.1(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)
+        version: 1.2.1(@types/node@22.10.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.37.0)
 
   packages/plugin-video-generation:
     dependencies:
@@ -3089,7 +3117,7 @@ importers:
         version: link:../core
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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
@@ -3104,7 +3132,7 @@ importers:
         version: 1.7.9(debug@4.4.0)
       tsup:
         specifier: 8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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
@@ -3141,7 +3169,7 @@ importers:
         version: link:../core
       tsup:
         specifier: ^8.3.5
-        version: 8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
+        version: 8.3.5(@swc/core@1.10.7(@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)
       viem:
         specifier: 2.21.58
         version: 2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)(zod@3.24.1)
@@ -3235,8 +3263,8 @@ packages:
     peerDependencies:
       zod: ^3.0.0
 
-  '@ai-sdk/openai@1.0.18':
-    resolution: {integrity: sha512-bienqSVHbUqUcskm2FTIf2X+c481e85EASFfa78YogLqctZQtqPFKJuG5E7i59664Y5G91+LkzIh+1agS13BlA==}
+  '@ai-sdk/openai@1.0.19':
+    resolution: {integrity: sha512-7qmLgppWpGUhSgrH0a6CtgD9hZeRh2hARppl1B7fNhVbekYftSMucsdCiVlKbQzSKPxox0vkNMmwjKa/7xf8bQ==}
     engines: {node: '>=18'}
     peerDependencies:
       zod: ^3.0.0
@@ -3311,8 +3339,8 @@ packages:
       zod:
         optional: true
 
-  '@ai-sdk/react@1.0.10':
-    resolution: {integrity: sha512-A3i0Y93xssldeFdcbHPCiK+v9UGisXZUt5ey4I9x2bGktP4eEAXJz4O26EHz5VbolmOd+81kSxm9BCvithzguQ==}
+  '@ai-sdk/react@1.0.11':
+    resolution: {integrity: sha512-ndBPA7dx2DqUr7s4zO1cRAPkFGS+wWvSri6OWfCuhfyTAADQ4vdd56vFP9zdTZl4cyL27Vh0hKLfFJMGx83MUQ==}
     engines: {node: '>=18'}
     peerDependencies:
       react: ^18 || ^19 || ^19.0.0-rc
@@ -3350,8 +3378,8 @@ packages:
       zod:
         optional: true
 
-  '@ai-sdk/ui-utils@1.0.9':
-    resolution: {integrity: sha512-ULJ+TTCVk+iW5asdKjG33vEfMmalaE9rJOlddVE5t6729Fjow1a1COXRTwE5y1r1qU2Rt+YiXQcTTA5ovx0SMw==}
+  '@ai-sdk/ui-utils@1.0.10':
+    resolution: {integrity: sha512-wZfZNH2IloTx5b1O8CU7/R/icm8EsmURElPckYwNYj2YZrKk9X5XeYSDBF/1/J83obzsn0i7VKkIf40qhRzVVA==}
     engines: {node: '>=18'}
     peerDependencies:
       zod: ^3.0.0
@@ -3555,8 +3583,8 @@ packages:
     resolution: {integrity: sha512-d6nWtUI//fyEN8DeLjm3+ro87Ad6+IKwR9pCqfrs/Azahso1xR1Llxd/O6fj/m1DDsuDj/HAsCsy5TC/aKD6Eg==}
     engines: {node: '>=11.0.0'}
 
-  '@asamuzakjp/css-color@2.8.2':
-    resolution: {integrity: sha512-RtWv9jFN2/bLExuZgFFZ0I3pWWeezAHGgrmjqGGWclATl1aDe3yhCUaI0Ilkp6OCk9zX7+FjvDasEX8Q9Rxc5w==}
+  '@asamuzakjp/css-color@2.8.3':
+    resolution: {integrity: sha512-GIc76d9UI1hCvOATjZPyHFmE5qhRccp3/zGfMPapK3jBi+yocEzp6BBB0UnfRYP9NP4FANqUZYb0hnfs3TM3hw==}
 
   '@asterai/client@0.1.6':
     resolution: {integrity: sha512-Kz2FEg9z3U8G9F8F/87h7szE9i8gHdIM2dCgl2gtqTgiLdgtqaDEk3cGnbL4D67Q9bsciPb/toHFWIUv/QNRJQ==}
@@ -3596,8 +3624,8 @@ packages:
     resolution: {integrity: sha512-Q4ZoSmCXskIQ3T5AdO0OyH3vCeoKCed9AjqNIZ5Bxo7T1aBLaIb0VmjKOEubsYrfl+0Ot++FRmy7G45UUHSs4Q==}
     engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/client-s3@3.726.1':
-    resolution: {integrity: sha512-UpOGcob87DiuS2d3fW6vDZg94g57mNiOSkzvR/6GOdvBSlUgk8LLwVzGASB71FdKMl1EGEr4MeD5uKH9JsG+dw==}
+  '@aws-sdk/client-s3@3.729.0':
+    resolution: {integrity: sha512-hpagpazcfOYtxE4nDlR/6JcaIdZ3T2BUt2Ev11Zyz2B5G8eC1dWJgvFsW7ws35252Nb6HTLkJajtnM3v9KtXGw==}
     engines: {node: '>=18.0.0'}
 
   '@aws-sdk/client-sso-oidc@3.726.0':
@@ -3670,8 +3698,8 @@ packages:
     resolution: {integrity: sha512-w/O0EkIzkiqvGu7U8Ke7tue0V0HYM5dZQrz6nVU+R8T2LddWJ+njEIHU4Wh8aHPLQXdZA5NQumv0xLPdEutykw==}
     engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/middleware-flexible-checksums@3.723.0':
-    resolution: {integrity: sha512-JY76mrUCLa0FHeMZp8X9+KK6uEuZaRZaQrlgq6zkXX/3udukH0T3YdFC+Y9uw5ddbiwZ5+KwgmlhnPpiXKfP4g==}
+  '@aws-sdk/middleware-flexible-checksums@3.729.0':
+    resolution: {integrity: sha512-GY92MQ7Pr8hK2rwKmOYSGMmfPQRCWRJ3s1aAIyJBpOHUejWdaNAi78vxeUzVkmGdVjUfF6hRTRAxqV7MnHwe/g==}
     engines: {node: '>=18.0.0'}
 
   '@aws-sdk/middleware-host-header@3.723.0':
@@ -3714,8 +3742,8 @@ packages:
     resolution: {integrity: sha512-tGF/Cvch3uQjZIj34LY2mg8M2Dr4kYG8VU8Yd0dFnB1ybOEOveIK/9ypUo9ycZpB9oO6q01KRe5ijBaxNueUQg==}
     engines: {node: '>=18.0.0'}
 
-  '@aws-sdk/s3-request-presigner@3.726.1':
-    resolution: {integrity: sha512-IoM/u1gaZiSHEZkkf+Hn6MvCFUtLJgJysApW6NFbM2GYt4hqGLX5jhbjo5KVxC3wFfAhAwK1deSOM0FriBrKrg==}
+  '@aws-sdk/s3-request-presigner@3.729.0':
+    resolution: {integrity: sha512-5jfIFi/rygbUzyCY3PjcehXJRxwqqP3SS3klKxxR3p+fbZcKoV5sknn8hhYnfSPteCmOLqELNP+EG/9I+F3a2w==}
     engines: {node: '>=18.0.0'}
 
   '@aws-sdk/signature-v4-multi-region@3.723.0':
@@ -4451,11 +4479,11 @@ packages:
   '@cfworker/json-schema@4.1.0':
     resolution: {integrity: sha512-/vYKi/qMxwNsuIJ9WGWwM2rflY40ZenK3Kh4uR5vB9/Nz12Y7IUN/Xf4wDA7vzPfw0VNh3b/jz4+MjcVgARKJg==}
 
-  '@chain-registry/types@0.50.47':
-    resolution: {integrity: sha512-WEVKnOwcjXjpCFMgEWMRfKUqhho6Tg6fcHmuKS3i4pWp37IxZBdE+Lan6JRBf5Cc6CqfhuZaHqveIRqgci1zBw==}
+  '@chain-registry/types@0.50.50':
+    resolution: {integrity: sha512-H+sGuL8HTr0iFO4PJlBC9MLfrFR+NsD6sFSoFh2+4+obBCVuc3tp5tz/CSfLy04tIySgLlbmqMxkMNkgv1ZpXg==}
 
-  '@chain-registry/utils@1.51.47':
-    resolution: {integrity: sha512-HOEHGwqwc9ESFOKU99PxMeo//bDofBHkyoG9KXsxsE/NPKfb5UifoGR/NznoCLmG0fVo5KnM6UEJamjCUErMnw==}
+  '@chain-registry/utils@1.51.50':
+    resolution: {integrity: sha512-IkJKGelpCQko20KVXT4iTslF54iUSmcnJTM2cByvTRPN8q9/oeSVHSyYcAWVI2iiUAwbMZJhNeUQxu+i0+OPow==}
 
   '@chevrotain/cst-dts-gen@11.0.3':
     resolution: {integrity: sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==}
@@ -5339,6 +5367,9 @@ packages:
   '@electric-sql/pglite@0.2.15':
     resolution: {integrity: sha512-Jiq31Dnk+rg8rMhcSxs4lQvHTyizNo5b269c1gCC3ldQ0sCLrNVPGzy+KnmonKy1ZArTUuXZf23/UamzFMKVaA==}
 
+  '@elizaos/core@0.1.7':
+    resolution: {integrity: sha512-oorLGxE0LAdboNFhf62erTxu0+woNHZn98at/X3caDX34Fxr+d1cRQ6/W34WPAOIlv1tg3Q0ZArcpCCOaDTcMw==}
+
   '@emnapi/core@1.3.1':
     resolution: {integrity: sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==}
 
@@ -6267,8 +6298,14 @@ packages:
   '@fuels/vm-asm@0.58.2':
     resolution: {integrity: sha512-1/5azTzKJP508BXbZvM6Y0V5bCCX5JgEnd/8mXdBFmFvNLOhiYbwb25yk26auqOokfBXvthSkdkrvipEFft6jQ==}
 
-  '@gerrit0/mini-shiki@1.26.1':
-    resolution: {integrity: sha512-gHFUvv9f1fU2Piou/5Y7Sx5moYxcERbC7CXc6rkDLQTUBg5Dgg9L4u29/nHqfoQ3Y9R0h0BcOhd14uOEZIBP7Q==}
+  '@gerrit0/mini-shiki@1.27.2':
+    resolution: {integrity: sha512-GeWyHz8ao2gBiUW4OJnQDxXQnFgZQwwQk05t/CVVgNBN7/rK8XZ7xY6YhLVv9tH3VppWWmr9DCl3MwemB/i+Og==}
+
+  '@glacier-network/client@0.2.1':
+    resolution: {integrity: sha512-NjHyMbarWCSe4EogFBxKbaElG8hmHTCS6PXhBKsk7bU0u+hYl86EGIOK/uC0Q2e+0A5XmQKJRAdtecQ91Nz4gg==}
+
+  '@glacier-network/elizaos-adapter@0.0.1-alpha.1':
+    resolution: {integrity: sha512-LJxIN5xqyAq+vakPCNZM3ekKAqsJhnLfo0Rj2AXQ86jnb31hUUU4HhC8fU47rMRSpGYNwrOBLAtcA5VD7txCMw==}
 
   '@goat-sdk/adapter-vercel-ai@0.2.0':
     resolution: {integrity: sha512-NqUyO38i6ELbWXSDHddfkD1k4QCUcvfs3jVQArlJ9OO9NSlkKvnbZjO1tTjoVoERjRKfKsCqfMPgsgo3akx7tA==}
@@ -6714,8 +6751,8 @@ packages:
   '@langchain/langgraph-sdk@0.0.36':
     resolution: {integrity: sha512-KkAZM0uXBaMcD/dpGTBppOhbvNX6gz+Y1zFAC898OblegFkSvICrkd0oRQ5Ro/GWK/NAoDymnMUDXeZDdUkSuw==}
 
-  '@langchain/langgraph@0.2.39':
-    resolution: {integrity: sha512-zoQT5LViPlB5hRS7RNwixcAonUBAHcW+IzVkGR/4vcKoE49z5rPBdZsWjJ6b1YIV1K2bdSDJWl5KSEHilvnR1Q==}
+  '@langchain/langgraph@0.2.40':
+    resolution: {integrity: sha512-/6VSEXkHb1jAzT3VMpTpH3YCKO2A0Y3nAi4LyRB6REimWrZwk0LsurhB1NHj2hXRmntExhaNe/XxJPAHJ+g1pg==}
     engines: {node: '>=18'}
     peerDependencies:
       '@langchain/core': '>=0.2.36 <0.3.0 || >=0.3.9 < 0.4.0'
@@ -6891,8 +6928,8 @@ packages:
     resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==}
     hasBin: true
 
-  '@massalabs/massa-web3@5.1.0':
-    resolution: {integrity: sha512-fKlOjKD+F0JoUxLUUfweugt9MrM6P1F4WT80TdhgZ1yIKqguN0bNYsXzF9Wf6xVzljP/D+u1kwSDAQpZ/PZ8yg==}
+  '@massalabs/massa-web3@5.1.1':
+    resolution: {integrity: sha512-vjoEjyoe15PN4+d8gk/UEMT59FxefitwK75ScTqQHboYRoWjGysYz80dSYbP1vQdxxeag4ZzW0OaWvaOneQqww==}
 
   '@mdx-js/mdx@3.1.0':
     resolution: {integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==}
@@ -8947,23 +8984,23 @@ packages:
   '@selderee/plugin-htmlparser2@0.11.0':
     resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==}
 
-  '@shikijs/core@1.26.2':
-    resolution: {integrity: sha512-ORyu3MrY7dCC7FDLDsFSkBM9b/AT9/Y8rH+UQ07Rtek48pp0ZhQOMPTKolqszP4bBCas6FqTZQYt18BBamVl/g==}
+  '@shikijs/core@1.27.2':
+    resolution: {integrity: sha512-ns1dokDr0KE1lQ9mWd4rqaBkhSApk0qGCK1+lOqwnkQSkVZ08UGqXj1Ef8dAcTMZNFkN6PSNjkL5TYNX7pyPbQ==}
 
-  '@shikijs/engine-javascript@1.26.2':
-    resolution: {integrity: sha512-ngkIu9swLVo9Zt5QBtz5Sk08vmPcwuj01r7pPK/Zjmo2U2WyKMK4WMUMmkdQiUacdcLth0zt8u1onp4zhkFXKQ==}
+  '@shikijs/engine-javascript@1.27.2':
+    resolution: {integrity: sha512-0JB7U5vJc16NShBdxv9hSSJYSKX79+32O7F4oXIxJLdYfomyFvx4B982ackUI9ftO9T3WwagkiiD3nOxOOLiGA==}
 
-  '@shikijs/engine-oniguruma@1.26.2':
-    resolution: {integrity: sha512-mlN7Qrs+w60nKrd7at7XkXSwz6728Pe34taDmHrG6LRHjzCqQ+ysg+/AT6/D2LMk0s2lsr71DjpI73430QP4/w==}
+  '@shikijs/engine-oniguruma@1.27.2':
+    resolution: {integrity: sha512-FZYKD1KN7srvpkz4lbGLOYWlyDU4Rd+2RtuKfABTkafAPOFr+J6umfIwY/TzOQqfNtWjL7SAwPAO0dcOraRLaQ==}
 
-  '@shikijs/langs@1.26.2':
-    resolution: {integrity: sha512-o5cdPycB2Kw3IgncHxWopWPiTkjAj7dG01fLkkUyj3glb5ftxL/Opecq9F54opMlrgXy7ZIqDERvFLlUzsCOuA==}
+  '@shikijs/langs@1.27.2':
+    resolution: {integrity: sha512-MSrknKL0DbeXvhtSigMLIzjPOOQfvK7fsbcRv2NUUB0EvuTTomY8/U+lAkczYrXY2+dygKOapJKk8ScFYbtoNw==}
 
-  '@shikijs/themes@1.26.2':
-    resolution: {integrity: sha512-y4Pn6PM5mODz/e3yF6jAUG7WLKJzqL2tJ5qMJCUkMUB1VRgtQVvoa1cHh7NScryGXyrYGJ8nPnRDhdv2rw0xpA==}
+  '@shikijs/themes@1.27.2':
+    resolution: {integrity: sha512-Yw/uV7EijjWavIIZLoWneTAohcbBqEKj6XMX1bfMqO3llqTKsyXukPp1evf8qPqzUHY7ibauqEaQchhfi857mg==}
 
-  '@shikijs/types@1.26.2':
-    resolution: {integrity: sha512-PO2jucx2FIdlLBPYbIUlMtWSLs5ulcRcuV93cR3T65lkK5SJP4MGBRt9kmWGXiQc0f7+FHj/0BEawditZcI/fQ==}
+  '@shikijs/types@1.27.2':
+    resolution: {integrity: sha512-DM9OWUyjmdYdnKDpaGB/GEn9XkToyK1tqxuqbmc5PV+5K8WjjwfygL3+cIvbkSw2v1ySwHDgqATq/+98pJ4Kyg==}
 
   '@shikijs/vscode-textmate@10.0.1':
     resolution: {integrity: sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==}
@@ -9074,8 +9111,8 @@ packages:
     resolution: {integrity: sha512-Igfg8lKu3dRVkTSEm98QpZUvKEOa71jDX4vKRcvJVyRc3UgN3j7vFMf0s7xLQhYmKa8kyJGQgUJDOV5V3neVlQ==}
     engines: {node: '>=18.0.0'}
 
-  '@smithy/core@3.1.0':
-    resolution: {integrity: sha512-swFv0wQiK7TGHeuAp6lfF5Kw1dHWsTrCuc+yh4Kh05gEShjsE2RUxHucEerR9ih9JITNtaHcSpUThn5Y/vDw0A==}
+  '@smithy/core@3.1.1':
+    resolution: {integrity: sha512-hhUZlBWYuh9t6ycAcN90XOyG76C1AzwxZZgaCVPMYpWqqk9uMFo7HGG5Zu2cEhCJn7DdOi5krBmlibWWWPgdsw==}
     engines: {node: '>=18.0.0'}
 
   '@smithy/credential-provider-imds@4.0.1':
@@ -9138,12 +9175,12 @@ packages:
     resolution: {integrity: sha512-OGXo7w5EkB5pPiac7KNzVtfCW2vKBTZNuCctn++TTSOMpe6RZO/n6WEC1AxJINn3+vWLKW49uad3lo/u0WJ9oQ==}
     engines: {node: '>=18.0.0'}
 
-  '@smithy/middleware-endpoint@4.0.1':
-    resolution: {integrity: sha512-hCCOPu9+sRI7Wj0rZKKnGylKXBEd9cQJetzjQqe8cT4PWvtQAbvNVa6cgAONiZg9m8LaXtP9/waxm3C3eO4hiw==}
+  '@smithy/middleware-endpoint@4.0.2':
+    resolution: {integrity: sha512-Z9m67CXizGpj8CF/AW/7uHqYNh1VXXOn9Ap54fenWsCa0HnT4cJuE61zqG3cBkTZJDCy0wHJphilI41co/PE5g==}
     engines: {node: '>=18.0.0'}
 
-  '@smithy/middleware-retry@4.0.1':
-    resolution: {integrity: sha512-n3g2zZFgOWaz2ZYCy8+4wxSmq+HSTD8QKkRhFDv+nkxY1o7gzyp4PDz/+tOdcNPMPZ/A6Mt4aVECYNjQNiaHJw==}
+  '@smithy/middleware-retry@4.0.3':
+    resolution: {integrity: sha512-TiKwwQTwUDeDtwWW8UWURTqu7s6F3wN2pmziLU215u7bqpVT9Mk2oEvURjpRLA+5XeQhM68R5BpAGzVtomsqgA==}
     engines: {node: '>=18.0.0'}
 
   '@smithy/middleware-serde@4.0.1':
@@ -9158,8 +9195,8 @@ packages:
     resolution: {integrity: sha512-8mRTjvCtVET8+rxvmzRNRR0hH2JjV0DFOmwXPrISmTIJEfnCBugpYYGAsCj8t41qd+RB5gbheSQ/6aKZCQvFLQ==}
     engines: {node: '>=18.0.0'}
 
-  '@smithy/node-http-handler@4.0.1':
-    resolution: {integrity: sha512-ddQc7tvXiVLC5c3QKraGWde761KSk+mboCheZoWtuqnXh5l0WKyFy3NfDIM/dsKrI9HlLVH/21pi9wWK2gUFFA==}
+  '@smithy/node-http-handler@4.0.2':
+    resolution: {integrity: sha512-X66H9aah9hisLLSnGuzRYba6vckuFtGE+a5DcHLliI/YlqKrGoxhisD5XbX44KyoeRzoNlGr94eTsMVHFAzPOw==}
     engines: {node: '>=18.0.0'}
 
   '@smithy/property-provider@4.0.1':
@@ -9190,8 +9227,8 @@ packages:
     resolution: {integrity: sha512-nCe6fQ+ppm1bQuw5iKoeJ0MJfz2os7Ic3GBjOkLOPtavbD1ONoyE3ygjBfz2ythFWm4YnRm6OxW+8p/m9uCoIA==}
     engines: {node: '>=18.0.0'}
 
-  '@smithy/smithy-client@4.1.0':
-    resolution: {integrity: sha512-NiboZnrsrZY+Cy5hQNbYi+nVNssXVi2I+yL4CIKNIanOhH8kpC5PKQ2jx/MQpwVr21a3XcVoQBArlpRF36OeEQ==}
+  '@smithy/smithy-client@4.1.2':
+    resolution: {integrity: sha512-0yApeHWBqocelHGK22UivZyShNxFbDNrgREBllGh5Ws0D0rg/yId/CJfeoKKpjbfY2ju8j6WgDUGZHYQmINZ5w==}
     engines: {node: '>=18.0.0'}
 
   '@smithy/types@4.1.0':
@@ -9226,12 +9263,12 @@ packages:
     resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==}
     engines: {node: '>=18.0.0'}
 
-  '@smithy/util-defaults-mode-browser@4.0.1':
-    resolution: {integrity: sha512-nkQifWzWUHw/D0aLPgyKut+QnJ5X+5E8wBvGfvrYLLZ86xPfVO6MoqfQo/9s4bF3Xscefua1M6KLZtobHMWrBg==}
+  '@smithy/util-defaults-mode-browser@4.0.3':
+    resolution: {integrity: sha512-7c5SF1fVK0EOs+2EOf72/qF199zwJflU1d02AevwKbAUPUZyE9RUZiyJxeUmhVxfKDWdUKaaVojNiaDQgnHL9g==}
     engines: {node: '>=18.0.0'}
 
-  '@smithy/util-defaults-mode-node@4.0.1':
-    resolution: {integrity: sha512-LeAx2faB83litC9vaOdwFaldtto2gczUHxfFf8yoRwDU3cwL4/pDm7i0hxsuBCRk5mzHsrVGw+3EVCj32UZMdw==}
+  '@smithy/util-defaults-mode-node@4.0.3':
+    resolution: {integrity: sha512-CVnD42qYD3JKgDlImZ9+On+MqJHzq9uJgPbMdeBE8c2x8VJ2kf2R3XO/yVFx+30ts5lD/GlL0eFIShY3x9ROgQ==}
     engines: {node: '>=18.0.0'}
 
   '@smithy/util-endpoints@3.0.1':
@@ -9250,8 +9287,8 @@ packages:
     resolution: {integrity: sha512-WmRHqNVwn3kI3rKk1LsKcVgPBG6iLTBGC1iYOV3GQegwJ3E8yjzHytPt26VNzOWr1qu0xE03nK0Ug8S7T7oufw==}
     engines: {node: '>=18.0.0'}
 
-  '@smithy/util-stream@4.0.1':
-    resolution: {integrity: sha512-Js16gOgU6Qht6qTPfuJgb+1YD4AEO+5Y1UPGWKSp3BNo8ONl/qhXSYDhFKJtwybRJynlCqvP5IeiaBsUmkSPTQ==}
+  '@smithy/util-stream@4.0.2':
+    resolution: {integrity: sha512-0eZ4G5fRzIoewtHtwaYyl8g2C+osYOT4KClXgfdNEDAgkbe2TYPqcnw4GAWabqkZCax2ihRGPe9LZnsPdIUIHA==}
     engines: {node: '>=18.0.0'}
 
   '@smithy/util-uri-escape@4.0.0':
@@ -9450,8 +9487,8 @@ packages:
     peerDependencies:
       '@solana/web3.js': ^1.77.3
 
-  '@solana/wallet-standard-features@1.2.0':
-    resolution: {integrity: sha512-tUd9srDLkRpe1BYg7we+c4UhRQkq+XQWswsr/L1xfGmoRDF47BPSXf4zE7ZU2GRBGvxtGt7lwJVAufQyQYhxTQ==}
+  '@solana/wallet-standard-features@1.3.0':
+    resolution: {integrity: sha512-ZhpZtD+4VArf6RPitsVExvgkF+nGghd1rzPjd97GmBximpnt1rsUxMOEyoIEuH3XBxPyNB6Us7ha7RHWQR+abg==}
     engines: {node: '>=16'}
 
   '@solana/web3.js@1.95.3':
@@ -10017,8 +10054,8 @@ packages:
   '@types/express-serve-static-core@4.19.6':
     resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==}
 
-  '@types/express-serve-static-core@5.0.4':
-    resolution: {integrity: sha512-5kz9ScmzBdzTgB/3susoCgfqNDzBjvLL4taparufgSvlwjdLy6UyUy9T/tCpYd2GIdIilCatC4iSQS0QSYHt0w==}
+  '@types/express-serve-static-core@5.0.5':
+    resolution: {integrity: sha512-GLZPrd9ckqEBFMcVM/qRFAP0Hg3qiVEojgEFsx/N/zKXsBzbGF6z5FBDpZ0+Xhp1xr+qRZYjfGr1cWHB9oFHSA==}
 
   '@types/express@4.17.21':
     resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==}
@@ -10165,14 +10202,14 @@ packages:
   '@types/node@18.15.13':
     resolution: {integrity: sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==}
 
-  '@types/node@18.19.70':
-    resolution: {integrity: sha512-RE+K0+KZoEpDUbGGctnGdkrLFwi1eYKTlIHNl2Um98mUkGsm1u2Ff6Ltd0e8DktTtC98uy7rSj+hO8t/QuLoVQ==}
+  '@types/node@18.19.71':
+    resolution: {integrity: sha512-evXpcgtZm8FY4jqBSN8+DmOTcVkkvTmAayeo4Wf3m1xAruyVGzGuDh/Fb/WWX2yLItUiho42ozyJjB0dw//Tkw==}
 
   '@types/node@20.17.9':
     resolution: {integrity: sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==}
 
-  '@types/node@22.10.6':
-    resolution: {integrity: sha512-qNiuwC4ZDAUNcY47xgaSuS92cjf8JbSUoaKS77bmLG1rU7MlATVSiw/IlrjtIyyskXBZ8KkNfjK/P5na7rgXbQ==}
+  '@types/node@22.10.7':
+    resolution: {integrity: sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==}
 
   '@types/node@22.7.5':
     resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==}
@@ -10205,8 +10242,8 @@ packages:
   '@types/promise-retry@1.1.6':
     resolution: {integrity: sha512-EC1+OMXV0PZb0pf+cmyxc43MEP2CDumZe4AfuxWboxxEixztIebknpJPZAX5XlodGF1OY+C1E/RAeNGzxf+bJA==}
 
-  '@types/qs@6.9.17':
-    resolution: {integrity: sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==}
+  '@types/qs@6.9.18':
+    resolution: {integrity: sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==}
 
   '@types/range-parser@1.2.7':
     resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
@@ -10225,8 +10262,8 @@ packages:
   '@types/react-router@5.1.20':
     resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==}
 
-  '@types/react@19.0.6':
-    resolution: {integrity: sha512-gIlMztcTeDgXCUj0vCBOqEuSEhX//63fW9SZtCJ+agxoQTOklwDfiEMlTWn4mR/C/UK5VHlpwsCsOyf7/hc4lw==}
+  '@types/react@19.0.7':
+    resolution: {integrity: sha512-MoFsEJKkAtZCrC1r6CM8U22GzhG7u2Wir8ons/aCKH6MBdD1ibV24zOSSkdZVUKqN5i396zG5VKLYZ3yaUZdLA==}
 
   '@types/resolve@1.20.2':
     resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
@@ -11024,8 +11061,8 @@ packages:
       zod:
         optional: true
 
-  ai@4.0.34:
-    resolution: {integrity: sha512-GkbepmrAtyTnTTUZKoB7ghqfywWal2n/EKR3cs72eM86E0Wejz7ZaVGY/QF9LjwTJ0qhrFELlFGffnCBKqhQLg==}
+  ai@4.0.38:
+    resolution: {integrity: sha512-Lqo39GY8YlfUHgQdYb8qzaz+vfAu/8c8eIDck7NNKrdmwOAr8f4SuDgPVbISn1/4F9gR6WEXnD2f552ZEVT31Q==}
     engines: {node: '>=18'}
     peerDependencies:
       react: ^18 || ^19 || ^19.0.0-rc
@@ -11068,8 +11105,8 @@ packages:
     resolution: {integrity: sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ==}
     engines: {node: '>= 10'}
 
-  algoliasearch-helper@3.22.6:
-    resolution: {integrity: sha512-F2gSb43QHyvZmvH/2hxIjbk/uFdO2MguQYTFP7J+RowMW1csjIODMobEnpLI8nbLQuzZnGZdIxl5Bpy1k9+CFQ==}
+  algoliasearch-helper@3.23.0:
+    resolution: {integrity: sha512-8CK4Gb/ju4OesAYcS+mjBpNiVA7ILWpg7D2vhBZohh0YkG8QT1KZ9LG+8+EntQBUGoKtPy06OFhiwP4f5zzAQg==}
     peerDependencies:
       algoliasearch: '>= 3.1 < 6'
 
@@ -11517,27 +11554,30 @@ packages:
   balanced-match@1.0.2:
     resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
 
-  bare-buffer@3.0.1:
-    resolution: {integrity: sha512-QuDV/Wv5k1xsevh24zQwEjlQJuRvt3tUC39VFai6PoJiDIwmISEoc76ZTae4yVcacRBw0HBArrHssV1o3TEKhQ==}
-    engines: {bare: '>=1.13.0'}
-
   bare-events@2.5.4:
     resolution: {integrity: sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==}
 
-  bare-fs@2.3.5:
-    resolution: {integrity: sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==}
+  bare-fs@4.0.1:
+    resolution: {integrity: sha512-ilQs4fm/l9eMfWY2dY0WCIUplSUp7U0CT1vrqMg1MUdeZl4fypu5UP0XcDBK5WBQPJAKP1b7XEodISmekH/CEg==}
+    engines: {bare: '>=1.7.0'}
 
-  bare-os@2.4.4:
-    resolution: {integrity: sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==}
+  bare-os@3.4.0:
+    resolution: {integrity: sha512-9Ous7UlnKbe3fMi7Y+qh0DwAup6A1JkYgPnjvMDNOlmnxNRQvQ/7Nst+OnUQKzk0iAT0m9BisbDVp9gCv8+ETA==}
+    engines: {bare: '>=1.6.0'}
 
-  bare-path@2.1.3:
-    resolution: {integrity: sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==}
+  bare-path@3.0.0:
+    resolution: {integrity: sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==}
 
-  bare-stream@2.6.2:
-    resolution: {integrity: sha512-gSFtIiA/b0Llho+9zEy9MNgqrKpq70T62V4oGN8BSJgZt7Rk3RORPCK1kLj9hxS+YtrvSOOVGUrhraouXZkv3A==}
+  bare-stream@2.6.4:
+    resolution: {integrity: sha512-G6i3A74FjNq4nVrrSTUz5h3vgXzBJnjmWAVlBWaZETkgu+LgKd7AiyOml3EDJY1AHlIbBHKDXE+TUT53Ff8OaA==}
     peerDependencies:
       bare-buffer: '*'
       bare-events: '*'
+    peerDependenciesMeta:
+      bare-buffer:
+        optional: true
+      bare-events:
+        optional: true
 
   base-x@2.0.6:
     resolution: {integrity: sha512-UAmjxz9KbK+YIi66xej+pZVo/vxUOh49ubEvZW5egCbxhur05pBb+hwuireQwKO4nDpsNm64/jEei17LEpsr5g==}
@@ -12008,8 +12048,8 @@ packages:
     resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==}
     engines: {node: '>=12'}
 
-  chain-registry@1.69.91:
-    resolution: {integrity: sha512-4PtqckiTLOhV1o2559zfEZ0hLx46Jc3ZFOs/zizX1rkivLt4uMX/cvRmwwSZjfzVmBofkE1hIErIpHxd+QOpsw==}
+  chain-registry@1.69.94:
+    resolution: {integrity: sha512-8WpEM0BRtvhe6MBek0Jx41xaNH8E3I76yqebr0q5RohIs+Rmjt+aCzmi9T8AOceyJw7cOzIBhJjD1pi2agfd1w==}
 
   chalk@1.1.3:
     resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==}
@@ -13504,8 +13544,8 @@ packages:
     engines: {node: '>=0.10.0'}
     hasBin: true
 
-  electron-to-chromium@1.5.80:
-    resolution: {integrity: sha512-LTrKpW0AqIuHwmlVNV+cjFYTnXtM9K37OGhpe0ZI10ScPSxqVSryZHIY3WnCS5NSYbBODRTZyhRMS2h5FAEqAw==}
+  electron-to-chromium@1.5.83:
+    resolution: {integrity: sha512-LcUDPqSt+V0QmI47XLzZrz5OqILSMGsPFkDYus22rIbgorSvBYEFqq854ltTmUdHkY92FSdAAvsh4jWEULMdfQ==}
 
   elliptic@6.5.4:
     resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==}
@@ -13626,8 +13666,8 @@ packages:
   es-module-lexer@1.6.0:
     resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==}
 
-  es-object-atoms@1.0.0:
-    resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==}
+  es-object-atoms@1.1.1:
+    resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
     engines: {node: '>= 0.4'}
 
   es-set-tostringtag@2.1.0:
@@ -13885,8 +13925,8 @@ packages:
     resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
     engines: {node: '>=0.10'}
 
-  esrap@1.4.2:
-    resolution: {integrity: sha512-FhVlJzvTw7ZLxYZ7RyHwQCFE64dkkpzGNNnphaGCLwjqGk1SQcqzbgdx9FowPCktx6NOSHkzvcZ3vsvdH54YXA==}
+  esrap@1.4.3:
+    resolution: {integrity: sha512-Xddc1RsoFJ4z9nR7W7BFaEPIp4UXoeQ0+077UdWLxbafMQFyU79sQJMk7kxNgRwQ9/aVgaKacCHC2pUACGwmYw==}
 
   esrecurse@4.3.0:
     resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
@@ -14284,8 +14324,8 @@ packages:
     resolution: {integrity: sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA==}
     engines: {node: '>=18'}
 
-  flash-sdk@2.25.3:
-    resolution: {integrity: sha512-0yKh40xgjNKjG/iOnnQqdEiXjLTUdaRVzLTDigcHvyDG5Kc9P5VCqqRdjxZ7XNdEFyZPvlspVD9p7ixS97hOUA==}
+  flash-sdk@2.25.6:
+    resolution: {integrity: sha512-dMQHdhLjO0V5CHEEUEGD+AMEFTzxwiydGyHn6aj1Y4yzkRq2xMlRdbmZSfkM5DGFWQ6IYjR4CeZdWolypVAThw==}
 
   flat-cache@3.2.0:
     resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
@@ -14736,6 +14776,12 @@ packages:
   google-protobuf@3.21.4:
     resolution: {integrity: sha512-MnG7N936zcKTco4Jd2PX2U96Kf9PxygAPKBug+74LHzmHXmceN16MmRcdgZv+DGef/S9YvQAfRsNCn4cjf9yyQ==}
 
+  google-sr-selectors@1.1.0:
+    resolution: {integrity: sha512-9LTKyc1nSQPQSi1uYvUd1XdFsHlKaSxPfxbl0bi25VZjbzDKvS5HCvo8DInk7EbSEt6tHeJEDrf3cOzXQGaW8g==}
+
+  google-sr@4.1.0:
+    resolution: {integrity: sha512-8QaGOFEWx2l5hZ9AFR1Oa9L1pKUWzW8Y/6XXA+o6GP2B1gawZNyR1E2SgzMP6iPMp8CBRgVWeBQBTTKk3u9TDA==}
+
   gopd@1.2.0:
     resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
     engines: {node: '>= 0.4'}
@@ -17375,8 +17421,8 @@ packages:
     resolution: {integrity: sha512-o2zOYiCpzRqSzPj0Zt/dQ/DqZeYoaQ7TUonc/xUPjCGl9WeHpNbxgVvOquXYAaJzI0M9BXV3HTzG0p8IUAbBTQ==}
     engines: {node: '>= 10.13'}
 
-  node-abi@3.71.0:
-    resolution: {integrity: sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==}
+  node-abi@3.73.0:
+    resolution: {integrity: sha512-z8iYzQGBu35ZkTQ9mtR8RqugJZ9RCLn8fv3d7LsgDBzOijGQP3RdKTX4LA7LXw03ZhU5z0l4xfhIMgSES31+cg==}
     engines: {node: '>=10'}
 
   node-addon-api@2.0.2:
@@ -17712,8 +17758,8 @@ packages:
     resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==}
     engines: {node: '>=18'}
 
-  oniguruma-to-es@1.0.0:
-    resolution: {integrity: sha512-kihvp0O4lFwf5tZMkfanwQLIZ9ORe9OeOFgZonH0BQeThgwfJiaZFeOfvvJVnJIM9TiVmx0RDD35hUJDR0++rQ==}
+  oniguruma-to-es@2.0.0:
+    resolution: {integrity: sha512-pE7+9jQgomy10aK6BJKRNHj1Nth0YLOzb3iRuhlz4gRzNSBSd7hga6U8BE6o0SoSuSkqv+PPtt511Msd1Hkl0w==}
 
   only-allow@1.2.1:
     resolution: {integrity: sha512-M7CJbmv7UCopc0neRKdzfoGWaVZC+xC1925GitKH9EAqYFzX9//25Q7oX4+jw0tiCCj+t5l6VZh8UPH23NZkMA==}
@@ -18240,8 +18286,8 @@ packages:
     resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==}
     engines: {node: '>=14.16'}
 
-  pkg-types@1.3.0:
-    resolution: {integrity: sha512-kS7yWjVFCkIw9hqdJBoMxDdzEngmkr5FXeWZZfQ6GoYacjVnsW6l2CcYW/0ThD0vF4LPJgVYnrg4d0uuhwYQbg==}
+  pkg-types@1.3.1:
+    resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
 
   pkg-up@3.1.0:
     resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==}
@@ -18949,8 +18995,8 @@ packages:
     peerDependencies:
       postcss: ^8.4.31
 
-  postcss@8.5.0:
-    resolution: {integrity: sha512-27VKOqrYfPncKA2NrFOVhP5MGAfHKLYn/Q0mz9cNQyRAKYi3VNHwYU2qKKqPCqgBmeeJ0uAFB56NumXZ5ZReXg==}
+  postcss@8.5.1:
+    resolution: {integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==}
     engines: {node: ^10 || ^12 || >=14}
 
   postgres-array@2.0.0:
@@ -19266,8 +19312,8 @@ packages:
     resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==}
     engines: {node: '>=0.6'}
 
-  qs@6.13.1:
-    resolution: {integrity: sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==}
+  qs@6.14.0:
+    resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==}
     engines: {node: '>=0.6'}
 
   qs@6.5.3:
@@ -19329,8 +19375,8 @@ packages:
     resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
     engines: {node: '>= 0.6'}
 
-  rate-limiter-flexible@5.0.4:
-    resolution: {integrity: sha512-ftYHrIfSqWYDIJZ4yPTrgOduByAp+86gUS9iklv0JoXVM8eQCAjTnydCj1hAT4MmhmkSw86NaFEJ28m/LC1pKA==}
+  rate-limiter-flexible@5.0.5:
+    resolution: {integrity: sha512-+/dSQfo+3FYwYygUs/V2BBdwGa9nFtakDwKt4l0bnvNB53TNT++QSFewwHX9qXrZJuMe9j+TUaU21lm5ARgqdQ==}
 
   raw-body@2.5.2:
     resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
@@ -19889,6 +19935,9 @@ packages:
   rrweb-cssom@0.8.0:
     resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==}
 
+  rss-to-json@2.1.1:
+    resolution: {integrity: sha512-xXf93iDpOadPWMtAUA/bT1iyifscdbIdtAQBGRbXLfnDQ5Z4tWpmbrAhV3p54nWxwm4joGIDeUrj6CLGm8BI3A==}
+
   rtl-detect@1.1.2:
     resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==}
 
@@ -20160,8 +20209,8 @@ packages:
     engines: {node: '>=4'}
     hasBin: true
 
-  shiki@1.26.2:
-    resolution: {integrity: sha512-iP7u2NA9A6JwRRCkIUREEX2cMhlYV5EBmbbSlfSRvPThwca8HBRbVkWuNWW+kw9+i6BSUZqqG6YeUs5dC2SjZw==}
+  shiki@1.27.2:
+    resolution: {integrity: sha512-QtA1C41oEVixKog+V8I3ia7jjGls7oCZ8Yul8vdHrVBga5uPoyTtMvFF4lMMXIyAZo5A5QbXq91bot2vA6Q+eQ==}
 
   shimmer@1.2.1:
     resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==}
@@ -20373,8 +20422,8 @@ packages:
   spdx-expression-parse@4.0.0:
     resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==}
 
-  spdx-license-ids@3.0.20:
-    resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==}
+  spdx-license-ids@3.0.21:
+    resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==}
 
   spdy-transport@3.0.0:
     resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==}
@@ -20721,8 +20770,8 @@ packages:
     resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
     engines: {node: '>= 0.4'}
 
-  svelte@5.17.3:
-    resolution: {integrity: sha512-eLgtpR2JiTgeuNQRCDcLx35Z7Lu9Qe09GPOz+gvtR9nmIZu5xgFd6oFiLGQlxLD0/u7xVyF5AUkjDVyFHe6Bvw==}
+  svelte@5.18.0:
+    resolution: {integrity: sha512-/Eb81lB8bVUxQPmkPVNBYrU9cZ544+9hE91ZUUXTMf7eWcGW84N1hS3gvv/XsUNOWLLg3IicXP2qa8W3KpTUHA==}
     engines: {node: '>=18'}
 
   svg-parser@2.0.4:
@@ -20792,8 +20841,8 @@ packages:
   tar-fs@2.1.2:
     resolution: {integrity: sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==}
 
-  tar-fs@3.0.7:
-    resolution: {integrity: sha512-2sAfoF/zw/2n8goUGnGRZTWTD4INtnScPZvyYBI6BDlJ3wNR5o1dw03EfBvuhG6GBLvC4J+C7j7W+64aZ0ogQA==}
+  tar-fs@3.0.8:
+    resolution: {integrity: sha512-ZoROL70jptorGAlgAYiLoBLItEKw/fUxg9BSYK/dF/GAGYFJOJJJMvjPAKDJraCXFwadD456FCuvLWgfhMsPwg==}
 
   tar-stream@2.2.0:
     resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
@@ -20881,8 +20930,8 @@ packages:
   thenify@3.3.1:
     resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
 
-  thirdweb@5.83.1:
-    resolution: {integrity: sha512-WuDPlVx7musSh6gMKaF44OM+wdqCb1K9DKt6srxv686pAuHwmJpArGFjjjEUdJ0kh9ralKUNMibWugvLyhzqJQ==}
+  thirdweb@5.84.0:
+    resolution: {integrity: sha512-mYvonenym2g6puAd4YMFD4NI/n8oWYIfkwvnOWdNR/ZwmBybRre3BLzhWVx2fId1RL9fDv5GQyDfR/1ORLgODA==}
     engines: {node: '>=18'}
     hasBin: true
     peerDependencies:
@@ -21031,14 +21080,14 @@ packages:
     resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==}
     engines: {node: '>=14.0.0'}
 
-  tldts-core@6.1.71:
-    resolution: {integrity: sha512-LRbChn2YRpic1KxY+ldL1pGXN/oVvKfCVufwfVzEQdFYNo39uF7AJa/WXdo+gYO7PTvdfkCPCed6Hkvz/kR7jg==}
+  tldts-core@6.1.72:
+    resolution: {integrity: sha512-FW3H9aCaGTJ8l8RVCR3EX8GxsxDbQXuwetwwgXA2chYdsX+NY1ytCBl61narjjehWmCw92tc1AxlcY3668CU8g==}
 
-  tldts-experimental@6.1.71:
-    resolution: {integrity: sha512-78lfP/3fRJ3HoCT5JSLOLj5ElHiWCAyglYNzjkFqBO7ykLZYst2u2jM1igSHWV0J2GFfOplApeDsfTF+XACrlA==}
+  tldts-experimental@6.1.72:
+    resolution: {integrity: sha512-mfPL+Pzn3nJ0JeI9AHuO4l0NbxldZhpWUYokb8HdK8gbZ2k0/qEqs5E/FqcOjVr4vzTZpbRtiwMPXv77VwXpyQ==}
 
-  tldts@6.1.71:
-    resolution: {integrity: sha512-LQIHmHnuzfZgZWAf2HzL83TIIrD8NhhI0DVxqo9/FdOd4ilec+NTNZOlDZf7EwrTNoutccbsHjvWHYXLAtvxjw==}
+  tldts@6.1.72:
+    resolution: {integrity: sha512-QNtgIqSUb9o2CoUjX9T5TwaIvUUJFU1+12PJkgt42DFV2yf9J6549yTF2uGloQsJ/JOC8X+gIB81ind97hRiIQ==}
     hasBin: true
 
   tmp-promise@3.0.3:
@@ -21120,8 +21169,8 @@ packages:
     resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==}
     engines: {node: '>=18'}
 
-  traverse@0.6.10:
-    resolution: {integrity: sha512-hN4uFRxbK+PX56DxYiGHsTn2dME3TVr9vbNqlQGcGcPhJAn+tdP126iA+TArMpI4YSgnTkMWyoLl5bf81Hi5TA==}
+  traverse@0.6.11:
+    resolution: {integrity: sha512-vxXDZg8/+p3gblxB6BhhG5yWVn1kGRlaL8O78UDXc3wRnPizB5g83dcvWV1jpDMIPnjZjOFuxlMmE82XJ4407w==}
     engines: {node: '>= 0.4'}
 
   tree-kill@1.2.2:
@@ -21557,8 +21606,8 @@ packages:
     resolution: {integrity: sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==}
     engines: {node: '>=18.17'}
 
-  undici@7.2.1:
-    resolution: {integrity: sha512-U2k0XHLJfaciARRxDcqTk2AZQsGXerHzdvfCZcy1hNhSf5KCAF4jIQQxL+apQviOekhRFPqED6Of5/+LcUSLzQ==}
+  undici@7.2.2:
+    resolution: {integrity: sha512-j/M0BQelSQHcq2Fhc1fUMszXtLx+RsZR5IkXx07knZMICLTzRzsW0tbTI9e9N40RftPUkFP8j4qOjKJa5aTCzw==}
     engines: {node: '>=20.18.1'}
 
   unenv@1.10.0:
@@ -22852,6 +22901,18 @@ packages:
 
 snapshots:
 
+  '@0glabs/0g-ts-sdk@0.2.1(bufferutil@4.0.9)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)':
+    dependencies:
+      '@ethersproject/bytes': 5.7.0
+      '@ethersproject/keccak256': 5.7.0
+      ethers: 6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+      open-jsonrpc-provider: 0.2.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+    transitivePeerDependencies:
+      - bufferutil
+      - debug
+      - supports-color
+      - utf-8-validate
+
   '@0glabs/0g-ts-sdk@0.2.1(bufferutil@4.0.9)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(utf-8-validate@6.0.5)':
     dependencies:
       '@ethersproject/bytes': 5.7.0
@@ -22948,7 +23009,7 @@ snapshots:
   '@acuminous/bitsyntax@0.1.2':
     dependencies:
       buffer-more-ints: 1.0.0
-      debug: 4.4.0(supports-color@5.5.0)
+      debug: 4.4.0
       safe-buffer: 5.1.2
     transitivePeerDependencies:
       - supports-color
@@ -22990,7 +23051,7 @@ snapshots:
       '@ai-sdk/provider-utils': 2.0.7(zod@3.23.8)
       zod: 3.23.8
 
-  '@ai-sdk/openai@1.0.18(zod@3.24.1)':
+  '@ai-sdk/openai@1.0.19(zod@3.24.1)':
     dependencies:
       '@ai-sdk/provider': 1.0.4
       '@ai-sdk/provider-utils': 2.0.7(zod@3.24.1)
@@ -23020,15 +23081,6 @@ snapshots:
     optionalDependencies:
       zod: 3.23.8
 
-  '@ai-sdk/provider-utils@1.0.22(zod@3.24.1)':
-    dependencies:
-      '@ai-sdk/provider': 0.0.26
-      eventsource-parser: 1.1.2
-      nanoid: 3.3.8
-      secure-json-parse: 2.7.0
-    optionalDependencies:
-      zod: 3.24.1
-
   '@ai-sdk/provider-utils@2.0.2(zod@3.23.8)':
     dependencies:
       '@ai-sdk/provider': 1.0.1
@@ -23082,20 +23134,20 @@ snapshots:
       react: 19.0.0
       zod: 3.23.8
 
-  '@ai-sdk/react@1.0.10(react@19.0.0)(zod@3.23.8)':
+  '@ai-sdk/react@1.0.11(react@19.0.0)(zod@3.23.8)':
     dependencies:
       '@ai-sdk/provider-utils': 2.0.7(zod@3.23.8)
-      '@ai-sdk/ui-utils': 1.0.9(zod@3.23.8)
+      '@ai-sdk/ui-utils': 1.0.10(zod@3.23.8)
       swr: 2.3.0(react@19.0.0)
       throttleit: 2.1.0
     optionalDependencies:
       react: 19.0.0
       zod: 3.23.8
 
-  '@ai-sdk/react@1.0.10(react@19.0.0)(zod@3.24.1)':
+  '@ai-sdk/react@1.0.11(react@19.0.0)(zod@3.24.1)':
     dependencies:
       '@ai-sdk/provider-utils': 2.0.7(zod@3.24.1)
-      '@ai-sdk/ui-utils': 1.0.9(zod@3.24.1)
+      '@ai-sdk/ui-utils': 1.0.10(zod@3.24.1)
       swr: 2.3.0(react@19.0.0)
       throttleit: 2.1.0
     optionalDependencies:
@@ -23109,13 +23161,13 @@ snapshots:
     transitivePeerDependencies:
       - zod
 
-  '@ai-sdk/svelte@0.0.57(svelte@5.17.3)(zod@3.23.8)':
+  '@ai-sdk/svelte@0.0.57(svelte@5.18.0)(zod@3.23.8)':
     dependencies:
       '@ai-sdk/provider-utils': 1.0.22(zod@3.23.8)
       '@ai-sdk/ui-utils': 0.0.50(zod@3.23.8)
-      sswr: 2.1.0(svelte@5.17.3)
+      sswr: 2.1.0(svelte@5.18.0)
     optionalDependencies:
-      svelte: 5.17.3
+      svelte: 5.18.0
     transitivePeerDependencies:
       - zod
 
@@ -23129,7 +23181,7 @@ snapshots:
     optionalDependencies:
       zod: 3.23.8
 
-  '@ai-sdk/ui-utils@1.0.9(zod@3.23.8)':
+  '@ai-sdk/ui-utils@1.0.10(zod@3.23.8)':
     dependencies:
       '@ai-sdk/provider': 1.0.4
       '@ai-sdk/provider-utils': 2.0.7(zod@3.23.8)
@@ -23137,7 +23189,7 @@ snapshots:
     optionalDependencies:
       zod: 3.23.8
 
-  '@ai-sdk/ui-utils@1.0.9(zod@3.24.1)':
+  '@ai-sdk/ui-utils@1.0.10(zod@3.24.1)':
     dependencies:
       '@ai-sdk/provider': 1.0.4
       '@ai-sdk/provider-utils': 2.0.7(zod@3.24.1)
@@ -23376,7 +23428,7 @@ snapshots:
 
   '@alloralabs/allora-sdk@0.0.4':
     dependencies:
-      '@types/node': 22.10.6
+      '@types/node': 22.10.7
       typescript: 5.7.3
 
   '@ampproject/remapping@2.3.0':
@@ -23393,7 +23445,7 @@ snapshots:
 
   '@anthropic-ai/sdk@0.30.1(encoding@0.1.13)':
     dependencies:
-      '@types/node': 18.19.70
+      '@types/node': 18.19.71
       '@types/node-fetch': 2.6.12
       abort-controller: 3.0.0
       agentkeepalive: 4.6.0
@@ -23459,13 +23511,13 @@ snapshots:
     transitivePeerDependencies:
       - debug
 
-  '@asamuzakjp/css-color@2.8.2':
+  '@asamuzakjp/css-color@2.8.3':
     dependencies:
       '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-tokenizer': 3.0.3
-      lru-cache: 11.0.2
+      lru-cache: 10.4.3
 
   '@asterai/client@0.1.6':
     dependencies:
@@ -23474,10 +23526,10 @@ snapshots:
       protobufjs: 7.4.0
       typescript: 5.6.3
 
-  '@avnu/avnu-sdk@2.1.1(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(qs@6.13.1)(starknet@6.18.0(encoding@0.1.13))':
+  '@avnu/avnu-sdk@2.1.1(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(qs@6.14.0)(starknet@6.18.0(encoding@0.1.13))':
     dependencies:
       ethers: 6.13.4(bufferutil@4.0.9)(utf-8-validate@6.0.5)
-      qs: 6.13.1
+      qs: 6.14.0
       starknet: 6.18.0(encoding@0.1.13)
 
   '@aws-crypto/crc32@5.2.0':
@@ -23545,36 +23597,36 @@ snapshots:
       '@aws-sdk/util-user-agent-browser': 3.723.0
       '@aws-sdk/util-user-agent-node': 3.726.0
       '@smithy/config-resolver': 4.0.1
-      '@smithy/core': 3.1.0
+      '@smithy/core': 3.1.1
       '@smithy/fetch-http-handler': 5.0.1
       '@smithy/hash-node': 4.0.1
       '@smithy/invalid-dependency': 4.0.1
       '@smithy/middleware-content-length': 4.0.1
-      '@smithy/middleware-endpoint': 4.0.1
-      '@smithy/middleware-retry': 4.0.1
+      '@smithy/middleware-endpoint': 4.0.2
+      '@smithy/middleware-retry': 4.0.3
       '@smithy/middleware-serde': 4.0.1
       '@smithy/middleware-stack': 4.0.1
       '@smithy/node-config-provider': 4.0.1
-      '@smithy/node-http-handler': 4.0.1
+      '@smithy/node-http-handler': 4.0.2
       '@smithy/protocol-http': 5.0.1
-      '@smithy/smithy-client': 4.1.0
+      '@smithy/smithy-client': 4.1.2
       '@smithy/types': 4.1.0
       '@smithy/url-parser': 4.0.1
       '@smithy/util-base64': 4.0.0
       '@smithy/util-body-length-browser': 4.0.0
       '@smithy/util-body-length-node': 4.0.0
-      '@smithy/util-defaults-mode-browser': 4.0.1
-      '@smithy/util-defaults-mode-node': 4.0.1
+      '@smithy/util-defaults-mode-browser': 4.0.3
+      '@smithy/util-defaults-mode-node': 4.0.3
       '@smithy/util-endpoints': 3.0.1
       '@smithy/util-middleware': 4.0.1
       '@smithy/util-retry': 4.0.1
-      '@smithy/util-stream': 4.0.1
+      '@smithy/util-stream': 4.0.2
       '@smithy/util-utf8': 4.0.0
       tslib: 2.8.1
     transitivePeerDependencies:
       - aws-crt
 
-  '@aws-sdk/client-s3@3.726.1':
+  '@aws-sdk/client-s3@3.729.0':
     dependencies:
       '@aws-crypto/sha1-browser': 5.2.0
       '@aws-crypto/sha256-browser': 5.2.0
@@ -23585,7 +23637,7 @@ snapshots:
       '@aws-sdk/credential-provider-node': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))(@aws-sdk/client-sts@3.726.1)
       '@aws-sdk/middleware-bucket-endpoint': 3.726.0
       '@aws-sdk/middleware-expect-continue': 3.723.0
-      '@aws-sdk/middleware-flexible-checksums': 3.723.0
+      '@aws-sdk/middleware-flexible-checksums': 3.729.0
       '@aws-sdk/middleware-host-header': 3.723.0
       '@aws-sdk/middleware-location-constraint': 3.723.0
       '@aws-sdk/middleware-logger': 3.723.0
@@ -23601,7 +23653,7 @@ snapshots:
       '@aws-sdk/util-user-agent-node': 3.726.0
       '@aws-sdk/xml-builder': 3.723.0
       '@smithy/config-resolver': 4.0.1
-      '@smithy/core': 3.1.0
+      '@smithy/core': 3.1.1
       '@smithy/eventstream-serde-browser': 4.0.1
       '@smithy/eventstream-serde-config-resolver': 4.0.1
       '@smithy/eventstream-serde-node': 4.0.1
@@ -23612,25 +23664,25 @@ snapshots:
       '@smithy/invalid-dependency': 4.0.1
       '@smithy/md5-js': 4.0.1
       '@smithy/middleware-content-length': 4.0.1
-      '@smithy/middleware-endpoint': 4.0.1
-      '@smithy/middleware-retry': 4.0.1
+      '@smithy/middleware-endpoint': 4.0.2
+      '@smithy/middleware-retry': 4.0.3
       '@smithy/middleware-serde': 4.0.1
       '@smithy/middleware-stack': 4.0.1
       '@smithy/node-config-provider': 4.0.1
-      '@smithy/node-http-handler': 4.0.1
+      '@smithy/node-http-handler': 4.0.2
       '@smithy/protocol-http': 5.0.1
-      '@smithy/smithy-client': 4.1.0
+      '@smithy/smithy-client': 4.1.2
       '@smithy/types': 4.1.0
       '@smithy/url-parser': 4.0.1
       '@smithy/util-base64': 4.0.0
       '@smithy/util-body-length-browser': 4.0.0
       '@smithy/util-body-length-node': 4.0.0
-      '@smithy/util-defaults-mode-browser': 4.0.1
-      '@smithy/util-defaults-mode-node': 4.0.1
+      '@smithy/util-defaults-mode-browser': 4.0.3
+      '@smithy/util-defaults-mode-node': 4.0.3
       '@smithy/util-endpoints': 3.0.1
       '@smithy/util-middleware': 4.0.1
       '@smithy/util-retry': 4.0.1
-      '@smithy/util-stream': 4.0.1
+      '@smithy/util-stream': 4.0.2
       '@smithy/util-utf8': 4.0.0
       '@smithy/util-waiter': 4.0.2
       tslib: 2.8.1
@@ -23654,26 +23706,26 @@ snapshots:
       '@aws-sdk/util-user-agent-browser': 3.723.0
       '@aws-sdk/util-user-agent-node': 3.726.0
       '@smithy/config-resolver': 4.0.1
-      '@smithy/core': 3.1.0
+      '@smithy/core': 3.1.1
       '@smithy/fetch-http-handler': 5.0.1
       '@smithy/hash-node': 4.0.1
       '@smithy/invalid-dependency': 4.0.1
       '@smithy/middleware-content-length': 4.0.1
-      '@smithy/middleware-endpoint': 4.0.1
-      '@smithy/middleware-retry': 4.0.1
+      '@smithy/middleware-endpoint': 4.0.2
+      '@smithy/middleware-retry': 4.0.3
       '@smithy/middleware-serde': 4.0.1
       '@smithy/middleware-stack': 4.0.1
       '@smithy/node-config-provider': 4.0.1
-      '@smithy/node-http-handler': 4.0.1
+      '@smithy/node-http-handler': 4.0.2
       '@smithy/protocol-http': 5.0.1
-      '@smithy/smithy-client': 4.1.0
+      '@smithy/smithy-client': 4.1.2
       '@smithy/types': 4.1.0
       '@smithy/url-parser': 4.0.1
       '@smithy/util-base64': 4.0.0
       '@smithy/util-body-length-browser': 4.0.0
       '@smithy/util-body-length-node': 4.0.0
-      '@smithy/util-defaults-mode-browser': 4.0.1
-      '@smithy/util-defaults-mode-node': 4.0.1
+      '@smithy/util-defaults-mode-browser': 4.0.3
+      '@smithy/util-defaults-mode-node': 4.0.3
       '@smithy/util-endpoints': 3.0.1
       '@smithy/util-middleware': 4.0.1
       '@smithy/util-retry': 4.0.1
@@ -23697,26 +23749,26 @@ snapshots:
       '@aws-sdk/util-user-agent-browser': 3.723.0
       '@aws-sdk/util-user-agent-node': 3.726.0
       '@smithy/config-resolver': 4.0.1
-      '@smithy/core': 3.1.0
+      '@smithy/core': 3.1.1
       '@smithy/fetch-http-handler': 5.0.1
       '@smithy/hash-node': 4.0.1
       '@smithy/invalid-dependency': 4.0.1
       '@smithy/middleware-content-length': 4.0.1
-      '@smithy/middleware-endpoint': 4.0.1
-      '@smithy/middleware-retry': 4.0.1
+      '@smithy/middleware-endpoint': 4.0.2
+      '@smithy/middleware-retry': 4.0.3
       '@smithy/middleware-serde': 4.0.1
       '@smithy/middleware-stack': 4.0.1
       '@smithy/node-config-provider': 4.0.1
-      '@smithy/node-http-handler': 4.0.1
+      '@smithy/node-http-handler': 4.0.2
       '@smithy/protocol-http': 5.0.1
-      '@smithy/smithy-client': 4.1.0
+      '@smithy/smithy-client': 4.1.2
       '@smithy/types': 4.1.0
       '@smithy/url-parser': 4.0.1
       '@smithy/util-base64': 4.0.0
       '@smithy/util-body-length-browser': 4.0.0
       '@smithy/util-body-length-node': 4.0.0
-      '@smithy/util-defaults-mode-browser': 4.0.1
-      '@smithy/util-defaults-mode-node': 4.0.1
+      '@smithy/util-defaults-mode-browser': 4.0.3
+      '@smithy/util-defaults-mode-node': 4.0.3
       '@smithy/util-endpoints': 3.0.1
       '@smithy/util-middleware': 4.0.1
       '@smithy/util-retry': 4.0.1
@@ -23742,26 +23794,26 @@ snapshots:
       '@aws-sdk/util-user-agent-browser': 3.723.0
       '@aws-sdk/util-user-agent-node': 3.726.0
       '@smithy/config-resolver': 4.0.1
-      '@smithy/core': 3.1.0
+      '@smithy/core': 3.1.1
       '@smithy/fetch-http-handler': 5.0.1
       '@smithy/hash-node': 4.0.1
       '@smithy/invalid-dependency': 4.0.1
       '@smithy/middleware-content-length': 4.0.1
-      '@smithy/middleware-endpoint': 4.0.1
-      '@smithy/middleware-retry': 4.0.1
+      '@smithy/middleware-endpoint': 4.0.2
+      '@smithy/middleware-retry': 4.0.3
       '@smithy/middleware-serde': 4.0.1
       '@smithy/middleware-stack': 4.0.1
       '@smithy/node-config-provider': 4.0.1
-      '@smithy/node-http-handler': 4.0.1
+      '@smithy/node-http-handler': 4.0.2
       '@smithy/protocol-http': 5.0.1
-      '@smithy/smithy-client': 4.1.0
+      '@smithy/smithy-client': 4.1.2
       '@smithy/types': 4.1.0
       '@smithy/url-parser': 4.0.1
       '@smithy/util-base64': 4.0.0
       '@smithy/util-body-length-browser': 4.0.0
       '@smithy/util-body-length-node': 4.0.0
-      '@smithy/util-defaults-mode-browser': 4.0.1
-      '@smithy/util-defaults-mode-node': 4.0.1
+      '@smithy/util-defaults-mode-browser': 4.0.3
+      '@smithy/util-defaults-mode-node': 4.0.3
       '@smithy/util-endpoints': 3.0.1
       '@smithy/util-middleware': 4.0.1
       '@smithy/util-retry': 4.0.1
@@ -23792,7 +23844,7 @@ snapshots:
       '@aws-sdk/util-user-agent-browser': 3.723.0
       '@aws-sdk/util-user-agent-node': 3.726.0
       '@smithy/config-resolver': 4.0.1
-      '@smithy/core': 3.1.0
+      '@smithy/core': 3.1.1
       '@smithy/eventstream-serde-browser': 4.0.1
       '@smithy/eventstream-serde-config-resolver': 4.0.1
       '@smithy/eventstream-serde-node': 4.0.1
@@ -23800,21 +23852,21 @@ snapshots:
       '@smithy/hash-node': 4.0.1
       '@smithy/invalid-dependency': 4.0.1
       '@smithy/middleware-content-length': 4.0.1
-      '@smithy/middleware-endpoint': 4.0.1
-      '@smithy/middleware-retry': 4.0.1
+      '@smithy/middleware-endpoint': 4.0.2
+      '@smithy/middleware-retry': 4.0.3
       '@smithy/middleware-serde': 4.0.1
       '@smithy/middleware-stack': 4.0.1
       '@smithy/node-config-provider': 4.0.1
-      '@smithy/node-http-handler': 4.0.1
+      '@smithy/node-http-handler': 4.0.2
       '@smithy/protocol-http': 5.0.1
-      '@smithy/smithy-client': 4.1.0
+      '@smithy/smithy-client': 4.1.2
       '@smithy/types': 4.1.0
       '@smithy/url-parser': 4.0.1
       '@smithy/util-base64': 4.0.0
       '@smithy/util-body-length-browser': 4.0.0
       '@smithy/util-body-length-node': 4.0.0
-      '@smithy/util-defaults-mode-browser': 4.0.1
-      '@smithy/util-defaults-mode-node': 4.0.1
+      '@smithy/util-defaults-mode-browser': 4.0.3
+      '@smithy/util-defaults-mode-node': 4.0.3
       '@smithy/util-endpoints': 3.0.1
       '@smithy/util-middleware': 4.0.1
       '@smithy/util-retry': 4.0.1
@@ -23826,12 +23878,12 @@ snapshots:
   '@aws-sdk/core@3.723.0':
     dependencies:
       '@aws-sdk/types': 3.723.0
-      '@smithy/core': 3.1.0
+      '@smithy/core': 3.1.1
       '@smithy/node-config-provider': 4.0.1
       '@smithy/property-provider': 4.0.1
       '@smithy/protocol-http': 5.0.1
       '@smithy/signature-v4': 5.0.1
-      '@smithy/smithy-client': 4.1.0
+      '@smithy/smithy-client': 4.1.2
       '@smithy/types': 4.1.0
       '@smithy/util-middleware': 4.0.1
       fast-xml-parser: 4.4.1
@@ -23850,12 +23902,12 @@ snapshots:
       '@aws-sdk/core': 3.723.0
       '@aws-sdk/types': 3.723.0
       '@smithy/fetch-http-handler': 5.0.1
-      '@smithy/node-http-handler': 4.0.1
+      '@smithy/node-http-handler': 4.0.2
       '@smithy/property-provider': 4.0.1
       '@smithy/protocol-http': 5.0.1
-      '@smithy/smithy-client': 4.1.0
+      '@smithy/smithy-client': 4.1.2
       '@smithy/types': 4.1.0
-      '@smithy/util-stream': 4.0.1
+      '@smithy/util-stream': 4.0.2
       tslib: 2.8.1
 
   '@aws-sdk/credential-provider-ini@3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))(@aws-sdk/client-sts@3.726.1)':
@@ -23959,7 +24011,7 @@ snapshots:
       '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@aws-sdk/middleware-flexible-checksums@3.723.0':
+  '@aws-sdk/middleware-flexible-checksums@3.729.0':
     dependencies:
       '@aws-crypto/crc32': 5.2.0
       '@aws-crypto/crc32c': 5.2.0
@@ -23971,7 +24023,7 @@ snapshots:
       '@smithy/protocol-http': 5.0.1
       '@smithy/types': 4.1.0
       '@smithy/util-middleware': 4.0.1
-      '@smithy/util-stream': 4.0.1
+      '@smithy/util-stream': 4.0.2
       '@smithy/util-utf8': 4.0.0
       tslib: 2.8.1
 
@@ -24006,15 +24058,15 @@ snapshots:
       '@aws-sdk/core': 3.723.0
       '@aws-sdk/types': 3.723.0
       '@aws-sdk/util-arn-parser': 3.723.0
-      '@smithy/core': 3.1.0
+      '@smithy/core': 3.1.1
       '@smithy/node-config-provider': 4.0.1
       '@smithy/protocol-http': 5.0.1
       '@smithy/signature-v4': 5.0.1
-      '@smithy/smithy-client': 4.1.0
+      '@smithy/smithy-client': 4.1.2
       '@smithy/types': 4.1.0
       '@smithy/util-config-provider': 4.0.0
       '@smithy/util-middleware': 4.0.1
-      '@smithy/util-stream': 4.0.1
+      '@smithy/util-stream': 4.0.2
       '@smithy/util-utf8': 4.0.0
       tslib: 2.8.1
 
@@ -24040,7 +24092,7 @@ snapshots:
       '@aws-sdk/core': 3.723.0
       '@aws-sdk/types': 3.723.0
       '@aws-sdk/util-endpoints': 3.726.0
-      '@smithy/core': 3.1.0
+      '@smithy/core': 3.1.1
       '@smithy/protocol-http': 5.0.1
       '@smithy/types': 4.1.0
       tslib: 2.8.1
@@ -24067,14 +24119,14 @@ snapshots:
       '@smithy/util-middleware': 4.0.1
       tslib: 2.8.1
 
-  '@aws-sdk/s3-request-presigner@3.726.1':
+  '@aws-sdk/s3-request-presigner@3.729.0':
     dependencies:
       '@aws-sdk/signature-v4-multi-region': 3.723.0
       '@aws-sdk/types': 3.723.0
       '@aws-sdk/util-format-url': 3.723.0
-      '@smithy/middleware-endpoint': 4.0.1
+      '@smithy/middleware-endpoint': 4.0.2
       '@smithy/protocol-http': 5.0.1
-      '@smithy/smithy-client': 4.1.0
+      '@smithy/smithy-client': 4.1.2
       '@smithy/types': 4.1.0
       tslib: 2.8.1
 
@@ -24201,7 +24253,7 @@ snapshots:
       '@babel/traverse': 7.26.5
       '@babel/types': 7.26.5
       convert-source-map: 2.0.0
-      debug: 4.4.0(supports-color@5.5.0)
+      debug: 4.4.0
       gensync: 1.0.0-beta.2
       json5: 2.2.3
       semver: 6.3.1
@@ -24981,7 +25033,7 @@ snapshots:
       '@babel/parser': 7.26.5
       '@babel/template': 7.25.9
       '@babel/types': 7.26.5
-      debug: 4.4.0(supports-color@5.5.0)
+      debug: 4.4.0
       globals: 11.12.0
     transitivePeerDependencies:
       - supports-color
@@ -25046,11 +25098,11 @@ snapshots:
 
   '@cfworker/json-schema@4.1.0': {}
 
-  '@chain-registry/types@0.50.47': {}
+  '@chain-registry/types@0.50.50': {}
 
-  '@chain-registry/utils@1.51.47':
+  '@chain-registry/utils@1.51.50':
     dependencies:
-      '@chain-registry/types': 0.50.47
+      '@chain-registry/types': 0.50.50
       bignumber.js: 9.1.2
       sha.js: 2.4.11
 
@@ -25110,7 +25162,7 @@ snapshots:
       '@cliqz/adblocker': 1.34.0
       '@cliqz/adblocker-content': 1.34.0
       playwright: 1.48.2
-      tldts-experimental: 6.1.71
+      tldts-experimental: 6.1.72
 
   '@cliqz/adblocker@1.34.0':
     dependencies:
@@ -25121,7 +25173,7 @@ snapshots:
       '@remusao/smaz': 1.10.0
       '@types/chrome': 0.0.278
       '@types/firefox-webext-browser': 120.0.4
-      tldts-experimental: 6.1.71
+      tldts-experimental: 6.1.72
 
   '@coinbase-samples/advanced-sdk-ts@file:packages/plugin-coinbase/advanced-sdk-ts(encoding@0.1.13)':
     dependencies:
@@ -25130,21 +25182,21 @@ snapshots:
     transitivePeerDependencies:
       - encoding
 
-  '@coinbase/coinbase-sdk@0.10.0(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@6.0.5)(zod@3.24.1)':
+  '@coinbase/coinbase-sdk@0.10.0(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)':
     dependencies:
       '@scure/bip32': 1.6.1
-      abitype: 1.0.8(typescript@5.6.3)(zod@3.24.1)
-      axios: 1.7.9(debug@4.4.0)
+      abitype: 1.0.8(typescript@5.6.3)(zod@3.23.8)
+      axios: 1.7.9
       axios-mock-adapter: 1.22.0(axios@1.7.9)
       axios-retry: 4.5.0(axios@1.7.9)
       bip32: 4.0.0
       bip39: 3.1.0
       decimal.js: 10.4.3
       dotenv: 16.4.7
-      ethers: 6.13.4(bufferutil@4.0.9)(utf-8-validate@6.0.5)
+      ethers: 6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10)
       node-jose: 2.2.0
       secp256k1: 5.0.1
-      viem: 2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@6.0.5)(zod@3.24.1)
+      viem: 2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8)
     transitivePeerDependencies:
       - bufferutil
       - debug
@@ -25154,7 +25206,7 @@ snapshots:
 
   '@coinbase/wallet-sdk@4.2.4':
     dependencies:
-      '@noble/hashes': 1.7.0
+      '@noble/hashes': 1.6.1
       clsx: 1.2.1
       eventemitter3: 5.0.1
       preact: 10.25.4
@@ -25162,11 +25214,11 @@ snapshots:
   '@colors/colors@1.5.0':
     optional: true
 
-  '@commitlint/cli@18.6.1(@types/node@22.10.6)(typescript@5.6.3)':
+  '@commitlint/cli@18.6.1(@types/node@20.17.9)(typescript@5.6.3)':
     dependencies:
       '@commitlint/format': 18.6.1
       '@commitlint/lint': 18.6.1
-      '@commitlint/load': 18.6.1(@types/node@22.10.6)(typescript@5.6.3)
+      '@commitlint/load': 18.6.1(@types/node@20.17.9)(typescript@5.6.3)
       '@commitlint/read': 18.6.1
       '@commitlint/types': 18.6.1
       execa: 5.1.1
@@ -25216,7 +25268,7 @@ snapshots:
       '@commitlint/rules': 18.6.1
       '@commitlint/types': 18.6.1
 
-  '@commitlint/load@18.6.1(@types/node@22.10.6)(typescript@5.6.3)':
+  '@commitlint/load@18.6.1(@types/node@20.17.9)(typescript@5.6.3)':
     dependencies:
       '@commitlint/config-validator': 18.6.1
       '@commitlint/execute-rule': 18.6.1
@@ -25224,7 +25276,7 @@ snapshots:
       '@commitlint/types': 18.6.1
       chalk: 4.1.2
       cosmiconfig: 8.3.6(typescript@5.6.3)
-      cosmiconfig-typescript-loader: 5.1.0(@types/node@22.10.6)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3)
+      cosmiconfig-typescript-loader: 5.1.0(@types/node@20.17.9)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3)
       lodash.isplainobject: 4.0.6
       lodash.merge: 4.6.2
       lodash.uniq: 4.5.0
@@ -25369,28 +25421,6 @@ snapshots:
       - encoding
       - utf-8-validate
 
-  '@coral-xyz/anchor@0.30.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@6.0.5)':
-    dependencies:
-      '@coral-xyz/anchor-errors': 0.30.1
-      '@coral-xyz/borsh': 0.30.1(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@6.0.5))
-      '@noble/hashes': 1.7.0
-      '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@6.0.5)
-      bn.js: 5.2.1
-      bs58: 4.0.1
-      buffer-layout: 1.2.2
-      camelcase: 6.3.0
-      cross-fetch: 3.2.0(encoding@0.1.13)
-      crypto-hash: 1.3.0
-      eventemitter3: 4.0.7
-      pako: 2.1.0
-      snake-case: 3.0.4
-      superstruct: 0.15.5
-      toml: 3.0.0
-    transitivePeerDependencies:
-      - bufferutil
-      - encoding
-      - utf-8-validate
-
   '@coral-xyz/borsh@0.26.0(@solana/web3.js@1.95.8(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)
@@ -25421,12 +25451,6 @@ snapshots:
       bn.js: 5.2.1
       buffer-layout: 1.2.2
 
-  '@coral-xyz/borsh@0.30.1(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@6.0.5))':
-    dependencies:
-      '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@6.0.5)
-      bn.js: 5.2.1
-      buffer-layout: 1.2.2
-
   '@cosmjs/amino@0.27.1':
     dependencies:
       '@cosmjs/crypto': 0.27.1
@@ -25791,215 +25815,215 @@ snapshots:
       '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-tokenizer': 3.0.3
 
-  '@csstools/postcss-cascade-layers@5.0.1(postcss@8.5.0)':
+  '@csstools/postcss-cascade-layers@5.0.1(postcss@8.5.1)':
     dependencies:
       '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0)
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-selector-parser: 7.0.0
 
-  '@csstools/postcss-color-function@4.0.7(postcss@8.5.0)':
+  '@csstools/postcss-color-function@4.0.7(postcss@8.5.1)':
     dependencies:
       '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-tokenizer': 3.0.3
-      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.0)
-      '@csstools/utilities': 2.0.0(postcss@8.5.0)
-      postcss: 8.5.0
+      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1)
+      '@csstools/utilities': 2.0.0(postcss@8.5.1)
+      postcss: 8.5.1
 
-  '@csstools/postcss-color-mix-function@3.0.7(postcss@8.5.0)':
+  '@csstools/postcss-color-mix-function@3.0.7(postcss@8.5.1)':
     dependencies:
       '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-tokenizer': 3.0.3
-      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.0)
-      '@csstools/utilities': 2.0.0(postcss@8.5.0)
-      postcss: 8.5.0
+      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1)
+      '@csstools/utilities': 2.0.0(postcss@8.5.1)
+      postcss: 8.5.1
 
-  '@csstools/postcss-content-alt-text@2.0.4(postcss@8.5.0)':
+  '@csstools/postcss-content-alt-text@2.0.4(postcss@8.5.1)':
     dependencies:
       '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-tokenizer': 3.0.3
-      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.0)
-      '@csstools/utilities': 2.0.0(postcss@8.5.0)
-      postcss: 8.5.0
+      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1)
+      '@csstools/utilities': 2.0.0(postcss@8.5.1)
+      postcss: 8.5.1
 
-  '@csstools/postcss-exponential-functions@2.0.6(postcss@8.5.0)':
+  '@csstools/postcss-exponential-functions@2.0.6(postcss@8.5.1)':
     dependencies:
       '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-tokenizer': 3.0.3
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  '@csstools/postcss-font-format-keywords@4.0.0(postcss@8.5.0)':
+  '@csstools/postcss-font-format-keywords@4.0.0(postcss@8.5.1)':
     dependencies:
-      '@csstools/utilities': 2.0.0(postcss@8.5.0)
-      postcss: 8.5.0
+      '@csstools/utilities': 2.0.0(postcss@8.5.1)
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  '@csstools/postcss-gamut-mapping@2.0.7(postcss@8.5.0)':
+  '@csstools/postcss-gamut-mapping@2.0.7(postcss@8.5.1)':
     dependencies:
       '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-tokenizer': 3.0.3
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  '@csstools/postcss-gradients-interpolation-method@5.0.7(postcss@8.5.0)':
+  '@csstools/postcss-gradients-interpolation-method@5.0.7(postcss@8.5.1)':
     dependencies:
       '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-tokenizer': 3.0.3
-      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.0)
-      '@csstools/utilities': 2.0.0(postcss@8.5.0)
-      postcss: 8.5.0
+      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1)
+      '@csstools/utilities': 2.0.0(postcss@8.5.1)
+      postcss: 8.5.1
 
-  '@csstools/postcss-hwb-function@4.0.7(postcss@8.5.0)':
+  '@csstools/postcss-hwb-function@4.0.7(postcss@8.5.1)':
     dependencies:
       '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-tokenizer': 3.0.3
-      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.0)
-      '@csstools/utilities': 2.0.0(postcss@8.5.0)
-      postcss: 8.5.0
+      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1)
+      '@csstools/utilities': 2.0.0(postcss@8.5.1)
+      postcss: 8.5.1
 
-  '@csstools/postcss-ic-unit@4.0.0(postcss@8.5.0)':
+  '@csstools/postcss-ic-unit@4.0.0(postcss@8.5.1)':
     dependencies:
-      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.0)
-      '@csstools/utilities': 2.0.0(postcss@8.5.0)
-      postcss: 8.5.0
+      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1)
+      '@csstools/utilities': 2.0.0(postcss@8.5.1)
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  '@csstools/postcss-initial@2.0.0(postcss@8.5.0)':
+  '@csstools/postcss-initial@2.0.0(postcss@8.5.1)':
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  '@csstools/postcss-is-pseudo-class@5.0.1(postcss@8.5.0)':
+  '@csstools/postcss-is-pseudo-class@5.0.1(postcss@8.5.1)':
     dependencies:
       '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0)
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-selector-parser: 7.0.0
 
-  '@csstools/postcss-light-dark-function@2.0.7(postcss@8.5.0)':
+  '@csstools/postcss-light-dark-function@2.0.7(postcss@8.5.1)':
     dependencies:
       '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-tokenizer': 3.0.3
-      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.0)
-      '@csstools/utilities': 2.0.0(postcss@8.5.0)
-      postcss: 8.5.0
+      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1)
+      '@csstools/utilities': 2.0.0(postcss@8.5.1)
+      postcss: 8.5.1
 
-  '@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.5.0)':
+  '@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.5.1)':
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  '@csstools/postcss-logical-overflow@2.0.0(postcss@8.5.0)':
+  '@csstools/postcss-logical-overflow@2.0.0(postcss@8.5.1)':
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  '@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.5.0)':
+  '@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.5.1)':
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  '@csstools/postcss-logical-resize@3.0.0(postcss@8.5.0)':
+  '@csstools/postcss-logical-resize@3.0.0(postcss@8.5.1)':
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  '@csstools/postcss-logical-viewport-units@3.0.3(postcss@8.5.0)':
+  '@csstools/postcss-logical-viewport-units@3.0.3(postcss@8.5.1)':
     dependencies:
       '@csstools/css-tokenizer': 3.0.3
-      '@csstools/utilities': 2.0.0(postcss@8.5.0)
-      postcss: 8.5.0
+      '@csstools/utilities': 2.0.0(postcss@8.5.1)
+      postcss: 8.5.1
 
-  '@csstools/postcss-media-minmax@2.0.6(postcss@8.5.0)':
+  '@csstools/postcss-media-minmax@2.0.6(postcss@8.5.1)':
     dependencies:
       '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-tokenizer': 3.0.3
       '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.4(postcss@8.5.0)':
+  '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.4(postcss@8.5.1)':
     dependencies:
       '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-tokenizer': 3.0.3
       '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  '@csstools/postcss-nested-calc@4.0.0(postcss@8.5.0)':
+  '@csstools/postcss-nested-calc@4.0.0(postcss@8.5.1)':
     dependencies:
-      '@csstools/utilities': 2.0.0(postcss@8.5.0)
-      postcss: 8.5.0
+      '@csstools/utilities': 2.0.0(postcss@8.5.1)
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  '@csstools/postcss-normalize-display-values@4.0.0(postcss@8.5.0)':
+  '@csstools/postcss-normalize-display-values@4.0.0(postcss@8.5.1)':
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  '@csstools/postcss-oklab-function@4.0.7(postcss@8.5.0)':
+  '@csstools/postcss-oklab-function@4.0.7(postcss@8.5.1)':
     dependencies:
       '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-tokenizer': 3.0.3
-      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.0)
-      '@csstools/utilities': 2.0.0(postcss@8.5.0)
-      postcss: 8.5.0
+      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1)
+      '@csstools/utilities': 2.0.0(postcss@8.5.1)
+      postcss: 8.5.1
 
-  '@csstools/postcss-progressive-custom-properties@4.0.0(postcss@8.5.0)':
+  '@csstools/postcss-progressive-custom-properties@4.0.0(postcss@8.5.1)':
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  '@csstools/postcss-random-function@1.0.2(postcss@8.5.0)':
+  '@csstools/postcss-random-function@1.0.2(postcss@8.5.1)':
     dependencies:
       '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-tokenizer': 3.0.3
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  '@csstools/postcss-relative-color-syntax@3.0.7(postcss@8.5.0)':
+  '@csstools/postcss-relative-color-syntax@3.0.7(postcss@8.5.1)':
     dependencies:
       '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-tokenizer': 3.0.3
-      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.0)
-      '@csstools/utilities': 2.0.0(postcss@8.5.0)
-      postcss: 8.5.0
+      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1)
+      '@csstools/utilities': 2.0.0(postcss@8.5.1)
+      postcss: 8.5.1
 
-  '@csstools/postcss-scope-pseudo-class@4.0.1(postcss@8.5.0)':
+  '@csstools/postcss-scope-pseudo-class@4.0.1(postcss@8.5.1)':
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-selector-parser: 7.0.0
 
-  '@csstools/postcss-sign-functions@1.1.1(postcss@8.5.0)':
+  '@csstools/postcss-sign-functions@1.1.1(postcss@8.5.1)':
     dependencies:
       '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-tokenizer': 3.0.3
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  '@csstools/postcss-stepped-value-functions@4.0.6(postcss@8.5.0)':
+  '@csstools/postcss-stepped-value-functions@4.0.6(postcss@8.5.1)':
     dependencies:
       '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-tokenizer': 3.0.3
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  '@csstools/postcss-text-decoration-shorthand@4.0.1(postcss@8.5.0)':
+  '@csstools/postcss-text-decoration-shorthand@4.0.1(postcss@8.5.1)':
     dependencies:
       '@csstools/color-helpers': 5.0.1
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  '@csstools/postcss-trigonometric-functions@4.0.6(postcss@8.5.0)':
+  '@csstools/postcss-trigonometric-functions@4.0.6(postcss@8.5.1)':
     dependencies:
       '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-tokenizer': 3.0.3
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  '@csstools/postcss-unset-value@4.0.0(postcss@8.5.0)':
+  '@csstools/postcss-unset-value@4.0.0(postcss@8.5.1)':
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
 
   '@csstools/selector-resolve-nested@3.0.0(postcss-selector-parser@7.0.0)':
     dependencies:
@@ -26009,22 +26033,22 @@ snapshots:
     dependencies:
       postcss-selector-parser: 7.0.0
 
-  '@csstools/utilities@2.0.0(postcss@8.5.0)':
+  '@csstools/utilities@2.0.0(postcss@8.5.1)':
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
 
   '@deepgram/captions@1.2.0':
     dependencies:
       dayjs: 1.11.13
 
-  '@deepgram/sdk@3.9.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@6.0.5)':
+  '@deepgram/sdk@3.9.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)':
     dependencies:
       '@deepgram/captions': 1.2.0
-      '@types/node': 18.19.70
+      '@types/node': 18.19.71
       cross-fetch: 3.2.0(encoding@0.1.13)
       deepmerge: 4.3.1
       events: 3.3.0
-      ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
+      ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
     transitivePeerDependencies:
       - bufferutil
       - encoding
@@ -26158,14 +26182,14 @@ snapshots:
 
   '@docsearch/css@3.8.2': {}
 
-  '@docsearch/react@3.8.2(@algolia/client-search@5.19.0)(@types/react@19.0.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)':
+  '@docsearch/react@3.8.2(@algolia/client-search@5.19.0)(@types/react@19.0.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)':
     dependencies:
       '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.19.0)(algoliasearch@5.19.0)(search-insights@2.17.3)
       '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.19.0)(algoliasearch@5.19.0)
       '@docsearch/css': 3.8.2
       algoliasearch: 5.19.0
     optionalDependencies:
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
       react: 18.3.1
       react-dom: 18.3.1(react@18.3.1)
       search-insights: 2.17.3
@@ -26213,14 +26237,14 @@ snapshots:
       copy-webpack-plugin: 11.0.0(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       css-loader: 6.11.0(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
-      cssnano: 6.1.2(postcss@8.5.0)
+      cssnano: 6.1.2(postcss@8.5.1)
       file-loader: 6.2.0(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       html-minifier-terser: 7.2.0
       mini-css-extract-plugin: 2.9.2(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       null-loader: 4.0.1(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
-      postcss: 8.5.0
-      postcss-loader: 7.3.4(postcss@8.5.0)(typescript@5.7.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
-      postcss-preset-env: 10.1.3(postcss@8.5.0)
+      postcss: 8.5.1
+      postcss-loader: 7.3.4(postcss@8.5.1)(typescript@5.7.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
+      postcss-preset-env: 10.1.3(postcss@8.5.1)
       react-dev-utils: 12.0.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       terser-webpack-plugin: 5.3.11(@swc/core@1.10.7(@swc/helpers@0.5.15))(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       tslib: 2.8.1
@@ -26245,7 +26269,7 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/core@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/core@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
       '@docusaurus/babel': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/bundler': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
@@ -26254,7 +26278,7 @@ snapshots:
       '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
-      '@mdx-js/react': 3.0.1(@types/react@19.0.6)(react@18.3.1)
+      '@mdx-js/react': 3.0.1(@types/react@19.0.7)(react@18.3.1)
       boxen: 6.2.1
       chalk: 4.1.2
       chokidar: 3.6.0
@@ -26315,9 +26339,9 @@ snapshots:
 
   '@docusaurus/cssnano-preset@3.6.3':
     dependencies:
-      cssnano-preset-advanced: 6.1.2(postcss@8.5.0)
-      postcss: 8.5.0
-      postcss-sort-media-queries: 5.2.0(postcss@8.5.0)
+      cssnano-preset-advanced: 6.1.2(postcss@8.5.1)
+      postcss: 8.5.1
+      postcss-sort-media-queries: 5.2.0(postcss@8.5.1)
       tslib: 2.8.1
 
   '@docusaurus/logger@3.6.3':
@@ -26325,12 +26349,12 @@ snapshots:
       chalk: 4.1.2
       tslib: 2.8.1
 
-  '@docusaurus/lqip-loader@3.6.3(bare-buffer@3.0.1)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))':
+  '@docusaurus/lqip-loader@3.6.3(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))':
     dependencies:
       '@docusaurus/logger': 3.6.3
       file-loader: 6.2.0(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
       lodash: 4.17.21
-      sharp: 0.32.6(bare-buffer@3.0.1)
+      sharp: 0.32.6
       tslib: 2.8.1
     transitivePeerDependencies:
       - bare-buffer
@@ -26377,7 +26401,7 @@ snapshots:
     dependencies:
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@types/history': 4.7.11
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
       '@types/react-router-config': 5.0.11
       '@types/react-router-dom': 5.3.3
       react: 18.3.1
@@ -26392,13 +26416,13 @@ snapshots:
       - uglify-js
       - webpack-cli
 
-  '@docusaurus/plugin-content-blog@3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-content-blog@3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/logger': 3.6.3
       '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
-      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
-      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
+      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -26436,13 +26460,13 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/logger': 3.6.3
       '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/module-type-aliases': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
+      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -26478,9 +26502,9 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-content-pages@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-content-pages@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
@@ -26511,9 +26535,9 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-debug@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-debug@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       fs-extra: 11.2.0
@@ -26542,9 +26566,9 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-google-analytics@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-google-analytics@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       react: 18.3.1
@@ -26571,9 +26595,9 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-google-gtag@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-google-gtag@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@types/gtag.js': 0.0.12
@@ -26601,9 +26625,9 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-google-tag-manager@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-google-tag-manager@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       react: 18.3.1
@@ -26630,11 +26654,11 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-ideal-image@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bare-buffer@3.0.1)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-ideal-image@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
-      '@docusaurus/lqip-loader': 3.6.3(bare-buffer@3.0.1)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
-      '@docusaurus/responsive-loader': 1.7.0(sharp@0.32.6(bare-buffer@3.0.1))
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/lqip-loader': 3.6.3(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15)))
+      '@docusaurus/responsive-loader': 1.7.0(sharp@0.32.6)
       '@docusaurus/theme-translations': 3.6.3
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
@@ -26642,7 +26666,7 @@ snapshots:
       react: 18.3.1
       react-dom: 18.3.1(react@18.3.1)
       react-waypoint: 10.3.0(react@18.3.1)
-      sharp: 0.32.6(bare-buffer@3.0.1)
+      sharp: 0.32.6
       tslib: 2.8.1
       webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
     transitivePeerDependencies:
@@ -26668,9 +26692,9 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-sitemap@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/plugin-sitemap@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/logger': 3.6.3
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
@@ -26702,20 +26726,20 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/preset-classic@3.6.3(@algolia/client-search@5.19.0)(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@19.0.6)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.7.3)(utf-8-validate@5.0.10)':
-    dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-content-blog': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-content-pages': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-debug': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-google-analytics': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-google-gtag': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-google-tag-manager': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-sitemap': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
-      '@docusaurus/theme-classic': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@19.0.6)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
-      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
-      '@docusaurus/theme-search-algolia': 3.6.3(@algolia/client-search@5.19.0)(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@19.0.6)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.7.3)(utf-8-validate@5.0.10)
+  '@docusaurus/preset-classic@3.6.3(@algolia/client-search@5.19.0)(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@19.0.7)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.7.3)(utf-8-validate@5.0.10)':
+    dependencies:
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-content-blog': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-content-pages': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-debug': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-google-analytics': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-google-gtag': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-google-tag-manager': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-sitemap': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/theme-classic': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@19.0.7)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
+      '@docusaurus/theme-search-algolia': 3.6.3(@algolia/client-search@5.19.0)(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@19.0.7)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       react: 18.3.1
       react-dom: 18.3.1(react@18.3.1)
@@ -26745,37 +26769,37 @@ snapshots:
 
   '@docusaurus/react-loadable@6.0.0(react@18.3.1)':
     dependencies:
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
       react: 18.3.1
 
-  '@docusaurus/responsive-loader@1.7.0(sharp@0.32.6(bare-buffer@3.0.1))':
+  '@docusaurus/responsive-loader@1.7.0(sharp@0.32.6)':
     dependencies:
       loader-utils: 2.0.4
     optionalDependencies:
-      sharp: 0.32.6(bare-buffer@3.0.1)
+      sharp: 0.32.6
 
-  '@docusaurus/theme-classic@3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@19.0.6)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/theme-classic@3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@19.0.7)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/logger': 3.6.3
       '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/module-type-aliases': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/plugin-content-blog': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
-      '@docusaurus/plugin-content-pages': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
-      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
+      '@docusaurus/plugin-content-blog': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-content-pages': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/theme-translations': 3.6.3
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
-      '@mdx-js/react': 3.0.1(@types/react@19.0.6)(react@18.3.1)
+      '@mdx-js/react': 3.0.1(@types/react@19.0.7)(react@18.3.1)
       clsx: 2.1.1
       copy-text-to-clipboard: 3.2.0
       infima: 0.2.0-alpha.45
       lodash: 4.17.21
       nprogress: 0.2.0
-      postcss: 8.5.0
+      postcss: 8.5.1
       prism-react-renderer: 2.3.1(react@18.3.1)
       prismjs: 1.29.0
       react: 18.3.1
@@ -26805,15 +26829,15 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/theme-common@3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)':
+  '@docusaurus/theme-common@3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)':
     dependencies:
       '@docusaurus/mdx-loader': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/module-type-aliases': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/utils-common': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@types/history': 4.7.11
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
       '@types/react-router-config': 5.0.11
       clsx: 2.1.1
       parse-numeric-range: 1.3.0
@@ -26831,11 +26855,11 @@ snapshots:
       - uglify-js
       - webpack-cli
 
-  '@docusaurus/theme-mermaid@3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/theme-mermaid@3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/module-type-aliases': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
+      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/types': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       mermaid: 11.4.1
@@ -26864,18 +26888,18 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/theme-search-algolia@3.6.3(@algolia/client-search@5.19.0)(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@19.0.6)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.7.3)(utf-8-validate@5.0.10)':
+  '@docusaurus/theme-search-algolia@3.6.3(@algolia/client-search@5.19.0)(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/react@19.0.7)(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.7.3)(utf-8-validate@5.0.10)':
     dependencies:
-      '@docsearch/react': 3.8.2(@algolia/client-search@5.19.0)(@types/react@19.0.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docsearch/react': 3.8.2(@algolia/client-search@5.19.0)(@types/react@19.0.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@docusaurus/logger': 3.6.3
-      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
-      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
+      '@docusaurus/plugin-content-docs': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/theme-common': 3.6.3(@docusaurus/plugin-content-docs@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/theme-translations': 3.6.3
       '@docusaurus/utils': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       '@docusaurus/utils-validation': 3.6.3(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
       algoliasearch: 4.24.0
-      algoliasearch-helper: 3.22.6(algoliasearch@4.24.0)
+      algoliasearch-helper: 3.23.0(algoliasearch@4.24.0)
       clsx: 2.1.1
       eta: 2.2.0
       fs-extra: 11.2.0
@@ -26917,7 +26941,7 @@ snapshots:
     dependencies:
       '@mdx-js/mdx': 3.1.0(acorn@8.14.0)
       '@types/history': 4.7.11
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
       commander: 5.1.0
       joi: 17.13.3
       react: 18.3.1
@@ -27036,6 +27060,56 @@ snapshots:
 
   '@electric-sql/pglite@0.2.15': {}
 
+  '@elizaos/core@0.1.7(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.30(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(@langchain/groq@0.1.3(@langchain/core@0.3.30(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13))(axios@1.7.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.18.0))(svelte@5.18.0)(vue@3.5.13(typescript@5.6.3))':
+    dependencies:
+      '@ai-sdk/anthropic': 0.0.56(zod@3.23.8)
+      '@ai-sdk/google': 0.0.55(zod@3.23.8)
+      '@ai-sdk/google-vertex': 0.0.43(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(zod@3.23.8)
+      '@ai-sdk/groq': 0.0.3(zod@3.23.8)
+      '@ai-sdk/openai': 1.0.5(zod@3.23.8)
+      '@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.23.8))(react@19.0.0)(sswr@2.1.0(svelte@5.18.0))(svelte@5.18.0)(vue@3.5.13(typescript@5.6.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
+      gaxios: 6.7.1(encoding@0.1.13)
+      glob: 11.0.0
+      handlebars: 4.7.8
+      js-sha1: 0.7.0
+      js-tiktoken: 1.0.15
+      langchain: 0.3.6(@langchain/core@0.3.30(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(@langchain/groq@0.1.3(@langchain/core@0.3.30(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))
+      ollama-ai-provider: 0.16.1(zod@3.23.8)
+      openai: 4.73.0(encoding@0.1.13)(zod@3.23.8)
+      tinyld: 1.3.4
+      together-ai: 0.7.0(encoding@0.1.13)
+      unique-names-generator: 4.7.1
+      uuid: 11.0.3
+      zod: 3.23.8
+    transitivePeerDependencies:
+      - '@google-cloud/vertexai'
+      - '@langchain/anthropic'
+      - '@langchain/aws'
+      - '@langchain/cohere'
+      - '@langchain/core'
+      - '@langchain/google-genai'
+      - '@langchain/google-vertexai'
+      - '@langchain/groq'
+      - '@langchain/mistralai'
+      - '@langchain/ollama'
+      - axios
+      - cheerio
+      - encoding
+      - peggy
+      - react
+      - solid-js
+      - sswr
+      - supports-color
+      - svelte
+      - typeorm
+      - vue
+
   '@emnapi/core@1.3.1':
     dependencies:
       '@emnapi/wasi-threads': 1.0.1
@@ -27081,7 +27155,7 @@ snapshots:
 
   '@emotion/memoize@0.9.0': {}
 
-  '@emotion/react@11.14.0(@types/react@19.0.6)(react@19.0.0)':
+  '@emotion/react@11.14.0(@types/react@19.0.7)(react@19.0.0)':
     dependencies:
       '@babel/runtime': 7.26.0
       '@emotion/babel-plugin': 11.13.5
@@ -27093,7 +27167,7 @@ snapshots:
       hoist-non-react-statics: 3.3.2
       react: 19.0.0
     optionalDependencies:
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
     transitivePeerDependencies:
       - supports-color
 
@@ -27107,18 +27181,18 @@ snapshots:
 
   '@emotion/sheet@1.4.0': {}
 
-  '@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@19.0.6)(react@19.0.0))(@types/react@19.0.6)(react@19.0.0)':
+  '@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@19.0.7)(react@19.0.0))(@types/react@19.0.7)(react@19.0.0)':
     dependencies:
       '@babel/runtime': 7.26.0
       '@emotion/babel-plugin': 11.13.5
       '@emotion/is-prop-valid': 1.3.1
-      '@emotion/react': 11.14.0(@types/react@19.0.6)(react@19.0.0)
+      '@emotion/react': 11.14.0(@types/react@19.0.7)(react@19.0.0)
       '@emotion/serialize': 1.3.3
       '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.0.0)
       '@emotion/utils': 1.4.2
       react: 19.0.0
     optionalDependencies:
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
     transitivePeerDependencies:
       - supports-color
 
@@ -27443,7 +27517,7 @@ snapshots:
   '@eslint/config-array@0.19.1':
     dependencies:
       '@eslint/object-schema': 2.1.5
-      debug: 4.4.0(supports-color@5.5.0)
+      debug: 4.4.0
       minimatch: 3.1.2
     transitivePeerDependencies:
       - supports-color
@@ -27473,7 +27547,7 @@ snapshots:
   '@eslint/eslintrc@3.2.0':
     dependencies:
       ajv: 6.12.6
-      debug: 4.4.0(supports-color@5.5.0)
+      debug: 4.4.0
       espree: 10.3.0
       globals: 14.0.0
       ignore: 5.3.2
@@ -27846,23 +27920,23 @@ snapshots:
 
   '@floating-ui/utils@0.2.9': {}
 
-  '@fuel-ts/abi-coder@0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))':
+  '@fuel-ts/abi-coder@0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))':
     dependencies:
-      '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
       '@fuel-ts/errors': 0.97.2
-      '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
       '@fuel-ts/interfaces': 0.97.2
       '@fuel-ts/math': 0.97.2
-      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
       type-fest: 4.32.0
     transitivePeerDependencies:
       - vitest
 
-  '@fuel-ts/abi-typegen@0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))':
+  '@fuel-ts/abi-typegen@0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))':
     dependencies:
       '@fuel-ts/errors': 0.97.2
       '@fuel-ts/interfaces': 0.97.2
-      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
       '@fuel-ts/versions': 0.97.2
       commander: 12.1.0
       glob: 10.4.5
@@ -27873,18 +27947,18 @@ snapshots:
     transitivePeerDependencies:
       - vitest
 
-  '@fuel-ts/account@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))':
+  '@fuel-ts/account@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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.37.0))':
     dependencies:
-      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
       '@fuel-ts/errors': 0.97.2
-      '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
       '@fuel-ts/interfaces': 0.97.2
       '@fuel-ts/math': 0.97.2
-      '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
       '@fuel-ts/versions': 0.97.2
       '@fuels/vm-asm': 0.58.2
       '@noble/curves': 1.8.0
@@ -27897,30 +27971,30 @@ snapshots:
       - encoding
       - vitest
 
-  '@fuel-ts/address@0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))':
+  '@fuel-ts/address@0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))':
     dependencies:
-      '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
       '@fuel-ts/errors': 0.97.2
       '@fuel-ts/interfaces': 0.97.2
-      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
       '@noble/hashes': 1.7.0
       bech32: 2.0.0
     transitivePeerDependencies:
       - vitest
 
-  '@fuel-ts/contract@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))':
+  '@fuel-ts/contract@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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.37.0))':
     dependencies:
-      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
       '@fuel-ts/errors': 0.97.2
-      '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
       '@fuel-ts/interfaces': 0.97.2
       '@fuel-ts/math': 0.97.2
-      '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
       '@fuel-ts/versions': 0.97.2
       '@fuels/vm-asm': 0.58.2
       ramda: 0.30.1
@@ -27928,12 +28002,12 @@ snapshots:
       - encoding
       - vitest
 
-  '@fuel-ts/crypto@0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))':
+  '@fuel-ts/crypto@0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))':
     dependencies:
       '@fuel-ts/errors': 0.97.2
       '@fuel-ts/interfaces': 0.97.2
       '@fuel-ts/math': 0.97.2
-      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
       '@noble/hashes': 1.7.0
     transitivePeerDependencies:
       - vitest
@@ -27942,11 +28016,11 @@ snapshots:
     dependencies:
       '@fuel-ts/versions': 0.97.2
 
-  '@fuel-ts/hasher@0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))':
+  '@fuel-ts/hasher@0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))':
     dependencies:
-      '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
       '@fuel-ts/interfaces': 0.97.2
-      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
       '@noble/hashes': 1.7.0
     transitivePeerDependencies:
       - vitest
@@ -27959,78 +28033,78 @@ snapshots:
       '@types/bn.js': 5.1.6
       bn.js: 5.2.1
 
-  '@fuel-ts/merkle@0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))':
+  '@fuel-ts/merkle@0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))':
     dependencies:
-      '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
       '@fuel-ts/math': 0.97.2
     transitivePeerDependencies:
       - vitest
 
-  '@fuel-ts/program@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))':
+  '@fuel-ts/program@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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.37.0))':
     dependencies:
-      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
       '@fuel-ts/errors': 0.97.2
       '@fuel-ts/interfaces': 0.97.2
       '@fuel-ts/math': 0.97.2
-      '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
       '@fuels/vm-asm': 0.58.2
       ramda: 0.30.1
     transitivePeerDependencies:
       - encoding
       - vitest
 
-  '@fuel-ts/recipes@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))':
+  '@fuel-ts/recipes@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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.37.0))':
     dependencies:
-      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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.37.0))
       '@fuel-ts/interfaces': 0.97.2
-      '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
     transitivePeerDependencies:
       - encoding
       - vitest
 
-  '@fuel-ts/script@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))':
+  '@fuel-ts/script@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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.37.0))':
     dependencies:
-      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
       '@fuel-ts/errors': 0.97.2
       '@fuel-ts/interfaces': 0.97.2
       '@fuel-ts/math': 0.97.2
-      '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
     transitivePeerDependencies:
       - encoding
       - vitest
 
-  '@fuel-ts/transactions@0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))':
+  '@fuel-ts/transactions@0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))':
     dependencies:
-      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
       '@fuel-ts/errors': 0.97.2
-      '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
       '@fuel-ts/interfaces': 0.97.2
       '@fuel-ts/math': 0.97.2
-      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
     transitivePeerDependencies:
       - vitest
 
-  '@fuel-ts/utils@0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))':
+  '@fuel-ts/utils@0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))':
     dependencies:
       '@fuel-ts/errors': 0.97.2
       '@fuel-ts/interfaces': 0.97.2
       '@fuel-ts/math': 0.97.2
       '@fuel-ts/versions': 0.97.2
       fflate: 0.8.2
-      vitest: 2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)
+      vitest: 2.1.4(@types/node@22.10.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.37.0)
 
   '@fuel-ts/versions@0.97.2':
     dependencies:
@@ -28039,16 +28113,67 @@ snapshots:
 
   '@fuels/vm-asm@0.58.2': {}
 
-  '@gerrit0/mini-shiki@1.26.1':
+  '@gerrit0/mini-shiki@1.27.2':
     dependencies:
-      '@shikijs/engine-oniguruma': 1.26.2
-      '@shikijs/types': 1.26.2
+      '@shikijs/engine-oniguruma': 1.27.2
+      '@shikijs/types': 1.27.2
       '@shikijs/vscode-textmate': 10.0.1
 
-  '@goat-sdk/adapter-vercel-ai@0.2.0(@goat-sdk/core@0.4.0)(ai@4.0.34(react@19.0.0)(zod@3.23.8))':
+  '@glacier-network/client@0.2.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)':
+    dependencies:
+      '@ethersproject/abstract-signer': 5.7.0
+      '@ethersproject/bytes': 5.7.0
+      '@ethersproject/hash': 5.7.0
+      '@ethersproject/providers': 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+      '@ethersproject/sha2': 5.7.0
+      '@ethersproject/signing-key': 5.7.0
+      '@ethersproject/strings': 5.7.0
+      '@ethersproject/wallet': 5.7.0
+      '@types/json-schema': 7.0.15
+      axios: 1.7.9
+    transitivePeerDependencies:
+      - bufferutil
+      - debug
+      - utf-8-validate
+
+  '@glacier-network/elizaos-adapter@0.0.1-alpha.1(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.30(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(@langchain/groq@0.1.3(@langchain/core@0.3.30(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13))(axios@1.7.9)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.18.0))(svelte@5.18.0)(utf-8-validate@5.0.10)(vue@3.5.13(typescript@5.6.3))':
+    dependencies:
+      '@elizaos/core': 0.1.7(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.30(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(@langchain/groq@0.1.3(@langchain/core@0.3.30(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13))(axios@1.7.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.18.0))(svelte@5.18.0)(vue@3.5.13(typescript@5.6.3))
+      '@glacier-network/client': 0.2.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+      '@tavily/core': 0.0.2
+      dotenv: 16.4.7
+      sharp: 0.33.5
+      typescript: 5.7.3
+    transitivePeerDependencies:
+      - '@google-cloud/vertexai'
+      - '@langchain/anthropic'
+      - '@langchain/aws'
+      - '@langchain/cohere'
+      - '@langchain/core'
+      - '@langchain/google-genai'
+      - '@langchain/google-vertexai'
+      - '@langchain/groq'
+      - '@langchain/mistralai'
+      - '@langchain/ollama'
+      - axios
+      - bufferutil
+      - cheerio
+      - debug
+      - encoding
+      - peggy
+      - react
+      - solid-js
+      - sswr
+      - supports-color
+      - svelte
+      - typeorm
+      - utf-8-validate
+      - vue
+
+  '@goat-sdk/adapter-vercel-ai@0.2.0(@goat-sdk/core@0.4.0)(ai@4.0.38(react@19.0.0)(zod@3.23.8))':
     dependencies:
       '@goat-sdk/core': 0.4.0
-      ai: 4.0.34(react@19.0.0)(zod@3.23.8)
+      ai: 4.0.38(react@19.0.0)(zod@3.23.8)
       zod: 3.23.8
 
   '@goat-sdk/core@0.3.8(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)':
@@ -28477,7 +28602,7 @@ snapshots:
       jest-util: 29.7.0
       slash: 3.0.0
 
-  '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3))':
+  '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.71)(typescript@5.6.3))':
     dependencies:
       '@jest/console': 29.7.0
       '@jest/reporters': 29.7.0
@@ -28491,7 +28616,42 @@ snapshots:
       exit: 0.1.2
       graceful-fs: 4.2.11
       jest-changed-files: 29.7.0
-      jest-config: 29.7.0(@types/node@20.17.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3))
+      jest-config: 29.7.0(@types/node@20.17.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.71)(typescript@5.6.3))
+      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.8
+      pretty-format: 29.7.0
+      slash: 3.0.0
+      strip-ansi: 6.0.1
+    transitivePeerDependencies:
+      - babel-plugin-macros
+      - supports-color
+      - ts-node
+
+  '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))':
+    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': 20.17.9
+      ansi-escapes: 4.3.2
+      chalk: 4.1.2
+      ci-info: 3.9.0
+      exit: 0.1.2
+      graceful-fs: 4.2.11
+      jest-changed-files: 29.7.0
+      jest-config: 29.7.0(@types/node@20.17.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
       jest-haste-map: 29.7.0
       jest-message-util: 29.7.0
       jest-regex-util: 29.6.3
@@ -28808,7 +28968,7 @@ snapshots:
       p-retry: 4.6.2
       uuid: 9.0.1
 
-  '@langchain/langgraph@0.2.39(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))':
+  '@langchain/langgraph@0.2.40(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))':
     dependencies:
       '@langchain/core': 0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1))
       '@langchain/langgraph-checkpoint': 0.0.13(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))
@@ -28873,7 +29033,7 @@ snapshots:
       - utf-8-validate
       - wait-for-expect
 
-  '@lens-protocol/client@2.2.0(@jest/globals@29.7.0)(@lens-protocol/metadata@1.2.0(zod@3.23.8))(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10)':
+  '@lens-protocol/client@2.2.0(@jest/globals@29.7.0)(@lens-protocol/metadata@1.2.0(zod@3.23.8))(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(react@19.0.0)(utf-8-validate@5.0.10)':
     dependencies:
       '@ethersproject/abi': 5.7.0
       '@ethersproject/abstract-signer': 5.7.0
@@ -28884,7 +29044,7 @@ snapshots:
       '@ethersproject/providers': 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)
       '@ethersproject/wallet': 5.7.0
       '@lens-protocol/blockchain-bindings': 0.10.2(@jest/globals@29.7.0)(bufferutil@4.0.9)(utf-8-validate@5.0.10)
-      '@lens-protocol/gated-content': 0.5.1(@ethersproject/abi@5.7.0)(@ethersproject/address@5.7.0)(@ethersproject/bignumber@5.7.0)(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(@lens-protocol/metadata@1.2.0(zod@3.23.8))(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10)(zod@3.23.8)
+      '@lens-protocol/gated-content': 0.5.1(@ethersproject/abi@5.7.0)(@ethersproject/address@5.7.0)(@ethersproject/bignumber@5.7.0)(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(@lens-protocol/metadata@1.2.0(zod@3.23.8))(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(react@19.0.0)(utf-8-validate@5.0.10)(zod@3.23.8)
       '@lens-protocol/shared-kernel': 0.12.0
       '@lens-protocol/storage': 0.8.1
       graphql: 16.10.0
@@ -28933,7 +29093,7 @@ snapshots:
     optionalDependencies:
       '@jest/globals': 29.7.0
 
-  '@lens-protocol/gated-content@0.5.1(@ethersproject/abi@5.7.0)(@ethersproject/address@5.7.0)(@ethersproject/bignumber@5.7.0)(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(@lens-protocol/metadata@1.2.0(zod@3.23.8))(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(react@18.3.1)(utf-8-validate@5.0.10)(zod@3.23.8)':
+  '@lens-protocol/gated-content@0.5.1(@ethersproject/abi@5.7.0)(@ethersproject/address@5.7.0)(@ethersproject/bignumber@5.7.0)(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(@lens-protocol/metadata@1.2.0(zod@3.23.8))(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(react@19.0.0)(utf-8-validate@5.0.10)(zod@3.23.8)':
     dependencies:
       '@ethersproject/abi': 5.7.0
       '@ethersproject/address': 5.7.0
@@ -28948,7 +29108,7 @@ snapshots:
       '@lit-protocol/constants': 2.1.62
       '@lit-protocol/crypto': 2.1.62(bufferutil@4.0.9)(utf-8-validate@5.0.10)
       '@lit-protocol/encryption': 2.1.62(bufferutil@4.0.9)(utf-8-validate@5.0.10)
-      '@lit-protocol/node-client': 2.1.62(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(bufferutil@4.0.9)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@5.0.10)
+      '@lit-protocol/node-client': 2.1.62(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.0.0)(utf-8-validate@5.0.10)
       '@lit-protocol/types': 2.1.62
       siwe: 2.3.2(ethers@6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))
       tslib: 2.8.1
@@ -28991,7 +29151,7 @@ snapshots:
       '@ethersproject/address': 5.7.0
       decimal.js: 10.4.3
       lodash: 4.17.21
-      traverse: 0.6.10
+      traverse: 0.6.11
       tslib: 2.8.1
 
   '@lens-protocol/storage@0.8.1':
@@ -29144,14 +29304,14 @@ snapshots:
       - bufferutil
       - utf-8-validate
 
-  '@lit-protocol/auth-browser@2.1.62(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(bufferutil@4.0.9)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@5.0.10)':
+  '@lit-protocol/auth-browser@2.1.62(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.0.0)(utf-8-validate@5.0.10)':
     dependencies:
       '@lit-protocol/constants': 2.1.62
       '@lit-protocol/misc': 2.1.62
       '@lit-protocol/misc-browser': 2.1.62(bufferutil@4.0.9)(utf-8-validate@5.0.10)
       '@lit-protocol/types': 2.1.62
       '@lit-protocol/uint8arrays': 2.1.62
-      '@walletconnect/ethereum-provider': 2.17.3(bufferutil@4.0.9)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@5.0.10)
+      '@walletconnect/ethereum-provider': 2.17.3(bufferutil@4.0.9)(encoding@0.1.13)(react@19.0.0)(utf-8-validate@5.0.10)
       ethers: 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)
       lit-connect-modal: 0.1.11
       lit-siwe: 1.1.8(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)
@@ -29252,10 +29412,10 @@ snapshots:
 
   '@lit-protocol/nacl@2.1.62': {}
 
-  '@lit-protocol/node-client@2.1.62(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(bufferutil@4.0.9)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@5.0.10)':
+  '@lit-protocol/node-client@2.1.62(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.0.0)(utf-8-validate@5.0.10)':
     dependencies:
       '@lit-protocol/access-control-conditions': 2.1.62(bufferutil@4.0.9)(utf-8-validate@5.0.10)
-      '@lit-protocol/auth-browser': 2.1.62(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(bufferutil@4.0.9)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@5.0.10)
+      '@lit-protocol/auth-browser': 2.1.62(@ethersproject/contracts@5.7.0)(@ethersproject/hash@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@ethersproject/wallet@5.7.0)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.0.0)(utf-8-validate@5.0.10)
       '@lit-protocol/bls-sdk': 2.1.62
       '@lit-protocol/constants': 2.1.62
       '@lit-protocol/crypto': 2.1.62(bufferutil@4.0.9)(utf-8-validate@5.0.10)
@@ -29267,7 +29427,7 @@ snapshots:
       '@lit-protocol/nacl': 2.1.62
       '@lit-protocol/types': 2.1.62
       '@lit-protocol/uint8arrays': 2.1.62
-      '@walletconnect/ethereum-provider': 2.17.3(bufferutil@4.0.9)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@5.0.10)
+      '@walletconnect/ethereum-provider': 2.17.3(bufferutil@4.0.9)(encoding@0.1.13)(react@19.0.0)(utf-8-validate@5.0.10)
       ethers: 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)
       jszip: 3.10.1
       lit-connect-modal: 0.1.11
@@ -29331,7 +29491,7 @@ snapshots:
       - supports-color
     optional: true
 
-  '@massalabs/massa-web3@5.1.0':
+  '@massalabs/massa-web3@5.1.1':
     dependencies:
       '@noble/ed25519': 1.7.3
       '@noble/hashes': 1.7.0
@@ -29377,10 +29537,10 @@ snapshots:
       - acorn
       - supports-color
 
-  '@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1)':
+  '@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1)':
     dependencies:
       '@types/mdx': 2.0.13
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
       react: 18.3.1
 
   '@mermaid-js/parser@0.3.0':
@@ -30021,11 +30181,11 @@ snapshots:
     transitivePeerDependencies:
       - encoding
 
-  '@neynar/nodejs-sdk@2.8.1(bufferutil@4.0.9)(class-transformer@0.5.1)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@6.0.5)(zod@3.24.1)':
+  '@neynar/nodejs-sdk@2.8.1(bufferutil@4.0.9)(class-transformer@0.5.1)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)':
     dependencies:
       '@openapitools/openapi-generator-cli': 2.15.3(class-transformer@0.5.1)(encoding@0.1.13)
       semver: 7.6.3
-      viem: 2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)(zod@3.24.1)
+      viem: 2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
     transitivePeerDependencies:
       - '@nestjs/microservices'
       - '@nestjs/platform-express'
@@ -30659,21 +30819,21 @@ snapshots:
       - supports-color
       - utf-8-validate
 
-  '@onflow/fcl-wc@5.5.1(@onflow/fcl-core@1.13.1(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@6.0.5))(@types/react@19.0.6)(bufferutil@4.0.9)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.5.0)(react@19.0.0)(tsx@4.19.2)(utf-8-validate@6.0.5)':
+  '@onflow/fcl-wc@5.5.1(@onflow/fcl-core@1.13.1(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@6.0.5))(@types/react@19.0.7)(bufferutil@4.0.9)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.5.1)(react@19.0.0)(tsx@4.19.2)(utf-8-validate@6.0.5)':
     dependencies:
       '@babel/runtime': 7.26.0
       '@onflow/config': 1.5.1
       '@onflow/fcl-core': 1.13.1(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@6.0.5)
       '@onflow/util-invariant': 1.2.4
       '@onflow/util-logger': 1.3.3
-      '@walletconnect/modal': 2.7.0(@types/react@19.0.6)(react@19.0.0)
-      '@walletconnect/modal-core': 2.7.0(@types/react@19.0.6)(react@19.0.0)
+      '@walletconnect/modal': 2.7.0(@types/react@19.0.7)(react@19.0.0)
+      '@walletconnect/modal-core': 2.7.0(@types/react@19.0.7)(react@19.0.0)
       '@walletconnect/sign-client': 2.17.3(bufferutil@4.0.9)(ioredis@5.4.2)(utf-8-validate@6.0.5)
       '@walletconnect/types': 2.17.3(ioredis@5.4.2)
       '@walletconnect/utils': 2.17.3(ioredis@5.4.2)
-      postcss-cli: 11.0.0(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)
+      postcss-cli: 11.0.0(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)
       preact: 10.25.4
-      tailwindcss: 3.4.17(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.6)(typescript@5.6.3))
+      tailwindcss: 3.4.17(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.7)(typescript@5.6.3))
     transitivePeerDependencies:
       - '@azure/app-configuration'
       - '@azure/cosmos'
@@ -30704,12 +30864,12 @@ snapshots:
       - uploadthing
       - utf-8-validate
 
-  '@onflow/fcl@1.13.1(@types/react@19.0.6)(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.5.0)(react@19.0.0)(tsx@4.19.2)(utf-8-validate@6.0.5)':
+  '@onflow/fcl@1.13.1(@types/react@19.0.7)(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.5.1)(react@19.0.0)(tsx@4.19.2)(utf-8-validate@6.0.5)':
     dependencies:
       '@babel/runtime': 7.26.0
       '@onflow/config': 1.5.1
       '@onflow/fcl-core': 1.13.1(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@6.0.5)
-      '@onflow/fcl-wc': 5.5.1(@onflow/fcl-core@1.13.1(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@6.0.5))(@types/react@19.0.6)(bufferutil@4.0.9)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.5.0)(react@19.0.0)(tsx@4.19.2)(utf-8-validate@6.0.5)
+      '@onflow/fcl-wc': 5.5.1(@onflow/fcl-core@1.13.1(bufferutil@4.0.9)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@6.0.5))(@types/react@19.0.7)(bufferutil@4.0.9)(ioredis@5.4.2)(jiti@2.4.2)(postcss@8.5.1)(react@19.0.0)(tsx@4.19.2)(utf-8-validate@6.0.5)
       '@onflow/interaction': 0.0.11
       '@onflow/rlp': 1.2.3
       '@onflow/sdk': 1.5.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@6.0.5)
@@ -31513,362 +31673,362 @@ snapshots:
 
   '@radix-ui/primitive@1.1.1': {}
 
-  '@radix-ui/react-arrow@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+  '@radix-ui/react-arrow@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
     dependencies:
-      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
       react: 19.0.0
       react-dom: 19.0.0(react@19.0.0)
     optionalDependencies:
-      '@types/react': 19.0.6
-      '@types/react-dom': 19.0.3(@types/react@19.0.6)
+      '@types/react': 19.0.7
+      '@types/react-dom': 19.0.3(@types/react@19.0.7)
 
-  '@radix-ui/react-avatar@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+  '@radix-ui/react-avatar@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
     dependencies:
-      '@radix-ui/react-context': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.6)(react@19.0.0)
+      '@radix-ui/react-context': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.7)(react@19.0.0)
       react: 19.0.0
       react-dom: 19.0.0(react@19.0.0)
     optionalDependencies:
-      '@types/react': 19.0.6
-      '@types/react-dom': 19.0.3(@types/react@19.0.6)
+      '@types/react': 19.0.7
+      '@types/react-dom': 19.0.3(@types/react@19.0.7)
 
-  '@radix-ui/react-collapsible@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+  '@radix-ui/react-collapsible@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
     dependencies:
       '@radix-ui/primitive': 1.1.1
-      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-context': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-id': 1.1.0(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.6)(react@19.0.0)
+      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-context': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-id': 1.1.0(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.7)(react@19.0.0)
       react: 19.0.0
       react-dom: 19.0.0(react@19.0.0)
     optionalDependencies:
-      '@types/react': 19.0.6
-      '@types/react-dom': 19.0.3(@types/react@19.0.6)
+      '@types/react': 19.0.7
+      '@types/react-dom': 19.0.3(@types/react@19.0.7)
 
-  '@radix-ui/react-collection@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+  '@radix-ui/react-collection@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
     dependencies:
-      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-context': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-slot': 1.1.1(@types/react@19.0.6)(react@19.0.0)
+      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-context': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-slot': 1.1.1(@types/react@19.0.7)(react@19.0.0)
       react: 19.0.0
       react-dom: 19.0.0(react@19.0.0)
     optionalDependencies:
-      '@types/react': 19.0.6
-      '@types/react-dom': 19.0.3(@types/react@19.0.6)
+      '@types/react': 19.0.7
+      '@types/react-dom': 19.0.3(@types/react@19.0.7)
 
-  '@radix-ui/react-compose-refs@1.1.1(@types/react@19.0.6)(react@19.0.0)':
+  '@radix-ui/react-compose-refs@1.1.1(@types/react@19.0.7)(react@19.0.0)':
     dependencies:
       react: 19.0.0
     optionalDependencies:
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
 
-  '@radix-ui/react-context@1.1.1(@types/react@19.0.6)(react@19.0.0)':
+  '@radix-ui/react-context@1.1.1(@types/react@19.0.7)(react@19.0.0)':
     dependencies:
       react: 19.0.0
     optionalDependencies:
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
 
-  '@radix-ui/react-dialog@1.1.4(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+  '@radix-ui/react-dialog@1.1.4(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
     dependencies:
       '@radix-ui/primitive': 1.1.1
-      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-context': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-dismissable-layer': 1.1.3(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-focus-scope': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-id': 1.1.0(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-slot': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.6)(react@19.0.0)
+      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-context': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-dismissable-layer': 1.1.3(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-focus-scope': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-id': 1.1.0(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-slot': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.7)(react@19.0.0)
       aria-hidden: 1.2.4
       react: 19.0.0
       react-dom: 19.0.0(react@19.0.0)
-      react-remove-scroll: 2.6.2(@types/react@19.0.6)(react@19.0.0)
+      react-remove-scroll: 2.6.2(@types/react@19.0.7)(react@19.0.0)
     optionalDependencies:
-      '@types/react': 19.0.6
-      '@types/react-dom': 19.0.3(@types/react@19.0.6)
+      '@types/react': 19.0.7
+      '@types/react-dom': 19.0.3(@types/react@19.0.7)
 
-  '@radix-ui/react-direction@1.1.0(@types/react@19.0.6)(react@19.0.0)':
+  '@radix-ui/react-direction@1.1.0(@types/react@19.0.7)(react@19.0.0)':
     dependencies:
       react: 19.0.0
     optionalDependencies:
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
 
-  '@radix-ui/react-dismissable-layer@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+  '@radix-ui/react-dismissable-layer@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
     dependencies:
       '@radix-ui/primitive': 1.1.1
-      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.0.6)(react@19.0.0)
+      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.0.7)(react@19.0.0)
       react: 19.0.0
       react-dom: 19.0.0(react@19.0.0)
     optionalDependencies:
-      '@types/react': 19.0.6
-      '@types/react-dom': 19.0.3(@types/react@19.0.6)
+      '@types/react': 19.0.7
+      '@types/react-dom': 19.0.3(@types/react@19.0.7)
 
-  '@radix-ui/react-dismissable-layer@1.1.3(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+  '@radix-ui/react-dismissable-layer@1.1.3(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
     dependencies:
       '@radix-ui/primitive': 1.1.1
-      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.0.6)(react@19.0.0)
+      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.0.7)(react@19.0.0)
       react: 19.0.0
       react-dom: 19.0.0(react@19.0.0)
     optionalDependencies:
-      '@types/react': 19.0.6
-      '@types/react-dom': 19.0.3(@types/react@19.0.6)
+      '@types/react': 19.0.7
+      '@types/react-dom': 19.0.3(@types/react@19.0.7)
 
-  '@radix-ui/react-focus-guards@1.1.1(@types/react@19.0.6)(react@19.0.0)':
+  '@radix-ui/react-focus-guards@1.1.1(@types/react@19.0.7)(react@19.0.0)':
     dependencies:
       react: 19.0.0
     optionalDependencies:
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
 
-  '@radix-ui/react-focus-scope@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+  '@radix-ui/react-focus-scope@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
     dependencies:
-      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.6)(react@19.0.0)
+      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.7)(react@19.0.0)
       react: 19.0.0
       react-dom: 19.0.0(react@19.0.0)
     optionalDependencies:
-      '@types/react': 19.0.6
-      '@types/react-dom': 19.0.3(@types/react@19.0.6)
+      '@types/react': 19.0.7
+      '@types/react-dom': 19.0.3(@types/react@19.0.7)
 
   '@radix-ui/react-icons@1.3.2(react@19.0.0)':
     dependencies:
       react: 19.0.0
 
-  '@radix-ui/react-id@1.1.0(@types/react@19.0.6)(react@19.0.0)':
+  '@radix-ui/react-id@1.1.0(@types/react@19.0.7)(react@19.0.0)':
     dependencies:
-      '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.6)(react@19.0.0)
+      '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.7)(react@19.0.0)
       react: 19.0.0
     optionalDependencies:
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
 
-  '@radix-ui/react-label@2.1.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+  '@radix-ui/react-label@2.1.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
     dependencies:
-      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
       react: 19.0.0
       react-dom: 19.0.0(react@19.0.0)
     optionalDependencies:
-      '@types/react': 19.0.6
-      '@types/react-dom': 19.0.3(@types/react@19.0.6)
+      '@types/react': 19.0.7
+      '@types/react-dom': 19.0.3(@types/react@19.0.7)
 
-  '@radix-ui/react-popper@1.2.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+  '@radix-ui/react-popper@1.2.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
     dependencies:
       '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-arrow': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-context': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-use-rect': 1.1.0(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-use-size': 1.1.0(@types/react@19.0.6)(react@19.0.0)
+      '@radix-ui/react-arrow': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-context': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-use-rect': 1.1.0(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-use-size': 1.1.0(@types/react@19.0.7)(react@19.0.0)
       '@radix-ui/rect': 1.1.0
       react: 19.0.0
       react-dom: 19.0.0(react@19.0.0)
     optionalDependencies:
-      '@types/react': 19.0.6
-      '@types/react-dom': 19.0.3(@types/react@19.0.6)
+      '@types/react': 19.0.7
+      '@types/react-dom': 19.0.3(@types/react@19.0.7)
 
-  '@radix-ui/react-portal@1.1.3(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+  '@radix-ui/react-portal@1.1.3(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
     dependencies:
-      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.6)(react@19.0.0)
+      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.7)(react@19.0.0)
       react: 19.0.0
       react-dom: 19.0.0(react@19.0.0)
     optionalDependencies:
-      '@types/react': 19.0.6
-      '@types/react-dom': 19.0.3(@types/react@19.0.6)
+      '@types/react': 19.0.7
+      '@types/react-dom': 19.0.3(@types/react@19.0.7)
 
-  '@radix-ui/react-presence@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+  '@radix-ui/react-presence@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
     dependencies:
-      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.6)(react@19.0.0)
+      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.7)(react@19.0.0)
       react: 19.0.0
       react-dom: 19.0.0(react@19.0.0)
     optionalDependencies:
-      '@types/react': 19.0.6
-      '@types/react-dom': 19.0.3(@types/react@19.0.6)
+      '@types/react': 19.0.7
+      '@types/react-dom': 19.0.3(@types/react@19.0.7)
 
-  '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+  '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
     dependencies:
-      '@radix-ui/react-slot': 1.1.1(@types/react@19.0.6)(react@19.0.0)
+      '@radix-ui/react-slot': 1.1.1(@types/react@19.0.7)(react@19.0.0)
       react: 19.0.0
       react-dom: 19.0.0(react@19.0.0)
     optionalDependencies:
-      '@types/react': 19.0.6
-      '@types/react-dom': 19.0.3(@types/react@19.0.6)
+      '@types/react': 19.0.7
+      '@types/react-dom': 19.0.3(@types/react@19.0.7)
 
-  '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+  '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
     dependencies:
       '@radix-ui/primitive': 1.1.1
-      '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-context': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-direction': 1.1.0(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-id': 1.1.0(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.6)(react@19.0.0)
+      '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-context': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-direction': 1.1.0(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-id': 1.1.0(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.7)(react@19.0.0)
       react: 19.0.0
       react-dom: 19.0.0(react@19.0.0)
     optionalDependencies:
-      '@types/react': 19.0.6
-      '@types/react-dom': 19.0.3(@types/react@19.0.6)
+      '@types/react': 19.0.7
+      '@types/react-dom': 19.0.3(@types/react@19.0.7)
 
-  '@radix-ui/react-separator@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+  '@radix-ui/react-separator@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
     dependencies:
-      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
       react: 19.0.0
       react-dom: 19.0.0(react@19.0.0)
     optionalDependencies:
-      '@types/react': 19.0.6
-      '@types/react-dom': 19.0.3(@types/react@19.0.6)
+      '@types/react': 19.0.7
+      '@types/react-dom': 19.0.3(@types/react@19.0.7)
 
-  '@radix-ui/react-slot@1.1.1(@types/react@19.0.6)(react@19.0.0)':
+  '@radix-ui/react-slot@1.1.1(@types/react@19.0.7)(react@19.0.0)':
     dependencies:
-      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.6)(react@19.0.0)
+      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.7)(react@19.0.0)
       react: 19.0.0
     optionalDependencies:
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
 
-  '@radix-ui/react-tabs@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+  '@radix-ui/react-tabs@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
     dependencies:
       '@radix-ui/primitive': 1.1.1
-      '@radix-ui/react-context': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-direction': 1.1.0(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-id': 1.1.0(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.6)(react@19.0.0)
+      '@radix-ui/react-context': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-direction': 1.1.0(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-id': 1.1.0(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.7)(react@19.0.0)
       react: 19.0.0
       react-dom: 19.0.0(react@19.0.0)
     optionalDependencies:
-      '@types/react': 19.0.6
-      '@types/react-dom': 19.0.3(@types/react@19.0.6)
+      '@types/react': 19.0.7
+      '@types/react-dom': 19.0.3(@types/react@19.0.7)
 
-  '@radix-ui/react-toast@1.2.4(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+  '@radix-ui/react-toast@1.2.4(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
     dependencies:
       '@radix-ui/primitive': 1.1.1
-      '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-context': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-dismissable-layer': 1.1.3(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-visually-hidden': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-context': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-dismissable-layer': 1.1.3(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-visually-hidden': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
       react: 19.0.0
       react-dom: 19.0.0(react@19.0.0)
     optionalDependencies:
-      '@types/react': 19.0.6
-      '@types/react-dom': 19.0.3(@types/react@19.0.6)
+      '@types/react': 19.0.7
+      '@types/react-dom': 19.0.3(@types/react@19.0.7)
 
-  '@radix-ui/react-tooltip@1.1.5(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+  '@radix-ui/react-tooltip@1.1.5(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
     dependencies:
       '@radix-ui/primitive': 1.1.1
-      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-context': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-dismissable-layer': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-id': 1.1.0(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-popper': 1.2.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-slot': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-visually-hidden': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-context': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-dismissable-layer': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-id': 1.1.0(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-popper': 1.2.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-slot': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-visually-hidden': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
       react: 19.0.0
       react-dom: 19.0.0(react@19.0.0)
     optionalDependencies:
-      '@types/react': 19.0.6
-      '@types/react-dom': 19.0.3(@types/react@19.0.6)
+      '@types/react': 19.0.7
+      '@types/react-dom': 19.0.3(@types/react@19.0.7)
 
-  '@radix-ui/react-tooltip@1.1.6(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+  '@radix-ui/react-tooltip@1.1.6(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
     dependencies:
       '@radix-ui/primitive': 1.1.1
-      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-context': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-dismissable-layer': 1.1.3(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-id': 1.1.0(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-popper': 1.2.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-slot': 1.1.1(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.6)(react@19.0.0)
-      '@radix-ui/react-visually-hidden': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-context': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-dismissable-layer': 1.1.3(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-id': 1.1.0(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-popper': 1.2.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-slot': 1.1.1(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.7)(react@19.0.0)
+      '@radix-ui/react-visually-hidden': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
       react: 19.0.0
       react-dom: 19.0.0(react@19.0.0)
     optionalDependencies:
-      '@types/react': 19.0.6
-      '@types/react-dom': 19.0.3(@types/react@19.0.6)
+      '@types/react': 19.0.7
+      '@types/react-dom': 19.0.3(@types/react@19.0.7)
 
-  '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.0.6)(react@19.0.0)':
+  '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.0.7)(react@19.0.0)':
     dependencies:
       react: 19.0.0
     optionalDependencies:
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
 
-  '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.0.6)(react@19.0.0)':
+  '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.0.7)(react@19.0.0)':
     dependencies:
-      '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.6)(react@19.0.0)
+      '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.7)(react@19.0.0)
       react: 19.0.0
     optionalDependencies:
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
 
-  '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@19.0.6)(react@19.0.0)':
+  '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@19.0.7)(react@19.0.0)':
     dependencies:
-      '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.6)(react@19.0.0)
+      '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.7)(react@19.0.0)
       react: 19.0.0
     optionalDependencies:
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
 
-  '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.0.6)(react@19.0.0)':
+  '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.0.7)(react@19.0.0)':
     dependencies:
       react: 19.0.0
     optionalDependencies:
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
 
-  '@radix-ui/react-use-rect@1.1.0(@types/react@19.0.6)(react@19.0.0)':
+  '@radix-ui/react-use-rect@1.1.0(@types/react@19.0.7)(react@19.0.0)':
     dependencies:
       '@radix-ui/rect': 1.1.0
       react: 19.0.0
     optionalDependencies:
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
 
-  '@radix-ui/react-use-size@1.1.0(@types/react@19.0.6)(react@19.0.0)':
+  '@radix-ui/react-use-size@1.1.0(@types/react@19.0.7)(react@19.0.0)':
     dependencies:
-      '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.6)(react@19.0.0)
+      '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.7)(react@19.0.0)
       react: 19.0.0
     optionalDependencies:
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
 
-  '@radix-ui/react-visually-hidden@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+  '@radix-ui/react-visually-hidden@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
     dependencies:
-      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
       react: 19.0.0
       react-dom: 19.0.0(react@19.0.0)
     optionalDependencies:
-      '@types/react': 19.0.6
-      '@types/react-dom': 19.0.3(@types/react@19.0.6)
+      '@types/react': 19.0.7
+      '@types/react-dom': 19.0.3(@types/react@19.0.7)
 
   '@radix-ui/rect@1.1.0': {}
 
@@ -32317,35 +32477,35 @@ snapshots:
       domhandler: 5.0.3
       selderee: 0.11.0
 
-  '@shikijs/core@1.26.2':
+  '@shikijs/core@1.27.2':
     dependencies:
-      '@shikijs/engine-javascript': 1.26.2
-      '@shikijs/engine-oniguruma': 1.26.2
-      '@shikijs/types': 1.26.2
+      '@shikijs/engine-javascript': 1.27.2
+      '@shikijs/engine-oniguruma': 1.27.2
+      '@shikijs/types': 1.27.2
       '@shikijs/vscode-textmate': 10.0.1
       '@types/hast': 3.0.4
       hast-util-to-html: 9.0.4
 
-  '@shikijs/engine-javascript@1.26.2':
+  '@shikijs/engine-javascript@1.27.2':
     dependencies:
-      '@shikijs/types': 1.26.2
+      '@shikijs/types': 1.27.2
       '@shikijs/vscode-textmate': 10.0.1
-      oniguruma-to-es: 1.0.0
+      oniguruma-to-es: 2.0.0
 
-  '@shikijs/engine-oniguruma@1.26.2':
+  '@shikijs/engine-oniguruma@1.27.2':
     dependencies:
-      '@shikijs/types': 1.26.2
+      '@shikijs/types': 1.27.2
       '@shikijs/vscode-textmate': 10.0.1
 
-  '@shikijs/langs@1.26.2':
+  '@shikijs/langs@1.27.2':
     dependencies:
-      '@shikijs/types': 1.26.2
+      '@shikijs/types': 1.27.2
 
-  '@shikijs/themes@1.26.2':
+  '@shikijs/themes@1.27.2':
     dependencies:
-      '@shikijs/types': 1.26.2
+      '@shikijs/types': 1.27.2
 
-  '@shikijs/types@1.26.2':
+  '@shikijs/types@1.27.2':
     dependencies:
       '@shikijs/vscode-textmate': 10.0.1
       '@types/hast': 3.0.4
@@ -32485,14 +32645,14 @@ snapshots:
       '@smithy/util-middleware': 4.0.1
       tslib: 2.8.1
 
-  '@smithy/core@3.1.0':
+  '@smithy/core@3.1.1':
     dependencies:
       '@smithy/middleware-serde': 4.0.1
       '@smithy/protocol-http': 5.0.1
       '@smithy/types': 4.1.0
       '@smithy/util-body-length-browser': 4.0.0
       '@smithy/util-middleware': 4.0.1
-      '@smithy/util-stream': 4.0.1
+      '@smithy/util-stream': 4.0.2
       '@smithy/util-utf8': 4.0.0
       tslib: 2.8.1
 
@@ -32587,9 +32747,9 @@ snapshots:
       '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@smithy/middleware-endpoint@4.0.1':
+  '@smithy/middleware-endpoint@4.0.2':
     dependencies:
-      '@smithy/core': 3.1.0
+      '@smithy/core': 3.1.1
       '@smithy/middleware-serde': 4.0.1
       '@smithy/node-config-provider': 4.0.1
       '@smithy/shared-ini-file-loader': 4.0.1
@@ -32598,12 +32758,12 @@ snapshots:
       '@smithy/util-middleware': 4.0.1
       tslib: 2.8.1
 
-  '@smithy/middleware-retry@4.0.1':
+  '@smithy/middleware-retry@4.0.3':
     dependencies:
       '@smithy/node-config-provider': 4.0.1
       '@smithy/protocol-http': 5.0.1
       '@smithy/service-error-classification': 4.0.1
-      '@smithy/smithy-client': 4.1.0
+      '@smithy/smithy-client': 4.1.2
       '@smithy/types': 4.1.0
       '@smithy/util-middleware': 4.0.1
       '@smithy/util-retry': 4.0.1
@@ -32627,7 +32787,7 @@ snapshots:
       '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@smithy/node-http-handler@4.0.1':
+  '@smithy/node-http-handler@4.0.2':
     dependencies:
       '@smithy/abort-controller': 4.0.1
       '@smithy/protocol-http': 5.0.1
@@ -32676,14 +32836,14 @@ snapshots:
       '@smithy/util-utf8': 4.0.0
       tslib: 2.8.1
 
-  '@smithy/smithy-client@4.1.0':
+  '@smithy/smithy-client@4.1.2':
     dependencies:
-      '@smithy/core': 3.1.0
-      '@smithy/middleware-endpoint': 4.0.1
+      '@smithy/core': 3.1.1
+      '@smithy/middleware-endpoint': 4.0.2
       '@smithy/middleware-stack': 4.0.1
       '@smithy/protocol-http': 5.0.1
       '@smithy/types': 4.1.0
-      '@smithy/util-stream': 4.0.1
+      '@smithy/util-stream': 4.0.2
       tslib: 2.8.1
 
   '@smithy/types@4.1.0':
@@ -32724,21 +32884,21 @@ snapshots:
     dependencies:
       tslib: 2.8.1
 
-  '@smithy/util-defaults-mode-browser@4.0.1':
+  '@smithy/util-defaults-mode-browser@4.0.3':
     dependencies:
       '@smithy/property-provider': 4.0.1
-      '@smithy/smithy-client': 4.1.0
+      '@smithy/smithy-client': 4.1.2
       '@smithy/types': 4.1.0
       bowser: 2.11.0
       tslib: 2.8.1
 
-  '@smithy/util-defaults-mode-node@4.0.1':
+  '@smithy/util-defaults-mode-node@4.0.3':
     dependencies:
       '@smithy/config-resolver': 4.0.1
       '@smithy/credential-provider-imds': 4.0.1
       '@smithy/node-config-provider': 4.0.1
       '@smithy/property-provider': 4.0.1
-      '@smithy/smithy-client': 4.1.0
+      '@smithy/smithy-client': 4.1.2
       '@smithy/types': 4.1.0
       tslib: 2.8.1
 
@@ -32763,10 +32923,10 @@ snapshots:
       '@smithy/types': 4.1.0
       tslib: 2.8.1
 
-  '@smithy/util-stream@4.0.1':
+  '@smithy/util-stream@4.0.2':
     dependencies:
       '@smithy/fetch-http-handler': 5.0.1
-      '@smithy/node-http-handler': 4.0.1
+      '@smithy/node-http-handler': 4.0.2
       '@smithy/types': 4.1.0
       '@smithy/util-base64': 4.0.0
       '@smithy/util-buffer-from': 4.0.0
@@ -33239,13 +33399,13 @@ snapshots:
 
   '@solana/wallet-adapter-base@0.9.23(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@6.0.5))':
     dependencies:
-      '@solana/wallet-standard-features': 1.2.0
+      '@solana/wallet-standard-features': 1.3.0
       '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@6.0.5)
       '@wallet-standard/base': 1.1.0
       '@wallet-standard/features': 1.1.0
       eventemitter3: 4.0.7
 
-  '@solana/wallet-standard-features@1.2.0':
+  '@solana/wallet-standard-features@1.3.0':
     dependencies:
       '@wallet-standard/base': 1.1.0
       '@wallet-standard/features': 1.1.0
@@ -33316,28 +33476,6 @@ snapshots:
       - encoding
       - utf-8-validate
 
-  '@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@6.0.5)':
-    dependencies:
-      '@babel/runtime': 7.26.0
-      '@noble/curves': 1.8.0
-      '@noble/hashes': 1.7.0
-      '@solana/buffer-layout': 4.0.1
-      agentkeepalive: 4.6.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.3(bufferutil@4.0.9)(utf-8-validate@6.0.5)
-      node-fetch: 2.7.0(encoding@0.1.13)
-      rpc-websockets: 9.0.4
-      superstruct: 2.0.2
-    transitivePeerDependencies:
-      - bufferutil
-      - encoding
-      - utf-8-validate
-
   '@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)':
     dependencies:
       '@babel/runtime': 7.26.0
@@ -33382,10 +33520,10 @@ snapshots:
       - encoding
       - utf-8-validate
 
-  '@spheron/protocol-sdk@1.2.3(bufferutil@4.0.9)(utf-8-validate@6.0.5)':
+  '@spheron/protocol-sdk@1.2.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)':
     dependencies:
       base64-js: 1.5.1
-      ethers: 6.13.4(bufferutil@4.0.9)(utf-8-validate@6.0.5)
+      ethers: 6.13.4(bufferutil@4.0.9)(utf-8-validate@5.0.10)
       js-yaml: 4.1.0
     transitivePeerDependencies:
       - bufferutil
@@ -33504,14 +33642,14 @@ snapshots:
 
   '@starknet-io/types-js@0.7.10': {}
 
-  '@story-protocol/core-sdk@1.2.0-rc.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)(zod@3.24.1)':
+  '@story-protocol/core-sdk@1.2.0-rc.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.24.1)':
     dependencies:
       abitype: 0.10.3(typescript@5.7.3)(zod@3.24.1)
       axios: 1.7.9(debug@4.4.0)
       bs58: 6.0.0
       dotenv: 16.4.7
       multiformats: 9.9.0
-      viem: 2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)(zod@3.24.1)
+      viem: 2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.24.1)
     transitivePeerDependencies:
       - bufferutil
       - debug
@@ -33770,7 +33908,7 @@ snapshots:
 
   '@tavily/core@0.0.2':
     dependencies:
-      axios: 1.7.9(debug@4.4.0)
+      axios: 1.7.9
       js-tiktoken: 1.0.15
     transitivePeerDependencies:
       - debug
@@ -33965,7 +34103,7 @@ snapshots:
 
   '@types/connect-history-api-fallback@1.5.4':
     dependencies:
-      '@types/express-serve-static-core': 5.0.4
+      '@types/express-serve-static-core': 5.0.5
       '@types/node': 20.17.9
 
   '@types/connect@3.4.38':
@@ -34134,14 +34272,14 @@ snapshots:
   '@types/express-serve-static-core@4.19.6':
     dependencies:
       '@types/node': 20.17.9
-      '@types/qs': 6.9.17
+      '@types/qs': 6.9.18
       '@types/range-parser': 1.2.7
       '@types/send': 0.17.4
 
-  '@types/express-serve-static-core@5.0.4':
+  '@types/express-serve-static-core@5.0.5':
     dependencies:
       '@types/node': 20.17.9
-      '@types/qs': 6.9.17
+      '@types/qs': 6.9.18
       '@types/range-parser': 1.2.7
       '@types/send': 0.17.4
 
@@ -34149,14 +34287,14 @@ snapshots:
     dependencies:
       '@types/body-parser': 1.19.5
       '@types/express-serve-static-core': 4.19.6
-      '@types/qs': 6.9.17
+      '@types/qs': 6.9.18
       '@types/serve-static': 1.15.7
 
   '@types/express@5.0.0':
     dependencies:
       '@types/body-parser': 1.19.5
-      '@types/express-serve-static-core': 5.0.4
-      '@types/qs': 6.9.17
+      '@types/express-serve-static-core': 5.0.5
+      '@types/qs': 6.9.18
       '@types/serve-static': 1.15.7
 
   '@types/filesystem@0.0.36':
@@ -34294,7 +34432,7 @@ snapshots:
 
   '@types/node@18.15.13': {}
 
-  '@types/node@18.19.70':
+  '@types/node@18.19.71':
     dependencies:
       undici-types: 5.26.5
 
@@ -34302,7 +34440,7 @@ snapshots:
     dependencies:
       undici-types: 6.19.8
 
-  '@types/node@22.10.6':
+  '@types/node@22.10.7':
     dependencies:
       undici-types: 6.20.0
 
@@ -34341,32 +34479,32 @@ snapshots:
     dependencies:
       '@types/retry': 0.12.5
 
-  '@types/qs@6.9.17': {}
+  '@types/qs@6.9.18': {}
 
   '@types/range-parser@1.2.7': {}
 
-  '@types/react-dom@19.0.3(@types/react@19.0.6)':
+  '@types/react-dom@19.0.3(@types/react@19.0.7)':
     dependencies:
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
 
   '@types/react-router-config@5.0.11':
     dependencies:
       '@types/history': 4.7.11
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
       '@types/react-router': 5.1.20
 
   '@types/react-router-dom@5.3.3':
     dependencies:
       '@types/history': 4.7.11
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
       '@types/react-router': 5.1.20
 
   '@types/react-router@5.1.20':
     dependencies:
       '@types/history': 4.7.11
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
 
-  '@types/react@19.0.6':
+  '@types/react@19.0.7':
     dependencies:
       csstype: 3.1.3
 
@@ -34554,7 +34692,7 @@ snapshots:
       '@typescript-eslint/types': 8.16.0
       '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.6.3)
       '@typescript-eslint/visitor-keys': 8.16.0
-      debug: 4.4.0(supports-color@5.5.0)
+      debug: 4.4.0
       eslint: 9.16.0(jiti@2.4.2)
     optionalDependencies:
       typescript: 5.6.3
@@ -34617,7 +34755,7 @@ snapshots:
     dependencies:
       '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.6.3)
       '@typescript-eslint/utils': 8.16.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)
-      debug: 4.4.0(supports-color@5.5.0)
+      debug: 4.4.0
       eslint: 9.16.0(jiti@2.4.2)
       ts-api-utils: 1.4.3(typescript@5.6.3)
     optionalDependencies:
@@ -34673,7 +34811,7 @@ snapshots:
     dependencies:
       '@typescript-eslint/types': 8.16.0
       '@typescript-eslint/visitor-keys': 8.16.0
-      debug: 4.4.0(supports-color@5.5.0)
+      debug: 4.4.0
       fast-glob: 3.3.3
       is-glob: 4.0.3
       minimatch: 9.0.5
@@ -34688,7 +34826,7 @@ snapshots:
     dependencies:
       '@typescript-eslint/types': 8.20.0
       '@typescript-eslint/visitor-keys': 8.20.0
-      debug: 4.4.0(supports-color@5.5.0)
+      debug: 4.4.0
       fast-glob: 3.3.3
       is-glob: 4.0.3
       minimatch: 9.0.5
@@ -34808,10 +34946,10 @@ snapshots:
       moment: 2.30.1
       starknet: 6.18.0(encoding@0.1.13)
 
-  '@vitejs/plugin-react-swc@3.7.2(@swc/helpers@0.5.15)(vite@6.0.7(@types/node@22.10.6)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))':
+  '@vitejs/plugin-react-swc@3.7.2(@swc/helpers@0.5.15)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))':
     dependencies:
       '@swc/core': 1.10.7(@swc/helpers@0.5.15)
-      vite: 6.0.7(@types/node@22.10.6)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)
+      vite: 6.0.7(@types/node@22.10.7)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)
     transitivePeerDependencies:
       - '@swc/helpers'
 
@@ -34832,7 +34970,7 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@vitest/coverage-v8@1.1.3(vitest@1.1.3(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))':
+  '@vitest/coverage-v8@1.1.3(vitest@1.1.3(@types/node@22.10.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.37.0))':
     dependencies:
       '@ampproject/remapping': 2.3.0
       '@bcoe/v8-coverage': 0.2.3
@@ -34847,7 +34985,7 @@ snapshots:
       std-env: 3.8.0
       test-exclude: 6.0.0
       v8-to-istanbul: 9.3.0
-      vitest: 1.1.3(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)
+      vitest: 1.1.3(@types/node@22.10.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.37.0)
     transitivePeerDependencies:
       - supports-color
 
@@ -34869,13 +35007,13 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@vitest/eslint-plugin@1.0.1(@typescript-eslint/utils@8.20.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))':
+  '@vitest/eslint-plugin@1.0.1(@typescript-eslint/utils@8.20.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@20.17.9)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))':
     dependencies:
       eslint: 9.16.0(jiti@2.4.2)
     optionalDependencies:
       '@typescript-eslint/utils': 8.20.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3)
       typescript: 5.6.3
-      vitest: 2.1.5(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)
+      vitest: 2.1.5(@types/node@20.17.9)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)
 
   '@vitest/expect@0.34.6':
     dependencies:
@@ -34916,29 +35054,37 @@ snapshots:
       chai: 5.1.2
       tinyrainbow: 1.2.0
 
-  '@vitest/mocker@2.1.4(vite@5.4.11(@types/node@22.10.6)(terser@5.37.0))':
+  '@vitest/mocker@2.1.4(vite@5.4.11(@types/node@22.10.7)(terser@5.37.0))':
     dependencies:
       '@vitest/spy': 2.1.4
       estree-walker: 3.0.3
       magic-string: 0.30.17
     optionalDependencies:
-      vite: 5.4.11(@types/node@22.10.6)(terser@5.37.0)
+      vite: 5.4.11(@types/node@22.10.7)(terser@5.37.0)
+
+  '@vitest/mocker@2.1.5(vite@5.4.11(@types/node@20.17.9)(terser@5.37.0))':
+    dependencies:
+      '@vitest/spy': 2.1.5
+      estree-walker: 3.0.3
+      magic-string: 0.30.17
+    optionalDependencies:
+      vite: 5.4.11(@types/node@20.17.9)(terser@5.37.0)
 
-  '@vitest/mocker@2.1.5(vite@5.4.11(@types/node@22.10.6)(terser@5.37.0))':
+  '@vitest/mocker@2.1.5(vite@5.4.11(@types/node@22.10.7)(terser@5.37.0))':
     dependencies:
       '@vitest/spy': 2.1.5
       estree-walker: 3.0.3
       magic-string: 0.30.17
     optionalDependencies:
-      vite: 5.4.11(@types/node@22.10.6)(terser@5.37.0)
+      vite: 5.4.11(@types/node@22.10.7)(terser@5.37.0)
 
-  '@vitest/mocker@2.1.8(vite@5.4.11(@types/node@22.10.6)(terser@5.37.0))':
+  '@vitest/mocker@2.1.8(vite@5.4.11(@types/node@22.10.7)(terser@5.37.0))':
     dependencies:
       '@vitest/spy': 2.1.8
       estree-walker: 3.0.3
       magic-string: 0.30.17
     optionalDependencies:
-      vite: 5.4.11(@types/node@22.10.6)(terser@5.37.0)
+      vite: 5.4.11(@types/node@22.10.7)(terser@5.37.0)
 
   '@vitest/pretty-format@2.1.4':
     dependencies:
@@ -35124,7 +35270,7 @@ snapshots:
       '@vue/shared': 3.5.13
       estree-walker: 2.0.2
       magic-string: 0.30.17
-      postcss: 8.5.0
+      postcss: 8.5.1
       source-map-js: 1.2.1
 
   '@vue/compiler-ssr@3.5.13':
@@ -35154,12 +35300,6 @@ snapshots:
       '@vue/shared': 3.5.13
       vue: 3.5.13(typescript@5.6.3)
 
-  '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.7.3))':
-    dependencies:
-      '@vue/compiler-ssr': 3.5.13
-      '@vue/shared': 3.5.13
-      vue: 3.5.13(typescript@5.7.3)
-
   '@vue/shared@3.5.13': {}
 
   '@wallet-standard/base@1.1.0': {}
@@ -35250,18 +35390,59 @@ snapshots:
       - uploadthing
       - utf-8-validate
 
+  '@walletconnect/core@2.17.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)':
+    dependencies:
+      '@walletconnect/heartbeat': 1.2.2
+      '@walletconnect/jsonrpc-provider': 1.0.14
+      '@walletconnect/jsonrpc-types': 1.0.4
+      '@walletconnect/jsonrpc-utils': 1.0.8
+      '@walletconnect/jsonrpc-ws-connection': 1.0.16(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+      '@walletconnect/keyvaluestorage': 1.1.1(ioredis@5.4.2)
+      '@walletconnect/logger': 2.1.2
+      '@walletconnect/relay-api': 1.0.11
+      '@walletconnect/relay-auth': 1.0.4
+      '@walletconnect/safe-json': 1.0.2
+      '@walletconnect/time': 1.0.2
+      '@walletconnect/types': 2.17.3(ioredis@5.4.2)
+      '@walletconnect/utils': 2.17.3(ioredis@5.4.2)
+      '@walletconnect/window-getters': 1.0.1
+      events: 3.3.0
+      lodash.isequal: 4.5.0
+      uint8arrays: 3.1.0
+    transitivePeerDependencies:
+      - '@azure/app-configuration'
+      - '@azure/cosmos'
+      - '@azure/data-tables'
+      - '@azure/identity'
+      - '@azure/keyvault-secrets'
+      - '@azure/storage-blob'
+      - '@capacitor/preferences'
+      - '@deno/kv'
+      - '@netlify/blobs'
+      - '@planetscale/database'
+      - '@react-native-async-storage/async-storage'
+      - '@upstash/redis'
+      - '@vercel/blob'
+      - '@vercel/kv'
+      - aws4fetch
+      - bufferutil
+      - db0
+      - ioredis
+      - uploadthing
+      - utf-8-validate
+
   '@walletconnect/environment@1.0.1':
     dependencies:
       tslib: 1.14.1
 
-  '@walletconnect/ethereum-provider@2.17.3(@types/react@19.0.6)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(react@19.0.0)(utf-8-validate@5.0.10)':
+  '@walletconnect/ethereum-provider@2.17.3(@types/react@19.0.7)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(react@19.0.0)(utf-8-validate@5.0.10)':
     dependencies:
       '@walletconnect/jsonrpc-http-connection': 1.0.8(encoding@0.1.13)
       '@walletconnect/jsonrpc-provider': 1.0.14
       '@walletconnect/jsonrpc-types': 1.0.4
       '@walletconnect/jsonrpc-utils': 1.0.8
       '@walletconnect/keyvaluestorage': 1.1.1(ioredis@5.4.2)
-      '@walletconnect/modal': 2.7.0(@types/react@19.0.6)(react@19.0.0)
+      '@walletconnect/modal': 2.7.0(@types/react@19.0.7)(react@19.0.0)
       '@walletconnect/sign-client': 2.17.3(bufferutil@4.0.9)(ioredis@5.4.2)(utf-8-validate@5.0.10)
       '@walletconnect/types': 2.17.3(ioredis@5.4.2)
       '@walletconnect/universal-provider': 2.17.3(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(utf-8-validate@5.0.10)
@@ -35292,14 +35473,14 @@ snapshots:
       - uploadthing
       - utf-8-validate
 
-  '@walletconnect/ethereum-provider@2.17.3(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)':
+  '@walletconnect/ethereum-provider@2.17.3(bufferutil@4.0.9)(encoding@0.1.13)(react@19.0.0)(utf-8-validate@5.0.10)':
     dependencies:
       '@walletconnect/jsonrpc-http-connection': 1.0.8(encoding@0.1.13)
       '@walletconnect/jsonrpc-provider': 1.0.14
       '@walletconnect/jsonrpc-types': 1.0.4
       '@walletconnect/jsonrpc-utils': 1.0.8
       '@walletconnect/keyvaluestorage': 1.1.1(ioredis@5.4.2)
-      '@walletconnect/modal': 2.7.0(@types/react@19.0.6)(react@19.0.0)
+      '@walletconnect/modal': 2.7.0(@types/react@19.0.7)(react@19.0.0)
       '@walletconnect/sign-client': 2.17.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)
       '@walletconnect/types': 2.17.3(ioredis@5.4.2)
       '@walletconnect/universal-provider': 2.17.3(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
@@ -35416,16 +35597,16 @@ snapshots:
       '@walletconnect/safe-json': 1.0.2
       pino: 7.11.0
 
-  '@walletconnect/modal-core@2.7.0(@types/react@19.0.6)(react@19.0.0)':
+  '@walletconnect/modal-core@2.7.0(@types/react@19.0.7)(react@19.0.0)':
     dependencies:
-      valtio: 1.11.2(@types/react@19.0.6)(react@19.0.0)
+      valtio: 1.11.2(@types/react@19.0.7)(react@19.0.0)
     transitivePeerDependencies:
       - '@types/react'
       - react
 
-  '@walletconnect/modal-ui@2.7.0(@types/react@19.0.6)(react@19.0.0)':
+  '@walletconnect/modal-ui@2.7.0(@types/react@19.0.7)(react@19.0.0)':
     dependencies:
-      '@walletconnect/modal-core': 2.7.0(@types/react@19.0.6)(react@19.0.0)
+      '@walletconnect/modal-core': 2.7.0(@types/react@19.0.7)(react@19.0.0)
       lit: 2.8.0
       motion: 10.16.2
       qrcode: 1.5.3
@@ -35433,10 +35614,10 @@ snapshots:
       - '@types/react'
       - react
 
-  '@walletconnect/modal@2.7.0(@types/react@19.0.6)(react@19.0.0)':
+  '@walletconnect/modal@2.7.0(@types/react@19.0.7)(react@19.0.0)':
     dependencies:
-      '@walletconnect/modal-core': 2.7.0(@types/react@19.0.6)(react@19.0.0)
-      '@walletconnect/modal-ui': 2.7.0(@types/react@19.0.6)(react@19.0.0)
+      '@walletconnect/modal-core': 2.7.0(@types/react@19.0.7)(react@19.0.0)
+      '@walletconnect/modal-ui': 2.7.0(@types/react@19.0.7)(react@19.0.0)
     transitivePeerDependencies:
       - '@types/react'
       - react
@@ -35526,7 +35707,7 @@ snapshots:
 
   '@walletconnect/sign-client@2.17.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)':
     dependencies:
-      '@walletconnect/core': 2.17.3(bufferutil@4.0.9)(ioredis@5.4.2)(utf-8-validate@5.0.10)
+      '@walletconnect/core': 2.17.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)
       '@walletconnect/events': 1.0.1
       '@walletconnect/heartbeat': 1.2.2
       '@walletconnect/jsonrpc-utils': 1.0.8
@@ -35837,10 +36018,10 @@ snapshots:
     optionalDependencies:
       zod: 3.24.1
 
-  abitype@1.0.7(typescript@5.6.3)(zod@3.24.1):
+  abitype@1.0.7(typescript@5.6.3)(zod@3.23.8):
     optionalDependencies:
       typescript: 5.6.3
-      zod: 3.24.1
+      zod: 3.23.8
 
   abitype@1.0.7(typescript@5.7.3)(zod@3.23.8):
     optionalDependencies:
@@ -35852,10 +36033,10 @@ snapshots:
       typescript: 5.7.3
       zod: 3.24.1
 
-  abitype@1.0.8(typescript@5.6.3)(zod@3.24.1):
+  abitype@1.0.8(typescript@5.6.3)(zod@3.23.8):
     optionalDependencies:
       typescript: 5.6.3
-      zod: 3.24.1
+      zod: 3.23.8
 
   abitype@1.0.8(typescript@5.7.3)(zod@3.23.8):
     optionalDependencies:
@@ -35912,7 +36093,7 @@ snapshots:
 
   agent-base@6.0.2:
     dependencies:
-      debug: 4.4.0(supports-color@5.5.0)
+      debug: 4.4.0
     transitivePeerDependencies:
       - supports-color
 
@@ -35930,7 +36111,7 @@ snapshots:
       tough-cookie: 4.1.4
       tslib: 2.8.1
       twitter-api-v2: 1.19.0
-      undici: 7.2.1
+      undici: 7.2.2
       ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
     transitivePeerDependencies:
       - bufferutil
@@ -35945,13 +36126,13 @@ snapshots:
       clean-stack: 2.2.0
       indent-string: 4.0.0
 
-  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.17.3))(svelte@5.17.3)(vue@3.5.13(typescript@5.6.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.18.0))(svelte@5.18.0)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8):
     dependencies:
       '@ai-sdk/provider': 0.0.26
       '@ai-sdk/provider-utils': 1.0.22(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.17.3)(zod@3.23.8)
+      '@ai-sdk/svelte': 0.0.57(svelte@5.18.0)(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.6.3))(zod@3.23.8)
       '@opentelemetry/api': 1.9.0
@@ -35963,31 +36144,31 @@ snapshots:
     optionalDependencies:
       openai: 4.73.0(encoding@0.1.13)(zod@3.23.8)
       react: 19.0.0
-      sswr: 2.1.0(svelte@5.17.3)
-      svelte: 5.17.3
+      sswr: 2.1.0(svelte@5.18.0)
+      svelte: 5.18.0
       zod: 3.23.8
     transitivePeerDependencies:
       - solid-js
       - vue
 
-  ai@4.0.34(react@19.0.0)(zod@3.23.8):
+  ai@4.0.38(react@19.0.0)(zod@3.23.8):
     dependencies:
       '@ai-sdk/provider': 1.0.4
       '@ai-sdk/provider-utils': 2.0.7(zod@3.23.8)
-      '@ai-sdk/react': 1.0.10(react@19.0.0)(zod@3.23.8)
-      '@ai-sdk/ui-utils': 1.0.9(zod@3.23.8)
+      '@ai-sdk/react': 1.0.11(react@19.0.0)(zod@3.23.8)
+      '@ai-sdk/ui-utils': 1.0.10(zod@3.23.8)
       '@opentelemetry/api': 1.9.0
       jsondiffpatch: 0.6.0
     optionalDependencies:
       react: 19.0.0
       zod: 3.23.8
 
-  ai@4.0.34(react@19.0.0)(zod@3.24.1):
+  ai@4.0.38(react@19.0.0)(zod@3.24.1):
     dependencies:
       '@ai-sdk/provider': 1.0.4
       '@ai-sdk/provider-utils': 2.0.7(zod@3.24.1)
-      '@ai-sdk/react': 1.0.10(react@19.0.0)(zod@3.24.1)
-      '@ai-sdk/ui-utils': 1.0.9(zod@3.24.1)
+      '@ai-sdk/react': 1.0.11(react@19.0.0)(zod@3.24.1)
+      '@ai-sdk/ui-utils': 1.0.10(zod@3.24.1)
       '@opentelemetry/api': 1.9.0
       jsondiffpatch: 0.6.0
     optionalDependencies:
@@ -36025,7 +36206,7 @@ snapshots:
 
   algo-msgpack-with-bigint@2.1.1: {}
 
-  algoliasearch-helper@3.22.6(algoliasearch@4.24.0):
+  algoliasearch-helper@3.23.0(algoliasearch@4.24.0):
     dependencies:
       '@algolia/events': 4.0.1
       algoliasearch: 4.24.0
@@ -36232,7 +36413,7 @@ snapshots:
       call-bind: 1.0.8
       define-properties: 1.2.1
       es-abstract: 1.23.9
-      es-object-atoms: 1.0.0
+      es-object-atoms: 1.1.1
       get-intrinsic: 1.2.7
       is-string: 1.1.1
 
@@ -36244,7 +36425,7 @@ snapshots:
       define-properties: 1.2.1
       es-abstract: 1.23.9
       es-errors: 1.3.0
-      es-object-atoms: 1.0.0
+      es-object-atoms: 1.1.1
       es-shim-unscopables: 1.0.2
 
   array.prototype.findlastindex@1.2.5:
@@ -36253,7 +36434,7 @@ snapshots:
       define-properties: 1.2.1
       es-abstract: 1.23.9
       es-errors: 1.3.0
-      es-object-atoms: 1.0.0
+      es-object-atoms: 1.1.1
       es-shim-unscopables: 1.0.2
 
   array.prototype.flat@1.3.3:
@@ -36400,21 +36581,21 @@ snapshots:
       ofetch: 1.4.1
       pathe: 1.1.2
       perfect-debounce: 1.0.0
-      pkg-types: 1.3.0
+      pkg-types: 1.3.1
       scule: 1.3.0
       untyped: 1.5.2
     transitivePeerDependencies:
       - magicast
       - supports-color
 
-  autoprefixer@10.4.20(postcss@8.5.0):
+  autoprefixer@10.4.20(postcss@8.5.1):
     dependencies:
       browserslist: 4.24.4
       caniuse-lite: 1.0.30001692
       fraction.js: 4.3.7
       normalize-range: 0.1.2
       picocolors: 1.1.1
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
   avail-js-sdk@0.3.0(bufferutil@4.0.9)(utf-8-validate@6.0.5):
@@ -36438,7 +36619,7 @@ snapshots:
 
   axios-mock-adapter@1.22.0(axios@1.7.9):
     dependencies:
-      axios: 1.7.9(debug@4.4.0)
+      axios: 1.7.9
       fast-deep-equal: 3.1.3
       is-buffer: 2.0.5
 
@@ -36449,7 +36630,7 @@ snapshots:
 
   axios-retry@4.5.0(axios@1.7.9):
     dependencies:
-      axios: 1.7.9(debug@4.4.0)
+      axios: 1.7.9
       is-retry-allowed: 2.2.0
 
   axios@0.21.4:
@@ -36466,7 +36647,7 @@ snapshots:
 
   axios@0.27.2:
     dependencies:
-      follow-redirects: 1.15.9(debug@4.4.0)
+      follow-redirects: 1.15.9
       form-data: 4.0.1
     transitivePeerDependencies:
       - debug
@@ -36503,6 +36684,14 @@ snapshots:
     transitivePeerDependencies:
       - debug
 
+  axios@1.7.9:
+    dependencies:
+      follow-redirects: 1.15.9
+      form-data: 4.0.1
+      proxy-from-env: 1.1.0
+    transitivePeerDependencies:
+      - debug
+
   axios@1.7.9(debug@4.4.0):
     dependencies:
       follow-redirects: 1.15.9(debug@4.4.0)
@@ -36671,34 +36860,31 @@ snapshots:
 
   balanced-match@1.0.2: {}
 
-  bare-buffer@3.0.1:
-    optional: true
-
   bare-events@2.5.4:
     optional: true
 
-  bare-fs@2.3.5(bare-buffer@3.0.1):
+  bare-fs@4.0.1:
     dependencies:
       bare-events: 2.5.4
-      bare-path: 2.1.3
-      bare-stream: 2.6.2(bare-buffer@3.0.1)(bare-events@2.5.4)
+      bare-path: 3.0.0
+      bare-stream: 2.6.4(bare-events@2.5.4)
     transitivePeerDependencies:
       - bare-buffer
     optional: true
 
-  bare-os@2.4.4:
+  bare-os@3.4.0:
     optional: true
 
-  bare-path@2.1.3:
+  bare-path@3.0.0:
     dependencies:
-      bare-os: 2.4.4
+      bare-os: 3.4.0
     optional: true
 
-  bare-stream@2.6.2(bare-buffer@3.0.1)(bare-events@2.5.4):
+  bare-stream@2.6.4(bare-events@2.5.4):
     dependencies:
-      bare-buffer: 3.0.1
-      bare-events: 2.5.4
       streamx: 2.21.1
+    optionalDependencies:
+      bare-events: 2.5.4
     optional: true
 
   base-x@2.0.6:
@@ -37064,7 +37250,7 @@ snapshots:
   browserslist@4.24.4:
     dependencies:
       caniuse-lite: 1.0.30001692
-      electron-to-chromium: 1.5.80
+      electron-to-chromium: 1.5.83
       node-releases: 2.0.19
       update-browserslist-db: 1.1.2(browserslist@4.24.4)
 
@@ -37190,7 +37376,7 @@ snapshots:
       ohash: 1.1.4
       pathe: 1.1.2
       perfect-debounce: 1.0.0
-      pkg-types: 1.3.0
+      pkg-types: 1.3.1
       rc9: 2.1.2
     optionalDependencies:
       magicast: 0.3.5
@@ -37338,9 +37524,9 @@ snapshots:
       loupe: 3.1.2
       pathval: 2.0.0
 
-  chain-registry@1.69.91:
+  chain-registry@1.69.94:
     dependencies:
-      '@chain-registry/types': 0.50.47
+      '@chain-registry/types': 0.50.50
 
   chalk@1.1.3:
     dependencies:
@@ -37482,13 +37668,13 @@ snapshots:
     dependencies:
       consola: 3.4.0
 
-  cive@0.7.1(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5):
+  cive@0.7.1(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10):
     dependencies:
       '@noble/curves': 1.8.0
       '@noble/hashes': 1.7.0
       '@scure/bip32': 1.6.1
       '@scure/bip39': 1.5.1
-      viem: 2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)(zod@3.23.8)
+      viem: 2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
       zod: 3.23.8
     transitivePeerDependencies:
       - bufferutil
@@ -37937,9 +38123,9 @@ snapshots:
     dependencies:
       layout-base: 2.0.1
 
-  cosmiconfig-typescript-loader@5.1.0(@types/node@22.10.6)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3):
+  cosmiconfig-typescript-loader@5.1.0(@types/node@20.17.9)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3):
     dependencies:
-      '@types/node': 22.10.6
+      '@types/node': 20.17.9
       cosmiconfig: 8.3.6(typescript@5.6.3)
       jiti: 1.21.7
       typescript: 5.6.3
@@ -38016,13 +38202,28 @@ snapshots:
       safe-buffer: 5.2.1
       sha.js: 2.4.11
 
-  create-jest@29.7.0(@types/node@18.19.70)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3)):
+  create-jest@29.7.0(@types/node@18.19.71)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.71)(typescript@5.6.3)):
+    dependencies:
+      '@jest/types': 29.6.3
+      chalk: 4.1.2
+      exit: 0.1.2
+      graceful-fs: 4.2.11
+      jest-config: 29.7.0(@types/node@18.19.71)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.71)(typescript@5.6.3))
+      jest-util: 29.7.0
+      prompts: 2.4.2
+    transitivePeerDependencies:
+      - '@types/node'
+      - babel-plugin-macros
+      - supports-color
+      - ts-node
+
+  create-jest@29.7.0(@types/node@20.17.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)):
     dependencies:
       '@jest/types': 29.6.3
       chalk: 4.1.2
       exit: 0.1.2
       graceful-fs: 4.2.11
-      jest-config: 29.7.0(@types/node@18.19.70)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3))
+      jest-config: 29.7.0(@types/node@20.17.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
       jest-util: 29.7.0
       prompts: 2.4.2
     transitivePeerDependencies:
@@ -38046,13 +38247,13 @@ snapshots:
       - supports-color
       - ts-node
 
-  create-jest@29.7.0(@types/node@22.10.6)(babel-plugin-macros@3.1.0):
+  create-jest@29.7.0(@types/node@22.10.7)(babel-plugin-macros@3.1.0):
     dependencies:
       '@jest/types': 29.6.3
       chalk: 4.1.2
       exit: 0.1.2
       graceful-fs: 4.2.11
-      jest-config: 29.7.0(@types/node@22.10.6)(babel-plugin-macros@3.1.0)
+      jest-config: 29.7.0(@types/node@22.10.7)(babel-plugin-macros@3.1.0)
       jest-util: 29.7.0
       prompts: 2.4.2
     transitivePeerDependencies:
@@ -38135,30 +38336,30 @@ snapshots:
     dependencies:
       type-fest: 1.4.0
 
-  css-blank-pseudo@7.0.1(postcss@8.5.0):
+  css-blank-pseudo@7.0.1(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-selector-parser: 7.0.0
 
-  css-declaration-sorter@7.2.0(postcss@8.5.0):
+  css-declaration-sorter@7.2.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  css-has-pseudo@7.0.2(postcss@8.5.0):
+  css-has-pseudo@7.0.2(postcss@8.5.1):
     dependencies:
       '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0)
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-selector-parser: 7.0.0
       postcss-value-parser: 4.2.0
 
   css-loader@6.11.0(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
     dependencies:
-      icss-utils: 5.1.0(postcss@8.5.0)
-      postcss: 8.5.0
-      postcss-modules-extract-imports: 3.1.0(postcss@8.5.0)
-      postcss-modules-local-by-default: 4.2.0(postcss@8.5.0)
-      postcss-modules-scope: 3.2.1(postcss@8.5.0)
-      postcss-modules-values: 4.0.0(postcss@8.5.0)
+      icss-utils: 5.1.0(postcss@8.5.1)
+      postcss: 8.5.1
+      postcss-modules-extract-imports: 3.1.0(postcss@8.5.1)
+      postcss-modules-local-by-default: 4.2.0(postcss@8.5.1)
+      postcss-modules-scope: 3.2.1(postcss@8.5.1)
+      postcss-modules-values: 4.0.0(postcss@8.5.1)
       postcss-value-parser: 4.2.0
       semver: 7.6.3
     optionalDependencies:
@@ -38167,18 +38368,18 @@ snapshots:
   css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
     dependencies:
       '@jridgewell/trace-mapping': 0.3.25
-      cssnano: 6.1.2(postcss@8.5.0)
+      cssnano: 6.1.2(postcss@8.5.1)
       jest-worker: 29.7.0
-      postcss: 8.5.0
+      postcss: 8.5.1
       schema-utils: 4.3.0
       serialize-javascript: 6.0.2
       webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
     optionalDependencies:
       clean-css: 5.3.3
 
-  css-prefers-color-scheme@10.0.0(postcss@8.5.0):
+  css-prefers-color-scheme@10.0.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
 
   css-select@4.3.0:
     dependencies:
@@ -38214,104 +38415,104 @@ snapshots:
 
   cssesc@3.0.0: {}
 
-  cssnano-preset-advanced@6.1.2(postcss@8.5.0):
+  cssnano-preset-advanced@6.1.2(postcss@8.5.1):
     dependencies:
-      autoprefixer: 10.4.20(postcss@8.5.0)
+      autoprefixer: 10.4.20(postcss@8.5.1)
       browserslist: 4.24.4
-      cssnano-preset-default: 6.1.2(postcss@8.5.0)
-      postcss: 8.5.0
-      postcss-discard-unused: 6.0.5(postcss@8.5.0)
-      postcss-merge-idents: 6.0.3(postcss@8.5.0)
-      postcss-reduce-idents: 6.0.3(postcss@8.5.0)
-      postcss-zindex: 6.0.2(postcss@8.5.0)
+      cssnano-preset-default: 6.1.2(postcss@8.5.1)
+      postcss: 8.5.1
+      postcss-discard-unused: 6.0.5(postcss@8.5.1)
+      postcss-merge-idents: 6.0.3(postcss@8.5.1)
+      postcss-reduce-idents: 6.0.3(postcss@8.5.1)
+      postcss-zindex: 6.0.2(postcss@8.5.1)
 
-  cssnano-preset-default@6.1.2(postcss@8.5.0):
+  cssnano-preset-default@6.1.2(postcss@8.5.1):
     dependencies:
       browserslist: 4.24.4
-      css-declaration-sorter: 7.2.0(postcss@8.5.0)
-      cssnano-utils: 4.0.2(postcss@8.5.0)
-      postcss: 8.5.0
-      postcss-calc: 9.0.1(postcss@8.5.0)
-      postcss-colormin: 6.1.0(postcss@8.5.0)
-      postcss-convert-values: 6.1.0(postcss@8.5.0)
-      postcss-discard-comments: 6.0.2(postcss@8.5.0)
-      postcss-discard-duplicates: 6.0.3(postcss@8.5.0)
-      postcss-discard-empty: 6.0.3(postcss@8.5.0)
-      postcss-discard-overridden: 6.0.2(postcss@8.5.0)
-      postcss-merge-longhand: 6.0.5(postcss@8.5.0)
-      postcss-merge-rules: 6.1.1(postcss@8.5.0)
-      postcss-minify-font-values: 6.1.0(postcss@8.5.0)
-      postcss-minify-gradients: 6.0.3(postcss@8.5.0)
-      postcss-minify-params: 6.1.0(postcss@8.5.0)
-      postcss-minify-selectors: 6.0.4(postcss@8.5.0)
-      postcss-normalize-charset: 6.0.2(postcss@8.5.0)
-      postcss-normalize-display-values: 6.0.2(postcss@8.5.0)
-      postcss-normalize-positions: 6.0.2(postcss@8.5.0)
-      postcss-normalize-repeat-style: 6.0.2(postcss@8.5.0)
-      postcss-normalize-string: 6.0.2(postcss@8.5.0)
-      postcss-normalize-timing-functions: 6.0.2(postcss@8.5.0)
-      postcss-normalize-unicode: 6.1.0(postcss@8.5.0)
-      postcss-normalize-url: 6.0.2(postcss@8.5.0)
-      postcss-normalize-whitespace: 6.0.2(postcss@8.5.0)
-      postcss-ordered-values: 6.0.2(postcss@8.5.0)
-      postcss-reduce-initial: 6.1.0(postcss@8.5.0)
-      postcss-reduce-transforms: 6.0.2(postcss@8.5.0)
-      postcss-svgo: 6.0.3(postcss@8.5.0)
-      postcss-unique-selectors: 6.0.4(postcss@8.5.0)
-
-  cssnano-preset-default@7.0.6(postcss@8.5.0):
+      css-declaration-sorter: 7.2.0(postcss@8.5.1)
+      cssnano-utils: 4.0.2(postcss@8.5.1)
+      postcss: 8.5.1
+      postcss-calc: 9.0.1(postcss@8.5.1)
+      postcss-colormin: 6.1.0(postcss@8.5.1)
+      postcss-convert-values: 6.1.0(postcss@8.5.1)
+      postcss-discard-comments: 6.0.2(postcss@8.5.1)
+      postcss-discard-duplicates: 6.0.3(postcss@8.5.1)
+      postcss-discard-empty: 6.0.3(postcss@8.5.1)
+      postcss-discard-overridden: 6.0.2(postcss@8.5.1)
+      postcss-merge-longhand: 6.0.5(postcss@8.5.1)
+      postcss-merge-rules: 6.1.1(postcss@8.5.1)
+      postcss-minify-font-values: 6.1.0(postcss@8.5.1)
+      postcss-minify-gradients: 6.0.3(postcss@8.5.1)
+      postcss-minify-params: 6.1.0(postcss@8.5.1)
+      postcss-minify-selectors: 6.0.4(postcss@8.5.1)
+      postcss-normalize-charset: 6.0.2(postcss@8.5.1)
+      postcss-normalize-display-values: 6.0.2(postcss@8.5.1)
+      postcss-normalize-positions: 6.0.2(postcss@8.5.1)
+      postcss-normalize-repeat-style: 6.0.2(postcss@8.5.1)
+      postcss-normalize-string: 6.0.2(postcss@8.5.1)
+      postcss-normalize-timing-functions: 6.0.2(postcss@8.5.1)
+      postcss-normalize-unicode: 6.1.0(postcss@8.5.1)
+      postcss-normalize-url: 6.0.2(postcss@8.5.1)
+      postcss-normalize-whitespace: 6.0.2(postcss@8.5.1)
+      postcss-ordered-values: 6.0.2(postcss@8.5.1)
+      postcss-reduce-initial: 6.1.0(postcss@8.5.1)
+      postcss-reduce-transforms: 6.0.2(postcss@8.5.1)
+      postcss-svgo: 6.0.3(postcss@8.5.1)
+      postcss-unique-selectors: 6.0.4(postcss@8.5.1)
+
+  cssnano-preset-default@7.0.6(postcss@8.5.1):
     dependencies:
       browserslist: 4.24.4
-      css-declaration-sorter: 7.2.0(postcss@8.5.0)
-      cssnano-utils: 5.0.0(postcss@8.5.0)
-      postcss: 8.5.0
-      postcss-calc: 10.1.0(postcss@8.5.0)
-      postcss-colormin: 7.0.2(postcss@8.5.0)
-      postcss-convert-values: 7.0.4(postcss@8.5.0)
-      postcss-discard-comments: 7.0.3(postcss@8.5.0)
-      postcss-discard-duplicates: 7.0.1(postcss@8.5.0)
-      postcss-discard-empty: 7.0.0(postcss@8.5.0)
-      postcss-discard-overridden: 7.0.0(postcss@8.5.0)
-      postcss-merge-longhand: 7.0.4(postcss@8.5.0)
-      postcss-merge-rules: 7.0.4(postcss@8.5.0)
-      postcss-minify-font-values: 7.0.0(postcss@8.5.0)
-      postcss-minify-gradients: 7.0.0(postcss@8.5.0)
-      postcss-minify-params: 7.0.2(postcss@8.5.0)
-      postcss-minify-selectors: 7.0.4(postcss@8.5.0)
-      postcss-normalize-charset: 7.0.0(postcss@8.5.0)
-      postcss-normalize-display-values: 7.0.0(postcss@8.5.0)
-      postcss-normalize-positions: 7.0.0(postcss@8.5.0)
-      postcss-normalize-repeat-style: 7.0.0(postcss@8.5.0)
-      postcss-normalize-string: 7.0.0(postcss@8.5.0)
-      postcss-normalize-timing-functions: 7.0.0(postcss@8.5.0)
-      postcss-normalize-unicode: 7.0.2(postcss@8.5.0)
-      postcss-normalize-url: 7.0.0(postcss@8.5.0)
-      postcss-normalize-whitespace: 7.0.0(postcss@8.5.0)
-      postcss-ordered-values: 7.0.1(postcss@8.5.0)
-      postcss-reduce-initial: 7.0.2(postcss@8.5.0)
-      postcss-reduce-transforms: 7.0.0(postcss@8.5.0)
-      postcss-svgo: 7.0.1(postcss@8.5.0)
-      postcss-unique-selectors: 7.0.3(postcss@8.5.0)
-
-  cssnano-utils@4.0.2(postcss@8.5.0):
-    dependencies:
-      postcss: 8.5.0
-
-  cssnano-utils@5.0.0(postcss@8.5.0):
-    dependencies:
-      postcss: 8.5.0
-
-  cssnano@6.1.2(postcss@8.5.0):
-    dependencies:
-      cssnano-preset-default: 6.1.2(postcss@8.5.0)
+      css-declaration-sorter: 7.2.0(postcss@8.5.1)
+      cssnano-utils: 5.0.0(postcss@8.5.1)
+      postcss: 8.5.1
+      postcss-calc: 10.1.0(postcss@8.5.1)
+      postcss-colormin: 7.0.2(postcss@8.5.1)
+      postcss-convert-values: 7.0.4(postcss@8.5.1)
+      postcss-discard-comments: 7.0.3(postcss@8.5.1)
+      postcss-discard-duplicates: 7.0.1(postcss@8.5.1)
+      postcss-discard-empty: 7.0.0(postcss@8.5.1)
+      postcss-discard-overridden: 7.0.0(postcss@8.5.1)
+      postcss-merge-longhand: 7.0.4(postcss@8.5.1)
+      postcss-merge-rules: 7.0.4(postcss@8.5.1)
+      postcss-minify-font-values: 7.0.0(postcss@8.5.1)
+      postcss-minify-gradients: 7.0.0(postcss@8.5.1)
+      postcss-minify-params: 7.0.2(postcss@8.5.1)
+      postcss-minify-selectors: 7.0.4(postcss@8.5.1)
+      postcss-normalize-charset: 7.0.0(postcss@8.5.1)
+      postcss-normalize-display-values: 7.0.0(postcss@8.5.1)
+      postcss-normalize-positions: 7.0.0(postcss@8.5.1)
+      postcss-normalize-repeat-style: 7.0.0(postcss@8.5.1)
+      postcss-normalize-string: 7.0.0(postcss@8.5.1)
+      postcss-normalize-timing-functions: 7.0.0(postcss@8.5.1)
+      postcss-normalize-unicode: 7.0.2(postcss@8.5.1)
+      postcss-normalize-url: 7.0.0(postcss@8.5.1)
+      postcss-normalize-whitespace: 7.0.0(postcss@8.5.1)
+      postcss-ordered-values: 7.0.1(postcss@8.5.1)
+      postcss-reduce-initial: 7.0.2(postcss@8.5.1)
+      postcss-reduce-transforms: 7.0.0(postcss@8.5.1)
+      postcss-svgo: 7.0.1(postcss@8.5.1)
+      postcss-unique-selectors: 7.0.3(postcss@8.5.1)
+
+  cssnano-utils@4.0.2(postcss@8.5.1):
+    dependencies:
+      postcss: 8.5.1
+
+  cssnano-utils@5.0.0(postcss@8.5.1):
+    dependencies:
+      postcss: 8.5.1
+
+  cssnano@6.1.2(postcss@8.5.1):
+    dependencies:
+      cssnano-preset-default: 6.1.2(postcss@8.5.1)
       lilconfig: 3.1.3
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  cssnano@7.0.6(postcss@8.5.0):
+  cssnano@7.0.6(postcss@8.5.1):
     dependencies:
-      cssnano-preset-default: 7.0.6(postcss@8.5.0)
+      cssnano-preset-default: 7.0.6(postcss@8.5.1)
       lilconfig: 3.1.3
-      postcss: 8.5.0
+      postcss: 8.5.1
 
   csso@5.0.5:
     dependencies:
@@ -38319,7 +38520,7 @@ snapshots:
 
   cssstyle@4.2.1:
     dependencies:
-      '@asamuzakjp/css-color': 2.8.2
+      '@asamuzakjp/css-color': 2.8.3
       rrweb-cssom: 0.8.0
 
   csstype@3.1.3: {}
@@ -38625,6 +38826,10 @@ snapshots:
     dependencies:
       ms: 2.1.3
 
+  debug@4.4.0:
+    dependencies:
+      ms: 2.1.3
+
   debug@4.4.0(supports-color@5.5.0):
     dependencies:
       ms: 2.1.3
@@ -38870,9 +39075,9 @@ snapshots:
     dependencies:
       esutils: 2.0.3
 
-  docusaurus-lunr-search@3.5.0(@docusaurus/core@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+  docusaurus-lunr-search@3.5.0(@docusaurus/core@3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10))(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
     dependencies:
-      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.6)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
+      '@docusaurus/core': 3.6.3(@mdx-js/react@3.0.1(@types/react@19.0.7)(react@18.3.1))(@swc/core@1.10.7(@swc/helpers@0.5.15))(acorn@8.14.0)(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)
       autocomplete.js: 0.37.1
       clsx: 1.2.1
       gauge: 3.0.2
@@ -39072,7 +39277,7 @@ snapshots:
     dependencies:
       jake: 10.9.2
 
-  electron-to-chromium@1.5.80: {}
+  electron-to-chromium@1.5.83: {}
 
   elliptic@6.5.4:
     dependencies:
@@ -39186,7 +39391,7 @@ snapshots:
       data-view-byte-offset: 1.0.1
       es-define-property: 1.0.1
       es-errors: 1.3.0
-      es-object-atoms: 1.0.0
+      es-object-atoms: 1.1.1
       es-set-tostringtag: 2.1.0
       es-to-primitive: 1.3.0
       function.prototype.name: 1.1.8
@@ -39253,7 +39458,7 @@ snapshots:
 
   es-module-lexer@1.6.0: {}
 
-  es-object-atoms@1.0.0:
+  es-object-atoms@1.1.1:
     dependencies:
       es-errors: 1.3.0
 
@@ -39706,7 +39911,7 @@ snapshots:
       ajv: 6.12.6
       chalk: 4.1.2
       cross-spawn: 7.0.6
-      debug: 4.4.0(supports-color@5.5.0)
+      debug: 4.4.0
       escape-string-regexp: 4.0.0
       eslint-scope: 8.2.0
       eslint-visitor-keys: 4.2.0
@@ -39815,7 +40020,7 @@ snapshots:
     dependencies:
       estraverse: 5.3.0
 
-  esrap@1.4.2:
+  esrap@1.4.3:
     dependencies:
       '@jridgewell/sourcemap-codec': 1.5.0
 
@@ -40174,7 +40379,7 @@ snapshots:
 
   extract-zip@2.0.1:
     dependencies:
-      debug: 4.4.0(supports-color@5.5.0)
+      debug: 4.3.4
       get-stream: 5.2.0
       yauzl: 2.10.0
     optionalDependencies:
@@ -40383,7 +40588,7 @@ snapshots:
       semver-regex: 4.0.5
       super-regex: 1.0.0
 
-  flash-sdk@2.25.3(@swc/core@1.10.7(@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):
+  flash-sdk@2.25.6(@swc/core@1.10.7(@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.27.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)
@@ -40433,6 +40638,8 @@ snapshots:
       async: 0.2.10
       which: 1.3.1
 
+  follow-redirects@1.15.9: {}
+
   follow-redirects@1.15.9(debug@4.3.7):
     optionalDependencies:
       debug: 4.3.7
@@ -40589,24 +40796,24 @@ snapshots:
   fsevents@2.3.3:
     optional: true
 
-  fuels@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)):
+  fuels@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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.37.0)):
     dependencies:
-      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
       '@fuel-ts/errors': 0.97.2
-      '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
       '@fuel-ts/interfaces': 0.97.2
       '@fuel-ts/math': 0.97.2
-      '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/recipes': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/script': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
-      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))
+      '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/recipes': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/script': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
+      '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.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.37.0))
       '@fuel-ts/versions': 0.97.2
       bundle-require: 5.1.0(esbuild@0.24.2)
       chalk: 4.1.2
@@ -40693,11 +40900,11 @@ snapshots:
     dependencies:
       is-property: 1.0.2
 
-  genlayer-js@0.4.7(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3))(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)(utf-8-validate@6.0.5)(zod@3.24.1):
+  genlayer-js@0.4.7(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3))(bufferutil@4.0.9)(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8):
     dependencies:
       eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.16.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.18.0(jiti@2.4.2))
       typescript-parsec: 0.3.4
-      viem: 2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)(zod@3.24.1)
+      viem: 2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.23.8)
     transitivePeerDependencies:
       - '@typescript-eslint/parser'
       - bufferutil
@@ -40724,7 +40931,7 @@ snapshots:
       call-bind-apply-helpers: 1.0.1
       es-define-property: 1.0.1
       es-errors: 1.3.0
-      es-object-atoms: 1.0.0
+      es-object-atoms: 1.1.1
       function-bind: 1.1.2
       get-proto: 1.0.1
       gopd: 1.2.0
@@ -40764,7 +40971,7 @@ snapshots:
   get-proto@1.0.1:
     dependencies:
       dunder-proto: 1.0.1
-      es-object-atoms: 1.0.0
+      es-object-atoms: 1.1.1
 
   get-stdin@9.0.0: {}
 
@@ -40997,6 +41204,16 @@ snapshots:
 
   google-protobuf@3.21.4: {}
 
+  google-sr-selectors@1.1.0: {}
+
+  google-sr@4.1.0:
+    dependencies:
+      axios: 1.7.9
+      cheerio: 1.0.0-rc.12
+      google-sr-selectors: 1.1.0
+    transitivePeerDependencies:
+      - debug
+
   gopd@1.2.0: {}
 
   got@11.8.6:
@@ -41085,7 +41302,7 @@ snapshots:
 
   groq-sdk@0.5.0(encoding@0.1.13):
     dependencies:
-      '@types/node': 18.19.70
+      '@types/node': 18.19.71
       '@types/node-fetch': 2.6.12
       abort-controller: 3.0.0
       agentkeepalive: 4.6.0
@@ -41510,7 +41727,7 @@ snapshots:
   http-proxy-agent@7.0.2:
     dependencies:
       agent-base: 7.1.3
-      debug: 4.4.0(supports-color@5.5.0)
+      debug: 4.4.0
     transitivePeerDependencies:
       - supports-color
 
@@ -41566,14 +41783,14 @@ snapshots:
   https-proxy-agent@5.0.1:
     dependencies:
       agent-base: 6.0.2
-      debug: 4.4.0(supports-color@5.5.0)
+      debug: 4.4.0
     transitivePeerDependencies:
       - supports-color
 
   https-proxy-agent@7.0.6:
     dependencies:
       agent-base: 7.1.3
-      debug: 4.4.0(supports-color@5.5.0)
+      debug: 4.4.0
     transitivePeerDependencies:
       - supports-color
 
@@ -41608,9 +41825,9 @@ snapshots:
     dependencies:
       safer-buffer: 2.1.2
 
-  icss-utils@5.1.0(postcss@8.5.0):
+  icss-utils@5.1.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
 
   idb-keyval@6.2.1: {}
 
@@ -42184,7 +42401,7 @@ snapshots:
 
   istanbul-lib-source-maps@4.0.1:
     dependencies:
-      debug: 4.4.0(supports-color@5.5.0)
+      debug: 4.4.0
       istanbul-lib-coverage: 3.2.2
       source-map: 0.6.1
     transitivePeerDependencies:
@@ -42208,7 +42425,7 @@ snapshots:
   iterator.prototype@1.1.5:
     dependencies:
       define-data-property: 1.1.4
-      es-object-atoms: 1.0.0
+      es-object-atoms: 1.1.1
       get-intrinsic: 1.2.7
       get-proto: 1.0.1
       has-symbols: 1.1.0
@@ -42301,16 +42518,35 @@ snapshots:
       - babel-plugin-macros
       - supports-color
 
-  jest-cli@29.7.0(@types/node@18.19.70)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3)):
+  jest-cli@29.7.0(@types/node@18.19.71)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.71)(typescript@5.6.3)):
     dependencies:
-      '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3))
+      '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.71)(typescript@5.6.3))
       '@jest/test-result': 29.7.0
       '@jest/types': 29.6.3
       chalk: 4.1.2
-      create-jest: 29.7.0(@types/node@18.19.70)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3))
+      create-jest: 29.7.0(@types/node@18.19.71)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.71)(typescript@5.6.3))
       exit: 0.1.2
       import-local: 3.2.0
-      jest-config: 29.7.0(@types/node@18.19.70)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3))
+      jest-config: 29.7.0(@types/node@18.19.71)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.71)(typescript@5.6.3))
+      jest-util: 29.7.0
+      jest-validate: 29.7.0
+      yargs: 17.7.2
+    transitivePeerDependencies:
+      - '@types/node'
+      - babel-plugin-macros
+      - supports-color
+      - ts-node
+
+  jest-cli@29.7.0(@types/node@20.17.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)):
+    dependencies:
+      '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+      '@jest/test-result': 29.7.0
+      '@jest/types': 29.6.3
+      chalk: 4.1.2
+      create-jest: 29.7.0(@types/node@20.17.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+      exit: 0.1.2
+      import-local: 3.2.0
+      jest-config: 29.7.0(@types/node@20.17.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
       jest-util: 29.7.0
       jest-validate: 29.7.0
       yargs: 17.7.2
@@ -42339,16 +42575,16 @@ snapshots:
       - supports-color
       - ts-node
 
-  jest-cli@29.7.0(@types/node@22.10.6)(babel-plugin-macros@3.1.0):
+  jest-cli@29.7.0(@types/node@22.10.7)(babel-plugin-macros@3.1.0):
     dependencies:
       '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3))
       '@jest/test-result': 29.7.0
       '@jest/types': 29.6.3
       chalk: 4.1.2
-      create-jest: 29.7.0(@types/node@22.10.6)(babel-plugin-macros@3.1.0)
+      create-jest: 29.7.0(@types/node@22.10.7)(babel-plugin-macros@3.1.0)
       exit: 0.1.2
       import-local: 3.2.0
-      jest-config: 29.7.0(@types/node@22.10.6)(babel-plugin-macros@3.1.0)
+      jest-config: 29.7.0(@types/node@22.10.7)(babel-plugin-macros@3.1.0)
       jest-util: 29.7.0
       jest-validate: 29.7.0
       yargs: 17.7.2
@@ -42377,7 +42613,7 @@ snapshots:
       - supports-color
       - ts-node
 
-  jest-config@29.7.0(@types/node@18.19.70)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3)):
+  jest-config@29.7.0(@types/node@18.19.71)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.71)(typescript@5.6.3)):
     dependencies:
       '@babel/core': 7.26.0
       '@jest/test-sequencer': 29.7.0
@@ -42402,13 +42638,13 @@ snapshots:
       slash: 3.0.0
       strip-json-comments: 3.1.1
     optionalDependencies:
-      '@types/node': 18.19.70
-      ts-node: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3)
+      '@types/node': 18.19.71
+      ts-node: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.71)(typescript@5.6.3)
     transitivePeerDependencies:
       - babel-plugin-macros
       - supports-color
 
-  jest-config@29.7.0(@types/node@20.17.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3)):
+  jest-config@29.7.0(@types/node@20.17.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.71)(typescript@5.6.3)):
     dependencies:
       '@babel/core': 7.26.0
       '@jest/test-sequencer': 29.7.0
@@ -42434,7 +42670,38 @@ snapshots:
       strip-json-comments: 3.1.1
     optionalDependencies:
       '@types/node': 20.17.9
-      ts-node: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3)
+      ts-node: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.71)(typescript@5.6.3)
+    transitivePeerDependencies:
+      - babel-plugin-macros
+      - supports-color
+
+  jest-config@29.7.0(@types/node@20.17.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)):
+    dependencies:
+      '@babel/core': 7.26.0
+      '@jest/test-sequencer': 29.7.0
+      '@jest/types': 29.6.3
+      babel-jest: 29.7.0(@babel/core@7.26.0)
+      chalk: 4.1.2
+      ci-info: 3.9.0
+      deepmerge: 4.3.1
+      glob: 7.2.3
+      graceful-fs: 4.2.11
+      jest-circus: 29.7.0(babel-plugin-macros@3.1.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.8
+      parse-json: 5.2.0
+      pretty-format: 29.7.0
+      slash: 3.0.0
+      strip-json-comments: 3.1.1
+    optionalDependencies:
+      '@types/node': 20.17.9
+      ts-node: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)
     transitivePeerDependencies:
       - babel-plugin-macros
       - supports-color
@@ -42501,7 +42768,7 @@ snapshots:
       - babel-plugin-macros
       - supports-color
 
-  jest-config@29.7.0(@types/node@22.10.6)(babel-plugin-macros@3.1.0):
+  jest-config@29.7.0(@types/node@22.10.7)(babel-plugin-macros@3.1.0):
     dependencies:
       '@babel/core': 7.26.0
       '@jest/test-sequencer': 29.7.0
@@ -42526,7 +42793,7 @@ snapshots:
       slash: 3.0.0
       strip-json-comments: 3.1.1
     optionalDependencies:
-      '@types/node': 22.10.6
+      '@types/node': 22.10.7
     transitivePeerDependencies:
       - babel-plugin-macros
       - supports-color
@@ -42783,12 +43050,24 @@ snapshots:
       merge-stream: 2.0.0
       supports-color: 8.1.1
 
-  jest@29.7.0(@types/node@18.19.70)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3)):
+  jest@29.7.0(@types/node@18.19.71)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.71)(typescript@5.6.3)):
     dependencies:
-      '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3))
+      '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.71)(typescript@5.6.3))
       '@jest/types': 29.6.3
       import-local: 3.2.0
-      jest-cli: 29.7.0(@types/node@18.19.70)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3))
+      jest-cli: 29.7.0(@types/node@18.19.71)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.71)(typescript@5.6.3))
+    transitivePeerDependencies:
+      - '@types/node'
+      - babel-plugin-macros
+      - supports-color
+      - ts-node
+
+  jest@29.7.0(@types/node@20.17.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)):
+    dependencies:
+      '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
+      '@jest/types': 29.6.3
+      import-local: 3.2.0
+      jest-cli: 29.7.0(@types/node@20.17.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
     transitivePeerDependencies:
       - '@types/node'
       - babel-plugin-macros
@@ -42807,12 +43086,12 @@ snapshots:
       - supports-color
       - ts-node
 
-  jest@29.7.0(@types/node@22.10.6)(babel-plugin-macros@3.1.0):
+  jest@29.7.0(@types/node@22.10.7)(babel-plugin-macros@3.1.0):
     dependencies:
       '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3))
       '@jest/types': 29.6.3
       import-local: 3.2.0
-      jest-cli: 29.7.0(@types/node@22.10.6)(babel-plugin-macros@3.1.0)
+      jest-cli: 29.7.0(@types/node@22.10.7)(babel-plugin-macros@3.1.0)
     transitivePeerDependencies:
       - '@types/node'
       - babel-plugin-macros
@@ -43196,7 +43475,7 @@ snapshots:
       zod-to-json-schema: 3.24.1(zod@3.23.8)
     optionalDependencies:
       '@langchain/groq': 0.1.3(@langchain/core@0.3.30(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)
-      axios: 1.7.9(debug@4.4.0)
+      axios: 1.7.9
       handlebars: 4.7.8
     transitivePeerDependencies:
       - encoding
@@ -43493,7 +43772,7 @@ snapshots:
   local-pkg@0.5.1:
     dependencies:
       mlly: 1.7.4
-      pkg-types: 1.3.0
+      pkg-types: 1.3.1
 
   locate-character@3.0.0: {}
 
@@ -44531,17 +44810,17 @@ snapshots:
 
   mkdist@1.6.0(typescript@5.7.3):
     dependencies:
-      autoprefixer: 10.4.20(postcss@8.5.0)
+      autoprefixer: 10.4.20(postcss@8.5.1)
       citty: 0.1.6
-      cssnano: 7.0.6(postcss@8.5.0)
+      cssnano: 7.0.6(postcss@8.5.1)
       defu: 6.1.4
       esbuild: 0.24.2
       jiti: 1.21.7
       mlly: 1.7.4
       pathe: 1.1.2
-      pkg-types: 1.3.0
-      postcss: 8.5.0
-      postcss-nested: 6.2.0(postcss@8.5.0)
+      pkg-types: 1.3.1
+      postcss: 8.5.1
+      postcss-nested: 6.2.0(postcss@8.5.1)
       semver: 7.6.3
       tinyglobby: 0.2.10
     optionalDependencies:
@@ -44551,7 +44830,7 @@ snapshots:
     dependencies:
       acorn: 8.14.0
       pathe: 2.0.1
-      pkg-types: 1.3.0
+      pkg-types: 1.3.1
       ufo: 1.5.4
 
   mock-socket@9.3.1: {}
@@ -44813,7 +45092,7 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  node-abi@3.71.0:
+  node-abi@3.73.0:
     dependencies:
       semver: 7.6.3
 
@@ -45105,7 +45384,7 @@ snapshots:
       '@yarnpkg/lockfile': 1.1.0
       '@yarnpkg/parsers': 3.0.0-rc.46
       '@zkochan/js-yaml': 0.0.7
-      axios: 1.7.9(debug@4.4.0)
+      axios: 1.7.9
       chalk: 4.1.0
       cli-cursor: 3.1.0
       cli-spinners: 2.6.1
@@ -45155,7 +45434,7 @@ snapshots:
       consola: 3.4.0
       execa: 8.0.1
       pathe: 1.1.2
-      pkg-types: 1.3.0
+      pkg-types: 1.3.1
       ufo: 1.5.4
 
   o3@1.0.3:
@@ -45182,7 +45461,7 @@ snapshots:
       call-bind: 1.0.8
       call-bound: 1.0.3
       define-properties: 1.2.1
-      es-object-atoms: 1.0.0
+      es-object-atoms: 1.1.1
       has-symbols: 1.1.0
       object-keys: 1.1.1
 
@@ -45190,14 +45469,14 @@ snapshots:
     dependencies:
       call-bind: 1.0.8
       define-properties: 1.2.1
-      es-object-atoms: 1.0.0
+      es-object-atoms: 1.1.1
 
   object.fromentries@2.0.8:
     dependencies:
       call-bind: 1.0.8
       define-properties: 1.2.1
       es-abstract: 1.23.9
-      es-object-atoms: 1.0.0
+      es-object-atoms: 1.1.1
 
   object.groupby@1.0.3:
     dependencies:
@@ -45210,7 +45489,7 @@ snapshots:
       call-bind: 1.0.8
       call-bound: 1.0.3
       define-properties: 1.2.1
-      es-object-atoms: 1.0.0
+      es-object-atoms: 1.1.1
 
   obuf@1.1.2: {}
 
@@ -45243,14 +45522,6 @@ snapshots:
     optionalDependencies:
       zod: 3.23.8
 
-  ollama-ai-provider@0.16.1(zod@3.24.1):
-    dependencies:
-      '@ai-sdk/provider': 0.0.26
-      '@ai-sdk/provider-utils': 1.0.22(zod@3.24.1)
-      partial-json: 0.1.7
-    optionalDependencies:
-      zod: 3.24.1
-
   omggif@1.0.10: {}
 
   on-exit-leak-free@0.2.0: {}
@@ -45277,7 +45548,7 @@ snapshots:
     dependencies:
       mimic-function: 5.0.1
 
-  oniguruma-to-es@1.0.0:
+  oniguruma-to-es@2.0.0:
     dependencies:
       emoji-regex-xs: 1.0.0
       regex: 5.1.1
@@ -45305,6 +45576,18 @@ snapshots:
       platform: 1.3.6
       protobufjs: 7.4.0
 
+  open-jsonrpc-provider@0.2.1(bufferutil@4.0.9)(utf-8-validate@5.0.10):
+    dependencies:
+      axios: 0.27.2
+      reconnecting-websocket: 4.4.0
+      websocket: 1.0.35
+      ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+    transitivePeerDependencies:
+      - bufferutil
+      - debug
+      - supports-color
+      - utf-8-validate
+
   open-jsonrpc-provider@0.2.1(bufferutil@4.0.9)(utf-8-validate@6.0.5):
     dependencies:
       axios: 0.27.2
@@ -45325,7 +45608,7 @@ snapshots:
 
   openai@4.73.0(encoding@0.1.13)(zod@3.23.8):
     dependencies:
-      '@types/node': 18.19.70
+      '@types/node': 18.19.71
       '@types/node-fetch': 2.6.12
       abort-controller: 3.0.0
       agentkeepalive: 4.6.0
@@ -45339,7 +45622,7 @@ snapshots:
 
   openai@4.73.0(encoding@0.1.13)(zod@3.24.1):
     dependencies:
-      '@types/node': 18.19.70
+      '@types/node': 18.19.71
       '@types/node-fetch': 2.6.12
       abort-controller: 3.0.0
       agentkeepalive: 4.6.0
@@ -45353,7 +45636,7 @@ snapshots:
 
   openai@4.78.1(encoding@0.1.13)(zod@3.23.8):
     dependencies:
-      '@types/node': 18.19.70
+      '@types/node': 18.19.71
       '@types/node-fetch': 2.6.12
       abort-controller: 3.0.0
       agentkeepalive: 4.6.0
@@ -45367,7 +45650,7 @@ snapshots:
 
   openai@4.78.1(encoding@0.1.13)(zod@3.24.1):
     dependencies:
-      '@types/node': 18.19.70
+      '@types/node': 18.19.71
       '@types/node-fetch': 2.6.12
       abort-controller: 3.0.0
       agentkeepalive: 4.6.0
@@ -45446,8 +45729,8 @@ snapshots:
   ox@0.4.2(typescript@5.7.3)(zod@3.24.1):
     dependencies:
       '@adraffy/ens-normalize': 1.11.0
-      '@noble/curves': 1.8.0
-      '@noble/hashes': 1.7.0
+      '@noble/curves': 1.7.0
+      '@noble/hashes': 1.6.1
       '@scure/bip32': 1.6.1
       '@scure/bip39': 1.5.1
       abitype: 1.0.7(typescript@5.7.3)(zod@3.24.1)
@@ -45457,14 +45740,14 @@ snapshots:
     transitivePeerDependencies:
       - zod
 
-  ox@0.4.4(typescript@5.6.3)(zod@3.24.1):
+  ox@0.4.4(typescript@5.6.3)(zod@3.23.8):
     dependencies:
       '@adraffy/ens-normalize': 1.11.0
       '@noble/curves': 1.7.0
       '@noble/hashes': 1.6.1
       '@scure/bip32': 1.6.0
       '@scure/bip39': 1.5.0
-      abitype: 1.0.7(typescript@5.6.3)(zod@3.24.1)
+      abitype: 1.0.7(typescript@5.6.3)(zod@3.23.8)
       eventemitter3: 5.0.1
     optionalDependencies:
       typescript: 5.6.3
@@ -45932,11 +46215,11 @@ snapshots:
     dependencies:
       find-up: 6.3.0
 
-  pkg-types@1.3.0:
+  pkg-types@1.3.1:
     dependencies:
       confbox: 0.1.8
       mlly: 1.7.4
-      pathe: 1.1.2
+      pathe: 2.0.1
 
   pkg-up@3.1.0:
     dependencies:
@@ -46065,29 +46348,29 @@ snapshots:
 
   possible-typed-array-names@1.0.0: {}
 
-  postcss-attribute-case-insensitive@7.0.1(postcss@8.5.0):
+  postcss-attribute-case-insensitive@7.0.1(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-selector-parser: 7.0.0
 
-  postcss-calc@10.1.0(postcss@8.5.0):
+  postcss-calc@10.1.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-selector-parser: 7.0.0
       postcss-value-parser: 4.2.0
 
-  postcss-calc@9.0.1(postcss@8.5.0):
+  postcss-calc@9.0.1(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-selector-parser: 6.1.2
       postcss-value-parser: 4.2.0
 
-  postcss-clamp@4.1.0(postcss@8.5.0):
+  postcss-clamp@4.1.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-cli@11.0.0(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2):
+  postcss-cli@11.0.0(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2):
     dependencies:
       chokidar: 3.6.0
       dependency-graph: 0.11.0
@@ -46095,9 +46378,9 @@ snapshots:
       get-stdin: 9.0.0
       globby: 14.0.2
       picocolors: 1.1.1
-      postcss: 8.5.0
-      postcss-load-config: 5.1.0(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)
-      postcss-reporter: 7.1.0(postcss@8.5.0)
+      postcss: 8.5.1
+      postcss-load-config: 5.1.0(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)
+      postcss-reporter: 7.1.0(postcss@8.5.1)
       pretty-hrtime: 1.0.3
       read-cache: 1.0.0
       slash: 5.1.0
@@ -46106,564 +46389,564 @@ snapshots:
       - jiti
       - tsx
 
-  postcss-color-functional-notation@7.0.7(postcss@8.5.0):
+  postcss-color-functional-notation@7.0.7(postcss@8.5.1):
     dependencies:
       '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-tokenizer': 3.0.3
-      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.0)
-      '@csstools/utilities': 2.0.0(postcss@8.5.0)
-      postcss: 8.5.0
+      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1)
+      '@csstools/utilities': 2.0.0(postcss@8.5.1)
+      postcss: 8.5.1
 
-  postcss-color-hex-alpha@10.0.0(postcss@8.5.0):
+  postcss-color-hex-alpha@10.0.0(postcss@8.5.1):
     dependencies:
-      '@csstools/utilities': 2.0.0(postcss@8.5.0)
-      postcss: 8.5.0
+      '@csstools/utilities': 2.0.0(postcss@8.5.1)
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-color-rebeccapurple@10.0.0(postcss@8.5.0):
+  postcss-color-rebeccapurple@10.0.0(postcss@8.5.1):
     dependencies:
-      '@csstools/utilities': 2.0.0(postcss@8.5.0)
-      postcss: 8.5.0
+      '@csstools/utilities': 2.0.0(postcss@8.5.1)
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-colormin@6.1.0(postcss@8.5.0):
+  postcss-colormin@6.1.0(postcss@8.5.1):
     dependencies:
       browserslist: 4.24.4
       caniuse-api: 3.0.0
       colord: 2.9.3
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-colormin@7.0.2(postcss@8.5.0):
+  postcss-colormin@7.0.2(postcss@8.5.1):
     dependencies:
       browserslist: 4.24.4
       caniuse-api: 3.0.0
       colord: 2.9.3
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-convert-values@6.1.0(postcss@8.5.0):
+  postcss-convert-values@6.1.0(postcss@8.5.1):
     dependencies:
       browserslist: 4.24.4
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-convert-values@7.0.4(postcss@8.5.0):
+  postcss-convert-values@7.0.4(postcss@8.5.1):
     dependencies:
       browserslist: 4.24.4
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-custom-media@11.0.5(postcss@8.5.0):
+  postcss-custom-media@11.0.5(postcss@8.5.1):
     dependencies:
       '@csstools/cascade-layer-name-parser': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-tokenizer': 3.0.3
       '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  postcss-custom-properties@14.0.4(postcss@8.5.0):
+  postcss-custom-properties@14.0.4(postcss@8.5.1):
     dependencies:
       '@csstools/cascade-layer-name-parser': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-tokenizer': 3.0.3
-      '@csstools/utilities': 2.0.0(postcss@8.5.0)
-      postcss: 8.5.0
+      '@csstools/utilities': 2.0.0(postcss@8.5.1)
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-custom-selectors@8.0.4(postcss@8.5.0):
+  postcss-custom-selectors@8.0.4(postcss@8.5.1):
     dependencies:
       '@csstools/cascade-layer-name-parser': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-tokenizer': 3.0.3
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-selector-parser: 7.0.0
 
-  postcss-dir-pseudo-class@9.0.1(postcss@8.5.0):
+  postcss-dir-pseudo-class@9.0.1(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-selector-parser: 7.0.0
 
-  postcss-discard-comments@6.0.2(postcss@8.5.0):
+  postcss-discard-comments@6.0.2(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  postcss-discard-comments@7.0.3(postcss@8.5.0):
+  postcss-discard-comments@7.0.3(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-selector-parser: 6.1.2
 
-  postcss-discard-duplicates@6.0.3(postcss@8.5.0):
+  postcss-discard-duplicates@6.0.3(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  postcss-discard-duplicates@7.0.1(postcss@8.5.0):
+  postcss-discard-duplicates@7.0.1(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  postcss-discard-empty@6.0.3(postcss@8.5.0):
+  postcss-discard-empty@6.0.3(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  postcss-discard-empty@7.0.0(postcss@8.5.0):
+  postcss-discard-empty@7.0.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  postcss-discard-overridden@6.0.2(postcss@8.5.0):
+  postcss-discard-overridden@6.0.2(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  postcss-discard-overridden@7.0.0(postcss@8.5.0):
+  postcss-discard-overridden@7.0.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  postcss-discard-unused@6.0.5(postcss@8.5.0):
+  postcss-discard-unused@6.0.5(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-selector-parser: 6.1.2
 
-  postcss-double-position-gradients@6.0.0(postcss@8.5.0):
+  postcss-double-position-gradients@6.0.0(postcss@8.5.1):
     dependencies:
-      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.0)
-      '@csstools/utilities': 2.0.0(postcss@8.5.0)
-      postcss: 8.5.0
+      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1)
+      '@csstools/utilities': 2.0.0(postcss@8.5.1)
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-focus-visible@10.0.1(postcss@8.5.0):
+  postcss-focus-visible@10.0.1(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-selector-parser: 7.0.0
 
-  postcss-focus-within@9.0.1(postcss@8.5.0):
+  postcss-focus-within@9.0.1(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-selector-parser: 7.0.0
 
-  postcss-font-variant@5.0.0(postcss@8.5.0):
+  postcss-font-variant@5.0.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  postcss-gap-properties@6.0.0(postcss@8.5.0):
+  postcss-gap-properties@6.0.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  postcss-image-set-function@7.0.0(postcss@8.5.0):
+  postcss-image-set-function@7.0.0(postcss@8.5.1):
     dependencies:
-      '@csstools/utilities': 2.0.0(postcss@8.5.0)
-      postcss: 8.5.0
+      '@csstools/utilities': 2.0.0(postcss@8.5.1)
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-import@15.1.0(postcss@8.5.0):
+  postcss-import@15.1.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
       read-cache: 1.0.0
       resolve: 1.22.10
 
-  postcss-js@4.0.1(postcss@8.5.0):
+  postcss-js@4.0.1(postcss@8.5.1):
     dependencies:
       camelcase-css: 2.0.1
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  postcss-lab-function@7.0.7(postcss@8.5.0):
+  postcss-lab-function@7.0.7(postcss@8.5.1):
     dependencies:
       '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
       '@csstools/css-tokenizer': 3.0.3
-      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.0)
-      '@csstools/utilities': 2.0.0(postcss@8.5.0)
-      postcss: 8.5.0
+      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1)
+      '@csstools/utilities': 2.0.0(postcss@8.5.1)
+      postcss: 8.5.1
 
-  postcss-load-config@4.0.2(postcss@8.5.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.6)(typescript@5.6.3)):
+  postcss-load-config@4.0.2(postcss@8.5.1)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.7)(typescript@5.6.3)):
     dependencies:
       lilconfig: 3.1.3
       yaml: 2.7.0
     optionalDependencies:
-      postcss: 8.5.0
-      ts-node: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.6)(typescript@5.6.3)
+      postcss: 8.5.1
+      ts-node: 10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.7)(typescript@5.6.3)
 
-  postcss-load-config@5.1.0(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2):
+  postcss-load-config@5.1.0(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2):
     dependencies:
       lilconfig: 3.1.3
       yaml: 2.7.0
     optionalDependencies:
       jiti: 2.4.2
-      postcss: 8.5.0
+      postcss: 8.5.1
       tsx: 4.19.2
 
-  postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(yaml@2.7.0):
+  postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(yaml@2.7.0):
     dependencies:
       lilconfig: 3.1.3
     optionalDependencies:
       jiti: 2.4.2
-      postcss: 8.5.0
+      postcss: 8.5.1
       tsx: 4.19.2
       yaml: 2.7.0
 
-  postcss-loader@7.3.4(postcss@8.5.0)(typescript@5.7.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
+  postcss-loader@7.3.4(postcss@8.5.1)(typescript@5.7.3)(webpack@5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))):
     dependencies:
       cosmiconfig: 8.3.6(typescript@5.7.3)
       jiti: 1.21.7
-      postcss: 8.5.0
+      postcss: 8.5.1
       semver: 7.6.3
       webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
     transitivePeerDependencies:
       - typescript
 
-  postcss-logical@8.0.0(postcss@8.5.0):
+  postcss-logical@8.0.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-merge-idents@6.0.3(postcss@8.5.0):
+  postcss-merge-idents@6.0.3(postcss@8.5.1):
     dependencies:
-      cssnano-utils: 4.0.2(postcss@8.5.0)
-      postcss: 8.5.0
+      cssnano-utils: 4.0.2(postcss@8.5.1)
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-merge-longhand@6.0.5(postcss@8.5.0):
+  postcss-merge-longhand@6.0.5(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
-      stylehacks: 6.1.1(postcss@8.5.0)
+      stylehacks: 6.1.1(postcss@8.5.1)
 
-  postcss-merge-longhand@7.0.4(postcss@8.5.0):
+  postcss-merge-longhand@7.0.4(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
-      stylehacks: 7.0.4(postcss@8.5.0)
+      stylehacks: 7.0.4(postcss@8.5.1)
 
-  postcss-merge-rules@6.1.1(postcss@8.5.0):
+  postcss-merge-rules@6.1.1(postcss@8.5.1):
     dependencies:
       browserslist: 4.24.4
       caniuse-api: 3.0.0
-      cssnano-utils: 4.0.2(postcss@8.5.0)
-      postcss: 8.5.0
+      cssnano-utils: 4.0.2(postcss@8.5.1)
+      postcss: 8.5.1
       postcss-selector-parser: 6.1.2
 
-  postcss-merge-rules@7.0.4(postcss@8.5.0):
+  postcss-merge-rules@7.0.4(postcss@8.5.1):
     dependencies:
       browserslist: 4.24.4
       caniuse-api: 3.0.0
-      cssnano-utils: 5.0.0(postcss@8.5.0)
-      postcss: 8.5.0
+      cssnano-utils: 5.0.0(postcss@8.5.1)
+      postcss: 8.5.1
       postcss-selector-parser: 6.1.2
 
-  postcss-minify-font-values@6.1.0(postcss@8.5.0):
+  postcss-minify-font-values@6.1.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-minify-font-values@7.0.0(postcss@8.5.0):
+  postcss-minify-font-values@7.0.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-minify-gradients@6.0.3(postcss@8.5.0):
+  postcss-minify-gradients@6.0.3(postcss@8.5.1):
     dependencies:
       colord: 2.9.3
-      cssnano-utils: 4.0.2(postcss@8.5.0)
-      postcss: 8.5.0
+      cssnano-utils: 4.0.2(postcss@8.5.1)
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-minify-gradients@7.0.0(postcss@8.5.0):
+  postcss-minify-gradients@7.0.0(postcss@8.5.1):
     dependencies:
       colord: 2.9.3
-      cssnano-utils: 5.0.0(postcss@8.5.0)
-      postcss: 8.5.0
+      cssnano-utils: 5.0.0(postcss@8.5.1)
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-minify-params@6.1.0(postcss@8.5.0):
+  postcss-minify-params@6.1.0(postcss@8.5.1):
     dependencies:
       browserslist: 4.24.4
-      cssnano-utils: 4.0.2(postcss@8.5.0)
-      postcss: 8.5.0
+      cssnano-utils: 4.0.2(postcss@8.5.1)
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-minify-params@7.0.2(postcss@8.5.0):
+  postcss-minify-params@7.0.2(postcss@8.5.1):
     dependencies:
       browserslist: 4.24.4
-      cssnano-utils: 5.0.0(postcss@8.5.0)
-      postcss: 8.5.0
+      cssnano-utils: 5.0.0(postcss@8.5.1)
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-minify-selectors@6.0.4(postcss@8.5.0):
+  postcss-minify-selectors@6.0.4(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-selector-parser: 6.1.2
 
-  postcss-minify-selectors@7.0.4(postcss@8.5.0):
+  postcss-minify-selectors@7.0.4(postcss@8.5.1):
     dependencies:
       cssesc: 3.0.0
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-selector-parser: 6.1.2
 
-  postcss-modules-extract-imports@3.1.0(postcss@8.5.0):
+  postcss-modules-extract-imports@3.1.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  postcss-modules-local-by-default@4.2.0(postcss@8.5.0):
+  postcss-modules-local-by-default@4.2.0(postcss@8.5.1):
     dependencies:
-      icss-utils: 5.1.0(postcss@8.5.0)
-      postcss: 8.5.0
+      icss-utils: 5.1.0(postcss@8.5.1)
+      postcss: 8.5.1
       postcss-selector-parser: 7.0.0
       postcss-value-parser: 4.2.0
 
-  postcss-modules-scope@3.2.1(postcss@8.5.0):
+  postcss-modules-scope@3.2.1(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-selector-parser: 7.0.0
 
-  postcss-modules-values@4.0.0(postcss@8.5.0):
+  postcss-modules-values@4.0.0(postcss@8.5.1):
     dependencies:
-      icss-utils: 5.1.0(postcss@8.5.0)
-      postcss: 8.5.0
+      icss-utils: 5.1.0(postcss@8.5.1)
+      postcss: 8.5.1
 
-  postcss-nested@6.2.0(postcss@8.5.0):
+  postcss-nested@6.2.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-selector-parser: 6.1.2
 
-  postcss-nesting@13.0.1(postcss@8.5.0):
+  postcss-nesting@13.0.1(postcss@8.5.1):
     dependencies:
       '@csstools/selector-resolve-nested': 3.0.0(postcss-selector-parser@7.0.0)
       '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0)
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-selector-parser: 7.0.0
 
-  postcss-normalize-charset@6.0.2(postcss@8.5.0):
+  postcss-normalize-charset@6.0.2(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  postcss-normalize-charset@7.0.0(postcss@8.5.0):
+  postcss-normalize-charset@7.0.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  postcss-normalize-display-values@6.0.2(postcss@8.5.0):
+  postcss-normalize-display-values@6.0.2(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-normalize-display-values@7.0.0(postcss@8.5.0):
+  postcss-normalize-display-values@7.0.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-normalize-positions@6.0.2(postcss@8.5.0):
+  postcss-normalize-positions@6.0.2(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-normalize-positions@7.0.0(postcss@8.5.0):
+  postcss-normalize-positions@7.0.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-normalize-repeat-style@6.0.2(postcss@8.5.0):
+  postcss-normalize-repeat-style@6.0.2(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-normalize-repeat-style@7.0.0(postcss@8.5.0):
+  postcss-normalize-repeat-style@7.0.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-normalize-string@6.0.2(postcss@8.5.0):
+  postcss-normalize-string@6.0.2(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-normalize-string@7.0.0(postcss@8.5.0):
+  postcss-normalize-string@7.0.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-normalize-timing-functions@6.0.2(postcss@8.5.0):
+  postcss-normalize-timing-functions@6.0.2(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-normalize-timing-functions@7.0.0(postcss@8.5.0):
+  postcss-normalize-timing-functions@7.0.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-normalize-unicode@6.1.0(postcss@8.5.0):
+  postcss-normalize-unicode@6.1.0(postcss@8.5.1):
     dependencies:
       browserslist: 4.24.4
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-normalize-unicode@7.0.2(postcss@8.5.0):
+  postcss-normalize-unicode@7.0.2(postcss@8.5.1):
     dependencies:
       browserslist: 4.24.4
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-normalize-url@6.0.2(postcss@8.5.0):
+  postcss-normalize-url@6.0.2(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-normalize-url@7.0.0(postcss@8.5.0):
+  postcss-normalize-url@7.0.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-normalize-whitespace@6.0.2(postcss@8.5.0):
+  postcss-normalize-whitespace@6.0.2(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-normalize-whitespace@7.0.0(postcss@8.5.0):
+  postcss-normalize-whitespace@7.0.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-opacity-percentage@3.0.0(postcss@8.5.0):
+  postcss-opacity-percentage@3.0.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  postcss-ordered-values@6.0.2(postcss@8.5.0):
+  postcss-ordered-values@6.0.2(postcss@8.5.1):
     dependencies:
-      cssnano-utils: 4.0.2(postcss@8.5.0)
-      postcss: 8.5.0
+      cssnano-utils: 4.0.2(postcss@8.5.1)
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-ordered-values@7.0.1(postcss@8.5.0):
+  postcss-ordered-values@7.0.1(postcss@8.5.1):
     dependencies:
-      cssnano-utils: 5.0.0(postcss@8.5.0)
-      postcss: 8.5.0
+      cssnano-utils: 5.0.0(postcss@8.5.1)
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-overflow-shorthand@6.0.0(postcss@8.5.0):
+  postcss-overflow-shorthand@6.0.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-page-break@3.0.4(postcss@8.5.0):
+  postcss-page-break@3.0.4(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  postcss-place@10.0.0(postcss@8.5.0):
+  postcss-place@10.0.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-preset-env@10.1.3(postcss@8.5.0):
-    dependencies:
-      '@csstools/postcss-cascade-layers': 5.0.1(postcss@8.5.0)
-      '@csstools/postcss-color-function': 4.0.7(postcss@8.5.0)
-      '@csstools/postcss-color-mix-function': 3.0.7(postcss@8.5.0)
-      '@csstools/postcss-content-alt-text': 2.0.4(postcss@8.5.0)
-      '@csstools/postcss-exponential-functions': 2.0.6(postcss@8.5.0)
-      '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.5.0)
-      '@csstools/postcss-gamut-mapping': 2.0.7(postcss@8.5.0)
-      '@csstools/postcss-gradients-interpolation-method': 5.0.7(postcss@8.5.0)
-      '@csstools/postcss-hwb-function': 4.0.7(postcss@8.5.0)
-      '@csstools/postcss-ic-unit': 4.0.0(postcss@8.5.0)
-      '@csstools/postcss-initial': 2.0.0(postcss@8.5.0)
-      '@csstools/postcss-is-pseudo-class': 5.0.1(postcss@8.5.0)
-      '@csstools/postcss-light-dark-function': 2.0.7(postcss@8.5.0)
-      '@csstools/postcss-logical-float-and-clear': 3.0.0(postcss@8.5.0)
-      '@csstools/postcss-logical-overflow': 2.0.0(postcss@8.5.0)
-      '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.5.0)
-      '@csstools/postcss-logical-resize': 3.0.0(postcss@8.5.0)
-      '@csstools/postcss-logical-viewport-units': 3.0.3(postcss@8.5.0)
-      '@csstools/postcss-media-minmax': 2.0.6(postcss@8.5.0)
-      '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.4(postcss@8.5.0)
-      '@csstools/postcss-nested-calc': 4.0.0(postcss@8.5.0)
-      '@csstools/postcss-normalize-display-values': 4.0.0(postcss@8.5.0)
-      '@csstools/postcss-oklab-function': 4.0.7(postcss@8.5.0)
-      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.0)
-      '@csstools/postcss-random-function': 1.0.2(postcss@8.5.0)
-      '@csstools/postcss-relative-color-syntax': 3.0.7(postcss@8.5.0)
-      '@csstools/postcss-scope-pseudo-class': 4.0.1(postcss@8.5.0)
-      '@csstools/postcss-sign-functions': 1.1.1(postcss@8.5.0)
-      '@csstools/postcss-stepped-value-functions': 4.0.6(postcss@8.5.0)
-      '@csstools/postcss-text-decoration-shorthand': 4.0.1(postcss@8.5.0)
-      '@csstools/postcss-trigonometric-functions': 4.0.6(postcss@8.5.0)
-      '@csstools/postcss-unset-value': 4.0.0(postcss@8.5.0)
-      autoprefixer: 10.4.20(postcss@8.5.0)
+  postcss-preset-env@10.1.3(postcss@8.5.1):
+    dependencies:
+      '@csstools/postcss-cascade-layers': 5.0.1(postcss@8.5.1)
+      '@csstools/postcss-color-function': 4.0.7(postcss@8.5.1)
+      '@csstools/postcss-color-mix-function': 3.0.7(postcss@8.5.1)
+      '@csstools/postcss-content-alt-text': 2.0.4(postcss@8.5.1)
+      '@csstools/postcss-exponential-functions': 2.0.6(postcss@8.5.1)
+      '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.5.1)
+      '@csstools/postcss-gamut-mapping': 2.0.7(postcss@8.5.1)
+      '@csstools/postcss-gradients-interpolation-method': 5.0.7(postcss@8.5.1)
+      '@csstools/postcss-hwb-function': 4.0.7(postcss@8.5.1)
+      '@csstools/postcss-ic-unit': 4.0.0(postcss@8.5.1)
+      '@csstools/postcss-initial': 2.0.0(postcss@8.5.1)
+      '@csstools/postcss-is-pseudo-class': 5.0.1(postcss@8.5.1)
+      '@csstools/postcss-light-dark-function': 2.0.7(postcss@8.5.1)
+      '@csstools/postcss-logical-float-and-clear': 3.0.0(postcss@8.5.1)
+      '@csstools/postcss-logical-overflow': 2.0.0(postcss@8.5.1)
+      '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.5.1)
+      '@csstools/postcss-logical-resize': 3.0.0(postcss@8.5.1)
+      '@csstools/postcss-logical-viewport-units': 3.0.3(postcss@8.5.1)
+      '@csstools/postcss-media-minmax': 2.0.6(postcss@8.5.1)
+      '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.4(postcss@8.5.1)
+      '@csstools/postcss-nested-calc': 4.0.0(postcss@8.5.1)
+      '@csstools/postcss-normalize-display-values': 4.0.0(postcss@8.5.1)
+      '@csstools/postcss-oklab-function': 4.0.7(postcss@8.5.1)
+      '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.1)
+      '@csstools/postcss-random-function': 1.0.2(postcss@8.5.1)
+      '@csstools/postcss-relative-color-syntax': 3.0.7(postcss@8.5.1)
+      '@csstools/postcss-scope-pseudo-class': 4.0.1(postcss@8.5.1)
+      '@csstools/postcss-sign-functions': 1.1.1(postcss@8.5.1)
+      '@csstools/postcss-stepped-value-functions': 4.0.6(postcss@8.5.1)
+      '@csstools/postcss-text-decoration-shorthand': 4.0.1(postcss@8.5.1)
+      '@csstools/postcss-trigonometric-functions': 4.0.6(postcss@8.5.1)
+      '@csstools/postcss-unset-value': 4.0.0(postcss@8.5.1)
+      autoprefixer: 10.4.20(postcss@8.5.1)
       browserslist: 4.24.4
-      css-blank-pseudo: 7.0.1(postcss@8.5.0)
-      css-has-pseudo: 7.0.2(postcss@8.5.0)
-      css-prefers-color-scheme: 10.0.0(postcss@8.5.0)
+      css-blank-pseudo: 7.0.1(postcss@8.5.1)
+      css-has-pseudo: 7.0.2(postcss@8.5.1)
+      css-prefers-color-scheme: 10.0.0(postcss@8.5.1)
       cssdb: 8.2.3
-      postcss: 8.5.0
-      postcss-attribute-case-insensitive: 7.0.1(postcss@8.5.0)
-      postcss-clamp: 4.1.0(postcss@8.5.0)
-      postcss-color-functional-notation: 7.0.7(postcss@8.5.0)
-      postcss-color-hex-alpha: 10.0.0(postcss@8.5.0)
-      postcss-color-rebeccapurple: 10.0.0(postcss@8.5.0)
-      postcss-custom-media: 11.0.5(postcss@8.5.0)
-      postcss-custom-properties: 14.0.4(postcss@8.5.0)
-      postcss-custom-selectors: 8.0.4(postcss@8.5.0)
-      postcss-dir-pseudo-class: 9.0.1(postcss@8.5.0)
-      postcss-double-position-gradients: 6.0.0(postcss@8.5.0)
-      postcss-focus-visible: 10.0.1(postcss@8.5.0)
-      postcss-focus-within: 9.0.1(postcss@8.5.0)
-      postcss-font-variant: 5.0.0(postcss@8.5.0)
-      postcss-gap-properties: 6.0.0(postcss@8.5.0)
-      postcss-image-set-function: 7.0.0(postcss@8.5.0)
-      postcss-lab-function: 7.0.7(postcss@8.5.0)
-      postcss-logical: 8.0.0(postcss@8.5.0)
-      postcss-nesting: 13.0.1(postcss@8.5.0)
-      postcss-opacity-percentage: 3.0.0(postcss@8.5.0)
-      postcss-overflow-shorthand: 6.0.0(postcss@8.5.0)
-      postcss-page-break: 3.0.4(postcss@8.5.0)
-      postcss-place: 10.0.0(postcss@8.5.0)
-      postcss-pseudo-class-any-link: 10.0.1(postcss@8.5.0)
-      postcss-replace-overflow-wrap: 4.0.0(postcss@8.5.0)
-      postcss-selector-not: 8.0.1(postcss@8.5.0)
-
-  postcss-pseudo-class-any-link@10.0.1(postcss@8.5.0):
-    dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
+      postcss-attribute-case-insensitive: 7.0.1(postcss@8.5.1)
+      postcss-clamp: 4.1.0(postcss@8.5.1)
+      postcss-color-functional-notation: 7.0.7(postcss@8.5.1)
+      postcss-color-hex-alpha: 10.0.0(postcss@8.5.1)
+      postcss-color-rebeccapurple: 10.0.0(postcss@8.5.1)
+      postcss-custom-media: 11.0.5(postcss@8.5.1)
+      postcss-custom-properties: 14.0.4(postcss@8.5.1)
+      postcss-custom-selectors: 8.0.4(postcss@8.5.1)
+      postcss-dir-pseudo-class: 9.0.1(postcss@8.5.1)
+      postcss-double-position-gradients: 6.0.0(postcss@8.5.1)
+      postcss-focus-visible: 10.0.1(postcss@8.5.1)
+      postcss-focus-within: 9.0.1(postcss@8.5.1)
+      postcss-font-variant: 5.0.0(postcss@8.5.1)
+      postcss-gap-properties: 6.0.0(postcss@8.5.1)
+      postcss-image-set-function: 7.0.0(postcss@8.5.1)
+      postcss-lab-function: 7.0.7(postcss@8.5.1)
+      postcss-logical: 8.0.0(postcss@8.5.1)
+      postcss-nesting: 13.0.1(postcss@8.5.1)
+      postcss-opacity-percentage: 3.0.0(postcss@8.5.1)
+      postcss-overflow-shorthand: 6.0.0(postcss@8.5.1)
+      postcss-page-break: 3.0.4(postcss@8.5.1)
+      postcss-place: 10.0.0(postcss@8.5.1)
+      postcss-pseudo-class-any-link: 10.0.1(postcss@8.5.1)
+      postcss-replace-overflow-wrap: 4.0.0(postcss@8.5.1)
+      postcss-selector-not: 8.0.1(postcss@8.5.1)
+
+  postcss-pseudo-class-any-link@10.0.1(postcss@8.5.1):
+    dependencies:
+      postcss: 8.5.1
       postcss-selector-parser: 7.0.0
 
-  postcss-reduce-idents@6.0.3(postcss@8.5.0):
+  postcss-reduce-idents@6.0.3(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-reduce-initial@6.1.0(postcss@8.5.0):
+  postcss-reduce-initial@6.1.0(postcss@8.5.1):
     dependencies:
       browserslist: 4.24.4
       caniuse-api: 3.0.0
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  postcss-reduce-initial@7.0.2(postcss@8.5.0):
+  postcss-reduce-initial@7.0.2(postcss@8.5.1):
     dependencies:
       browserslist: 4.24.4
       caniuse-api: 3.0.0
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  postcss-reduce-transforms@6.0.2(postcss@8.5.0):
+  postcss-reduce-transforms@6.0.2(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-reduce-transforms@7.0.0(postcss@8.5.0):
+  postcss-reduce-transforms@7.0.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
 
-  postcss-replace-overflow-wrap@4.0.0(postcss@8.5.0):
+  postcss-replace-overflow-wrap@4.0.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  postcss-reporter@7.1.0(postcss@8.5.0):
+  postcss-reporter@7.1.0(postcss@8.5.1):
     dependencies:
       picocolors: 1.1.1
-      postcss: 8.5.0
+      postcss: 8.5.1
       thenby: 1.3.4
 
-  postcss-selector-not@8.0.1(postcss@8.5.0):
+  postcss-selector-not@8.0.1(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-selector-parser: 7.0.0
 
   postcss-selector-parser@6.1.2:
@@ -46676,40 +46959,40 @@ snapshots:
       cssesc: 3.0.0
       util-deprecate: 1.0.2
 
-  postcss-sort-media-queries@5.2.0(postcss@8.5.0):
+  postcss-sort-media-queries@5.2.0(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       sort-css-media-queries: 2.2.0
 
-  postcss-svgo@6.0.3(postcss@8.5.0):
+  postcss-svgo@6.0.3(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
       svgo: 3.3.2
 
-  postcss-svgo@7.0.1(postcss@8.5.0):
+  postcss-svgo@7.0.1(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-value-parser: 4.2.0
       svgo: 3.3.2
 
-  postcss-unique-selectors@6.0.4(postcss@8.5.0):
+  postcss-unique-selectors@6.0.4(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-selector-parser: 6.1.2
 
-  postcss-unique-selectors@7.0.3(postcss@8.5.0):
+  postcss-unique-selectors@7.0.3(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-selector-parser: 6.1.2
 
   postcss-value-parser@4.2.0: {}
 
-  postcss-zindex@6.0.2(postcss@8.5.0):
+  postcss-zindex@6.0.2(postcss@8.5.1):
     dependencies:
-      postcss: 8.5.0
+      postcss: 8.5.1
 
-  postcss@8.5.0:
+  postcss@8.5.1:
     dependencies:
       nanoid: 3.3.8
       picocolors: 1.1.1
@@ -46747,7 +47030,7 @@ snapshots:
       minimist: 1.2.8
       mkdirp-classic: 0.5.3
       napi-build-utils: 1.0.2
-      node-abi: 3.71.0
+      node-abi: 3.73.0
       pump: 3.0.2
       rc: 1.2.8
       simple-get: 4.0.1
@@ -47073,7 +47356,7 @@ snapshots:
     dependencies:
       side-channel: 1.1.0
 
-  qs@6.13.1:
+  qs@6.14.0:
     dependencies:
       side-channel: 1.1.0
 
@@ -47137,7 +47420,7 @@ snapshots:
 
   range-parser@1.2.1: {}
 
-  rate-limiter-flexible@5.0.4: {}
+  rate-limiter-flexible@5.0.5: {}
 
   raw-body@2.5.2:
     dependencies:
@@ -47240,24 +47523,24 @@ snapshots:
       react-loadable: '@docusaurus/react-loadable@6.0.0(react@18.3.1)'
       webpack: 5.97.1(@swc/core@1.10.7(@swc/helpers@0.5.15))
 
-  react-remove-scroll-bar@2.3.8(@types/react@19.0.6)(react@19.0.0):
+  react-remove-scroll-bar@2.3.8(@types/react@19.0.7)(react@19.0.0):
     dependencies:
       react: 19.0.0
-      react-style-singleton: 2.2.3(@types/react@19.0.6)(react@19.0.0)
+      react-style-singleton: 2.2.3(@types/react@19.0.7)(react@19.0.0)
       tslib: 2.8.1
     optionalDependencies:
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
 
-  react-remove-scroll@2.6.2(@types/react@19.0.6)(react@19.0.0):
+  react-remove-scroll@2.6.2(@types/react@19.0.7)(react@19.0.0):
     dependencies:
       react: 19.0.0
-      react-remove-scroll-bar: 2.3.8(@types/react@19.0.6)(react@19.0.0)
-      react-style-singleton: 2.2.3(@types/react@19.0.6)(react@19.0.0)
+      react-remove-scroll-bar: 2.3.8(@types/react@19.0.7)(react@19.0.0)
+      react-style-singleton: 2.2.3(@types/react@19.0.7)(react@19.0.0)
       tslib: 2.8.1
-      use-callback-ref: 1.3.3(@types/react@19.0.6)(react@19.0.0)
-      use-sidecar: 1.1.3(@types/react@19.0.6)(react@19.0.0)
+      use-callback-ref: 1.3.3(@types/react@19.0.7)(react@19.0.0)
+      use-sidecar: 1.1.3(@types/react@19.0.7)(react@19.0.0)
     optionalDependencies:
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
 
   react-router-config@5.1.1(react-router@5.3.4(react@18.3.1))(react@18.3.1):
     dependencies:
@@ -47317,13 +47600,13 @@ snapshots:
     optionalDependencies:
       react-dom: 19.0.0(react@19.0.0)
 
-  react-style-singleton@2.2.3(@types/react@19.0.6)(react@19.0.0):
+  react-style-singleton@2.2.3(@types/react@19.0.7)(react@19.0.0):
     dependencies:
       get-nonce: 1.0.1
       react: 19.0.0
       tslib: 2.8.1
     optionalDependencies:
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
 
   react-waypoint@10.3.0(react@18.3.1):
     dependencies:
@@ -47515,7 +47798,7 @@ snapshots:
       define-properties: 1.2.1
       es-abstract: 1.23.9
       es-errors: 1.3.0
-      es-object-atoms: 1.0.0
+      es-object-atoms: 1.1.1
       get-intrinsic: 1.2.7
       get-proto: 1.0.1
       which-builtin-type: 1.2.1
@@ -47874,13 +48157,20 @@ snapshots:
 
   rrweb-cssom@0.8.0: {}
 
+  rss-to-json@2.1.1:
+    dependencies:
+      axios: 1.7.9
+      fast-xml-parser: 4.5.1
+    transitivePeerDependencies:
+      - debug
+
   rtl-detect@1.1.2: {}
 
   rtlcss@4.3.0:
     dependencies:
       escalade: 3.2.0
       picocolors: 1.1.1
-      postcss: 8.5.0
+      postcss: 8.5.1
       strip-json-comments: 3.1.1
 
   run-async@2.4.1: {}
@@ -48125,7 +48415,7 @@ snapshots:
     dependencies:
       dunder-proto: 1.0.1
       es-errors: 1.3.0
-      es-object-atoms: 1.0.0
+      es-object-atoms: 1.1.1
 
   setimmediate@1.0.5: {}
 
@@ -48157,7 +48447,7 @@ snapshots:
 
   shallowequal@1.1.0: {}
 
-  sharp@0.32.6(bare-buffer@3.0.1):
+  sharp@0.32.6:
     dependencies:
       color: 4.2.3
       detect-libc: 2.0.3
@@ -48165,7 +48455,7 @@ snapshots:
       prebuild-install: 7.1.2
       semver: 7.6.3
       simple-get: 4.0.1
-      tar-fs: 3.0.7(bare-buffer@3.0.1)
+      tar-fs: 3.0.8
       tunnel-agent: 0.6.0
     transitivePeerDependencies:
       - bare-buffer
@@ -48214,14 +48504,14 @@ snapshots:
       interpret: 1.4.0
       rechoir: 0.6.2
 
-  shiki@1.26.2:
+  shiki@1.27.2:
     dependencies:
-      '@shikijs/core': 1.26.2
-      '@shikijs/engine-javascript': 1.26.2
-      '@shikijs/engine-oniguruma': 1.26.2
-      '@shikijs/langs': 1.26.2
-      '@shikijs/themes': 1.26.2
-      '@shikijs/types': 1.26.2
+      '@shikijs/core': 1.27.2
+      '@shikijs/engine-javascript': 1.27.2
+      '@shikijs/engine-oniguruma': 1.27.2
+      '@shikijs/langs': 1.27.2
+      '@shikijs/themes': 1.27.2
+      '@shikijs/types': 1.27.2
       '@shikijs/vscode-textmate': 10.0.1
       '@types/hast': 3.0.4
 
@@ -48394,7 +48684,7 @@ snapshots:
   socks-proxy-agent@8.0.5:
     dependencies:
       agent-base: 7.1.3
-      debug: 4.4.0(supports-color@5.5.0)
+      debug: 4.4.0
       socks: 2.8.3
     transitivePeerDependencies:
       - supports-color
@@ -48420,13 +48710,13 @@ snapshots:
   solana-agent-kit@1.4.0(@noble/hashes@1.7.0)(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(arweave@1.15.5)(axios@1.7.9)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(handlebars@4.7.8)(react@19.0.0)(sodium-native@3.4.1)(typescript@5.7.3)(utf-8-validate@5.0.10):
     dependencies:
       '@3land/listings-sdk': 0.0.4(@swc/core@1.10.7(@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)(typescript@5.7.3)(utf-8-validate@5.0.10)
-      '@ai-sdk/openai': 1.0.18(zod@3.24.1)
+      '@ai-sdk/openai': 1.0.19(zod@3.24.1)
       '@bonfida/spl-name-service': 3.0.7(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@cks-systems/manifest-sdk': 0.1.59(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
       '@langchain/core': 0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1))
       '@langchain/groq': 0.1.3(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)
-      '@langchain/langgraph': 0.2.39(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))
+      '@langchain/langgraph': 0.2.40(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))
       '@langchain/openai': 0.3.17(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)
       '@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)
@@ -48446,13 +48736,13 @@ snapshots:
       '@sqds/multisig': 2.1.3(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@tensor-oss/tensorswap-sdk': 4.5.0(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10)
       '@tiplink/api': 0.3.1(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(sodium-native@3.4.1)(utf-8-validate@5.0.10)
-      ai: 4.0.34(react@19.0.0)(zod@3.24.1)
+      ai: 4.0.38(react@19.0.0)(zod@3.24.1)
       bn.js: 5.2.1
       bs58: 6.0.0
       chai: 5.1.2
       decimal.js: 10.4.3
       dotenv: 16.4.7
-      flash-sdk: 2.25.3(@swc/core@1.10.7(@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)
+      flash-sdk: 2.25.6(@swc/core@1.10.7(@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)
       form-data: 4.0.1
       langchain: 0.3.11(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(@langchain/groq@0.1.3(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.78.1(encoding@0.1.13)(zod@3.24.1))
       openai: 4.78.1(encoding@0.1.13)(zod@3.24.1)
@@ -48549,21 +48839,21 @@ snapshots:
   spdx-correct@3.2.0:
     dependencies:
       spdx-expression-parse: 3.0.1
-      spdx-license-ids: 3.0.20
+      spdx-license-ids: 3.0.21
 
   spdx-exceptions@2.5.0: {}
 
   spdx-expression-parse@3.0.1:
     dependencies:
       spdx-exceptions: 2.5.0
-      spdx-license-ids: 3.0.20
+      spdx-license-ids: 3.0.21
 
   spdx-expression-parse@4.0.0:
     dependencies:
       spdx-exceptions: 2.5.0
-      spdx-license-ids: 3.0.20
+      spdx-license-ids: 3.0.21
 
-  spdx-license-ids@3.0.20: {}
+  spdx-license-ids@3.0.21: {}
 
   spdy-transport@3.0.0:
     dependencies:
@@ -48652,9 +48942,9 @@ snapshots:
     dependencies:
       minipass: 7.1.2
 
-  sswr@2.1.0(svelte@5.17.3):
+  sswr@2.1.0(svelte@5.18.0):
     dependencies:
-      svelte: 5.17.3
+      svelte: 5.18.0
       swrev: 4.0.0
 
   stable-hash@0.0.4: {}
@@ -48792,7 +49082,7 @@ snapshots:
       define-properties: 1.2.1
       es-abstract: 1.23.9
       es-errors: 1.3.0
-      es-object-atoms: 1.0.0
+      es-object-atoms: 1.1.1
       get-intrinsic: 1.2.7
       gopd: 1.2.0
       has-symbols: 1.1.0
@@ -48813,7 +49103,7 @@ snapshots:
       define-data-property: 1.1.4
       define-properties: 1.2.1
       es-abstract: 1.23.9
-      es-object-atoms: 1.0.0
+      es-object-atoms: 1.1.1
       has-property-descriptors: 1.0.2
 
   string.prototype.trimend@1.0.9:
@@ -48821,13 +49111,13 @@ snapshots:
       call-bind: 1.0.8
       call-bound: 1.0.3
       define-properties: 1.2.1
-      es-object-atoms: 1.0.0
+      es-object-atoms: 1.1.1
 
   string.prototype.trimstart@1.0.8:
     dependencies:
       call-bind: 1.0.8
       define-properties: 1.2.1
-      es-object-atoms: 1.0.0
+      es-object-atoms: 1.1.1
 
   string_decoder@0.10.31: {}
 
@@ -48904,16 +49194,16 @@ snapshots:
     dependencies:
       inline-style-parser: 0.2.4
 
-  stylehacks@6.1.1(postcss@8.5.0):
+  stylehacks@6.1.1(postcss@8.5.1):
     dependencies:
       browserslist: 4.24.4
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-selector-parser: 6.1.2
 
-  stylehacks@7.0.4(postcss@8.5.0):
+  stylehacks@7.0.4(postcss@8.5.1):
     dependencies:
       browserslist: 4.24.4
-      postcss: 8.5.0
+      postcss: 8.5.1
       postcss-selector-parser: 6.1.2
 
   stylis@4.2.0: {}
@@ -48961,7 +49251,7 @@ snapshots:
 
   supports-preserve-symlinks-flag@1.0.0: {}
 
-  svelte@5.17.3:
+  svelte@5.18.0:
     dependencies:
       '@ampproject/remapping': 2.3.0
       '@jridgewell/sourcemap-codec': 1.5.0
@@ -48972,7 +49262,7 @@ snapshots:
       axobject-query: 4.1.0
       clsx: 2.1.1
       esm-env: 1.2.2
-      esrap: 1.4.2
+      esrap: 1.4.3
       is-reference: 3.0.3
       locate-character: 3.0.0
       magic-string: 0.30.17
@@ -49016,11 +49306,11 @@ snapshots:
 
   tailwind-merge@2.6.0: {}
 
-  tailwindcss-animate@1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.6)(typescript@5.6.3))):
+  tailwindcss-animate@1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.7)(typescript@5.6.3))):
     dependencies:
-      tailwindcss: 3.4.17(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.6)(typescript@5.6.3))
+      tailwindcss: 3.4.17(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.7)(typescript@5.6.3))
 
-  tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.6)(typescript@5.6.3)):
+  tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.7)(typescript@5.6.3)):
     dependencies:
       '@alloc/quick-lru': 5.2.0
       arg: 5.0.2
@@ -49036,11 +49326,11 @@ snapshots:
       normalize-path: 3.0.0
       object-hash: 3.0.0
       picocolors: 1.1.1
-      postcss: 8.5.0
-      postcss-import: 15.1.0(postcss@8.5.0)
-      postcss-js: 4.0.1(postcss@8.5.0)
-      postcss-load-config: 4.0.2(postcss@8.5.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.6)(typescript@5.6.3))
-      postcss-nested: 6.2.0(postcss@8.5.0)
+      postcss: 8.5.1
+      postcss-import: 15.1.0(postcss@8.5.1)
+      postcss-js: 4.0.1(postcss@8.5.1)
+      postcss-load-config: 4.0.2(postcss@8.5.1)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.7)(typescript@5.6.3))
+      postcss-nested: 6.2.0(postcss@8.5.1)
       postcss-selector-parser: 6.1.2
       resolve: 1.22.10
       sucrase: 3.35.0
@@ -49065,13 +49355,13 @@ snapshots:
       pump: 3.0.2
       tar-stream: 2.2.0
 
-  tar-fs@3.0.7(bare-buffer@3.0.1):
+  tar-fs@3.0.8:
     dependencies:
       pump: 3.0.2
       tar-stream: 3.1.7
     optionalDependencies:
-      bare-fs: 2.3.5(bare-buffer@3.0.1)
-      bare-path: 2.1.3
+      bare-fs: 4.0.1
+      bare-path: 3.0.0
     transitivePeerDependencies:
       - bare-buffer
 
@@ -49181,21 +49471,21 @@ snapshots:
     dependencies:
       any-promise: 1.3.0
 
-  thirdweb@5.83.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.4(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.84.0(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.4(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.6)(react@19.0.0)
-      '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@19.0.6)(react@19.0.0))(@types/react@19.0.6)(react@19.0.0)
+      '@emotion/react': 11.14.0(@types/react@19.0.7)(react@19.0.0)
+      '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@19.0.7)(react@19.0.0))(@types/react@19.0.7)(react@19.0.0)
       '@google/model-viewer': 2.1.1
       '@noble/curves': 1.7.0
       '@noble/hashes': 1.6.1
       '@passwordless-id/webauthn': 2.1.2
-      '@radix-ui/react-dialog': 1.1.4(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
-      '@radix-ui/react-focus-scope': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-dialog': 1.1.4(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-focus-scope': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
       '@radix-ui/react-icons': 1.3.2(react@19.0.0)
-      '@radix-ui/react-tooltip': 1.1.5(@types/react-dom@19.0.3(@types/react@19.0.6))(@types/react@19.0.6)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+      '@radix-ui/react-tooltip': 1.1.5(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
       '@tanstack/react-query': 5.62.16(react@19.0.0)
-      '@walletconnect/ethereum-provider': 2.17.3(@types/react@19.0.6)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(react@19.0.0)(utf-8-validate@5.0.10)
+      '@walletconnect/ethereum-provider': 2.17.3(@types/react@19.0.7)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(react@19.0.0)(utf-8-validate@5.0.10)
       '@walletconnect/sign-client': 2.17.3(bufferutil@4.0.9)(ioredis@5.4.2)(utf-8-validate@5.0.10)
       abitype: 1.0.7(typescript@5.7.3)(zod@3.24.1)
       cross-spawn: 7.0.6
@@ -49307,15 +49597,15 @@ snapshots:
 
   tinyspy@3.0.2: {}
 
-  tldts-core@6.1.71: {}
+  tldts-core@6.1.72: {}
 
-  tldts-experimental@6.1.71:
+  tldts-experimental@6.1.72:
     dependencies:
-      tldts-core: 6.1.71
+      tldts-core: 6.1.72
 
-  tldts@6.1.71:
+  tldts@6.1.72:
     dependencies:
-      tldts-core: 6.1.71
+      tldts-core: 6.1.72
 
   tmp-promise@3.0.3:
     dependencies:
@@ -49347,7 +49637,7 @@ snapshots:
 
   together-ai@0.7.0(encoding@0.1.13):
     dependencies:
-      '@types/node': 18.19.70
+      '@types/node': 18.19.71
       '@types/node-fetch': 2.6.12
       abort-controller: 3.0.0
       agentkeepalive: 4.6.0
@@ -49383,7 +49673,7 @@ snapshots:
 
   tough-cookie@5.1.0:
     dependencies:
-      tldts: 6.1.71
+      tldts: 6.1.72
 
   tr46@0.0.3: {}
 
@@ -49395,7 +49685,7 @@ snapshots:
     dependencies:
       punycode: 2.3.1
 
-  traverse@0.6.10:
+  traverse@0.6.11:
     dependencies:
       gopd: 1.2.0
       typedarray.prototype.slice: 1.0.5
@@ -49449,12 +49739,12 @@ snapshots:
       babel-jest: 29.7.0(@babel/core@7.26.0)
       esbuild: 0.24.2
 
-  ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@18.19.70)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3)))(typescript@5.6.3):
+  ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@18.19.71)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.71)(typescript@5.6.3)))(typescript@5.6.3):
     dependencies:
       bs-logger: 0.2.6
       ejs: 3.1.10
       fast-json-stable-stringify: 2.1.0
-      jest: 29.7.0(@types/node@18.19.70)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3))
+      jest: 29.7.0(@types/node@18.19.71)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.71)(typescript@5.6.3))
       jest-util: 29.7.0
       json5: 2.2.3
       lodash.memoize: 4.1.2
@@ -49468,12 +49758,12 @@ snapshots:
       '@jest/types': 29.6.3
       babel-jest: 29.7.0(@babel/core@7.26.0)
 
-  ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.10.6)(babel-plugin-macros@3.1.0))(typescript@5.6.3):
+  ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@20.17.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3)))(typescript@5.6.3):
     dependencies:
       bs-logger: 0.2.6
       ejs: 3.1.10
       fast-json-stable-stringify: 2.1.0
-      jest: 29.7.0(@types/node@22.10.6)(babel-plugin-macros@3.1.0)
+      jest: 29.7.0(@types/node@20.17.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3))
       jest-util: 29.7.0
       json5: 2.2.3
       lodash.memoize: 4.1.2
@@ -49510,14 +49800,14 @@ snapshots:
 
   ts-mixer@6.0.4: {}
 
-  ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.70)(typescript@5.6.3):
+  ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@18.19.71)(typescript@5.6.3):
     dependencies:
       '@cspotcode/source-map-support': 0.8.1
       '@tsconfig/node10': 1.0.11
       '@tsconfig/node12': 1.0.11
       '@tsconfig/node14': 1.0.3
       '@tsconfig/node16': 1.0.4
-      '@types/node': 18.19.70
+      '@types/node': 18.19.71
       acorn: 8.14.0
       acorn-walk: 8.3.4
       arg: 4.1.3
@@ -49530,6 +49820,27 @@ snapshots:
     optionalDependencies:
       '@swc/core': 1.10.7(@swc/helpers@0.5.15)
 
+  ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.6.3):
+    dependencies:
+      '@cspotcode/source-map-support': 0.8.1
+      '@tsconfig/node10': 1.0.11
+      '@tsconfig/node12': 1.0.11
+      '@tsconfig/node14': 1.0.3
+      '@tsconfig/node16': 1.0.4
+      '@types/node': 20.17.9
+      acorn: 8.14.0
+      acorn-walk: 8.3.4
+      arg: 4.1.3
+      create-require: 1.1.1
+      diff: 4.0.2
+      make-error: 1.3.6
+      typescript: 5.6.3
+      v8-compile-cache-lib: 3.0.1
+      yn: 3.1.1
+    optionalDependencies:
+      '@swc/core': 1.10.7(@swc/helpers@0.5.15)
+    optional: true
+
   ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3):
     dependencies:
       '@cspotcode/source-map-support': 0.8.1
@@ -49550,35 +49861,35 @@ snapshots:
     optionalDependencies:
       '@swc/core': 1.10.7(@swc/helpers@0.5.15)
 
-  ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.6)(typescript@5.6.3):
+  ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.7)(typescript@5.6.3):
     dependencies:
       '@cspotcode/source-map-support': 0.8.1
       '@tsconfig/node10': 1.0.11
       '@tsconfig/node12': 1.0.11
       '@tsconfig/node14': 1.0.3
       '@tsconfig/node16': 1.0.4
-      '@types/node': 22.10.6
+      '@types/node': 22.10.7
       acorn: 8.14.0
       acorn-walk: 8.3.4
       arg: 4.1.3
       create-require: 1.1.1
       diff: 4.0.2
       make-error: 1.3.6
-      typescript: 5.7.3
+      typescript: 5.6.3
       v8-compile-cache-lib: 3.0.1
       yn: 3.1.1
     optionalDependencies:
       '@swc/core': 1.10.7(@swc/helpers@0.5.15)
     optional: true
 
-  ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.6)(typescript@5.7.3):
+  ts-node@10.9.2(@swc/core@1.10.7(@swc/helpers@0.5.15))(@types/node@22.10.7)(typescript@5.7.3):
     dependencies:
       '@cspotcode/source-map-support': 0.8.1
       '@tsconfig/node10': 1.0.11
       '@tsconfig/node12': 1.0.11
       '@tsconfig/node14': 1.0.3
       '@tsconfig/node16': 1.0.4
-      '@types/node': 22.10.6
+      '@types/node': 22.10.7
       acorn: 8.14.0
       acorn-walk: 8.3.4
       arg: 4.1.3
@@ -49642,7 +49953,7 @@ snapshots:
 
   tsscmp@1.0.6: {}
 
-  tsup@8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0):
+  tsup@8.3.5(@swc/core@1.10.7(@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):
     dependencies:
       bundle-require: 5.1.0(esbuild@0.24.2)
       cac: 6.7.14
@@ -49652,7 +49963,7 @@ snapshots:
       esbuild: 0.24.2
       joycon: 3.1.1
       picocolors: 1.1.1
-      postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(yaml@2.7.0)
+      postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(yaml@2.7.0)
       resolve-from: 5.0.0
       rollup: 4.30.1
       source-map: 0.8.0-beta.0
@@ -49662,7 +49973,7 @@ snapshots:
       tree-kill: 1.2.2
     optionalDependencies:
       '@swc/core': 1.10.7(@swc/helpers@0.5.15)
-      postcss: 8.5.0
+      postcss: 8.5.1
       typescript: 5.6.3
     transitivePeerDependencies:
       - jiti
@@ -49670,17 +49981,17 @@ snapshots:
       - tsx
       - yaml
 
-  tsup@8.3.5(@swc/core@1.10.7(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0):
+  tsup@8.3.5(@swc/core@1.10.7(@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):
     dependencies:
       bundle-require: 5.1.0(esbuild@0.24.2)
       cac: 6.7.14
       chokidar: 4.0.3
       consola: 3.4.0
-      debug: 4.4.0(supports-color@5.5.0)
+      debug: 4.4.0
       esbuild: 0.24.2
       joycon: 3.1.1
       picocolors: 1.1.1
-      postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.0)(tsx@4.19.2)(yaml@2.7.0)
+      postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(yaml@2.7.0)
       resolve-from: 5.0.0
       rollup: 4.30.1
       source-map: 0.8.0-beta.0
@@ -49690,7 +50001,7 @@ snapshots:
       tree-kill: 1.2.2
     optionalDependencies:
       '@swc/core': 1.10.7(@swc/helpers@0.5.15)
-      postcss: 8.5.0
+      postcss: 8.5.1
       typescript: 5.7.3
     transitivePeerDependencies:
       - jiti
@@ -49710,7 +50021,7 @@ snapshots:
   tuf-js@2.2.1:
     dependencies:
       '@tufjs/models': 2.0.1
-      debug: 4.4.0(supports-color@5.5.0)
+      debug: 4.4.0
       make-fetch-happen: 13.0.1
     transitivePeerDependencies:
       - supports-color
@@ -49859,7 +50170,7 @@ snapshots:
       lunr: 2.3.9
       markdown-it: 14.1.0
       minimatch: 9.0.5
-      shiki: 1.26.2
+      shiki: 1.27.2
       typescript: 5.6.3
       yaml: 2.7.0
 
@@ -49868,13 +50179,13 @@ snapshots:
       lunr: 2.3.9
       markdown-it: 14.1.0
       minimatch: 9.0.5
-      shiki: 1.26.2
+      shiki: 1.27.2
       typescript: 5.7.3
       yaml: 2.7.0
 
   typedoc@0.27.6(typescript@5.7.3):
     dependencies:
-      '@gerrit0/mini-shiki': 1.26.1
+      '@gerrit0/mini-shiki': 1.27.2
       lunr: 2.3.9
       markdown-it: 14.1.0
       minimatch: 9.0.5
@@ -49952,7 +50263,7 @@ snapshots:
       mkdist: 1.6.0(typescript@5.7.3)
       mlly: 1.7.4
       pathe: 1.1.2
-      pkg-types: 1.3.0
+      pkg-types: 1.3.1
       pretty-bytes: 6.1.1
       rollup: 3.29.5
       rollup-plugin-dts: 6.1.1(rollup@3.29.5)(typescript@5.7.3)
@@ -49990,7 +50301,7 @@ snapshots:
 
   undici@6.19.8: {}
 
-  undici@7.2.1: {}
+  undici@7.2.2: {}
 
   unenv@1.10.0:
     dependencies:
@@ -50220,22 +50531,22 @@ snapshots:
   url@0.11.4:
     dependencies:
       punycode: 1.4.1
-      qs: 6.13.1
+      qs: 6.14.0
 
-  use-callback-ref@1.3.3(@types/react@19.0.6)(react@19.0.0):
+  use-callback-ref@1.3.3(@types/react@19.0.7)(react@19.0.0):
     dependencies:
       react: 19.0.0
       tslib: 2.8.1
     optionalDependencies:
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
 
-  use-sidecar@1.1.3(@types/react@19.0.6)(react@19.0.0):
+  use-sidecar@1.1.3(@types/react@19.0.7)(react@19.0.0):
     dependencies:
       detect-node-es: 1.1.0
       react: 19.0.0
       tslib: 2.8.1
     optionalDependencies:
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
 
   use-sync-external-store@1.2.0(react@19.0.0):
     dependencies:
@@ -50313,12 +50624,12 @@ snapshots:
 
   validate-npm-package-name@5.0.1: {}
 
-  valtio@1.11.2(@types/react@19.0.6)(react@19.0.0):
+  valtio@1.11.2(@types/react@19.0.7)(react@19.0.0):
     dependencies:
       proxy-compare: 2.5.1
       use-sync-external-store: 1.2.0(react@19.0.0)
     optionalDependencies:
-      '@types/react': 19.0.6
+      '@types/react': 19.0.7
       react: 19.0.0
 
   value-equal@1.0.1: {}
@@ -50368,19 +50679,19 @@ snapshots:
       '@types/unist': 3.0.3
       vfile-message: 4.0.2
 
-  viem@2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@6.0.5)(zod@3.24.1):
+  viem@2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8):
     dependencies:
       '@noble/curves': 1.7.0
       '@noble/hashes': 1.6.1
       '@scure/bip32': 1.6.0
       '@scure/bip39': 1.5.0
-      abitype: 1.0.7(typescript@5.6.3)(zod@3.24.1)
-      isows: 1.0.6(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))
-      ox: 0.4.4(typescript@5.6.3)(zod@3.24.1)
+      abitype: 1.0.7(typescript@5.6.3)(zod@3.23.8)
+      isows: 1.0.6(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))
+      ox: 0.4.4(typescript@5.6.3)(zod@3.23.8)
       webauthn-p256: 0.0.10
-      ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
+      ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
     optionalDependencies:
-      typescript: 5.7.3
+      typescript: 5.6.3
     transitivePeerDependencies:
       - bufferutil
       - utf-8-validate
@@ -50477,13 +50788,13 @@ snapshots:
       - supports-color
       - terser
 
-  vite-node@1.1.3(@types/node@22.10.6)(terser@5.37.0):
+  vite-node@1.1.3(@types/node@22.10.7)(terser@5.37.0):
     dependencies:
       cac: 6.7.14
       debug: 4.4.0(supports-color@5.5.0)
       pathe: 1.1.2
       picocolors: 1.1.1
-      vite: 5.4.11(@types/node@22.10.6)(terser@5.37.0)
+      vite: 5.4.11(@types/node@22.10.7)(terser@5.37.0)
     transitivePeerDependencies:
       - '@types/node'
       - less
@@ -50513,13 +50824,13 @@ snapshots:
       - supports-color
       - terser
 
-  vite-node@1.2.1(@types/node@22.10.6)(terser@5.37.0):
+  vite-node@1.2.1(@types/node@22.10.7)(terser@5.37.0):
     dependencies:
       cac: 6.7.14
       debug: 4.4.0(supports-color@5.5.0)
       pathe: 1.1.2
       picocolors: 1.1.1
-      vite: 5.4.11(@types/node@22.10.6)(terser@5.37.0)
+      vite: 5.4.11(@types/node@22.10.7)(terser@5.37.0)
     transitivePeerDependencies:
       - '@types/node'
       - less
@@ -50548,12 +50859,12 @@ snapshots:
       - supports-color
       - terser
 
-  vite-node@2.1.4(@types/node@22.10.6)(terser@5.37.0):
+  vite-node@2.1.4(@types/node@22.10.7)(terser@5.37.0):
     dependencies:
       cac: 6.7.14
       debug: 4.4.0(supports-color@5.5.0)
       pathe: 1.1.2
-      vite: 5.4.11(@types/node@22.10.6)(terser@5.37.0)
+      vite: 5.4.11(@types/node@22.10.7)(terser@5.37.0)
     transitivePeerDependencies:
       - '@types/node'
       - less
@@ -50565,13 +50876,31 @@ snapshots:
       - supports-color
       - terser
 
-  vite-node@2.1.5(@types/node@22.10.6)(terser@5.37.0):
+  vite-node@2.1.5(@types/node@20.17.9)(terser@5.37.0):
+    dependencies:
+      cac: 6.7.14
+      debug: 4.4.0
+      es-module-lexer: 1.6.0
+      pathe: 1.1.2
+      vite: 5.4.11(@types/node@20.17.9)(terser@5.37.0)
+    transitivePeerDependencies:
+      - '@types/node'
+      - less
+      - lightningcss
+      - sass
+      - sass-embedded
+      - stylus
+      - sugarss
+      - supports-color
+      - terser
+
+  vite-node@2.1.5(@types/node@22.10.7)(terser@5.37.0):
     dependencies:
       cac: 6.7.14
       debug: 4.4.0(supports-color@5.5.0)
       es-module-lexer: 1.6.0
       pathe: 1.1.2
-      vite: 5.4.11(@types/node@22.10.6)(terser@5.37.0)
+      vite: 5.4.11(@types/node@22.10.7)(terser@5.37.0)
     transitivePeerDependencies:
       - '@types/node'
       - less
@@ -50601,13 +50930,13 @@ snapshots:
       - supports-color
       - terser
 
-  vite-node@2.1.8(@types/node@22.10.6)(terser@5.37.0):
+  vite-node@2.1.8(@types/node@22.10.7)(terser@5.37.0):
     dependencies:
       cac: 6.7.14
       debug: 4.4.0(supports-color@5.5.0)
       es-module-lexer: 1.6.0
       pathe: 1.1.2
-      vite: 5.4.11(@types/node@22.10.6)(terser@5.37.0)
+      vite: 5.4.11(@types/node@22.10.7)(terser@5.37.0)
     transitivePeerDependencies:
       - '@types/node'
       - less
@@ -50637,12 +50966,12 @@ snapshots:
       - supports-color
       - terser
 
-  vite-plugin-compression@0.5.1(vite@6.0.7(@types/node@22.10.6)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)):
+  vite-plugin-compression@0.5.1(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)):
     dependencies:
       chalk: 4.1.2
       debug: 4.4.0(supports-color@5.5.0)
       fs-extra: 10.1.0
-      vite: 6.0.7(@types/node@22.10.6)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)
+      vite: 6.0.7(@types/node@22.10.7)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)
     transitivePeerDependencies:
       - supports-color
 
@@ -50657,13 +50986,13 @@ snapshots:
       - supports-color
       - typescript
 
-  vite-tsconfig-paths@5.1.4(typescript@5.6.3)(vite@6.0.7(@types/node@22.10.6)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)):
+  vite-tsconfig-paths@5.1.4(typescript@5.6.3)(vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)):
     dependencies:
       debug: 4.4.0(supports-color@5.5.0)
       globrex: 0.1.2
       tsconfck: 3.1.4(typescript@5.6.3)
     optionalDependencies:
-      vite: 6.0.7(@types/node@22.10.6)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)
+      vite: 6.0.7(@types/node@22.10.7)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)
     transitivePeerDependencies:
       - supports-color
       - typescript
@@ -50671,40 +51000,40 @@ snapshots:
   vite@5.4.11(@types/node@20.17.9)(terser@5.37.0):
     dependencies:
       esbuild: 0.21.5
-      postcss: 8.5.0
+      postcss: 8.5.1
       rollup: 4.30.1
     optionalDependencies:
       '@types/node': 20.17.9
       fsevents: 2.3.3
       terser: 5.37.0
 
-  vite@5.4.11(@types/node@22.10.6)(terser@5.37.0):
+  vite@5.4.11(@types/node@22.10.7)(terser@5.37.0):
     dependencies:
       esbuild: 0.21.5
-      postcss: 8.5.0
+      postcss: 8.5.1
       rollup: 4.30.1
     optionalDependencies:
-      '@types/node': 22.10.6
+      '@types/node': 22.10.7
       fsevents: 2.3.3
       terser: 5.37.0
 
   vite@5.4.11(@types/node@22.8.4)(terser@5.37.0):
     dependencies:
       esbuild: 0.21.5
-      postcss: 8.5.0
+      postcss: 8.5.1
       rollup: 4.30.1
     optionalDependencies:
       '@types/node': 22.8.4
       fsevents: 2.3.3
       terser: 5.37.0
 
-  vite@6.0.7(@types/node@22.10.6)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0):
+  vite@6.0.7(@types/node@22.10.7)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0):
     dependencies:
       esbuild: 0.24.2
-      postcss: 8.5.0
+      postcss: 8.5.1
       rollup: 4.30.1
     optionalDependencies:
-      '@types/node': 22.10.6
+      '@types/node': 22.10.7
       fsevents: 2.3.3
       jiti: 2.4.2
       terser: 5.37.0
@@ -50751,7 +51080,7 @@ snapshots:
       - supports-color
       - terser
 
-  vitest@1.1.3(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0):
+  vitest@1.1.3(@types/node@22.10.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.37.0):
     dependencies:
       '@vitest/expect': 1.1.3
       '@vitest/runner': 1.1.3
@@ -50771,11 +51100,11 @@ snapshots:
       strip-literal: 1.3.0
       tinybench: 2.9.0
       tinypool: 0.8.4
-      vite: 5.4.11(@types/node@22.10.6)(terser@5.37.0)
-      vite-node: 1.1.3(@types/node@22.10.6)(terser@5.37.0)
+      vite: 5.4.11(@types/node@22.10.7)(terser@5.37.0)
+      vite-node: 1.1.3(@types/node@22.10.7)(terser@5.37.0)
       why-is-node-running: 2.3.0
     optionalDependencies:
-      '@types/node': 22.10.6
+      '@types/node': 22.10.7
       jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5)
     transitivePeerDependencies:
       - less
@@ -50859,7 +51188,7 @@ snapshots:
       - supports-color
       - terser
 
-  vitest@1.2.1(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0):
+  vitest@1.2.1(@types/node@22.10.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.37.0):
     dependencies:
       '@vitest/expect': 1.2.1
       '@vitest/runner': 1.2.1
@@ -50879,11 +51208,11 @@ snapshots:
       strip-literal: 1.3.0
       tinybench: 2.9.0
       tinypool: 0.8.4
-      vite: 5.4.11(@types/node@22.10.6)(terser@5.37.0)
-      vite-node: 1.2.1(@types/node@22.10.6)(terser@5.37.0)
+      vite: 5.4.11(@types/node@22.10.7)(terser@5.37.0)
+      vite-node: 1.2.1(@types/node@22.10.7)(terser@5.37.0)
       why-is-node-running: 2.3.0
     optionalDependencies:
-      '@types/node': 22.10.6
+      '@types/node': 22.10.7
       jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5)
     transitivePeerDependencies:
       - less
@@ -50898,7 +51227,7 @@ snapshots:
   vitest@2.1.4(@types/node@20.17.9)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0):
     dependencies:
       '@vitest/expect': 2.1.4
-      '@vitest/mocker': 2.1.4(vite@5.4.11(@types/node@22.10.6)(terser@5.37.0))
+      '@vitest/mocker': 2.1.4(vite@5.4.11(@types/node@22.10.7)(terser@5.37.0))
       '@vitest/pretty-format': 2.1.8
       '@vitest/runner': 2.1.4
       '@vitest/snapshot': 2.1.4
@@ -50931,10 +51260,10 @@ snapshots:
       - supports-color
       - terser
 
-  vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0):
+  vitest@2.1.4(@types/node@22.10.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.37.0):
     dependencies:
       '@vitest/expect': 2.1.4
-      '@vitest/mocker': 2.1.4(vite@5.4.11(@types/node@22.10.6)(terser@5.37.0))
+      '@vitest/mocker': 2.1.4(vite@5.4.11(@types/node@22.10.7)(terser@5.37.0))
       '@vitest/pretty-format': 2.1.8
       '@vitest/runner': 2.1.4
       '@vitest/snapshot': 2.1.4
@@ -50950,11 +51279,11 @@ snapshots:
       tinyexec: 0.3.2
       tinypool: 1.0.2
       tinyrainbow: 1.2.0
-      vite: 5.4.11(@types/node@22.10.6)(terser@5.37.0)
-      vite-node: 2.1.4(@types/node@22.10.6)(terser@5.37.0)
+      vite: 5.4.11(@types/node@22.10.7)(terser@5.37.0)
+      vite-node: 2.1.4(@types/node@22.10.7)(terser@5.37.0)
       why-is-node-running: 2.3.0
     optionalDependencies:
-      '@types/node': 22.10.6
+      '@types/node': 22.10.7
       jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10)
     transitivePeerDependencies:
       - less
@@ -50967,10 +51296,10 @@ snapshots:
       - supports-color
       - terser
 
-  vitest@2.1.4(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0):
+  vitest@2.1.4(@types/node@22.10.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.37.0):
     dependencies:
       '@vitest/expect': 2.1.4
-      '@vitest/mocker': 2.1.4(vite@5.4.11(@types/node@22.10.6)(terser@5.37.0))
+      '@vitest/mocker': 2.1.4(vite@5.4.11(@types/node@22.10.7)(terser@5.37.0))
       '@vitest/pretty-format': 2.1.8
       '@vitest/runner': 2.1.4
       '@vitest/snapshot': 2.1.4
@@ -50986,11 +51315,11 @@ snapshots:
       tinyexec: 0.3.2
       tinypool: 1.0.2
       tinyrainbow: 1.2.0
-      vite: 5.4.11(@types/node@22.10.6)(terser@5.37.0)
-      vite-node: 2.1.4(@types/node@22.10.6)(terser@5.37.0)
+      vite: 5.4.11(@types/node@22.10.7)(terser@5.37.0)
+      vite-node: 2.1.4(@types/node@22.10.7)(terser@5.37.0)
       why-is-node-running: 2.3.0
     optionalDependencies:
-      '@types/node': 22.10.6
+      '@types/node': 22.10.7
       jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5)
     transitivePeerDependencies:
       - less
@@ -51003,10 +51332,46 @@ snapshots:
       - supports-color
       - terser
 
-  vitest@2.1.5(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0):
+  vitest@2.1.5(@types/node@20.17.9)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0):
+    dependencies:
+      '@vitest/expect': 2.1.5
+      '@vitest/mocker': 2.1.5(vite@5.4.11(@types/node@20.17.9)(terser@5.37.0))
+      '@vitest/pretty-format': 2.1.8
+      '@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.4.0
+      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.11(@types/node@20.17.9)(terser@5.37.0)
+      vite-node: 2.1.5(@types/node@20.17.9)(terser@5.37.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@5.0.10)
+    transitivePeerDependencies:
+      - less
+      - lightningcss
+      - msw
+      - sass
+      - sass-embedded
+      - stylus
+      - sugarss
+      - supports-color
+      - terser
+
+  vitest@2.1.5(@types/node@22.10.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.37.0):
     dependencies:
       '@vitest/expect': 2.1.5
-      '@vitest/mocker': 2.1.5(vite@5.4.11(@types/node@22.10.6)(terser@5.37.0))
+      '@vitest/mocker': 2.1.5(vite@5.4.11(@types/node@22.10.7)(terser@5.37.0))
       '@vitest/pretty-format': 2.1.8
       '@vitest/runner': 2.1.5
       '@vitest/snapshot': 2.1.5
@@ -51022,11 +51387,11 @@ snapshots:
       tinyexec: 0.3.2
       tinypool: 1.0.2
       tinyrainbow: 1.2.0
-      vite: 5.4.11(@types/node@22.10.6)(terser@5.37.0)
-      vite-node: 2.1.5(@types/node@22.10.6)(terser@5.37.0)
+      vite: 5.4.11(@types/node@22.10.7)(terser@5.37.0)
+      vite-node: 2.1.5(@types/node@22.10.7)(terser@5.37.0)
       why-is-node-running: 2.3.0
     optionalDependencies:
-      '@types/node': 22.10.6
+      '@types/node': 22.10.7
       jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5)
     transitivePeerDependencies:
       - less
@@ -51042,7 +51407,7 @@ snapshots:
   vitest@2.1.8(@types/node@20.17.9)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0):
     dependencies:
       '@vitest/expect': 2.1.8
-      '@vitest/mocker': 2.1.8(vite@5.4.11(@types/node@22.10.6)(terser@5.37.0))
+      '@vitest/mocker': 2.1.8(vite@5.4.11(@types/node@22.10.7)(terser@5.37.0))
       '@vitest/pretty-format': 2.1.8
       '@vitest/runner': 2.1.8
       '@vitest/snapshot': 2.1.8
@@ -51075,10 +51440,10 @@ snapshots:
       - supports-color
       - terser
 
-  vitest@2.1.8(@types/node@22.10.6)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0):
+  vitest@2.1.8(@types/node@22.10.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.37.0):
     dependencies:
       '@vitest/expect': 2.1.8
-      '@vitest/mocker': 2.1.8(vite@5.4.11(@types/node@22.10.6)(terser@5.37.0))
+      '@vitest/mocker': 2.1.8(vite@5.4.11(@types/node@22.10.7)(terser@5.37.0))
       '@vitest/pretty-format': 2.1.8
       '@vitest/runner': 2.1.8
       '@vitest/snapshot': 2.1.8
@@ -51094,11 +51459,11 @@ snapshots:
       tinyexec: 0.3.2
       tinypool: 1.0.2
       tinyrainbow: 1.2.0
-      vite: 5.4.11(@types/node@22.10.6)(terser@5.37.0)
-      vite-node: 2.1.8(@types/node@22.10.6)(terser@5.37.0)
+      vite: 5.4.11(@types/node@22.10.7)(terser@5.37.0)
+      vite-node: 2.1.8(@types/node@22.10.7)(terser@5.37.0)
       why-is-node-running: 2.3.0
     optionalDependencies:
-      '@types/node': 22.10.6
+      '@types/node': 22.10.7
       jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5)
     transitivePeerDependencies:
       - less
@@ -51114,7 +51479,7 @@ snapshots:
   vitest@2.1.8(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0):
     dependencies:
       '@vitest/expect': 2.1.8
-      '@vitest/mocker': 2.1.8(vite@5.4.11(@types/node@22.10.6)(terser@5.37.0))
+      '@vitest/mocker': 2.1.8(vite@5.4.11(@types/node@22.10.7)(terser@5.37.0))
       '@vitest/pretty-format': 2.1.8
       '@vitest/runner': 2.1.8
       '@vitest/snapshot': 2.1.8
@@ -51185,16 +51550,6 @@ snapshots:
     optionalDependencies:
       typescript: 5.6.3
 
-  vue@3.5.13(typescript@5.7.3):
-    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@3.5.13(typescript@5.7.3))
-      '@vue/shared': 3.5.13
-    optionalDependencies:
-      typescript: 5.7.3
-
   w3c-xmlserializer@5.0.0:
     dependencies:
       xml-name-validator: 5.0.0

From 1e14c282e5b6c952a7871ed9b2c31895a32b2733 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Tue, 21 Jan 2025 16:18:51 +0700
Subject: [PATCH 29/58] merging

---
 agent/package.json                            |    4 +-
 agent/src/index.ts                            |   16 +-
 package.json                                  |    9 +-
 packages/adapter-supabase/src/index.ts        |  360 +--
 .../src/plugins/SttTtsSpacesPlugin.ts         |   25 +-
 packages/core/src/generation.bak.ts           | 2400 +++++++++++++++++
 packages/core/src/generation.ts               |    1 +
 packages/plugin-abstract/README.md            |  175 --
 packages/plugin-abstract/package.json         |   34 -
 .../src/actions/deployTokenAction.ts          |  267 --
 .../src/actions/getBalanceAction.ts           |  280 --
 packages/plugin-abstract/src/actions/index.ts |    3 -
 .../src/actions/transferAction.ts             |  402 ---
 .../src/constants/contracts/basicToken.json   |  339 ---
 .../plugin-abstract/src/constants/index.ts    |    1 -
 packages/plugin-abstract/src/environment.ts   |   44 -
 packages/plugin-abstract/src/hooks/index.ts   |    2 -
 .../src/hooks/useGetAccount.ts                |   11 -
 .../src/hooks/useGetWalletClient.ts           |   12 -
 packages/plugin-abstract/src/index.ts         |   13 -
 packages/plugin-abstract/src/utils/index.ts   |    1 -
 .../plugin-abstract/src/utils/viemHelpers.ts  |   87 -
 packages/plugin-abstract/tsconfig.json        |    8 -
 packages/plugin-abstract/tsup.config.ts       |   20 -
 packages/plugin-crypto-news/package.json      |    1 +
 packages/plugin-pyth-data/schema.json         |    2 +-
 packages/plugin-web-search/src/index.ts       |    2 +-
 27 files changed, 2563 insertions(+), 1956 deletions(-)
 create mode 100644 packages/core/src/generation.bak.ts
 delete mode 100644 packages/plugin-abstract/README.md
 delete mode 100644 packages/plugin-abstract/package.json
 delete mode 100644 packages/plugin-abstract/src/actions/deployTokenAction.ts
 delete mode 100644 packages/plugin-abstract/src/actions/getBalanceAction.ts
 delete mode 100644 packages/plugin-abstract/src/actions/index.ts
 delete mode 100644 packages/plugin-abstract/src/actions/transferAction.ts
 delete mode 100644 packages/plugin-abstract/src/constants/contracts/basicToken.json
 delete mode 100644 packages/plugin-abstract/src/constants/index.ts
 delete mode 100644 packages/plugin-abstract/src/environment.ts
 delete mode 100644 packages/plugin-abstract/src/hooks/index.ts
 delete mode 100644 packages/plugin-abstract/src/hooks/useGetAccount.ts
 delete mode 100644 packages/plugin-abstract/src/hooks/useGetWalletClient.ts
 delete mode 100644 packages/plugin-abstract/src/index.ts
 delete mode 100644 packages/plugin-abstract/src/utils/index.ts
 delete mode 100644 packages/plugin-abstract/src/utils/viemHelpers.ts
 delete mode 100644 packages/plugin-abstract/tsconfig.json
 delete mode 100644 packages/plugin-abstract/tsup.config.ts

diff --git a/agent/package.json b/agent/package.json
index 4d6d0fdb6f2..e0b56dfa7bc 100644
--- a/agent/package.json
+++ b/agent/package.json
@@ -34,7 +34,6 @@
         "@elizaos/client-slack": "workspace:*",
         "@elizaos/core": "workspace:*",
         "@elizaos/plugin-0g": "workspace:*",
-        "@elizaos/plugin-abstract": "workspace:*",
         "@elizaos/plugin-agentkit": "workspace:*",
         "@elizaos/plugin-aptos": "workspace:*",
         "@elizaos/plugin-birdeye": "workspace:*",
@@ -108,6 +107,9 @@
         "@elizaos/plugin-pyth-data": "workspace:*",
         "@elizaos/plugin-openai": "workspace:*",
         "@elizaos/plugin-devin": "workspace:*",
+        "@ethosdao/plugin-market-analisys": "workspace:*",
+        "@srise/plugin-crypto-news": "workspace:*",
+        "@elizaos/plugin-goplus": "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 ac34bbb80d6..40105d989bd 100644
--- a/agent/src/index.ts
+++ b/agent/src/index.ts
@@ -14,10 +14,6 @@ import { TelegramClientInterface } from "@elizaos/client-telegram";
 import { TwitterClientInterface } from "@elizaos/client-twitter";
 import { agentKitPlugin } from "@elizaos/plugin-agentkit";
 // import { ReclaimAdapter } from "@elizaos/plugin-reclaim";
-import { elizaCodeinPlugin, onchainJson } from "@elizaos/plugin-iq6900";
-import { lightningPlugin } from "@elizaos/plugin-lightning";
-import { PrimusAdapter } from "@elizaos/plugin-primus";
-
 import {
     AgentRuntime,
     CacheManager,
@@ -41,13 +37,17 @@ import {
 } from "@elizaos/core";
 import { zgPlugin } from "@elizaos/plugin-0g";
 import { goplusPlugin } from "@elizaos/plugin-goplus";
+import { elizaCodeinPlugin, onchainJson } from "@elizaos/plugin-iq6900";
+import { lightningPlugin } from "@elizaos/plugin-lightning";
+import { PrimusAdapter } from "@elizaos/plugin-primus";
+import { solanaAgentkitPlugin } from "@elizaos/plugin-solana-agent-kit";
 
 import { bootstrapPlugin } from "@elizaos/plugin-bootstrap";
 import { normalizeCharacter } from "@elizaos/plugin-di";
 import createGoatPlugin from "@elizaos/plugin-goat";
 // import { intifacePlugin } from "@elizaos/plugin-intiface";
 import { ThreeDGenerationPlugin } from "@elizaos/plugin-3d-generation";
-import { abstractPlugin } from "@elizaos/plugin-abstract";
+//import { abstractPlugin } from "@elizaos/plugin-abstract";
 import { akashPlugin } from "@elizaos/plugin-akash";
 import { alloraPlugin } from "@elizaos/plugin-allora";
 import { aptosPlugin } from "@elizaos/plugin-aptos";
@@ -1008,9 +1008,9 @@ export async function createAgent(
                 ? coingeckoPlugin
                 : null,
             getSecret(character, "EVM_PROVIDER_URL") ? goatPlugin : null,
-            getSecret(character, "ABSTRACT_PRIVATE_KEY")
-                ? abstractPlugin
-                : 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")
diff --git a/package.json b/package.json
index 6c9585d71aa..eb262d8f40e 100644
--- a/package.json
+++ b/package.json
@@ -28,21 +28,19 @@
         "@biomejs/biome": "^1.9.4",
         "@commitlint/cli": "18.6.1",
         "@commitlint/config-conventional": "18.6.3",
+        "@types/jest": "^29.5.11",
         "concurrently": "9.1.0",
         "cross-env": "7.0.3",
         "husky": "9.1.7",
+        "jest": "^29.7.0",
         "lerna": "8.1.5",
         "only-allow": "1.2.1",
-        "prettier": "3.4.1",
         "turbo": "2.3.3",
         "typedoc": "0.26.11",
         "typescript": "5.6.3",
         "viem": "2.21.58",
         "vite": "5.4.11",
-        "vitest": "2.1.5",
-        "ts-jest": "^29.1.1",
-        "@types/jest": "^29.5.11",
-        "jest": "^29.7.0"
+        "vitest": "2.1.5"
     },
     "pnpm": {
         "overrides": {
@@ -60,7 +58,6 @@
         "@injectivelabs/sdk-ts": "^1.14.33",
         "@vitest/eslint-plugin": "1.0.1",
         "amqplib": "0.10.5",
-        "axios": "^1.7.9",
         "csv-parse": "5.6.0",
         "langdetect": "^0.2.1",
         "ollama-ai-provider": "0.16.1",
diff --git a/packages/adapter-supabase/src/index.ts b/packages/adapter-supabase/src/index.ts
index 473ba706060..05bc0b0cd6f 100644
--- a/packages/adapter-supabase/src/index.ts
+++ b/packages/adapter-supabase/src/index.ts
@@ -1,18 +1,15 @@
 import {
-    type Memory,
-    type Goal,
-    type Relationship,
+    DatabaseAdapter,
+    elizaLogger,
+    type Account,
     type Actor,
+    type Goal,
     type GoalStatus,
-    type Account,
-    type UUID,
+    type Memory,
     type Participant,
-    type Room,
     type RAGKnowledgeItem,
-    elizaLogger,
-    type Goal,
-    type Memory,
     type Relationship,
+    type Room,
     type UUID,
 } from "@elizaos/core";
 import { createClient, type SupabaseClient } from "@supabase/supabase-js";
@@ -40,7 +37,7 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
 
         if (error) {
             throw new Error(
-                `Error getting participants for account: ${error.message}`
+                `Error getting participants for account: ${error.message}`,
             );
         }
 
@@ -49,65 +46,27 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
 
     async getParticipantUserState(
         roomId: UUID,
-        userId: UUID
+        userId: UUID,
     ): Promise<"FOLLOWED" | "MUTED" | null> {
-        try {
-            const { data, error } = await this.supabase
-                .from("participants")
-                .select("userState")
-                .eq("roomId", roomId)
-                .eq("userId", userId)
-                .maybeSingle();
-
-            if (error) {
-                elizaLogger.error(
-                    "Error getting participant user state:",
-                    error
-                );
-                return null;
-            }
+        const { data, error } = await this.supabase
+            .from("participants")
+            .select("userState")
+            .eq("roomId", roomId)
+            .eq("userId", userId)
+            .single();
 
-            return data?.userState as "FOLLOWED" | "MUTED" | null;
-        } catch (error) {
-            elizaLogger.error(
-                "Unexpected error in getParticipantUserState:",
-                error
-            );
+        if (error) {
+            elizaLogger.error("Error getting participant user state:", error);
             return null;
         }
-    }
 
-    async getParticipantsForRoom(roomId: UUID): Promise<UUID[]> {
-        try {
-            const { data, error } = await this.supabase
-                .from("participants")
-                .select("userId")
-                .eq("roomId", roomId);
-
-            if (error) {
-                elizaLogger.error(
-                    "Error getting participants for room:",
-                    error
-                );
-                throw new Error(
-                    `Error getting participants for room: ${error.message}`
-                );
-            }
-
-            return data.map((row) => row.userId as UUID);
-        } catch (error) {
-            elizaLogger.error(
-                "Unexpected error in getParticipantsForRoom:",
-                error
-            );
-            throw error;
-        }
+        return data?.userState as "FOLLOWED" | "MUTED" | null;
     }
 
     async setParticipantUserState(
         roomId: UUID,
         userId: UUID,
-        state: "FOLLOWED" | "MUTED" | null
+        state: "FOLLOWED" | "MUTED" | null,
     ): Promise<void> {
         const { error } = await this.supabase
             .from("participants")
@@ -121,6 +80,21 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
         }
     }
 
+    async getParticipantsForRoom(roomId: UUID): Promise<UUID[]> {
+        const { data, error } = await this.supabase
+            .from("participants")
+            .select("userId")
+            .eq("roomId", roomId);
+
+        if (error) {
+            throw new Error(
+                `Error getting participants for room: ${error.message}`,
+            );
+        }
+
+        return data.map((row) => row.userId as UUID);
+    }
+
     supabase: SupabaseClient;
 
     constructor(supabaseUrl: string, supabaseKey: string) {
@@ -140,25 +114,22 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
         roomIds: UUID[];
         agentId?: UUID;
         tableName: string;
+        limit?: number;
     }): Promise<Memory[]> {
-        // Determine which memories table to use based on the tableName
-        const embeddingSize = params.tableName.includes("_")
-            ? parseInt(params.tableName.split("_")[1])
-            : 1536; // default to 1536 if not specified
-
-        const actualTableName = `memories_${embeddingSize}`;
-
-        elizaLogger.info(`Querying memories from table: ${actualTableName}`);
-
         let query = this.supabase
-            .from(actualTableName)
+            .from(params.tableName)
             .select("*")
-            .in("roomId", params.roomIds);
+            .in("roomId", params.roomIds)
+            .order("createdAt", { ascending: false });
 
         if (params.agentId) {
             query = query.eq("agentId", params.agentId);
         }
 
+        if (params.limit) {
+            query = query.limit(params.limit);
+        }
+
         const { data, error } = await query;
 
         if (error) {
@@ -174,29 +145,26 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
         return memories as Memory[];
     }
 
-    async createAccount(account: Account): Promise<boolean> {
-        const { error } = await this.supabase
-            .from("accounts")
-            .upsert([account]);
-
-        if (error) {
-            elizaLogger.error(error.message);
-            return false;
-        }
-        return true;
-    }
-
     async getAccountById(userId: UUID): Promise<Account | null> {
         const { data, error } = await this.supabase
             .from("accounts")
             .select("*")
             .eq("id", userId);
+        if (error) {
+            throw new Error(error.message);
+        }
+        return (data?.[0] as Account) || null;
+    }
 
+    async createAccount(account: Account): Promise<boolean> {
+        const { error } = await this.supabase
+            .from("accounts")
+            .upsert([account]);
         if (error) {
             elizaLogger.error(error.message);
-            throw error;
+            return false;
         }
-        return (data?.[0] as Account) || null;
+        return true;
     }
 
     async getActorDetails(params: { roomId: UUID }): Promise<Actor[]> {
@@ -208,7 +176,7 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
           participants:participants(
             account:accounts(id, name, username, details)
           )
-      `
+      `,
                 )
                 .eq("id", params.roomId);
 
@@ -218,18 +186,17 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
             }
             const { data } = response;
 
-            return data
-                .flatMap((room) =>
-                    room.participants.map((participant) => {
-                        const user = participant.account as unknown as Actor;
-                        return {
-                            name: user?.name,
-                            details: user?.details,
-                            id: user?.id,
-                            username: user?.username,
-                        };
-                    })
-                );
+            return data.flatMap((room) =>
+                room.participants.map((participant) => {
+                    const user = participant.account as unknown as Actor;
+                    return {
+                        name: user?.name,
+                        details: user?.details,
+                        id: user?.id,
+                        username: user?.username,
+                    };
+                }),
+            );
         } catch (error) {
             elizaLogger.error("error", error);
             throw error;
@@ -297,7 +264,6 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
         type: string;
     }): Promise<void> {
         const { error } = await this.supabase.from("logs").insert({
-            id: uuid(),
             body: params.body,
             userId: params.userId,
             roomId: params.roomId,
@@ -319,27 +285,17 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
         start?: number;
         end?: number;
     }): Promise<Memory[]> {
-        // Determine which memories table to use based on the tableName
-        const embeddingSize = params.tableName.includes("_")
-            ? parseInt(params.tableName.split("_")[1])
-            : 1536; // default to 1536 if not specified
-
-        const actualTableName = `memories_${embeddingSize}`;
-
-        elizaLogger.info(`Querying memories from table: ${actualTableName}`);
-
         const query = this.supabase
-            .from(actualTableName)
+            .from(params.tableName)
             .select("*")
             .eq("roomId", params.roomId);
 
-        // Convert timestamps to ISO strings
         if (params.start) {
-            query.gte("createdAt", new Date(params.start).toISOString());
+            query.gte("createdAt", params.start);
         }
 
         if (params.end) {
-            query.lte("createdAt", new Date(params.end).toISOString());
+            query.lte("createdAt", params.end);
         }
 
         if (params.unique) {
@@ -362,15 +318,7 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
             throw new Error(`Error retrieving memories: ${error.message}`);
         }
 
-        // map createdAt to Date
-        const memories = data.map((memory) => ({
-            ...memory,
-            createdAt: memory.createdAt
-                ? new Date(memory.createdAt).getTime()
-                : undefined,
-        }));
-
-        return memories as Memory[];
+        return data as Memory[];
     }
 
     async searchMemoriesByEmbedding(
@@ -382,7 +330,7 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
             agentId?: UUID;
             unique?: boolean;
             tableName: string;
-        }
+        },
     ): Promise<Memory[]> {
         const queryParams = {
             query_table_name: params.tableName,
@@ -406,33 +354,23 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
     }
 
     async getMemoryById(memoryId: UUID): Promise<Memory | null> {
-        // Try each memory table since we don't know which one contains the memory
-        for (const size of [384, 768, 1024, 1536]) {
-            const { data, error } = await this.supabase
-                .from(`memories_${size}`)
-                .select("*")
-                .eq("id", memoryId)
-                .maybeSingle(); // Use maybeSingle() instead of single()
-            // PGRST116 means "no results found" - this is expected when checking other tables
-            if (error && error.code !== "PGRST116") {
-                elizaLogger.error(`Error checking memories_${size}:`, error);
-                continue;
-            }
+        const { data, error } = await this.supabase
+            .from("memories")
+            .select("*")
+            .eq("id", memoryId)
+            .single();
 
-            if (data) {
-                return data as Memory;
-            }
+        if (error) {
+            elizaLogger.error("Error retrieving memory by ID:", error);
+            return null;
         }
 
-        return null;
-    }
-
         return data as Memory;
     }
 
     async getMemoriesByIds(
         memoryIds: UUID[],
-        tableName?: string
+        tableName?: string,
     ): Promise<Memory[]> {
         if (memoryIds.length === 0) return [];
 
@@ -458,29 +396,13 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
     async createMemory(
         memory: Memory,
         tableName: string,
-        unique = false
+        unique = false,
     ): Promise<void> {
-        // ✅ Convert from milliseconds to seconds
-        const createdAt = memory.createdAt
-            ? new Date(memory.createdAt).toISOString()
-            : new Date().toISOString();
-
-        // Determine which table to use based on embedding size
-        const embeddingSize = memory.embedding?.length;
-        if (!embeddingSize) {
-            throw new Error("Memory must have an embedding");
-        }
-
-        // Validate embedding size
-        if (![384, 768, 1024, 1536].includes(embeddingSize)) {
-            throw new Error(`Unsupported embedding size: ${embeddingSize}`);
-        }
-
-        const actualTableName = `memories_${embeddingSize}`;
-
+        const createdAt = memory.createdAt ?? Date.now();
         if (unique) {
             const opts = {
-                query_table_name: actualTableName,
+                // TODO: Add ID option, optionally
+                query_table_name: tableName,
                 query_userId: memory.userId,
                 query_content: memory.content.text,
                 query_roomId: memory.roomId,
@@ -491,22 +413,19 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
 
             const result = await this.supabase.rpc(
                 "check_similarity_and_insert",
-                opts
+                opts,
             );
 
             if (result.error) {
                 throw new Error(JSON.stringify(result.error));
             }
         } else {
-            const result = await this.supabase.from(actualTableName).insert({
-                ...memory,
-                id: memory.id, // Ensure ID is included
-                createdAt,
-                type: tableName,
-            });
-
-            if (result.error) {
-                throw new Error(JSON.stringify(result.error));
+            const result = await this.supabase
+                .from("memories")
+                .insert({ ...memory, createdAt, type: tableName });
+            const { error } = result;
+            if (error) {
+                throw new Error(JSON.stringify(error));
             }
         }
     }
@@ -536,7 +455,7 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
     async countMemories(
         roomId: UUID,
         unique = true,
-        tableName: string
+        tableName: string,
     ): Promise<number> {
         if (!tableName) {
             throw new Error("tableName is required");
@@ -561,34 +480,23 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
         onlyInProgress?: boolean;
         count?: number;
     }): Promise<Goal[]> {
-        try {
-            const opts = {
-                query_roomId: params.roomId,
-                query_userId: params.userId || null,
-                only_in_progress: params.onlyInProgress || false,
-                row_count: params.count || null,
-            };
-
-            elizaLogger.debug("Calling get_goals with params:", opts);
+        const opts = {
+            query_roomId: params.roomId,
+            query_userId: params.userId,
+            only_in_progress: params.onlyInProgress,
+            row_count: params.count,
+        };
 
-            const { data: goals, error } = await this.supabase.rpc(
-                "get_goals",
-                opts
-            );
+        const { data: goals, error } = await this.supabase.rpc(
+            "get_goals",
+            opts,
+        );
 
-            if (error) {
-                elizaLogger.error("Error fetching goals:", {
-                    error,
-                    params: opts,
-                });
-                throw new Error(error.message);
-            }
-
-            return goals;
-        } catch (error) {
-            elizaLogger.error("Unexpected error in getGoals:", error);
-            throw error;
+        if (error) {
+            throw new Error(error.message);
         }
+
+        return goals;
     }
 
     async updateGoal(goal: Goal): Promise<void> {
@@ -602,9 +510,7 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
     }
 
     async createGoal(goal: Goal): Promise<void> {
-        const { error } = await this.supabase
-            .from("goals")
-            .insert({ ...goal, id: goal.id || uuid() });
+        const { error } = await this.supabase.from("goals").insert(goal);
         if (error) {
             throw new Error(`Error creating goal: ${error.message}`);
         }
@@ -638,7 +544,7 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
 
         if (error) {
             throw new Error(
-                `Error getting rooms by participant: ${error.message}`
+                `Error getting rooms by participant: ${error.message}`,
             );
         }
 
@@ -653,7 +559,7 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
 
         if (error) {
             throw new Error(
-                `Error getting rooms by participants: ${error.message}`
+                `Error getting rooms by participants: ${error.message}`,
             );
         }
 
@@ -689,11 +595,9 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
     }
 
     async addParticipant(userId: UUID, roomId: UUID): Promise<boolean> {
-        const { error } = await this.supabase.from("participants").insert({
-            id: uuid(), // Generate a new UUID for the participant
-            userId: userId,
-            roomId: roomId,
-        });
+        const { error } = await this.supabase
+            .from("participants")
+            .insert({ userId: userId, roomId: roomId });
 
         if (error) {
             elizaLogger.error(`Error adding participant: ${error.message}`);
@@ -728,48 +632,50 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
         let roomId: UUID;
 
         if (!allRoomData || allRoomData.length === 0) {
-            // Create new room with UUID
-            const newRoomId = uuid() as UUID;
-            const { error: roomsError } = await this.supabase
+            // If no existing room is found, create a new room
+            const { data: newRoomData, error: roomsError } = await this.supabase
                 .from("rooms")
-                .insert({ id: newRoomId });
+                .insert({})
+                .single();
 
             if (roomsError) {
                 throw new Error("Room creation error: " + roomsError.message);
             }
 
-            roomId = newRoomId;
+            roomId = (newRoomData as Room)?.id as UUID;
         } else {
+            // If an existing room is found, use the first room's ID
             roomId = allRoomData[0];
         }
 
         const { error: participantsError } = await this.supabase
             .from("participants")
             .insert([
-                { id: uuid(), userId: params.userA, roomId },
-                { id: uuid(), userId: params.userB, roomId },
+                { userId: params.userA, roomId },
+                { userId: params.userB, roomId },
             ]);
 
         if (participantsError) {
             throw new Error(
-                "Participants creation error: " + participantsError.message
+                "Participants creation error: " + participantsError.message,
             );
         }
 
-        // Create relationship with UUID
+        // Create or update the relationship between the two users
         const { error: relationshipError } = await this.supabase
             .from("relationships")
             .upsert({
-                id: uuid(),
                 userA: params.userA,
                 userB: params.userB,
                 userId: params.userA,
                 status: "FRIENDS",
-            });
+            })
+            .eq("userA", params.userA)
+            .eq("userB", params.userB);
 
         if (relationshipError) {
             throw new Error(
-                "Relationship creation error: " + relationshipError.message
+                "Relationship creation error: " + relationshipError.message,
             );
         }
 
@@ -815,7 +721,7 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
             .select("value")
             .eq("key", params.key)
             .eq("agentId", params.agentId)
-            .maybeSingle();
+            .single();
 
         if (error) {
             elizaLogger.error("Error fetching cache:", error);
@@ -834,7 +740,7 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
             key: params.key,
             agentId: params.agentId,
             value: params.value,
-            createdAt: new Date().toISOString(),
+            createdAt: new Date(),
         });
 
         if (error) {
@@ -868,7 +774,7 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
         } catch (error) {
             elizaLogger.error(
                 "Database connection error in deleteCache",
-                error instanceof Error ? error.message : String(error)
+                error instanceof Error ? error.message : String(error),
             );
             return false;
         }
@@ -973,15 +879,13 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
             const metadata = knowledge.content.metadata || {};
 
             const { error } = await this.supabase.from("knowledge").insert({
-                id: knowledge.id || uuid(),
+                id: knowledge.id,
                 agentId: metadata.isShared ? null : knowledge.agentId,
                 content: knowledge.content,
                 embedding: knowledge.embedding
                     ? Array.from(knowledge.embedding)
                     : null,
-                createdAt:
-                    new Date(knowledge.createdAt).toISOString() ||
-                    new Date().toISOString(),
+                createdAt: knowledge.createdAt || new Date(),
                 isMain: metadata.isMain || false,
                 originalId: metadata.originalId || null,
                 chunkIndex: metadata.chunkIndex || null,
@@ -992,7 +896,7 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
                 if (metadata.isShared && error.code === "23505") {
                     // Unique violation
                     elizaLogger.info(
-                        `Shared knowledge ${knowledge.id} already exists, skipping`
+                        `Shared knowledge ${knowledge.id} already exists, skipping`,
                     );
                     return;
                 }
@@ -1030,7 +934,7 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
             if (error) {
                 elizaLogger.error(
                     `Error clearing shared knowledge for agent ${agentId}:`,
-                    error
+                    error,
                 );
                 throw error;
             }
@@ -1043,7 +947,7 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
             if (error) {
                 elizaLogger.error(
                     `Error clearing knowledge for agent ${agentId}:`,
-                    error
+                    error,
                 );
                 throw error;
             }
diff --git a/packages/client-twitter/src/plugins/SttTtsSpacesPlugin.ts b/packages/client-twitter/src/plugins/SttTtsSpacesPlugin.ts
index 19125faa920..c930f6e5ce0 100644
--- a/packages/client-twitter/src/plugins/SttTtsSpacesPlugin.ts
+++ b/packages/client-twitter/src/plugins/SttTtsSpacesPlugin.ts
@@ -1,32 +1,32 @@
 // src/plugins/SttTtsPlugin.ts
 
-import { spawn } from "child_process";
 import {
-    type ITranscriptionService,
-    elizaLogger,
-    stringToUuid,
-    composeContext,
-    getEmbeddingZeroVector,
-    generateMessageResponse,
-    ModelClass,
     Content,
     IAgentRuntime,
+    type ITranscriptionService,
     Memory,
+    ModelClass,
     Plugin,
-    UUID,
     State,
+    UUID,
+    composeContext,
     composeRandomUser,
+    elizaLogger,
+    generateMessageResponse,
     generateShouldRespond,
+    getEmbeddingZeroVector,
+    stringToUuid,
 } from "@elizaos/core";
 import type {
-    Space,
-    JanusClient,
     AudioDataWithUser,
+    JanusClient,
+    Space,
 } from "agent-twitter-client";
+import { spawn } from "child_process";
 import { ClientBase } from "../base";
 import {
-    twitterVoiceHandlerTemplate,
     twitterShouldRespondTemplate,
+    twitterVoiceHandlerTemplate,
 } from "./templates";
 
 interface PluginConfig {
@@ -382,6 +382,7 @@ export class SttTtsPlugin implements Plugin {
                     return;
                 }
             } catch (err) {
+                console.log("SttTtsplugin error",err);
                 elizaLogger.error("[SttTtsPlugin] TTS streaming error =>", err);
             } finally {
                 // Clean up the AbortController
diff --git a/packages/core/src/generation.bak.ts b/packages/core/src/generation.bak.ts
new file mode 100644
index 00000000000..68ae4dea1ac
--- /dev/null
+++ b/packages/core/src/generation.bak.ts
@@ -0,0 +1,2400 @@
+import { createAnthropic } from "@ai-sdk/anthropic";
+import { createGoogleGenerativeAI } from "@ai-sdk/google";
+import { createGroq } from "@ai-sdk/groq";
+import { createMistral } from "@ai-sdk/mistral";
+import { createOpenAI } from "@ai-sdk/openai";
+import { fal } from "@fal-ai/client";
+import { AutoTokenizer } from "@huggingface/transformers";
+import { tavily } from "@tavily/core";
+import {
+    generateObject as aiGenerateObject,
+    generateText as aiGenerateText,
+    StepResult as AIStepResult,
+    CoreTool,
+    GenerateObjectResult,
+} from "ai";
+import { Buffer } from "buffer";
+import https from "https";
+import { encodingForModel, TiktokenModel } from "js-tiktoken";
+import { RecursiveCharacterTextSplitter } from "langchain/text_splitter";
+import { createOllama } from "ollama-ai-provider";
+import OpenAI from "openai";
+import Together from "together-ai";
+import { ZodSchema } from "zod";
+import { elizaLogger } from "./index.ts";
+import {
+    getEndpoint,
+    getImageModelSettings,
+    getModelSettings,
+    models,
+} from "./models.ts";
+import {
+    parseActionResponseFromText,
+    parseBooleanFromText,
+    parseJsonArrayFromText,
+    parseJSONObjectFromText,
+    parseShouldRespondFromText,
+} from "./parsing.ts";
+import settings from "./settings.ts";
+import {
+    ActionResponse,
+    Content,
+    IAgentRuntime,
+    IImageDescriptionService,
+    ITextGenerationService,
+    IVerifiableInferenceAdapter,
+    ModelClass,
+    ModelProviderName,
+    SearchResponse,
+    SerperSearchResponse,
+    ServiceType,
+    //VerifiableInferenceProvider,
+    TelemetrySettings,
+    TokenizerType,
+    VerifiableInferenceOptions,
+    VerifiableInferenceResult,
+} from "./types.ts";
+
+type Tool = CoreTool<any, any>;
+type StepResult = AIStepResult<any>;
+
+/**
+ * Trims the provided text context to a specified token limit using a tokenizer model and type.
+ *
+ * The function dynamically determines the truncation method based on the tokenizer settings
+ * provided by the runtime. If no tokenizer settings are defined, it defaults to using the
+ * TikToken truncation method with the "gpt-4o" model.
+ *
+ * @async
+ * @function trimTokens
+ * @param {string} context - The text to be tokenized and trimmed.
+ * @param {number} maxTokens - The maximum number of tokens allowed after truncation.
+ * @param {IAgentRuntime} runtime - The runtime interface providing tokenizer settings.
+ *
+ * @returns {Promise<string>} A promise that resolves to the trimmed text.
+ *
+ * @throws {Error} Throws an error if the runtime settings are invalid or missing required fields.
+ *
+ * @example
+ * const trimmedText = await trimTokens("This is an example text", 50, runtime);
+ * console.log(trimmedText); // Output will be a truncated version of the input text.
+ */
+export async function trimTokens(
+    context: string,
+    maxTokens: number,
+    runtime: IAgentRuntime
+) {
+    if (!context) return "";
+    if (maxTokens <= 0) throw new Error("maxTokens must be positive");
+
+    const tokenizerModel = runtime.getSetting("TOKENIZER_MODEL");
+    const tokenizerType = runtime.getSetting("TOKENIZER_TYPE");
+
+    if (!tokenizerModel || !tokenizerType) {
+        // Default to TikToken truncation using the "gpt-4o" model if tokenizer settings are not defined
+        return truncateTiktoken("gpt-4o", context, maxTokens);
+    }
+
+    // Choose the truncation method based on tokenizer type
+    if (tokenizerType === TokenizerType.Auto) {
+        return truncateAuto(tokenizerModel, context, maxTokens);
+    }
+
+    if (tokenizerType === TokenizerType.TikToken) {
+        return truncateTiktoken(
+            tokenizerModel as TiktokenModel,
+            context,
+            maxTokens
+        );
+    }
+
+    elizaLogger.warn(`Unsupported tokenizer type: ${tokenizerType}`);
+    return truncateTiktoken("gpt-4o", context, maxTokens);
+}
+
+async function truncateAuto(
+    modelPath: string,
+    context: string,
+    maxTokens: number
+) {
+    try {
+        const tokenizer = await AutoTokenizer.from_pretrained(modelPath);
+        const tokens = tokenizer.encode(context);
+
+        // If already within limits, return unchanged
+        if (tokens.length <= maxTokens) {
+            return context;
+        }
+
+        // Keep the most recent tokens by slicing from the end
+        const truncatedTokens = tokens.slice(-maxTokens);
+
+        // Decode back to text - js-tiktoken decode() returns a string directly
+        return tokenizer.decode(truncatedTokens);
+    } catch (error) {
+        elizaLogger.error("Error in trimTokens:", error);
+        // Return truncated string if tokenization fails
+        return context.slice(-maxTokens * 4); // Rough estimate of 4 chars per token
+    }
+}
+
+async function truncateTiktoken(
+    model: TiktokenModel,
+    context: string,
+    maxTokens: number
+) {
+    try {
+        const encoding = encodingForModel(model);
+
+        // Encode the text into tokens
+        const tokens = encoding.encode(context);
+
+        // If already within limits, return unchanged
+        if (tokens.length <= maxTokens) {
+            return context;
+        }
+
+        // Keep the most recent tokens by slicing from the end
+        const truncatedTokens = tokens.slice(-maxTokens);
+
+        // Decode back to text - js-tiktoken decode() returns a string directly
+        return encoding.decode(truncatedTokens);
+    } catch (error) {
+        elizaLogger.error("Error in trimTokens:", error);
+        // Return truncated string if tokenization fails
+        return context.slice(-maxTokens * 4); // Rough estimate of 4 chars per token
+    }
+}
+
+/**
+ * Gets the Cloudflare Gateway base URL for a specific provider if enabled
+ * @param runtime The runtime environment
+ * @param provider The model provider name
+ * @returns The Cloudflare Gateway base URL if enabled, undefined otherwise
+ */
+function getCloudflareGatewayBaseURL(
+    runtime: IAgentRuntime,
+    provider: string
+): string | undefined {
+    const isCloudflareEnabled =
+        runtime.getSetting("CLOUDFLARE_GW_ENABLED") === "true";
+    const cloudflareAccountId = runtime.getSetting("CLOUDFLARE_AI_ACCOUNT_ID");
+    const cloudflareGatewayId = runtime.getSetting("CLOUDFLARE_AI_GATEWAY_ID");
+
+    elizaLogger.debug("Cloudflare Gateway Configuration:", {
+        isEnabled: isCloudflareEnabled,
+        hasAccountId: !!cloudflareAccountId,
+        hasGatewayId: !!cloudflareGatewayId,
+        provider: provider,
+    });
+
+    if (!isCloudflareEnabled) {
+        elizaLogger.debug("Cloudflare Gateway is not enabled");
+        return undefined;
+    }
+
+    if (!cloudflareAccountId) {
+        elizaLogger.warn(
+            "Cloudflare Gateway is enabled but CLOUDFLARE_AI_ACCOUNT_ID is not set"
+        );
+        return undefined;
+    }
+
+    if (!cloudflareGatewayId) {
+        elizaLogger.warn(
+            "Cloudflare Gateway is enabled but CLOUDFLARE_AI_GATEWAY_ID is not set"
+        );
+        return undefined;
+    }
+
+    const baseURL = `https://gateway.ai.cloudflare.com/v1/${cloudflareAccountId}/${cloudflareGatewayId}/${provider.toLowerCase()}`;
+    elizaLogger.info("Using Cloudflare Gateway:", {
+        provider,
+        baseURL,
+        accountId: cloudflareAccountId,
+        gatewayId: cloudflareGatewayId,
+    });
+
+    return baseURL;
+}
+
+/**
+ * Send a message to the model for a text generateText - receive a string back and parse how you'd like
+ * @param opts - The options for the generateText request.
+ * @param opts.context The context of the message to be completed.
+ * @param opts.stop A list of strings to stop the generateText at.
+ * @param opts.model The model to use for generateText.
+ * @param opts.frequency_penalty The frequency penalty to apply to the generateText.
+ * @param opts.presence_penalty The presence penalty to apply to the generateText.
+ * @param opts.temperature The temperature to apply to the generateText.
+ * @param opts.max_context_length The maximum length of the context to apply to the generateText.
+ * @returns The completed message.
+ */
+
+export async function generateText({
+    runtime,
+    context,
+    modelClass,
+    tools = {},
+    onStepFinish,
+    maxSteps = 1,
+    stop,
+    customSystemPrompt,
+    verifiableInference = process.env.VERIFIABLE_INFERENCE_ENABLED === "true",
+    verifiableInferenceOptions,
+}: {
+    runtime: IAgentRuntime;
+    context: string;
+    modelClass: ModelClass;
+    tools?: Record<string, Tool>;
+    onStepFinish?: (event: StepResult) => Promise<void> | void;
+    maxSteps?: number;
+    stop?: string[];
+    customSystemPrompt?: string;
+    verifiableInference?: boolean;
+    verifiableInferenceAdapter?: IVerifiableInferenceAdapter;
+    verifiableInferenceOptions?: VerifiableInferenceOptions;
+}): Promise<string> {
+    if (!context) {
+        console.error("generateText context is empty");
+        return "";
+    }
+
+    elizaLogger.log("Generating text...");
+
+    elizaLogger.info("Generating text with options:", {
+        modelProvider: runtime.modelProvider,
+        model: modelClass,
+        verifiableInference,
+    });
+    elizaLogger.log("Using provider:", runtime.modelProvider);
+    // If verifiable inference is requested and adapter is provided, use it
+    if (verifiableInference && runtime.verifiableInferenceAdapter) {
+        elizaLogger.log(
+            "Using verifiable inference adapter:",
+            runtime.verifiableInferenceAdapter
+        );
+        try {
+            const result: VerifiableInferenceResult =
+                await runtime.verifiableInferenceAdapter.generateText(
+                    context,
+                    modelClass,
+                    verifiableInferenceOptions
+                );
+            elizaLogger.log("Verifiable inference result:", result);
+            // Verify the proof
+            const isValid =
+                await runtime.verifiableInferenceAdapter.verifyProof(result);
+            if (!isValid) {
+                throw new Error("Failed to verify inference proof");
+            }
+
+            return result.text;
+        } catch (error) {
+            elizaLogger.error("Error in verifiable inference:", error);
+            throw error;
+        }
+    }
+
+    const provider = runtime.modelProvider;
+    elizaLogger.debug("Provider settings:", {
+        provider,
+        hasRuntime: !!runtime,
+        runtimeSettings: {
+            CLOUDFLARE_GW_ENABLED: runtime.getSetting("CLOUDFLARE_GW_ENABLED"),
+            CLOUDFLARE_AI_ACCOUNT_ID: runtime.getSetting(
+                "CLOUDFLARE_AI_ACCOUNT_ID"
+            ),
+            CLOUDFLARE_AI_GATEWAY_ID: runtime.getSetting(
+                "CLOUDFLARE_AI_GATEWAY_ID"
+            ),
+        },
+    });
+
+    const endpoint =
+        runtime.character.modelEndpointOverride || getEndpoint(provider);
+    const modelSettings = getModelSettings(runtime.modelProvider, modelClass);
+    let model = modelSettings.name;
+
+    // allow character.json settings => secrets to override models
+    // FIXME: add MODEL_MEDIUM support
+    switch (provider) {
+        // if runtime.getSetting("LLAMACLOUD_MODEL_LARGE") is true and modelProvider is LLAMACLOUD, then use the large model
+        case ModelProviderName.LLAMACLOUD:
+            {
+                switch (modelClass) {
+                    case ModelClass.LARGE:
+                        {
+                            model =
+                                runtime.getSetting("LLAMACLOUD_MODEL_LARGE") ||
+                                model;
+                        }
+                        break;
+                    case ModelClass.SMALL:
+                        {
+                            model =
+                                runtime.getSetting("LLAMACLOUD_MODEL_SMALL") ||
+                                model;
+                        }
+                        break;
+                }
+            }
+            break;
+        case ModelProviderName.TOGETHER:
+            {
+                switch (modelClass) {
+                    case ModelClass.LARGE:
+                        {
+                            model =
+                                runtime.getSetting("TOGETHER_MODEL_LARGE") ||
+                                model;
+                        }
+                        break;
+                    case ModelClass.SMALL:
+                        {
+                            model =
+                                runtime.getSetting("TOGETHER_MODEL_SMALL") ||
+                                model;
+                        }
+                        break;
+                }
+            }
+            break;
+        case ModelProviderName.OPENROUTER:
+            {
+                switch (modelClass) {
+                    case ModelClass.LARGE:
+                        {
+                            model =
+                                runtime.getSetting("LARGE_OPENROUTER_MODEL") ||
+                                model;
+                        }
+                        break;
+                    case ModelClass.SMALL:
+                        {
+                            model =
+                                runtime.getSetting("SMALL_OPENROUTER_MODEL") ||
+                                model;
+                        }
+                        break;
+                }
+            }
+            break;
+    }
+
+    elizaLogger.info("Selected model:", model);
+
+    const modelConfiguration = runtime.character?.settings?.modelConfig;
+    const temperature =
+        modelConfiguration?.temperature || modelSettings.temperature;
+    const frequency_penalty =
+        modelConfiguration?.frequency_penalty ||
+        modelSettings.frequency_penalty;
+    const presence_penalty =
+        modelConfiguration?.presence_penalty || modelSettings.presence_penalty;
+    const max_context_length =
+        modelConfiguration?.maxInputTokens || modelSettings.maxInputTokens;
+    const max_response_length =
+        modelConfiguration?.max_response_length ||
+        modelSettings.maxOutputTokens;
+    const experimental_telemetry =
+        modelConfiguration?.experimental_telemetry ||
+        modelSettings.experimental_telemetry;
+
+    const apiKey = runtime.token;
+
+    try {
+        elizaLogger.debug(
+            `Trimming context to max length of ${max_context_length} tokens.`
+        );
+
+        context = await trimTokens(context, max_context_length, runtime);
+
+        let response: string;
+
+        const _stop = stop || modelSettings.stop;
+        elizaLogger.debug(
+            `Using provider: ${provider}, model: ${model}, temperature: ${temperature}, max response length: ${max_response_length}`
+        );
+
+        switch (provider) {
+            // OPENAI & LLAMACLOUD shared same structure.
+            case ModelProviderName.OPENAI:
+            case ModelProviderName.ALI_BAILIAN:
+            case ModelProviderName.VOLENGINE:
+            case ModelProviderName.LLAMACLOUD:
+            case ModelProviderName.NANOGPT:
+            case ModelProviderName.HYPERBOLIC:
+            case ModelProviderName.TOGETHER:
+            case ModelProviderName.NINETEEN_AI:
+            case ModelProviderName.AKASH_CHAT_API: {
+                elizaLogger.debug(
+                    "Initializing OpenAI model with Cloudflare check"
+                );
+                const baseURL =
+                    getCloudflareGatewayBaseURL(runtime, "openai") || endpoint;
+
+                //elizaLogger.debug("OpenAI baseURL result:", { baseURL });
+                const openai = createOpenAI({
+                    apiKey,
+                    baseURL,
+                    fetch: runtime.fetch,
+                });
+
+                const { text: openaiResponse } = await aiGenerateText({
+                    model: openai.languageModel(model),
+                    prompt: context,
+                    system:
+                        runtime.character.system ??
+                        settings.SYSTEM_PROMPT ??
+                        undefined,
+                    tools: tools,
+                    onStepFinish: onStepFinish,
+                    maxSteps: maxSteps,
+                    temperature: temperature,
+                    maxTokens: max_response_length,
+                    frequencyPenalty: frequency_penalty,
+                    presencePenalty: presence_penalty,
+                    experimental_telemetry: experimental_telemetry,
+                });
+                // console.log({
+                //     model: openai.languageModel(model),
+                //     prompt: context,
+                //     system:
+                //         runtime.character.system ??
+                //         settings.SYSTEM_PROMPT ??
+                //         undefined,
+                //     tools: tools,
+                //     onStepFinish: onStepFinish,
+                //     maxSteps: maxSteps,
+                //     temperature: temperature,
+                //     maxTokens: max_response_length,
+                //     frequencyPenalty: frequency_penalty,
+                //     presencePenalty: presence_penalty,
+                //     experimental_telemetry: experimental_telemetry,
+                //     openaiResponse,
+                // });
+                response = openaiResponse;
+                console.log("Received response from OpenAI model.");
+                break;
+            }
+
+            case ModelProviderName.ETERNALAI: {
+                elizaLogger.debug("Initializing EternalAI model.");
+                const openai = createOpenAI({
+                    apiKey,
+                    baseURL: endpoint,
+                    fetch: async (url: string, options: any) => {
+                        const chain_id =
+                            runtime.getSetting("ETERNALAI_CHAIN_ID") || "45762";
+                        if (options?.body) {
+                            const body = JSON.parse(options.body);
+                            body.chain_id = chain_id;
+                            options.body = JSON.stringify(body);
+                        }
+                        const fetching = await runtime.fetch(url, options);
+                        if (
+                            parseBooleanFromText(
+                                runtime.getSetting("ETERNALAI_LOG")
+                            )
+                        ) {
+                            elizaLogger.info(
+                                "Request data: ",
+                                JSON.stringify(options, null, 2)
+                            );
+                            const clonedResponse = fetching.clone();
+                            try {
+                                clonedResponse.json().then((data) => {
+                                    elizaLogger.info(
+                                        "Response data: ",
+                                        JSON.stringify(data, null, 2)
+                                    );
+                                });
+                            } catch (e) {
+                                elizaLogger.debug(e);
+                            }
+                        }
+                        return fetching;
+                    },
+                });
+
+                const { text: openaiResponse } = await aiGenerateText({
+                    model: openai.languageModel(model),
+                    prompt: context,
+                    system:
+                        runtime.character.system ??
+                        settings.SYSTEM_PROMPT ??
+                        undefined,
+                    temperature: temperature,
+                    maxTokens: max_response_length,
+                    frequencyPenalty: frequency_penalty,
+                    presencePenalty: presence_penalty,
+                });
+
+                response = openaiResponse;
+                elizaLogger.debug("Received response from EternalAI model.");
+                break;
+            }
+
+            case ModelProviderName.GOOGLE: {
+                const google = createGoogleGenerativeAI({
+                    apiKey,
+                    fetch: runtime.fetch,
+                });
+
+                const { text: googleResponse } = await aiGenerateText({
+                    model: google(model),
+                    prompt: context,
+                    system:
+                        runtime.character.system ??
+                        settings.SYSTEM_PROMPT ??
+                        undefined,
+                    tools: tools,
+                    onStepFinish: onStepFinish,
+                    maxSteps: maxSteps,
+                    temperature: temperature,
+                    maxTokens: max_response_length,
+                    frequencyPenalty: frequency_penalty,
+                    presencePenalty: presence_penalty,
+                    experimental_telemetry: experimental_telemetry,
+                });
+
+                response = googleResponse;
+                elizaLogger.debug("Received response from Google model.");
+                break;
+            }
+
+            case ModelProviderName.MISTRAL: {
+                const mistral = createMistral();
+
+                const { text: mistralResponse } = await aiGenerateText({
+                    model: mistral(model),
+                    prompt: context,
+                    system:
+                        runtime.character.system ??
+                        settings.SYSTEM_PROMPT ??
+                        undefined,
+                    temperature: temperature,
+                    maxTokens: max_response_length,
+                    frequencyPenalty: frequency_penalty,
+                    presencePenalty: presence_penalty,
+                });
+
+                response = mistralResponse;
+                elizaLogger.debug("Received response from Mistral model.");
+                break;
+            }
+
+            case ModelProviderName.ANTHROPIC: {
+                elizaLogger.debug(
+                    "Initializing Anthropic model with Cloudflare check"
+                );
+                const baseURL =
+                    getCloudflareGatewayBaseURL(runtime, "anthropic") ||
+                    "https://api.anthropic.com/v1";
+                elizaLogger.debug("Anthropic baseURL result:", { baseURL });
+
+                const anthropic = createAnthropic({
+                    apiKey,
+                    baseURL,
+                    fetch: runtime.fetch,
+                });
+                const { text: anthropicResponse } = await aiGenerateText({
+                    model: anthropic.languageModel(model),
+                    prompt: context,
+                    system:
+                        runtime.character.system ??
+                        settings.SYSTEM_PROMPT ??
+                        undefined,
+                    tools: tools,
+                    onStepFinish: onStepFinish,
+                    maxSteps: maxSteps,
+                    temperature: temperature,
+                    maxTokens: max_response_length,
+                    frequencyPenalty: frequency_penalty,
+                    presencePenalty: presence_penalty,
+                    experimental_telemetry: experimental_telemetry,
+                });
+
+                response = anthropicResponse;
+                elizaLogger.debug("Received response from Anthropic model.");
+                break;
+            }
+
+            case ModelProviderName.CLAUDE_VERTEX: {
+                elizaLogger.debug("Initializing Claude Vertex model.");
+
+                const anthropic = createAnthropic({
+                    apiKey,
+                    fetch: runtime.fetch,
+                });
+
+                const { text: anthropicResponse } = await aiGenerateText({
+                    model: anthropic.languageModel(model),
+                    prompt: context,
+                    system:
+                        runtime.character.system ??
+                        settings.SYSTEM_PROMPT ??
+                        undefined,
+                    tools: tools,
+                    onStepFinish: onStepFinish,
+                    maxSteps: maxSteps,
+                    temperature: temperature,
+                    maxTokens: max_response_length,
+                    frequencyPenalty: frequency_penalty,
+                    presencePenalty: presence_penalty,
+                    experimental_telemetry: experimental_telemetry,
+                });
+
+                response = anthropicResponse;
+                elizaLogger.debug(
+                    "Received response from Claude Vertex model."
+                );
+                break;
+            }
+
+            case ModelProviderName.GROK: {
+                elizaLogger.debug("Initializing Grok model.");
+                const grok = createOpenAI({
+                    apiKey,
+                    baseURL: endpoint,
+                    fetch: runtime.fetch,
+                });
+
+                const { text: grokResponse } = await aiGenerateText({
+                    model: grok.languageModel(model, {
+                        parallelToolCalls: false,
+                    }),
+                    prompt: context,
+                    system:
+                        runtime.character.system ??
+                        settings.SYSTEM_PROMPT ??
+                        undefined,
+                    tools: tools,
+                    onStepFinish: onStepFinish,
+                    maxSteps: maxSteps,
+                    temperature: temperature,
+                    maxTokens: max_response_length,
+                    frequencyPenalty: frequency_penalty,
+                    presencePenalty: presence_penalty,
+                    experimental_telemetry: experimental_telemetry,
+                });
+
+                response = grokResponse;
+                elizaLogger.debug("Received response from Grok model.");
+                break;
+            }
+
+            case ModelProviderName.GROQ: {
+                elizaLogger.debug(
+                    "Initializing Groq model with Cloudflare check"
+                );
+                const baseURL = getCloudflareGatewayBaseURL(runtime, "groq");
+                elizaLogger.debug("Groq baseURL result:", { baseURL });
+                const groq = createGroq({
+                    apiKey,
+                    fetch: runtime.fetch,
+                    baseURL,
+                });
+
+                const { text: groqResponse } = await aiGenerateText({
+                    model: groq.languageModel(model),
+                    prompt: context,
+                    temperature,
+                    system:
+                        runtime.character.system ??
+                        settings.SYSTEM_PROMPT ??
+                        undefined,
+                    tools,
+                    onStepFinish: onStepFinish,
+                    maxSteps,
+                    maxTokens: max_response_length,
+                    frequencyPenalty: frequency_penalty,
+                    presencePenalty: presence_penalty,
+                    experimental_telemetry,
+                });
+
+                response = groqResponse;
+                elizaLogger.debug("Received response from Groq model.");
+                break;
+            }
+
+            case ModelProviderName.LLAMALOCAL: {
+                elizaLogger.debug(
+                    "Using local Llama model for text completion."
+                );
+                const textGenerationService =
+                    runtime.getService<ITextGenerationService>(
+                        ServiceType.TEXT_GENERATION
+                    );
+
+                if (!textGenerationService) {
+                    throw new Error("Text generation service not found");
+                }
+
+                response = await textGenerationService.queueTextCompletion(
+                    context,
+                    temperature,
+                    _stop,
+                    frequency_penalty,
+                    presence_penalty,
+                    max_response_length
+                );
+                elizaLogger.debug("Received response from local Llama model.");
+                break;
+            }
+
+            case ModelProviderName.REDPILL: {
+                elizaLogger.debug("Initializing RedPill model.");
+                const serverUrl = getEndpoint(provider);
+                const openai = createOpenAI({
+                    apiKey,
+                    baseURL: serverUrl,
+                    fetch: runtime.fetch,
+                });
+
+                const { text: redpillResponse } = await aiGenerateText({
+                    model: openai.languageModel(model),
+                    prompt: context,
+                    temperature: temperature,
+                    system:
+                        runtime.character.system ??
+                        settings.SYSTEM_PROMPT ??
+                        undefined,
+                    tools: tools,
+                    onStepFinish: onStepFinish,
+                    maxSteps: maxSteps,
+                    maxTokens: max_response_length,
+                    frequencyPenalty: frequency_penalty,
+                    presencePenalty: presence_penalty,
+                    experimental_telemetry: experimental_telemetry,
+                });
+
+                response = redpillResponse;
+                elizaLogger.debug("Received response from redpill model.");
+                break;
+            }
+
+            case ModelProviderName.OPENROUTER: {
+                elizaLogger.debug("Initializing OpenRouter model.");
+                const serverUrl = getEndpoint(provider);
+                const openrouter = createOpenAI({
+                    apiKey,
+                    baseURL: serverUrl,
+                    fetch: runtime.fetch,
+                });
+
+                const { text: openrouterResponse } = await aiGenerateText({
+                    model: openrouter.languageModel(model),
+                    prompt: context,
+                    temperature: temperature,
+                    system:
+                        runtime.character.system ??
+                        settings.SYSTEM_PROMPT ??
+                        undefined,
+                    tools: tools,
+                    onStepFinish: onStepFinish,
+                    maxSteps: maxSteps,
+                    maxTokens: max_response_length,
+                    frequencyPenalty: frequency_penalty,
+                    presencePenalty: presence_penalty,
+                    experimental_telemetry: experimental_telemetry,
+                });
+
+                response = openrouterResponse;
+                elizaLogger.debug("Received response from OpenRouter model.");
+                break;
+            }
+
+            case ModelProviderName.OLLAMA:
+                {
+                    elizaLogger.debug("Initializing Ollama model.");
+
+                    const ollamaProvider = createOllama({
+                        baseURL: getEndpoint(provider) + "/api",
+                        fetch: runtime.fetch,
+                    });
+                    const ollama = ollamaProvider(model);
+
+                    elizaLogger.debug("****** MODEL\n", model);
+
+                    const { text: ollamaResponse } = await aiGenerateText({
+                        model: ollama,
+                        prompt: context,
+                        tools: tools,
+                        onStepFinish: onStepFinish,
+                        temperature: temperature,
+                        maxSteps: maxSteps,
+                        maxTokens: max_response_length,
+                        frequencyPenalty: frequency_penalty,
+                        presencePenalty: presence_penalty,
+                        experimental_telemetry: experimental_telemetry,
+                    });
+
+                    response = ollamaResponse;
+                }
+                elizaLogger.debug("Received response from Ollama model.");
+                break;
+
+            case ModelProviderName.HEURIST: {
+                elizaLogger.debug("Initializing Heurist model.");
+                const heurist = createOpenAI({
+                    apiKey: apiKey,
+                    baseURL: endpoint,
+                    fetch: runtime.fetch,
+                });
+
+                const { text: heuristResponse } = await aiGenerateText({
+                    model: heurist.languageModel(model),
+                    prompt: context,
+                    system:
+                        customSystemPrompt ??
+                        runtime.character.system ??
+                        settings.SYSTEM_PROMPT ??
+                        undefined,
+                    tools: tools,
+                    onStepFinish: onStepFinish,
+                    temperature: temperature,
+                    maxTokens: max_response_length,
+                    maxSteps: maxSteps,
+                    frequencyPenalty: frequency_penalty,
+                    presencePenalty: presence_penalty,
+                    experimental_telemetry: experimental_telemetry,
+                });
+
+                response = heuristResponse;
+                elizaLogger.debug("Received response from Heurist model.");
+                break;
+            }
+            case ModelProviderName.GAIANET: {
+                elizaLogger.debug("Initializing GAIANET model.");
+
+                var baseURL = getEndpoint(provider);
+                if (!baseURL) {
+                    switch (modelClass) {
+                        case ModelClass.SMALL:
+                            baseURL =
+                                settings.SMALL_GAIANET_SERVER_URL ||
+                                "https://llama3b.gaia.domains/v1";
+                            break;
+                        case ModelClass.MEDIUM:
+                            baseURL =
+                                settings.MEDIUM_GAIANET_SERVER_URL ||
+                                "https://llama8b.gaia.domains/v1";
+                            break;
+                        case ModelClass.LARGE:
+                            baseURL =
+                                settings.LARGE_GAIANET_SERVER_URL ||
+                                "https://qwen72b.gaia.domains/v1";
+                            break;
+                    }
+                }
+
+                elizaLogger.debug("Using GAIANET model with baseURL:", baseURL);
+
+                const openai = createOpenAI({
+                    apiKey,
+                    baseURL: endpoint,
+                    fetch: runtime.fetch,
+                });
+
+                const { text: openaiResponse } = await aiGenerateText({
+                    model: openai.languageModel(model),
+                    prompt: context,
+                    system:
+                        runtime.character.system ??
+                        settings.SYSTEM_PROMPT ??
+                        undefined,
+                    tools: tools,
+                    onStepFinish: onStepFinish,
+                    maxSteps: maxSteps,
+                    temperature: temperature,
+                    maxTokens: max_response_length,
+                    frequencyPenalty: frequency_penalty,
+                    presencePenalty: presence_penalty,
+                    experimental_telemetry: experimental_telemetry,
+                });
+
+                response = openaiResponse;
+                elizaLogger.debug("Received response from GAIANET model.");
+                break;
+            }
+
+            case ModelProviderName.GALADRIEL: {
+                elizaLogger.debug("Initializing Galadriel model.");
+                const headers = {};
+                const fineTuneApiKey = runtime.getSetting(
+                    "GALADRIEL_FINE_TUNE_API_KEY"
+                );
+                if (fineTuneApiKey) {
+                    headers["Fine-Tune-Authentication"] = fineTuneApiKey;
+                }
+                const galadriel = createOpenAI({
+                    headers,
+                    apiKey: apiKey,
+                    baseURL: endpoint,
+                    fetch: runtime.fetch,
+                });
+
+                const { text: galadrielResponse } = await aiGenerateText({
+                    model: galadriel.languageModel(model),
+                    prompt: context,
+                    system:
+                        runtime.character.system ??
+                        settings.SYSTEM_PROMPT ??
+                        undefined,
+                    tools: tools,
+                    onStepFinish: onStepFinish,
+                    maxSteps: maxSteps,
+                    temperature: temperature,
+                    maxTokens: max_response_length,
+                    frequencyPenalty: frequency_penalty,
+                    presencePenalty: presence_penalty,
+                    experimental_telemetry: experimental_telemetry,
+                });
+
+                response = galadrielResponse;
+                elizaLogger.debug("Received response from Galadriel model.");
+                break;
+            }
+
+            case ModelProviderName.INFERA: {
+                elizaLogger.debug("Initializing Infera model.");
+
+                const apiKey = settings.INFERA_API_KEY || runtime.token;
+
+                const infera = createOpenAI({
+                    apiKey,
+                    baseURL: endpoint,
+                    headers: {
+                        api_key: apiKey,
+                        "Content-Type": "application/json",
+                    },
+                });
+
+                const { text: inferaResponse } = await aiGenerateText({
+                    model: infera.languageModel(model),
+                    prompt: context,
+                    system:
+                        runtime.character.system ??
+                        settings.SYSTEM_PROMPT ??
+                        undefined,
+                    temperature: temperature,
+                    maxTokens: max_response_length,
+                    frequencyPenalty: frequency_penalty,
+                    presencePenalty: presence_penalty,
+                });
+                response = inferaResponse;
+                elizaLogger.debug("Received response from Infera model.");
+                break;
+            }
+
+            case ModelProviderName.VENICE: {
+                elizaLogger.debug("Initializing Venice model.");
+                const venice = createOpenAI({
+                    apiKey: apiKey,
+                    baseURL: endpoint,
+                });
+
+                const { text: veniceResponse } = await aiGenerateText({
+                    model: venice.languageModel(model),
+                    prompt: context,
+                    system:
+                        runtime.character.system ??
+                        settings.SYSTEM_PROMPT ??
+                        undefined,
+                    tools: tools,
+                    onStepFinish: onStepFinish,
+                    temperature: temperature,
+                    maxSteps: maxSteps,
+                    maxTokens: max_response_length,
+                });
+
+                response = veniceResponse;
+                elizaLogger.debug("Received response from Venice model.");
+                break;
+            }
+
+            case ModelProviderName.DEEPSEEK: {
+                elizaLogger.debug("Initializing Deepseek model.");
+                const serverUrl = models[provider].endpoint;
+                const deepseek = createOpenAI({
+                    apiKey,
+                    baseURL: serverUrl,
+                    fetch: runtime.fetch,
+                });
+
+                const { text: deepseekResponse } = await aiGenerateText({
+                    model: deepseek.languageModel(model),
+                    prompt: context,
+                    temperature: temperature,
+                    system:
+                        runtime.character.system ??
+                        settings.SYSTEM_PROMPT ??
+                        undefined,
+                    tools: tools,
+                    onStepFinish: onStepFinish,
+                    maxSteps: maxSteps,
+                    maxTokens: max_response_length,
+                    frequencyPenalty: frequency_penalty,
+                    presencePenalty: presence_penalty,
+                    experimental_telemetry: experimental_telemetry,
+                });
+
+                response = deepseekResponse;
+                elizaLogger.debug("Received response from Deepseek model.");
+                break;
+            }
+
+            default: {
+                const errorMessage = `Unsupported provider: ${provider}`;
+                elizaLogger.error(errorMessage);
+                throw new Error(errorMessage);
+            }
+        }
+
+        return response;
+    } catch (error) {
+        elizaLogger.error("Error in generateText:", error);
+        throw error;
+    }
+}
+
+/**
+ * Sends a message to the model to determine if it should respond to the given context.
+ * @param opts - The options for the generateText request
+ * @param opts.context The context to evaluate for response
+ * @param opts.stop A list of strings to stop the generateText at
+ * @param opts.model The model to use for generateText
+ * @param opts.frequency_penalty The frequency penalty to apply (0.0 to 2.0)
+ * @param opts.presence_penalty The presence penalty to apply (0.0 to 2.0)
+ * @param opts.temperature The temperature to control randomness (0.0 to 2.0)
+ * @param opts.serverUrl The URL of the API server
+ * @param opts.max_context_length Maximum allowed context length in tokens
+ * @param opts.max_response_length Maximum allowed response length in tokens
+ * @returns Promise resolving to "RESPOND", "IGNORE", "STOP" or null
+ */
+export async function generateShouldRespond({
+    runtime,
+    context,
+    modelClass,
+}: {
+    runtime: IAgentRuntime;
+    context: string;
+    modelClass: ModelClass;
+}): Promise<"RESPOND" | "IGNORE" | "STOP" | null> {
+    let retryDelay = 1000;
+    while (true) {
+        try {
+            elizaLogger.debug(
+                "Attempting to generate text with context:",
+                context
+            );
+            const response = await generateText({
+                runtime,
+                context,
+                modelClass,
+            });
+
+            elizaLogger.debug("Received response from generateText:", response);
+            const parsedResponse = parseShouldRespondFromText(response.trim());
+            if (parsedResponse) {
+                elizaLogger.debug("Parsed response:", parsedResponse);
+                return parsedResponse;
+            } else {
+                elizaLogger.debug("generateShouldRespond no response");
+            }
+        } catch (error) {
+            elizaLogger.error("Error in generateShouldRespond:", error);
+            if (
+                error instanceof TypeError &&
+                error.message.includes("queueTextCompletion")
+            ) {
+                elizaLogger.error(
+                    "TypeError: Cannot read properties of null (reading 'queueTextCompletion')"
+                );
+            }
+        }
+
+        elizaLogger.log(`Retrying in ${retryDelay}ms...`);
+        await new Promise((resolve) => setTimeout(resolve, retryDelay));
+        retryDelay *= 2;
+    }
+}
+
+/**
+ * Splits content into chunks of specified size with optional overlapping bleed sections
+ * @param content - The text content to split into chunks
+ * @param chunkSize - The maximum size of each chunk in tokens
+ * @param bleed - Number of characters to overlap between chunks (default: 100)
+ * @returns Promise resolving to array of text chunks with bleed sections
+ */
+export async function splitChunks(
+    content: string,
+    chunkSize: number = 512,
+    bleed: number = 20
+): Promise<string[]> {
+    const textSplitter = new RecursiveCharacterTextSplitter({
+        chunkSize: Number(chunkSize),
+        chunkOverlap: Number(bleed),
+    });
+
+    return textSplitter.splitText(content);
+}
+
+/**
+ * Sends a message to the model and parses the response as a boolean value
+ * @param opts - The options for the generateText request
+ * @param opts.context The context to evaluate for the boolean response
+ * @param opts.stop A list of strings to stop the generateText at
+ * @param opts.model The model to use for generateText
+ * @param opts.frequency_penalty The frequency penalty to apply (0.0 to 2.0)
+ * @param opts.presence_penalty The presence penalty to apply (0.0 to 2.0)
+ * @param opts.temperature The temperature to control randomness (0.0 to 2.0)
+ * @param opts.serverUrl The URL of the API server
+ * @param opts.token The API token for authentication
+ * @param opts.max_context_length Maximum allowed context length in tokens
+ * @param opts.max_response_length Maximum allowed response length in tokens
+ * @returns Promise resolving to a boolean value parsed from the model's response
+ */
+export async function generateTrueOrFalse({
+    runtime,
+    context = "",
+    modelClass,
+}: {
+    runtime: IAgentRuntime;
+    context: string;
+    modelClass: ModelClass;
+}): Promise<boolean> {
+    let retryDelay = 1000;
+    const modelSettings = getModelSettings(runtime.modelProvider, modelClass);
+    const stop = Array.from(
+        new Set([...(modelSettings.stop || []), ["\n"]])
+    ) as string[];
+
+    while (true) {
+        try {
+            const response = await generateText({
+                stop,
+                runtime,
+                context,
+                modelClass,
+            });
+
+            const parsedResponse = parseBooleanFromText(response.trim());
+            if (parsedResponse !== null) {
+                return parsedResponse;
+            }
+        } catch (error) {
+            elizaLogger.error("Error in generateTrueOrFalse:", error);
+        }
+
+        await new Promise((resolve) => setTimeout(resolve, retryDelay));
+        retryDelay *= 2;
+    }
+}
+
+/**
+ * Send a message to the model and parse the response as a string array
+ * @param opts - The options for the generateText request
+ * @param opts.context The context/prompt to send to the model
+ * @param opts.stop Array of strings that will stop the model's generation if encountered
+ * @param opts.model The language model to use
+ * @param opts.frequency_penalty The frequency penalty to apply (0.0 to 2.0)
+ * @param opts.presence_penalty The presence penalty to apply (0.0 to 2.0)
+ * @param opts.temperature The temperature to control randomness (0.0 to 2.0)
+ * @param opts.serverUrl The URL of the API server
+ * @param opts.token The API token for authentication
+ * @param opts.max_context_length Maximum allowed context length in tokens
+ * @param opts.max_response_length Maximum allowed response length in tokens
+ * @returns Promise resolving to an array of strings parsed from the model's response
+ */
+export async function generateTextArray({
+    runtime,
+    context,
+    modelClass,
+}: {
+    runtime: IAgentRuntime;
+    context: string;
+    modelClass: ModelClass;
+}): Promise<string[]> {
+    if (!context) {
+        elizaLogger.error("generateTextArray context is empty");
+        return [];
+    }
+    let retryDelay = 1000;
+
+    while (true) {
+        try {
+            const response = await generateText({
+                runtime,
+                context,
+                modelClass,
+            });
+
+            const parsedResponse = parseJsonArrayFromText(response);
+            if (parsedResponse) {
+                return parsedResponse;
+            }
+        } catch (error) {
+            elizaLogger.error("Error in generateTextArray:", error);
+        }
+
+        await new Promise((resolve) => setTimeout(resolve, retryDelay));
+        retryDelay *= 2;
+    }
+}
+
+export async function generateObjectDeprecated({
+    runtime,
+    context,
+    modelClass,
+}: {
+    runtime: IAgentRuntime;
+    context: string;
+    modelClass: ModelClass;
+}): Promise<any> {
+    if (!context) {
+        elizaLogger.error("generateObjectDeprecated context is empty");
+        return null;
+    }
+    let retryDelay = 1000;
+
+    while (true) {
+        try {
+            // this is slightly different than generateObjectArray, in that we parse object, not object array
+            const response = await generateText({
+                runtime,
+                context,
+                modelClass,
+            });
+            const parsedResponse = parseJSONObjectFromText(response);
+            if (parsedResponse) {
+                return parsedResponse;
+            }
+        } catch (error) {
+            elizaLogger.error("Error in generateObject:", error);
+        }
+
+        await new Promise((resolve) => setTimeout(resolve, retryDelay));
+        retryDelay *= 2;
+    }
+}
+
+export async function generateObjectArray({
+    runtime,
+    context,
+    modelClass,
+}: {
+    runtime: IAgentRuntime;
+    context: string;
+    modelClass: ModelClass;
+}): Promise<any[]> {
+    if (!context) {
+        elizaLogger.error("generateObjectArray context is empty");
+        return [];
+    }
+    let retryDelay = 1000;
+
+    while (true) {
+        try {
+            const response = await generateText({
+                runtime,
+                context,
+                modelClass,
+            });
+
+            const parsedResponse = parseJsonArrayFromText(response);
+            if (parsedResponse) {
+                return parsedResponse;
+            }
+        } catch (error) {
+            elizaLogger.error("Error in generateTextArray:", error);
+        }
+
+        await new Promise((resolve) => setTimeout(resolve, retryDelay));
+        retryDelay *= 2;
+    }
+}
+
+/**
+ * Send a message to the model for generateText.
+ * @param opts - The options for the generateText request.
+ * @param opts.context The context of the message to be completed.
+ * @param opts.stop A list of strings to stop the generateText at.
+ * @param opts.model The model to use for generateText.
+ * @param opts.frequency_penalty The frequency penalty to apply to the generateText.
+ * @param opts.presence_penalty The presence penalty to apply to the generateText.
+ * @param opts.temperature The temperature to apply to the generateText.
+ * @param opts.max_context_length The maximum length of the context to apply to the generateText.
+ * @returns The completed message.
+ */
+export async function generateMessageResponse({
+    runtime,
+    context,
+    modelClass,
+}: {
+    runtime: IAgentRuntime;
+    context: string;
+    modelClass: ModelClass;
+}): Promise<Content> {
+    const modelSettings = getModelSettings(runtime.modelProvider, modelClass);
+    const max_context_length = modelSettings.maxInputTokens;
+
+    context = await trimTokens(context, max_context_length, runtime);
+    elizaLogger.debug("Context:", context);
+    let retryLength = 1000; // exponential backoff
+    while (true) {
+        try {
+            elizaLogger.log("Generating message response..");
+
+            const response = await generateText({
+                runtime,
+                context,
+                modelClass,
+            });
+
+            // try parsing the response as JSON, if null then try again
+            const parsedContent = parseJSONObjectFromText(response) as Content;
+            if (!parsedContent) {
+                elizaLogger.debug("parsedContent is null, retrying");
+                continue;
+            }
+
+            return parsedContent;
+        } catch (error) {
+            elizaLogger.error("ERROR:", error);
+            // wait for 2 seconds
+            retryLength *= 2;
+            await new Promise((resolve) => setTimeout(resolve, retryLength));
+            elizaLogger.debug("Retrying...");
+        }
+    }
+}
+
+export const generateImage = async (
+    data: {
+        prompt: string;
+        width: number;
+        height: number;
+        count?: number;
+        negativePrompt?: string;
+        numIterations?: number;
+        guidanceScale?: number;
+        seed?: number;
+        modelId?: string;
+        jobId?: string;
+        stylePreset?: string;
+        hideWatermark?: boolean;
+    },
+    runtime: IAgentRuntime
+): Promise<{
+    success: boolean;
+    data?: string[];
+    error?: any;
+}> => {
+    const modelSettings = getImageModelSettings(runtime.imageModelProvider);
+    const model = modelSettings.name;
+    elizaLogger.info("Generating image with options:", {
+        imageModelProvider: model,
+    });
+
+    const apiKey =
+        runtime.imageModelProvider === runtime.modelProvider
+            ? runtime.token
+            : (() => {
+                  // First try to match the specific provider
+                  switch (runtime.imageModelProvider) {
+                      case ModelProviderName.HEURIST:
+                          return runtime.getSetting("HEURIST_API_KEY");
+                      case ModelProviderName.TOGETHER:
+                          return runtime.getSetting("TOGETHER_API_KEY");
+                      case ModelProviderName.FAL:
+                          return runtime.getSetting("FAL_API_KEY");
+                      case ModelProviderName.OPENAI:
+                          return runtime.getSetting("OPENAI_API_KEY");
+                      case ModelProviderName.VENICE:
+                          return runtime.getSetting("VENICE_API_KEY");
+                      case ModelProviderName.LIVEPEER:
+                          return runtime.getSetting("LIVEPEER_GATEWAY_URL");
+                      default:
+                          // If no specific match, try the fallback chain
+                          return (
+                              runtime.getSetting("HEURIST_API_KEY") ??
+                              runtime.getSetting("NINETEEN_AI_API_KEY") ??
+                              runtime.getSetting("TOGETHER_API_KEY") ??
+                              runtime.getSetting("FAL_API_KEY") ??
+                              runtime.getSetting("OPENAI_API_KEY") ??
+                              runtime.getSetting("VENICE_API_KEY") ??
+                              runtime.getSetting("LIVEPEER_GATEWAY_URL")
+                          );
+                  }
+              })();
+    try {
+        if (runtime.imageModelProvider === ModelProviderName.HEURIST) {
+            const response = await fetch(
+                "http://sequencer.heurist.xyz/submit_job",
+                {
+                    method: "POST",
+                    headers: {
+                        Authorization: `Bearer ${apiKey}`,
+                        "Content-Type": "application/json",
+                    },
+                    body: JSON.stringify({
+                        job_id: data.jobId || crypto.randomUUID(),
+                        model_input: {
+                            SD: {
+                                prompt: data.prompt,
+                                neg_prompt: data.negativePrompt,
+                                num_iterations: data.numIterations || 20,
+                                width: data.width || 512,
+                                height: data.height || 512,
+                                guidance_scale: data.guidanceScale || 3,
+                                seed: data.seed || -1,
+                            },
+                        },
+                        model_id: model,
+                        deadline: 60,
+                        priority: 1,
+                    }),
+                }
+            );
+
+            if (!response.ok) {
+                throw new Error(
+                    `Heurist image generation failed: ${response.statusText}`
+                );
+            }
+
+            const imageURL = await response.json();
+            return { success: true, data: [imageURL] };
+        } else if (
+            runtime.imageModelProvider === ModelProviderName.TOGETHER ||
+            // for backwards compat
+            runtime.imageModelProvider === ModelProviderName.LLAMACLOUD
+        ) {
+            const together = new Together({ apiKey: apiKey as string });
+            const response = await together.images.create({
+                model: model,
+                prompt: data.prompt,
+                width: data.width,
+                height: data.height,
+                steps: modelSettings?.steps ?? 4,
+                n: data.count,
+            });
+
+            // Add type assertion to handle the response properly
+            const togetherResponse =
+                response as unknown as TogetherAIImageResponse;
+
+            if (
+                !togetherResponse.data ||
+                !Array.isArray(togetherResponse.data)
+            ) {
+                throw new Error("Invalid response format from Together AI");
+            }
+
+            // Rest of the code remains the same...
+            const base64s = await Promise.all(
+                togetherResponse.data.map(async (image) => {
+                    if (!image.url) {
+                        elizaLogger.error("Missing URL in image data:", image);
+                        throw new Error("Missing URL in Together AI response");
+                    }
+
+                    // Fetch the image from the URL
+                    const imageResponse = await fetch(image.url);
+                    if (!imageResponse.ok) {
+                        throw new Error(
+                            `Failed to fetch image: ${imageResponse.statusText}`
+                        );
+                    }
+
+                    // Convert to blob and then to base64
+                    const blob = await imageResponse.blob();
+                    const arrayBuffer = await blob.arrayBuffer();
+                    const base64 = Buffer.from(arrayBuffer).toString("base64");
+
+                    // Return with proper MIME type
+                    return `data:image/jpeg;base64,${base64}`;
+                })
+            );
+
+            if (base64s.length === 0) {
+                throw new Error("No images generated by Together AI");
+            }
+
+            elizaLogger.debug(`Generated ${base64s.length} images`);
+            return { success: true, data: base64s };
+        } else if (runtime.imageModelProvider === ModelProviderName.FAL) {
+            fal.config({
+                credentials: apiKey as string,
+            });
+
+            // Prepare the input parameters according to their schema
+            const input = {
+                prompt: data.prompt,
+                image_size: "square" as const,
+                num_inference_steps: modelSettings?.steps ?? 50,
+                guidance_scale: data.guidanceScale || 3.5,
+                num_images: data.count,
+                enable_safety_checker:
+                    runtime.getSetting("FAL_AI_ENABLE_SAFETY_CHECKER") ===
+                    "true",
+                safety_tolerance: Number(
+                    runtime.getSetting("FAL_AI_SAFETY_TOLERANCE") || "2"
+                ),
+                output_format: "png" as const,
+                seed: data.seed ?? 6252023,
+                ...(runtime.getSetting("FAL_AI_LORA_PATH")
+                    ? {
+                          loras: [
+                              {
+                                  path: runtime.getSetting("FAL_AI_LORA_PATH"),
+                                  scale: 1,
+                              },
+                          ],
+                      }
+                    : {}),
+            };
+
+            // Subscribe to the model
+            const result = await fal.subscribe(model, {
+                input,
+                logs: true,
+                onQueueUpdate: (update) => {
+                    if (update.status === "IN_PROGRESS") {
+                        elizaLogger.info(update.logs.map((log) => log.message));
+                    }
+                },
+            });
+
+            // Convert the returned image URLs to base64 to match existing functionality
+            const base64Promises = result.data.images.map(async (image) => {
+                const response = await fetch(image.url);
+                const blob = await response.blob();
+                const buffer = await blob.arrayBuffer();
+                const base64 = Buffer.from(buffer).toString("base64");
+                return `data:${image.content_type};base64,${base64}`;
+            });
+
+            const base64s = await Promise.all(base64Promises);
+            return { success: true, data: base64s };
+        } else if (runtime.imageModelProvider === ModelProviderName.VENICE) {
+            const response = await fetch(
+                "https://api.venice.ai/api/v1/image/generate",
+                {
+                    method: "POST",
+                    headers: {
+                        Authorization: `Bearer ${apiKey}`,
+                        "Content-Type": "application/json",
+                    },
+                    body: JSON.stringify({
+                        model: model,
+                        prompt: data.prompt,
+                        negative_prompt: data.negativePrompt,
+                        width: data.width,
+                        height: data.height,
+                        steps: data.numIterations,
+                        seed: data.seed,
+                        style_preset: data.stylePreset,
+                        hide_watermark: data.hideWatermark,
+                    }),
+                }
+            );
+
+            const result = await response.json();
+
+            if (!result.images || !Array.isArray(result.images)) {
+                throw new Error("Invalid response format from Venice AI");
+            }
+
+            const base64s = result.images.map((base64String) => {
+                if (!base64String) {
+                    throw new Error(
+                        "Empty base64 string in Venice AI response"
+                    );
+                }
+                return `data:image/png;base64,${base64String}`;
+            });
+
+            return { success: true, data: base64s };
+        } else if (
+            runtime.imageModelProvider === ModelProviderName.NINETEEN_AI
+        ) {
+            const response = await fetch(
+                "https://api.nineteen.ai/v1/text-to-image",
+                {
+                    method: "POST",
+                    headers: {
+                        Authorization: `Bearer ${apiKey}`,
+                        "Content-Type": "application/json",
+                    },
+                    body: JSON.stringify({
+                        model: model,
+                        prompt: data.prompt,
+                        negative_prompt: data.negativePrompt,
+                        width: data.width,
+                        height: data.height,
+                        steps: data.numIterations,
+                        cfg_scale: data.guidanceScale || 3,
+                    }),
+                }
+            );
+
+            const result = await response.json();
+
+            if (!result.images || !Array.isArray(result.images)) {
+                throw new Error("Invalid response format from Nineteen AI");
+            }
+
+            const base64s = result.images.map((base64String) => {
+                if (!base64String) {
+                    throw new Error(
+                        "Empty base64 string in Nineteen AI response"
+                    );
+                }
+                return `data:image/png;base64,${base64String}`;
+            });
+
+            return { success: true, data: base64s };
+        } else if (runtime.imageModelProvider === ModelProviderName.LIVEPEER) {
+            if (!apiKey) {
+                throw new Error("Livepeer Gateway is not defined");
+            }
+            try {
+                const baseUrl = new URL(apiKey);
+                if (!baseUrl.protocol.startsWith("http")) {
+                    throw new Error("Invalid Livepeer Gateway URL protocol");
+                }
+                const response = await fetch(
+                    `${baseUrl.toString()}text-to-image`,
+                    {
+                        method: "POST",
+                        headers: {
+                            "Content-Type": "application/json",
+                        },
+                        body: JSON.stringify({
+                            model_id: model,
+                            prompt: data.prompt,
+                            width: data.width || 1024,
+                            height: data.height || 1024,
+                        }),
+                    }
+                );
+                const result = await response.json();
+                if (!result.images?.length) {
+                    throw new Error("No images generated");
+                }
+                const base64Images = await Promise.all(
+                    result.images.map(async (image) => {
+                        console.log("imageUrl console log", image.url);
+                        let imageUrl;
+                        if (image.url.includes("http")) {
+                            imageUrl = image.url;
+                        } else {
+                            imageUrl = `${apiKey}${image.url}`;
+                        }
+                        const imageResponse = await fetch(imageUrl);
+                        if (!imageResponse.ok) {
+                            throw new Error(
+                                `Failed to fetch image: ${imageResponse.statusText}`
+                            );
+                        }
+                        const blob = await imageResponse.blob();
+                        const arrayBuffer = await blob.arrayBuffer();
+                        const base64 =
+                            Buffer.from(arrayBuffer).toString("base64");
+                        return `data:image/jpeg;base64,${base64}`;
+                    })
+                );
+                return {
+                    success: true,
+                    data: base64Images,
+                };
+            } catch (error) {
+                console.error(error);
+                return { success: false, error: error };
+            }
+        } else {
+            let targetSize = `${data.width}x${data.height}`;
+            if (
+                targetSize !== "1024x1024" &&
+                targetSize !== "1792x1024" &&
+                targetSize !== "1024x1792"
+            ) {
+                targetSize = "1024x1024";
+            }
+            const openaiApiKey = runtime.getSetting("OPENAI_API_KEY") as string;
+            if (!openaiApiKey) {
+                throw new Error("OPENAI_API_KEY is not set");
+            }
+            const openai = new OpenAI({
+                apiKey: openaiApiKey as string,
+            });
+            const response = await openai.images.generate({
+                model,
+                prompt: data.prompt,
+                size: targetSize as "1024x1024" | "1792x1024" | "1024x1792",
+                n: data.count,
+                response_format: "b64_json",
+            });
+            const base64s = response.data.map(
+                (image) => `data:image/png;base64,${image.b64_json}`
+            );
+            return { success: true, data: base64s };
+        }
+    } catch (error) {
+        console.error(error);
+        return { success: false, error: error };
+    }
+};
+
+export const generateCaption = async (
+    data: { imageUrl: string },
+    runtime: IAgentRuntime
+): Promise<{
+    title: string;
+    description: string;
+}> => {
+    const { imageUrl } = data;
+    const imageDescriptionService =
+        runtime.getService<IImageDescriptionService>(
+            ServiceType.IMAGE_DESCRIPTION
+        );
+
+    if (!imageDescriptionService) {
+        throw new Error("Image description service not found");
+    }
+
+    const resp = await imageDescriptionService.describeImage(imageUrl);
+    return {
+        title: resp.title.trim(),
+        description: resp.description.trim(),
+    };
+};
+
+export const generateWebSearch = async (
+    query: string,
+    runtime: IAgentRuntime
+): Promise<SearchResponse> => {
+    try {
+        const apiKey = runtime.getSetting("TAVILY_API_KEY") as string;
+        if (!apiKey) {
+            throw new Error("TAVILY_API_KEY is not set");
+        }
+        const tvly = tavily({ apiKey });
+        const response = await tvly.search(query, {
+            includeAnswer: true,
+            maxResults: 3, // 5 (default)
+            topic: "general", // "general"(default) "news"
+            searchDepth: "advanced", // "basic"(default) "advanced"
+            includeImages: false, // false (default) true
+        });
+        console.log(`TVLY RES`, response);
+        return response;
+    } catch (error) {
+        elizaLogger.error("Error:", error);
+    }
+};
+export const generateSerperSearch = async (
+    query: string,
+    runtime: IAgentRuntime
+): Promise<SerperSearchResponse> => {
+    try {
+        const apiKey = runtime.getSetting("SERPER_API_KEY") as string;
+        if (!apiKey) {
+            throw new Error("SERPER_API_KEY is not set");
+        }
+        //const cleanedQuery =  query.replace(/@\S+/g, '');
+        //console.log(`CLEANED QUERY`,cleanedQuery)
+        const data = JSON.stringify({
+            q: query,
+        });
+
+        const options = {
+            hostname: "google.serper.dev",
+            port: 443,
+            path: "/search",
+            method: "POST",
+            headers: {
+                "X-API-KEY": apiKey,
+                "Content-Type": "application/json",
+                "Content-Length": Buffer.byteLength(data),
+            },
+        };
+
+        const sendRequest = (): Promise<SerperSearchResponse> => {
+            return new Promise((resolve, reject) => {
+                const req = https.request(options, (res) => {
+                    let body = "";
+
+                    res.on("data", (chunk) => {
+                        body += chunk;
+                    });
+
+                    res.on("end", () => {
+                        if (
+                            res.statusCode &&
+                            res.statusCode >= 200 &&
+                            res.statusCode < 300
+                        ) {
+                            try {
+                                const parsedData = JSON.parse(
+                                    body
+                                ) as SerperSearchResponse;
+                                resolve(parsedData);
+                            } catch (err) {
+                                reject(
+                                    new Error(
+                                        `Failed to parse response: ${err}`
+                                    )
+                                );
+                            }
+                        } else {
+                            reject(
+                                new Error(
+                                    `Request failed with status code: ${res.statusCode}`
+                                )
+                            );
+                        }
+                    });
+                });
+
+                req.on("error", (err) => {
+                    reject(err);
+                });
+
+                // Write data to the request body
+                req.write(data);
+                req.end();
+            });
+        };
+
+        const response = await sendRequest();
+        console.log(`TVLY RES`, response);
+        return response;
+    } catch (error) {
+        elizaLogger.error("Error:", error);
+        throw error; // Re-throw the error for the caller to handle.
+    }
+};
+/**
+ * Configuration options for generating objects with a model.
+ */
+export interface GenerationOptions {
+    runtime: IAgentRuntime;
+    context: string;
+    modelClass: ModelClass;
+    schema?: ZodSchema;
+    schemaName?: string;
+    schemaDescription?: string;
+    stop?: string[];
+    mode?: "auto" | "json" | "tool";
+    experimental_providerMetadata?: Record<string, unknown>;
+    verifiableInference?: boolean;
+    verifiableInferenceAdapter?: IVerifiableInferenceAdapter;
+    verifiableInferenceOptions?: VerifiableInferenceOptions;
+}
+
+/**
+ * Base settings for model generation.
+ */
+interface ModelSettings {
+    prompt: string;
+    temperature: number;
+    maxTokens: number;
+    frequencyPenalty: number;
+    presencePenalty: number;
+    stop?: string[];
+    experimental_telemetry?: TelemetrySettings;
+}
+
+/**
+ * Generates structured objects from a prompt using specified AI models and configuration options.
+ *
+ * @param {GenerationOptions} options - Configuration options for generating objects.
+ * @returns {Promise<any[]>} - A promise that resolves to an array of generated objects.
+ * @throws {Error} - Throws an error if the provider is unsupported or if generation fails.
+ */
+export const generateObject = async ({
+    runtime,
+    context,
+    modelClass,
+    schema,
+    schemaName,
+    schemaDescription,
+    stop,
+    mode = "json",
+    verifiableInference = false,
+    verifiableInferenceAdapter,
+    verifiableInferenceOptions,
+}: GenerationOptions): Promise<GenerateObjectResult<unknown>> => {
+    if (!context) {
+        const errorMessage = "generateObject context is empty";
+        console.error(errorMessage);
+        throw new Error(errorMessage);
+    }
+
+    const provider = runtime.modelProvider;
+    const modelSettings = getModelSettings(runtime.modelProvider, modelClass);
+    const model = modelSettings.name;
+    const temperature = modelSettings.temperature;
+    const frequency_penalty = modelSettings.frequency_penalty;
+    const presence_penalty = modelSettings.presence_penalty;
+    const max_context_length = modelSettings.maxInputTokens;
+    const max_response_length = modelSettings.maxOutputTokens;
+    const experimental_telemetry = modelSettings.experimental_telemetry;
+    const apiKey = runtime.token;
+
+    try {
+        context = await trimTokens(context, max_context_length, runtime);
+
+        const modelOptions: ModelSettings = {
+            prompt: context,
+            temperature,
+            maxTokens: max_response_length,
+            frequencyPenalty: frequency_penalty,
+            presencePenalty: presence_penalty,
+            stop: stop || modelSettings.stop,
+            experimental_telemetry: experimental_telemetry,
+        };
+
+        const response = await handleProvider({
+            provider,
+            model,
+            apiKey,
+            schema,
+            schemaName,
+            schemaDescription,
+            mode,
+            modelOptions,
+            runtime,
+            context,
+            modelClass,
+            verifiableInference,
+            verifiableInferenceAdapter,
+            verifiableInferenceOptions,
+        });
+
+        return response;
+    } catch (error) {
+        console.error("Error in generateObject:", error);
+        throw error;
+    }
+};
+
+/**
+ * Interface for provider-specific generation options.
+ */
+interface ProviderOptions {
+    runtime: IAgentRuntime;
+    provider: ModelProviderName;
+    model: any;
+    apiKey: string;
+    schema?: ZodSchema;
+    schemaName?: string;
+    schemaDescription?: string;
+    mode?: "auto" | "json" | "tool";
+    experimental_providerMetadata?: Record<string, unknown>;
+    modelOptions: ModelSettings;
+    modelClass: ModelClass;
+    context: string;
+    verifiableInference?: boolean;
+    verifiableInferenceAdapter?: IVerifiableInferenceAdapter;
+    verifiableInferenceOptions?: VerifiableInferenceOptions;
+}
+
+/**
+ * Handles AI generation based on the specified provider.
+ *
+ * @param {ProviderOptions} options - Configuration options specific to the provider.
+ * @returns {Promise<any[]>} - A promise that resolves to an array of generated objects.
+ */
+export async function handleProvider(
+    options: ProviderOptions
+): Promise<GenerateObjectResult<unknown>> {
+    const {
+        provider,
+        runtime,
+        context,
+        modelClass,
+        //verifiableInference,
+        //verifiableInferenceAdapter,
+        //verifiableInferenceOptions,
+    } = options;
+    switch (provider) {
+        case ModelProviderName.OPENAI:
+        case ModelProviderName.ETERNALAI:
+        case ModelProviderName.ALI_BAILIAN:
+        case ModelProviderName.VOLENGINE:
+        case ModelProviderName.LLAMACLOUD:
+        case ModelProviderName.TOGETHER:
+        case ModelProviderName.NANOGPT:
+        case ModelProviderName.AKASH_CHAT_API:
+            return await handleOpenAI(options);
+        case ModelProviderName.ANTHROPIC:
+        case ModelProviderName.CLAUDE_VERTEX:
+            return await handleAnthropic(options);
+        case ModelProviderName.GROK:
+            return await handleGrok(options);
+        case ModelProviderName.GROQ:
+            return await handleGroq(options);
+        case ModelProviderName.LLAMALOCAL:
+            return await generateObjectDeprecated({
+                runtime,
+                context,
+                modelClass,
+            });
+        case ModelProviderName.GOOGLE:
+            return await handleGoogle(options);
+        case ModelProviderName.MISTRAL:
+            return await handleMistral(options);
+        case ModelProviderName.REDPILL:
+            return await handleRedPill(options);
+        case ModelProviderName.OPENROUTER:
+            return await handleOpenRouter(options);
+        case ModelProviderName.OLLAMA:
+            return await handleOllama(options);
+        case ModelProviderName.DEEPSEEK:
+            return await handleDeepSeek(options);
+        default: {
+            const errorMessage = `Unsupported provider: ${provider}`;
+            elizaLogger.error(errorMessage);
+            throw new Error(errorMessage);
+        }
+    }
+}
+/**
+ * Handles object generation for OpenAI.
+ *
+ * @param {ProviderOptions} options - Options specific to OpenAI.
+ * @returns {Promise<GenerateObjectResult<unknown>>} - A promise that resolves to generated objects.
+ */
+async function handleOpenAI({
+    model,
+    apiKey,
+    schema,
+    schemaName,
+    schemaDescription,
+    mode = "json",
+    modelOptions,
+    provider: _provider,
+    runtime,
+}: ProviderOptions): Promise<GenerateObjectResult<unknown>> {
+    const baseURL =
+        getCloudflareGatewayBaseURL(runtime, "openai") ||
+        models.openai.endpoint;
+    const openai = createOpenAI({ apiKey, baseURL });
+    return await aiGenerateObject({
+        model: openai.languageModel(model),
+        schema,
+        schemaName,
+        schemaDescription,
+        mode,
+        ...modelOptions,
+    });
+}
+
+/**
+ * Handles object generation for Anthropic models.
+ *
+ * @param {ProviderOptions} options - Options specific to Anthropic.
+ * @returns {Promise<GenerateObjectResult<unknown>>} - A promise that resolves to generated objects.
+ */
+async function handleAnthropic({
+    model,
+    apiKey,
+    schema,
+    schemaName,
+    schemaDescription,
+    mode = "json",
+    modelOptions,
+    runtime,
+}: ProviderOptions): Promise<GenerateObjectResult<unknown>> {
+    elizaLogger.debug("Handling Anthropic request with Cloudflare check");
+    const baseURL = getCloudflareGatewayBaseURL(runtime, "anthropic");
+    elizaLogger.debug("Anthropic handleAnthropic baseURL:", { baseURL });
+
+    const anthropic = createAnthropic({ apiKey, baseURL });
+    return await aiGenerateObject({
+        model: anthropic.languageModel(model),
+        schema,
+        schemaName,
+        schemaDescription,
+        mode,
+        ...modelOptions,
+    });
+}
+
+/**
+ * Handles object generation for Grok models.
+ *
+ * @param {ProviderOptions} options - Options specific to Grok.
+ * @returns {Promise<GenerateObjectResult<unknown>>} - A promise that resolves to generated objects.
+ */
+async function handleGrok({
+    model,
+    apiKey,
+    schema,
+    schemaName,
+    schemaDescription,
+    mode = "json",
+    modelOptions,
+}: ProviderOptions): Promise<GenerateObjectResult<unknown>> {
+    const grok = createOpenAI({ apiKey, baseURL: models.grok.endpoint });
+    return await aiGenerateObject({
+        model: grok.languageModel(model, { parallelToolCalls: false }),
+        schema,
+        schemaName,
+        schemaDescription,
+        mode,
+        ...modelOptions,
+    });
+}
+
+/**
+ * Handles object generation for Groq models.
+ *
+ * @param {ProviderOptions} options - Options specific to Groq.
+ * @returns {Promise<GenerateObjectResult<unknown>>} - A promise that resolves to generated objects.
+ */
+async function handleGroq({
+    model,
+    apiKey,
+    schema,
+    schemaName,
+    schemaDescription,
+    mode = "json",
+    modelOptions,
+    runtime,
+}: ProviderOptions): Promise<GenerateObjectResult<unknown>> {
+    elizaLogger.debug("Handling Groq request with Cloudflare check");
+    const baseURL = getCloudflareGatewayBaseURL(runtime, "groq");
+    elizaLogger.debug("Groq handleGroq baseURL:", { baseURL });
+
+    const groq = createGroq({ apiKey, baseURL });
+    return await aiGenerateObject({
+        model: groq.languageModel(model),
+        schema,
+        schemaName,
+        schemaDescription,
+        mode,
+        ...modelOptions,
+    });
+}
+
+/**
+ * Handles object generation for Google models.
+ *
+ * @param {ProviderOptions} options - Options specific to Google.
+ * @returns {Promise<GenerateObjectResult<unknown>>} - A promise that resolves to generated objects.
+ */
+async function handleGoogle({
+    model,
+    apiKey: _apiKey,
+    schema,
+    schemaName,
+    schemaDescription,
+    mode = "json",
+    modelOptions,
+}: ProviderOptions): Promise<GenerateObjectResult<unknown>> {
+    const google = createGoogleGenerativeAI();
+    return await aiGenerateObject({
+        model: google(model),
+        schema,
+        schemaName,
+        schemaDescription,
+        mode,
+        ...modelOptions,
+    });
+}
+
+/**
+ * Handles object generation for Mistral models.
+ *
+ * @param {ProviderOptions} options - Options specific to Mistral.
+ * @returns {Promise<GenerateObjectResult<unknown>>} - A promise that resolves to generated objects.
+ */
+async function handleMistral({
+    model,
+    schema,
+    schemaName,
+    schemaDescription,
+    mode,
+    modelOptions,
+}: ProviderOptions): Promise<GenerateObjectResult<unknown>> {
+    const mistral = createMistral();
+    return await aiGenerateObject({
+        model: mistral(model),
+        schema,
+        schemaName,
+        schemaDescription,
+        mode,
+        ...modelOptions,
+    });
+}
+
+/**
+ * Handles object generation for Redpill models.
+ *
+ * @param {ProviderOptions} options - Options specific to Redpill.
+ * @returns {Promise<GenerateObjectResult<unknown>>} - A promise that resolves to generated objects.
+ */
+async function handleRedPill({
+    model,
+    apiKey,
+    schema,
+    schemaName,
+    schemaDescription,
+    mode = "json",
+    modelOptions,
+}: ProviderOptions): Promise<GenerateObjectResult<unknown>> {
+    const redPill = createOpenAI({ apiKey, baseURL: models.redpill.endpoint });
+    return await aiGenerateObject({
+        model: redPill.languageModel(model),
+        schema,
+        schemaName,
+        schemaDescription,
+        mode,
+        ...modelOptions,
+    });
+}
+
+/**
+ * Handles object generation for OpenRouter models.
+ *
+ * @param {ProviderOptions} options - Options specific to OpenRouter.
+ * @returns {Promise<GenerateObjectResult<unknown>>} - A promise that resolves to generated objects.
+ */
+async function handleOpenRouter({
+    model,
+    apiKey,
+    schema,
+    schemaName,
+    schemaDescription,
+    mode = "json",
+    modelOptions,
+}: ProviderOptions): Promise<GenerateObjectResult<unknown>> {
+    const openRouter = createOpenAI({
+        apiKey,
+        baseURL: models.openrouter.endpoint,
+    });
+    return await aiGenerateObject({
+        model: openRouter.languageModel(model),
+        schema,
+        schemaName,
+        schemaDescription,
+        mode,
+        ...modelOptions,
+    });
+}
+
+/**
+ * Handles object generation for Ollama models.
+ *
+ * @param {ProviderOptions} options - Options specific to Ollama.
+ * @returns {Promise<GenerateObjectResult<unknown>>} - A promise that resolves to generated objects.
+ */
+async function handleOllama({
+    model,
+    schema,
+    schemaName,
+    schemaDescription,
+    mode = "json",
+    modelOptions,
+    provider,
+}: ProviderOptions): Promise<GenerateObjectResult<unknown>> {
+    const ollamaProvider = createOllama({
+        baseURL: getEndpoint(provider) + "/api",
+    });
+    const ollama = ollamaProvider(model);
+    return await aiGenerateObject({
+        model: ollama,
+        schema,
+        schemaName,
+        schemaDescription,
+        mode,
+        ...modelOptions,
+    });
+}
+
+/**
+ * Handles object generation for DeepSeek models.
+ *
+ * @param {ProviderOptions} options - Options specific to DeepSeek.
+ * @returns {Promise<GenerateObjectResult<unknown>>} - A promise that resolves to generated objects.
+ */
+async function handleDeepSeek({
+    model,
+    apiKey,
+    schema,
+    schemaName,
+    schemaDescription,
+    mode,
+    modelOptions,
+}: ProviderOptions): Promise<GenerateObjectResult<unknown>> {
+    const openai = createOpenAI({ apiKey, baseURL: models.deepseek.endpoint });
+    return await aiGenerateObject({
+        model: openai.languageModel(model),
+        schema,
+        schemaName,
+        schemaDescription,
+        mode,
+        ...modelOptions,
+    });
+}
+
+// Add type definition for Together AI response
+interface TogetherAIImageResponse {
+    data: Array<{
+        url: string;
+        content_type?: string;
+        image_type?: string;
+    }>;
+}
+
+export async function generateTweetActions({
+    runtime,
+    context,
+    modelClass,
+}: {
+    runtime: IAgentRuntime;
+    context: string;
+    modelClass: ModelClass;
+}): Promise<ActionResponse | null> {
+    let retryDelay = 1000;
+    while (true) {
+        try {
+            const response = await generateText({
+                runtime,
+                context,
+                modelClass,
+            });
+            console.debug(
+                "Received response from generateText for tweet actions:",
+                response
+            );
+            const { actions } = parseActionResponseFromText(response.trim());
+            if (actions) {
+                console.debug("Parsed tweet actions:", actions);
+                return actions;
+            } else {
+                elizaLogger.debug("generateTweetActions no valid response");
+            }
+        } catch (error) {
+            elizaLogger.error("Error in generateTweetActions:", error);
+            if (
+                error instanceof TypeError &&
+                error.message.includes("queueTextCompletion")
+            ) {
+                elizaLogger.error(
+                    "TypeError: Cannot read properties of null (reading 'queueTextCompletion')"
+                );
+            }
+        }
+        elizaLogger.log(`Retrying in ${retryDelay}ms...`);
+        await new Promise((resolve) => setTimeout(resolve, retryDelay));
+        retryDelay *= 2;
+    }
+}
diff --git a/packages/core/src/generation.ts b/packages/core/src/generation.ts
index 7350ffb088a..f03d5cacf9e 100644
--- a/packages/core/src/generation.ts
+++ b/packages/core/src/generation.ts
@@ -44,6 +44,7 @@ import {
     type IVerifiableInferenceAdapter,
     ModelClass,
     ModelProviderName,
+    SerperSearchResponse,
     ServiceType,
     //VerifiableInferenceProvider,
     type TelemetrySettings,
diff --git a/packages/plugin-abstract/README.md b/packages/plugin-abstract/README.md
deleted file mode 100644
index 865ec94ead2..00000000000
--- a/packages/plugin-abstract/README.md
+++ /dev/null
@@ -1,175 +0,0 @@
-# @elizaos/plugin-abstract
-
-A plugin for interacting with the Abstract blockchain network within the ElizaOS ecosystem.
-
-## Description
-
-The Abstract plugin enables seamless token transfers on the Abstract testnet. It provides functionality to transfer both native ETH and ERC20 tokens using secure wallet operations.
-
-## Installation
-
-```bash
-pnpm install @elizaos/plugin-abstract
-```
-
-## Configuration
-
-The plugin requires the following environment variables to be set:
-
-```typescript
-ABSTRACT_ADDRESS=<Your Abstract wallet address>
-ABSTRACT_PRIVATE_KEY=<Your Abstract private key>
-```
-
-## Usage
-
-### Basic Integration
-
-```typescript
-import { abstractPlugin } from "@elizaos/plugin-abstract";
-```
-
-### Transfer Examples
-
-```typescript
-// The plugin responds to natural language commands like:
-
-"Send 100 USDC to 0xCCa8009f5e09F8C5dB63cb0031052F9CB635Af62";
-"Transfer 0.1 ETH to 0xbD8679cf79137042214fA4239b02F4022208EE82";
-"Pay 50 USDC on Abstract to [address]";
-```
-
-## API Reference
-
-### Actions
-
-#### SEND_TOKEN
-
-Transfers tokens from the agent's wallet to another address.
-
-**Aliases:**
-
-- TRANSFER_TOKEN_ON_ABSTRACT
-- TRANSFER_TOKENS_ON_ABSTRACT
-- SEND_TOKENS_ON_ABSTRACT
-- SEND_ETH_ON_ABSTRACT
-- PAY_ON_ABSTRACT
-- MOVE_TOKENS_ON_ABSTRACT
-- MOVE_ETH_ON_ABSTRACT
-
-## Common Issues & Troubleshooting
-
-1. **Transaction Failures**
-
-    - Verify wallet has sufficient balance
-    - Check recipient address format
-    - Ensure private key is correctly set
-    - Verify network connectivity
-
-2. **Configuration Issues**
-    - Verify all required environment variables are set
-    - Ensure private key format is correct
-    - Check wallet address format
-
-## Security Best Practices
-
-1. **Private Key Management**
-    - Store private key securely using environment variables
-    - Never commit private keys to version control
-    - Use separate wallets for development and production
-    - Monitor wallet activity regularly
-
-## Development Guide
-
-### Setting Up Development Environment
-
-1. Clone the repository
-2. Install dependencies:
-
-```bash
-pnpm install
-```
-
-3. Build the plugin:
-
-```bash
-pnpm run build
-```
-
-4. Run the plugin:
-
-```bash
-pnpm run dev
-```
-
-## Future Enhancements
-
-1. **Smart Account Features**
-
-    - Multi-signature support
-    - Account recovery mechanisms
-    - Batch transaction processing
-    - Advanced permission management
-    - Account abstraction improvements
-    - Social recovery options
-
-2. **DEX Integration**
-
-    - Advanced swap routing
-    - Liquidity pool management
-    - Yield farming automation
-    - Price impact analysis
-    - Slippage protection
-    - AMM optimization
-
-3. **Security Enhancements**
-
-    - Transaction simulation
-    - Risk assessment tools
-    - Rate limiting controls
-    - Fraud detection system
-    - Emergency shutdown features
-    - Audit integration tools
-
-4. **Developer Tools**
-
-    - Enhanced debugging capabilities
-    - Documentation generator
-    - CLI tool improvements
-    - Testing utilities
-    - Deployment automation
-    - Performance profiling
-
-5. **Analytics and Monitoring**
-
-    - Transaction tracking dashboard
-    - Network statistics
-    - Performance metrics
-    - Gas usage optimization
-    - Custom reporting tools
-    - Real-time monitoring
-
-6. **Wallet Management**
-    - Multiple wallet support
-    - Hardware wallet integration
-    - Address book features
-    - Transaction history analysis
-    - Balance monitoring
-    - Token management tools
-
-We welcome community feedback and contributions to help prioritize these enhancements.
-
-## Contributing
-
-Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information.
-
-## Credits
-
-This plugin integrates with and builds upon several key technologies:
-
-- [Abstract](https://abs.xyz/): Consumer blockchain
-- [viem](https://viem.sh/): Typescript web3 client
-
-## License
-
-This plugin is part of the Eliza project. See the main project repository for license information.
diff --git a/packages/plugin-abstract/package.json b/packages/plugin-abstract/package.json
deleted file mode 100644
index 42c5f7c1bae..00000000000
--- a/packages/plugin-abstract/package.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
-    "name": "@elizaos/plugin-abstract",
-    "version": "0.1.9-alpha.1",
-    "type": "module",
-    "main": "dist/index.js",
-    "module": "dist/index.js",
-    "types": "dist/index.d.ts",
-    "exports": {
-        "./package.json": "./package.json",
-        ".": {
-            "import": {
-                "@elizaos/source": "./src/index.ts",
-                "types": "./dist/index.d.ts",
-                "default": "./dist/index.js"
-            }
-        }
-    },
-    "files": [
-        "dist"
-    ],
-    "dependencies": {
-        "@abstract-foundation/agw-client": "1.0.1",
-        "@elizaos/core": "workspace:*",
-        "tsup": "^8.3.5",
-        "viem": "2.22.2"
-    },
-    "scripts": {
-        "build": "tsup --format esm --dts",
-        "dev": "tsup --format esm --dts --watch"
-    },
-    "peerDependencies": {
-        "whatwg-url": "7.1.0"
-    }
-}
\ No newline at end of file
diff --git a/packages/plugin-abstract/src/actions/deployTokenAction.ts b/packages/plugin-abstract/src/actions/deployTokenAction.ts
deleted file mode 100644
index e06a22fbf8b..00000000000
--- a/packages/plugin-abstract/src/actions/deployTokenAction.ts
+++ /dev/null
@@ -1,267 +0,0 @@
-import type { Action } from "@elizaos/core";
-import {
-	type ActionExample,
-	type Content,
-	type HandlerCallback,
-	type IAgentRuntime,
-	type Memory,
-	ModelClass,
-	type State,
-	elizaLogger,
-	composeContext,
-	generateObject,
-	stringToUuid,
-} from "@elizaos/core";
-import { validateAbstractConfig } from "../environment";
-import { parseEther, type Hash } from "viem";
-import { abstractTestnet } from "viem/chains";
-import {
-	type AbstractClient,
-	createAbstractClient,
-} from "@abstract-foundation/agw-client";
-import { z } from "zod";
-import { useGetAccount, useGetWalletClient } from "../hooks";
-import basicToken from "../constants/contracts/basicToken.json";
-import { abstractPublicClient } from "../utils/viemHelpers";
-
-const DeploySchema = z.object({
-	name: z.string(),
-	symbol: z.string(),
-	initialSupply: z.string(),
-	useAGW: z.boolean(),
-});
-
-const validatedSchema = z.object({
-	name: z.string().min(1, "Name is required"),
-	symbol: z
-		.string()
-		.min(1, "Symbol is required")
-		.max(5, "Symbol must be 5 characters or less"),
-	initialSupply: z
-		.string()
-		.refine((val) => !Number.isNaN(Number(val)) && Number(val) > 0, {
-			message: "Initial supply must be a positive number",
-		}),
-	useAGW: z.boolean(),
-});
-
-export interface DeployContent extends Content {
-	name: string;
-	symbol: string;
-	initialSupply: string;
-	useAGW: boolean;
-}
-
-const deployTemplate = `Respond with a JSON markdown block containing only the extracted values. Use null for any values that cannot be determined.
-
-Example response:
-\`\`\`json
-{
-    "name": "My Token",
-    "symbol": "MTK",
-    "initialSupply": "1000000",
-    "useAGW": true
-}
-\`\`\`
-
-User message:
-"{{currentMessage}}"
-
-Given the message, extract the following information about the requested token deployment:
-- Token name
-- Token symbol (usually 3-4 characters)
-- Initial supply amount
-- Whether to use Abstract Global Wallet aka AGW
-
-If the user did not specify "global wallet", "AGW", "agw", or "abstract global wallet" in their message, set useAGW to false, otherwise set it to true.
-
-Respond with a JSON markdown block containing only the extracted values.`;
-
-export const deployTokenAction: Action = {
-	name: "DEPLOY_TOKEN",
-	similes: [
-		"CREATE_TOKEN",
-		"DEPLOY_NEW_TOKEN",
-		"CREATE_NEW_TOKEN",
-		"LAUNCH_TOKEN",
-	],
-	validate: async (runtime: IAgentRuntime) => {
-		await validateAbstractConfig(runtime);
-		return true;
-	},
-	description: "Deploy a new ERC20 token contract",
-	handler: async (
-		runtime: IAgentRuntime,
-		message: Memory,
-		state: State,
-		_options: { [key: string]: unknown },
-		callback?: HandlerCallback,
-	): Promise<boolean> => {
-		elizaLogger.log("Starting Abstract DEPLOY_TOKEN handler...");
-
-		if (!state) {
-			state = (await runtime.composeState(message)) as State;
-		} else {
-			state = await runtime.updateRecentMessageState(state);
-		}
-
-		state.currentMessage = `${state.recentMessagesData[1].content.text}`;
-		const deployContext = composeContext({
-			state,
-			template: deployTemplate,
-		});
-
-		const content = (
-			await generateObject({
-				runtime,
-				context: deployContext,
-				modelClass: ModelClass.SMALL,
-				schema: DeploySchema,
-			})
-		).object as DeployContent;
-
-		// Validate deployment content
-		const result = validatedSchema.safeParse(content);
-		if (!result.success) {
-			elizaLogger.error("Invalid content for DEPLOY_TOKEN action.", {
-				errors: result.error.errors,
-			});
-			if (callback) {
-				callback({
-					text: "Unable to process token deployment request. Invalid parameters provided.",
-					content: { error: "Invalid deployment parameters" },
-				});
-			}
-			return false;
-		}
-
-		try {
-			const account = useGetAccount(runtime);
-			const supply = parseEther(content.initialSupply);
-			let hash: Hash;
-
-			if (content.useAGW) {
-				const abstractClient = (await createAbstractClient({
-					chain: abstractTestnet,
-					signer: account,
-				})) as any; // type being exported as never
-
-				hash = await abstractClient.deployContract({
-					abi: basicToken.abi,
-					bytecode: basicToken.bytecode,
-					args: [result.data.name, result.data.symbol, supply],
-				});
-			} else {
-				const walletClient = useGetWalletClient();
-
-				hash = await walletClient.deployContract({
-					chain: abstractTestnet,
-					account,
-					abi: basicToken.abi,
-					bytecode: basicToken.bytecode,
-					args: [result.data.name, result.data.symbol, supply],
-					kzg: undefined,
-				});
-			}
-
-			// Wait for transaction receipt
-			const receipt = await abstractPublicClient.waitForTransactionReceipt({
-				hash,
-			});
-			const contractAddress = receipt.contractAddress;
-
-			elizaLogger.success(
-				`Token deployment completed! Contract address: ${contractAddress}. Transaction hash: ${hash}`,
-			);
-			if (callback) {
-				callback({
-					text: `Token "${result.data.name}" (${result.data.symbol}) deployed successfully! Contract address: ${contractAddress} and transaction hash: ${hash}`,
-					content: {
-						hash,
-						tokenName: result.data.name,
-						tokenSymbol: result.data.symbol,
-						contractAddress,
-						transactionHash: hash,
-					},
-				});
-			}
-
-			const metadata = {
-				tokenAddress: contractAddress,
-				name: result.data.name,
-				symbol: result.data.symbol,
-				initialSupply: String(result.data.initialSupply),
-			};
-
-			await runtime.messageManager.createMemory({
-				id: stringToUuid(`${result.data.symbol}-${runtime.agentId}`),
-				userId: runtime.agentId,
-				content: {
-					text: `Token deployed: ${result.data.name}, symbol: ${result.data.symbol} and contract address: ${contractAddress}`,
-					...metadata,
-					source: "abstract_token_deployment",
-				},
-				agentId: runtime.agentId,
-				roomId: stringToUuid(`tokens-${runtime.agentId}`),
-				createdAt: Date.now(),
-			});
-			elizaLogger.success("memory saved for token deployment", metadata);
-
-			return true;
-		} catch (error) {
-			elizaLogger.error("Error during token deployment:", error);
-			if (callback) {
-				callback({
-					text: `Error deploying token: ${error.message}`,
-					content: { error: error.message },
-				});
-			}
-			return false;
-		}
-	},
-
-	examples: [
-		[
-			{
-				user: "{{user1}}",
-				content: {
-					text: "Deploy a new token called MyToken with symbol MTK and initial supply of 1000000",
-				},
-			},
-			{
-				user: "{{agent}}",
-				content: {
-					text: "I'll deploy your new token now.",
-					action: "DEPLOY_TOKEN",
-				},
-			},
-			{
-				user: "{{agent}}",
-				content: {
-					text: "Successfully deployed MyToken (MTK) with 1000000 initial supply.\nContract address: 0xdde850f9257365fffffc11324726ebdcf5b90b01c6eec9b3e7ab3e81fde6f14b\nTransaction hash: 0xdde850f9257365fffffc11324726ebdcf5b90b01c6eec9b3e7ab3e81fde6f14b",
-				},
-			},
-		],
-		[
-			{
-				user: "{{user1}}",
-				content: {
-					text: "Create a new token using AGW with name TestCoin, symbol TEST, and 5000 supply",
-				},
-			},
-			{
-				user: "{{agent}}",
-				content: {
-					text: "I'll deploy your token using the Abstract Global Wallet.",
-					action: "DEPLOY_TOKEN",
-				},
-			},
-			{
-				user: "{{agent}}",
-				content: {
-					text: "Successfully deployed TestCoin (TEST) with 5000 initial supply using AGW.\nContract address: 0xdde850f9257365fffffc11324726ebdcf5b90b01c6eec9b3e7ab3e81fde6f14b\nTransaction: 0x4fed598033f0added272c3ddefd4d83a521634a738474400b27378db462a76ec",
-				},
-			},
-		],
-	] as ActionExample[][],
-};
diff --git a/packages/plugin-abstract/src/actions/getBalanceAction.ts b/packages/plugin-abstract/src/actions/getBalanceAction.ts
deleted file mode 100644
index 9b4c68ecd00..00000000000
--- a/packages/plugin-abstract/src/actions/getBalanceAction.ts
+++ /dev/null
@@ -1,280 +0,0 @@
-import type { Action } from "@elizaos/core";
-import {
-	type ActionExample,
-	type Content,
-	type HandlerCallback,
-	type IAgentRuntime,
-	type Memory,
-	ModelClass,
-	type State,
-	elizaLogger,
-	composeContext,
-	generateObject,
-	stringToUuid,
-} from "@elizaos/core";
-import { validateAbstractConfig } from "../environment";
-
-import { erc20Abi, formatUnits, isAddress } from "viem";
-import { z } from "zod";
-import { ETH_ADDRESS } from "../constants";
-import { useGetAccount } from "../hooks";
-import {
-	resolveAddress,
-	getTokenByName,
-	abstractPublicClient,
-} from "../utils/viemHelpers";
-
-const BalanceSchema = z.object({
-	tokenAddress: z.string().optional().nullable(),
-	walletAddress: z.string().optional().nullable(),
-	tokenSymbol: z.string().optional().nullable(),
-});
-
-export interface BalanceContent extends Content {
-	tokenAddress?: string;
-	walletAddress?: string;
-	tokenSymbol?: string;
-}
-
-const validatedSchema = z.object({
-	tokenAddress: z
-		.string()
-		.refine(isAddress, { message: "Invalid token address" }),
-	walletAddress: z
-		.string()
-		.refine(isAddress, { message: "Invalid token address" }),
-});
-
-const balanceTemplate = `Respond with a JSON markdown block containing only the extracted values. Use null for any values that cannot be determined.
-
-
-Example response:
-\`\`\`json
-{
-    "tokenAddress": "<TOKEN_ADDRESS>",
-    "walletAddress": "<TOKEN_ADDRESS>",
-    "tokenSymbol": "USDC"
-}
-\`\`\`
-
-User message:
-"{{currentMessage}}"
-
-Given the message, extract the following information about the requested balance check:
-- Token contract address (optional, if not specified set to null)
-- Wallet address to check (optional, if not specified set to null)
-- The symbol of the token to check (optional, if not specified set to null). Between 1 to 6 characters usually.
-
-Respond with a JSON markdown block containing only the extracted values.`;
-
-export const getBalanceAction: Action = {
-	name: "GET_BALANCE",
-	similes: [
-		"CHECK_BALANCE",
-		"VIEW_BALANCE",
-		"SHOW_BALANCE",
-		"BALANCE_CHECK",
-		"TOKEN_BALANCE",
-	],
-	validate: async (runtime: IAgentRuntime, message: Memory) => {
-		await validateAbstractConfig(runtime);
-		return true;
-	},
-	description: "Check token balance for a given address",
-	handler: async (
-		runtime: IAgentRuntime,
-		message: Memory,
-		state: State,
-		_options: { [key: string]: unknown },
-		callback?: HandlerCallback,
-	): Promise<boolean> => {
-		elizaLogger.log("Starting Abstract GET_BALANCE handler...");
-
-		// Initialize or update state
-		if (!state) {
-			state = (await runtime.composeState(message)) as State;
-		} else {
-			state = await runtime.updateRecentMessageState(state);
-		}
-
-		// Compose balance context
-		state.currentMessage = `${state.recentMessagesData[1].content.text}`;
-		const balanceContext = composeContext({
-			state,
-			template: balanceTemplate,
-		});
-
-		// Generate balance content
-		const content = (
-			await generateObject({
-				runtime,
-				context: balanceContext,
-				modelClass: ModelClass.SMALL,
-				schema: BalanceSchema,
-			})
-		).object as BalanceContent;
-
-		try {
-			const account = useGetAccount(runtime);
-			const addressToCheck = content.walletAddress || account.address;
-
-			// Resolve address
-			const resolvedAddress = await resolveAddress(addressToCheck);
-			if (!resolvedAddress) {
-				throw new Error("Invalid address or ENS name");
-			}
-
-			let tokenAddress = content.tokenAddress;
-
-			if (content.tokenSymbol) {
-				const tokenMemory = await runtime.messageManager.getMemoryById(
-					stringToUuid(`${content.tokenSymbol}-${runtime.agentId}`),
-				);
-
-				if (typeof tokenMemory?.content?.tokenAddress === "string") {
-					tokenAddress = tokenMemory.content.tokenAddress;
-				}
-
-				if (!tokenAddress) {
-					tokenAddress = getTokenByName(content.tokenSymbol)?.address;
-				}
-			}
-
-			const result = validatedSchema.safeParse({
-				tokenAddress: tokenAddress || ETH_ADDRESS,
-				walletAddress: resolvedAddress,
-			});
-
-			// Validate transfer content
-			if (!result.success) {
-				elizaLogger.error("Invalid content for GET_BALANCE action.");
-				if (callback) {
-					callback({
-						text: "Unable to process balance request. Invalid content provided.",
-						content: { error: "Invalid balance content" },
-					});
-				}
-				return false;
-			}
-
-			let balance: bigint;
-			let symbol: string;
-			let decimals: number;
-
-			// Query balance based on token type
-			if (result.data.tokenAddress === ETH_ADDRESS) {
-				balance = await abstractPublicClient.getBalance({
-					address: resolvedAddress,
-				});
-				symbol = "ETH";
-				decimals = 18;
-			} else {
-				[balance, decimals, symbol] = await Promise.all([
-					abstractPublicClient.readContract({
-						address: result.data.tokenAddress,
-						abi: erc20Abi,
-						functionName: "balanceOf",
-						args: [resolvedAddress],
-					}),
-					abstractPublicClient.readContract({
-						address: result.data.tokenAddress,
-						abi: erc20Abi,
-						functionName: "decimals",
-					}),
-					abstractPublicClient.readContract({
-						address: result.data.tokenAddress,
-						abi: erc20Abi,
-						functionName: "symbol",
-					}),
-				]);
-			}
-
-			const formattedBalance = formatUnits(balance, decimals);
-
-			elizaLogger.success(`Balance check completed for ${resolvedAddress}`);
-			if (callback) {
-				callback({
-					text: `Balance for ${resolvedAddress}: ${formattedBalance} ${symbol}`,
-					content: { balance: formattedBalance, symbol: symbol },
-				});
-			}
-
-			return true;
-		} catch (error) {
-			elizaLogger.error("Error checking balance:", error);
-			if (callback) {
-				callback({
-					text: `Error checking balance: ${error.message}`,
-					content: { error: error.message },
-				});
-			}
-			return false;
-		}
-	},
-
-	examples: [
-		[
-			{
-				user: "{{user1}}",
-				content: {
-					text: "What's my ETH balance?",
-				},
-			},
-			{
-				user: "{{agent}}",
-				content: {
-					text: "Let me check your ETH balance.",
-					action: "GET_BALANCE",
-				},
-			},
-			{
-				user: "{{agent}}",
-				content: {
-					text: "Your ETH balance is 1.5 ETH",
-				},
-			},
-		],
-		[
-			{
-				user: "{{user1}}",
-				content: {
-					text: "Check USDC balance for 0xCCa8009f5e09F8C5dB63cb0031052F9CB635Af62",
-				},
-			},
-			{
-				user: "{{agent}}",
-				content: {
-					text: "I'll check the USDC balance for that address.",
-					action: "GET_BALANCE",
-				},
-			},
-			{
-				user: "{{agent}}",
-				content: {
-					text: "The USDC balance for 0xCCa8009f5e09F8C5dB63cb0031052F9CB635Af62 is 100 USDC",
-				},
-			},
-		],
-		[
-			{
-				user: "{{user1}}",
-				content: {
-					text: "Check balance for 0xCCa8009f5e09F8C5dB63cb0031052F9CB635Af62 with token 0xe4c7fbb0a626ed208021ccaba6be1566905e2dfc",
-				},
-			},
-			{
-				user: "{{agent}}",
-				content: {
-					text: "Let me check the balance for that address.",
-					action: "GET_BALANCE",
-				},
-			},
-			{
-				user: "{{agent}}",
-				content: {
-					text: "The balance for 0xCCa8009f5e09F8C5dB63cb0031052F9CB635Af62 with token 0xe4c7fbb0a626ed208021ccaba6be1566905e2dfc is 100",
-				},
-			},
-		],
-	] as ActionExample[][],
-};
diff --git a/packages/plugin-abstract/src/actions/index.ts b/packages/plugin-abstract/src/actions/index.ts
deleted file mode 100644
index 90317a57850..00000000000
--- a/packages/plugin-abstract/src/actions/index.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export * from "./transferAction";
-export * from "./getBalanceAction";
-export * from "./deployTokenAction";
diff --git a/packages/plugin-abstract/src/actions/transferAction.ts b/packages/plugin-abstract/src/actions/transferAction.ts
deleted file mode 100644
index 6fbe1ec4b7c..00000000000
--- a/packages/plugin-abstract/src/actions/transferAction.ts
+++ /dev/null
@@ -1,402 +0,0 @@
-import type { Action } from "@elizaos/core";
-import {
-	type ActionExample,
-	type Content,
-	type HandlerCallback,
-	type IAgentRuntime,
-	type Memory,
-	ModelClass,
-	type State,
-	elizaLogger,
-	composeContext,
-	generateObject,
-	stringToUuid,
-} from "@elizaos/core";
-import { validateAbstractConfig } from "../environment";
-
-import { erc20Abi, formatUnits, isAddress, parseUnits, type Hash } from "viem";
-import { abstractTestnet } from "viem/chains";
-import { createAbstractClient } from "@abstract-foundation/agw-client";
-import { z } from "zod";
-import { ETH_ADDRESS } from "../constants";
-import { useGetAccount, useGetWalletClient } from "../hooks";
-import {
-	resolveAddress,
-	abstractPublicClient,
-	getTokenByName,
-} from "../utils/viemHelpers";
-
-const TransferSchema = z.object({
-	tokenAddress: z.string().optional().nullable(),
-	recipient: z.string(),
-	amount: z.string(),
-	useAGW: z.boolean(),
-	tokenSymbol: z.string().optional().nullable(),
-});
-
-const validatedTransferSchema = z.object({
-	tokenAddress: z
-		.string()
-		.refine(isAddress, { message: "Invalid token address" }),
-	recipient: z
-		.string()
-		.refine(isAddress, { message: "Invalid recipient address" }),
-	amount: z.string(),
-	useAGW: z.boolean(),
-});
-
-export interface TransferContent extends Content {
-	tokenAddress: string;
-	recipient: string;
-	amount: string | number;
-	useAGW: boolean;
-	tokenSymbol?: string;
-}
-
-const transferTemplate = `Respond with a JSON markdown block containing only the extracted values. Use null for any values that cannot be determined.
-
-Example response:
-\`\`\`json
-{
-    "tokenAddress": "<TOKEN_ADDRESS>",
-    "recipient": "<TOKEN_ADDRESS>",
-    "amount": "1000",
-    "useAGW": true,
-    "tokenSymbol": "USDC"
-}
-\`\`\`
-
-User message:
-"{{currentMessage}}"
-
-Given the message, extract the following information about the requested token transfer:
-- Token contract address
-- Recipient wallet address
-- Amount to transfer
-- Whether to use Abstract Global Wallet aka AGW
-- The symbol of the token that wants to be transferred. Between 1 to 6 characters usually.
-
-If the user did not specify "global wallet", "AGW", "agw", or "abstract global wallet" in their message, set useAGW to false, otherwise set it to true.
-s
-Respond with a JSON markdown block containing only the extracted values.`;
-
-export const transferAction: Action = {
-	name: "SEND_TOKEN",
-	similes: [
-		"TRANSFER_TOKEN_ON_ABSTRACT",
-		"TRANSFER_TOKENS_ON_ABSTRACT",
-		"SEND_TOKENS_ON_ABSTRACT",
-		"SEND_ETH_ON_ABSTRACT",
-		"PAY_ON_ABSTRACT",
-		"MOVE_TOKENS_ON_ABSTRACT",
-		"MOVE_ETH_ON_ABSTRACT",
-	],
-	validate: async (runtime: IAgentRuntime) => {
-		await validateAbstractConfig(runtime);
-		return true;
-	},
-	description: "Transfer tokens from the agent's wallet to another address",
-	handler: async (
-		runtime: IAgentRuntime,
-		message: Memory,
-		state: State,
-		_options: { [key: string]: unknown },
-		callback?: HandlerCallback,
-	): Promise<boolean> => {
-		elizaLogger.log("Starting Abstract SEND_TOKEN handler...");
-
-		// Initialize or update state
-		if (!state) {
-			state = (await runtime.composeState(message)) as State;
-		} else {
-			state = await runtime.updateRecentMessageState(state);
-		}
-
-		// Compose transfer context
-		state.currentMessage = `${state.recentMessagesData[1].content.text}`;
-		const transferContext = composeContext({
-			state,
-			template: transferTemplate,
-		});
-
-		// Generate transfer content
-		const content = (
-			await generateObject({
-				runtime,
-				context: transferContext,
-				modelClass: ModelClass.SMALL,
-				schema: TransferSchema,
-			})
-		).object as TransferContent;
-
-		let tokenAddress = content.tokenAddress;
-
-		if (content.tokenSymbol) {
-			const tokenMemory = await runtime.messageManager.getMemoryById(
-				stringToUuid(`${content.tokenSymbol}-${runtime.agentId}`),
-			);
-
-			if (typeof tokenMemory?.content?.tokenAddress === "string") {
-				tokenAddress = tokenMemory.content.tokenAddress;
-			}
-
-			if (!tokenAddress) {
-				tokenAddress = getTokenByName(content.tokenSymbol)?.address;
-			}
-		}
-
-		const resolvedRecipient = await resolveAddress(content.recipient);
-
-		const input = {
-			tokenAddress: tokenAddress,
-			recipient: resolvedRecipient,
-			amount: content.amount.toString(),
-			useAGW: content.useAGW,
-		};
-		const result = validatedTransferSchema.safeParse(input);
-
-		if (!result.success) {
-			elizaLogger.error(
-				"Invalid content for TRANSFER_TOKEN action.",
-				result.error.message,
-			);
-			if (callback) {
-				callback({
-					text: "Unable to process transfer request. Did not extract valid parameters.",
-					content: { error: result.error.message, ...input },
-				});
-			}
-			return false;
-		}
-
-		if (!resolvedRecipient) {
-			throw new Error("Invalid recipient address or ENS name");
-		}
-
-		try {
-			const account = useGetAccount(runtime);
-
-			let symbol = "ETH";
-			let decimals = 18;
-			const isEthTransfer = result.data.tokenAddress === ETH_ADDRESS;
-			const { tokenAddress, recipient, amount, useAGW } = result.data;
-
-			if (!isEthTransfer) {
-				[symbol, decimals] = await Promise.all([
-					abstractPublicClient.readContract({
-						address: tokenAddress,
-						abi: erc20Abi,
-						functionName: "symbol",
-					}),
-					abstractPublicClient.readContract({
-						address: tokenAddress,
-						abi: erc20Abi,
-						functionName: "decimals",
-					}),
-				]);
-			}
-			let hash: Hash;
-			const tokenAmount = parseUnits(amount.toString(), decimals);
-
-			if (useAGW) {
-				const abstractClient = (await createAbstractClient({
-					chain: abstractTestnet,
-					signer: account,
-				})) as any; // biome-ignore lint/suspicious/noExplicitAny: type being exported as never
-
-				if (isEthTransfer) {
-					hash = await abstractClient.sendTransaction({
-						chain: abstractTestnet,
-						to: recipient,
-						value: tokenAmount,
-						kzg: undefined,
-					});
-				} else {
-					hash = await abstractClient.writeContract({
-						chain: abstractTestnet,
-						address: tokenAddress,
-						abi: erc20Abi,
-						functionName: "transfer",
-						args: [recipient, tokenAmount],
-					});
-				}
-			} else {
-				const walletClient = useGetWalletClient();
-				if (isEthTransfer) {
-					hash = await walletClient.sendTransaction({
-						account,
-						chain: abstractTestnet,
-						to: recipient,
-						value: tokenAmount,
-						kzg: undefined,
-					});
-				} else {
-					hash = await walletClient.writeContract({
-						account,
-						chain: abstractTestnet,
-						address: tokenAddress,
-						abi: erc20Abi,
-						functionName: "transfer",
-						args: [recipient, tokenAmount],
-					});
-				}
-			}
-
-			elizaLogger.success(
-				`Transfer completed successfully! Transaction hash: ${hash}`,
-			);
-			if (callback) {
-				callback({
-					text: `Transfer completed successfully! Succesfully sent ${formatUnits(tokenAmount, decimals)} ${symbol} to ${recipient} using ${useAGW ? "AGW" : "wallet client"}. Transaction hash: ${hash}`,
-					content: {
-						hash,
-						tokenAmount: formatUnits(tokenAmount, decimals),
-						symbol,
-						recipient,
-						useAGW,
-					},
-				});
-			}
-
-			return true;
-		} catch (error) {
-			elizaLogger.error("Error during token transfer:", error);
-			if (callback) {
-				callback({
-					text: `Error transferring tokens: ${error.message}`,
-					content: { error: error.message },
-				});
-			}
-			return false;
-		}
-	},
-
-	examples: [
-		[
-			{
-				user: "{{user1}}",
-				content: {
-					text: "Send 0.01 ETH to 0x114B242D931B47D5cDcEe7AF065856f70ee278C4",
-				},
-			},
-			{
-				user: "{{agent}}",
-				content: {
-					text: "Sure, I'll send 0.01 ETH to that address now.",
-					action: "SEND_TOKEN",
-				},
-			},
-			{
-				user: "{{agent}}",
-				content: {
-					text: "Successfully sent 0.01 ETH to 0x114B242D931B47D5cDcEe7AF065856f70ee278C4\nTransaction: 0xdde850f9257365fffffc11324726ebdcf5b90b01c6eec9b3e7ab3e81fde6f14b",
-				},
-			},
-		],
-		[
-			{
-				user: "{{user1}}",
-				content: {
-					text: "Send 0.01 ETH to 0x114B242D931B47D5cDcEe7AF065856f70ee278C4 using your abstract global wallet",
-				},
-			},
-			{
-				user: "{{agent}}",
-				content: {
-					text: "Sure, I'll send 0.01 ETH to that address now using my AGW.",
-					action: "SEND_TOKEN",
-				},
-			},
-			{
-				user: "{{agent}}",
-				content: {
-					text: "Successfully sent 0.01 ETH to 0x114B242D931B47D5cDcEe7AF065856f70ee278C4\nTransaction: 0xdde850f9257365fffffc11324726ebdcf5b90b01c6eec9b3e7ab3e81fde6f14b using my AGW",
-				},
-			},
-		],
-		[
-			{
-				user: "{{user1}}",
-				content: {
-					text: "Send 0.01 ETH to alim.getclave.eth",
-				},
-			},
-			{
-				user: "{{agent}}",
-				content: {
-					text: "Sure, I'll send 0.01 ETH to alim.getclave.eth now.",
-					action: "SEND_TOKEN",
-				},
-			},
-			{
-				user: "{{agent}}",
-				content: {
-					text: "Successfully sent 0.01 ETH to alim.getclave.eth\nTransaction: 0xdde850f9257365fffffc11324726ebdcf5b90b01c6eec9b3e7ab3e81fde6f14b",
-				},
-			},
-		],
-		[
-			{
-				user: "{{user1}}",
-				content: {
-					text: "Send 100 USDC to 0xCCa8009f5e09F8C5dB63cb0031052F9CB635Af62",
-				},
-			},
-			{
-				user: "{{agent}}",
-				content: {
-					text: "Sure, I'll send 100 USDC to that address now.",
-					action: "SEND_TOKEN",
-				},
-			},
-			{
-				user: "{{agent}}",
-				content: {
-					text: "Successfully sent 100 USDC to 0xCCa8009f5e09F8C5dB63cb0031052F9CB635Af62\nTransaction: 0x4fed598033f0added272c3ddefd4d83a521634a738474400b27378db462a76ec",
-				},
-			},
-		],
-		[
-			{
-				user: "{{user1}}",
-				content: {
-					text: "Please send 0.1 ETH to 0xbD8679cf79137042214fA4239b02F4022208EE82",
-				},
-			},
-			{
-				user: "{{agent}}",
-				content: {
-					text: "Of course. Sending 0.1 ETH to that address now.",
-					action: "SEND_TOKEN",
-				},
-			},
-			{
-				user: "{{agent}}",
-				content: {
-					text: "Successfully sent 0.1 ETH to 0xbD8679cf79137042214fA4239b02F4022208EE82\nTransaction: 0x0b9f23e69ea91ba98926744472717960cc7018d35bc3165bdba6ae41670da0f0",
-				},
-			},
-		],
-		[
-			{
-				user: "{{user1}}",
-				content: {
-					text: "Please send 1 MyToken to 0xbD8679cf79137042214fA4239b02F4022208EE82",
-				},
-			},
-			{
-				user: "{{agent}}",
-				content: {
-					text: "Of course. Sending 1 MyToken right away.",
-					action: "SEND_TOKEN",
-				},
-			},
-			{
-				user: "{{agent}}",
-				content: {
-					text: "Successfully sent 1 MyToken to 0xbD8679cf79137042214fA4239b02F4022208EE82\nTransaction: 0x0b9f23e69ea91ba98926744472717960cc7018d35bc3165bdba6ae41670da0f0",
-				},
-			},
-		],
-	] as ActionExample[][],
-};
diff --git a/packages/plugin-abstract/src/constants/contracts/basicToken.json b/packages/plugin-abstract/src/constants/contracts/basicToken.json
deleted file mode 100644
index c36c2b8982d..00000000000
--- a/packages/plugin-abstract/src/constants/contracts/basicToken.json
+++ /dev/null
@@ -1,339 +0,0 @@
-{
-    "_format": "hh-sol-artifact-1",
-    "contractName": "BasicToken",
-    "sourceName": "contracts/BasicToken.sol",
-    "abi": [
-        {
-            "inputs": [
-                {
-                    "internalType": "string",
-                    "name": "name",
-                    "type": "string"
-                },
-                {
-                    "internalType": "string",
-                    "name": "symbol",
-                    "type": "string"
-                },
-                {
-                    "internalType": "uint256",
-                    "name": "initialSupply",
-                    "type": "uint256"
-                }
-            ],
-            "stateMutability": "nonpayable",
-            "type": "constructor"
-        },
-        {
-            "inputs": [
-                {
-                    "internalType": "address",
-                    "name": "spender",
-                    "type": "address"
-                },
-                {
-                    "internalType": "uint256",
-                    "name": "allowance",
-                    "type": "uint256"
-                },
-                {
-                    "internalType": "uint256",
-                    "name": "needed",
-                    "type": "uint256"
-                }
-            ],
-            "name": "ERC20InsufficientAllowance",
-            "type": "error"
-        },
-        {
-            "inputs": [
-                {
-                    "internalType": "address",
-                    "name": "sender",
-                    "type": "address"
-                },
-                {
-                    "internalType": "uint256",
-                    "name": "balance",
-                    "type": "uint256"
-                },
-                {
-                    "internalType": "uint256",
-                    "name": "needed",
-                    "type": "uint256"
-                }
-            ],
-            "name": "ERC20InsufficientBalance",
-            "type": "error"
-        },
-        {
-            "inputs": [
-                {
-                    "internalType": "address",
-                    "name": "approver",
-                    "type": "address"
-                }
-            ],
-            "name": "ERC20InvalidApprover",
-            "type": "error"
-        },
-        {
-            "inputs": [
-                {
-                    "internalType": "address",
-                    "name": "receiver",
-                    "type": "address"
-                }
-            ],
-            "name": "ERC20InvalidReceiver",
-            "type": "error"
-        },
-        {
-            "inputs": [
-                {
-                    "internalType": "address",
-                    "name": "sender",
-                    "type": "address"
-                }
-            ],
-            "name": "ERC20InvalidSender",
-            "type": "error"
-        },
-        {
-            "inputs": [
-                {
-                    "internalType": "address",
-                    "name": "spender",
-                    "type": "address"
-                }
-            ],
-            "name": "ERC20InvalidSpender",
-            "type": "error"
-        },
-        {
-            "anonymous": false,
-            "inputs": [
-                {
-                    "indexed": true,
-                    "internalType": "address",
-                    "name": "owner",
-                    "type": "address"
-                },
-                {
-                    "indexed": true,
-                    "internalType": "address",
-                    "name": "spender",
-                    "type": "address"
-                },
-                {
-                    "indexed": false,
-                    "internalType": "uint256",
-                    "name": "value",
-                    "type": "uint256"
-                }
-            ],
-            "name": "Approval",
-            "type": "event"
-        },
-        {
-            "anonymous": false,
-            "inputs": [
-                {
-                    "indexed": true,
-                    "internalType": "address",
-                    "name": "from",
-                    "type": "address"
-                },
-                {
-                    "indexed": true,
-                    "internalType": "address",
-                    "name": "to",
-                    "type": "address"
-                },
-                {
-                    "indexed": false,
-                    "internalType": "uint256",
-                    "name": "value",
-                    "type": "uint256"
-                }
-            ],
-            "name": "Transfer",
-            "type": "event"
-        },
-        {
-            "inputs": [
-                {
-                    "internalType": "address",
-                    "name": "owner",
-                    "type": "address"
-                },
-                {
-                    "internalType": "address",
-                    "name": "spender",
-                    "type": "address"
-                }
-            ],
-            "name": "allowance",
-            "outputs": [
-                {
-                    "internalType": "uint256",
-                    "name": "",
-                    "type": "uint256"
-                }
-            ],
-            "stateMutability": "view",
-            "type": "function"
-        },
-        {
-            "inputs": [
-                {
-                    "internalType": "address",
-                    "name": "spender",
-                    "type": "address"
-                },
-                {
-                    "internalType": "uint256",
-                    "name": "value",
-                    "type": "uint256"
-                }
-            ],
-            "name": "approve",
-            "outputs": [
-                {
-                    "internalType": "bool",
-                    "name": "",
-                    "type": "bool"
-                }
-            ],
-            "stateMutability": "nonpayable",
-            "type": "function"
-        },
-        {
-            "inputs": [
-                {
-                    "internalType": "address",
-                    "name": "account",
-                    "type": "address"
-                }
-            ],
-            "name": "balanceOf",
-            "outputs": [
-                {
-                    "internalType": "uint256",
-                    "name": "",
-                    "type": "uint256"
-                }
-            ],
-            "stateMutability": "view",
-            "type": "function"
-        },
-        {
-            "inputs": [],
-            "name": "decimals",
-            "outputs": [
-                {
-                    "internalType": "uint8",
-                    "name": "",
-                    "type": "uint8"
-                }
-            ],
-            "stateMutability": "view",
-            "type": "function"
-        },
-        {
-            "inputs": [],
-            "name": "name",
-            "outputs": [
-                {
-                    "internalType": "string",
-                    "name": "",
-                    "type": "string"
-                }
-            ],
-            "stateMutability": "view",
-            "type": "function"
-        },
-        {
-            "inputs": [],
-            "name": "symbol",
-            "outputs": [
-                {
-                    "internalType": "string",
-                    "name": "",
-                    "type": "string"
-                }
-            ],
-            "stateMutability": "view",
-            "type": "function"
-        },
-        {
-            "inputs": [],
-            "name": "totalSupply",
-            "outputs": [
-                {
-                    "internalType": "uint256",
-                    "name": "",
-                    "type": "uint256"
-                }
-            ],
-            "stateMutability": "view",
-            "type": "function"
-        },
-        {
-            "inputs": [
-                {
-                    "internalType": "address",
-                    "name": "to",
-                    "type": "address"
-                },
-                {
-                    "internalType": "uint256",
-                    "name": "value",
-                    "type": "uint256"
-                }
-            ],
-            "name": "transfer",
-            "outputs": [
-                {
-                    "internalType": "bool",
-                    "name": "",
-                    "type": "bool"
-                }
-            ],
-            "stateMutability": "nonpayable",
-            "type": "function"
-        },
-        {
-            "inputs": [
-                {
-                    "internalType": "address",
-                    "name": "from",
-                    "type": "address"
-                },
-                {
-                    "internalType": "address",
-                    "name": "to",
-                    "type": "address"
-                },
-                {
-                    "internalType": "uint256",
-                    "name": "value",
-                    "type": "uint256"
-                }
-            ],
-            "name": "transferFrom",
-            "outputs": [
-                {
-                    "internalType": "bool",
-                    "name": "",
-                    "type": "bool"
-                }
-            ],
-            "stateMutability": "nonpayable",
-            "type": "function"
-        }
-    ],
-    "bytecode": "0x608060405234801561001057600080fd5b506040516117bf3803806117bf833981810160405281019061003291906104c6565b828281600390816100439190610768565b5080600490816100539190610768565b505050610066338261006e60201b60201c565b50505061095a565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036100e05760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016100d7919061087b565b60405180910390fd5b6100f2600083836100f660201b60201c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361014857806002600082825461013c91906108c5565b9250508190555061021b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156101d4578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016101cb93929190610908565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361026457806002600082825403925050819055506102b1565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161030e919061093f565b60405180910390a3505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61038282610339565b810181811067ffffffffffffffff821117156103a1576103a061034a565b5b80604052505050565b60006103b461031b565b90506103c08282610379565b919050565b600067ffffffffffffffff8211156103e0576103df61034a565b5b6103e982610339565b9050602081019050919050565b60005b838110156104145780820151818401526020810190506103f9565b60008484015250505050565b600061043361042e846103c5565b6103aa565b90508281526020810184848401111561044f5761044e610334565b5b61045a8482856103f6565b509392505050565b600082601f8301126104775761047661032f565b5b8151610487848260208601610420565b91505092915050565b6000819050919050565b6104a381610490565b81146104ae57600080fd5b50565b6000815190506104c08161049a565b92915050565b6000806000606084860312156104df576104de610325565b5b600084015167ffffffffffffffff8111156104fd576104fc61032a565b5b61050986828701610462565b935050602084015167ffffffffffffffff81111561052a5761052961032a565b5b61053686828701610462565b9250506040610547868287016104b1565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806105a357607f821691505b6020821081036105b6576105b561055c565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261061e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826105e1565b61062886836105e1565b95508019841693508086168417925050509392505050565b6000819050919050565b600061066561066061065b84610490565b610640565b610490565b9050919050565b6000819050919050565b61067f8361064a565b61069361068b8261066c565b8484546105ee565b825550505050565b600090565b6106a861069b565b6106b3818484610676565b505050565b5b818110156106d7576106cc6000826106a0565b6001810190506106b9565b5050565b601f82111561071c576106ed816105bc565b6106f6846105d1565b81016020851015610705578190505b610719610711856105d1565b8301826106b8565b50505b505050565b600082821c905092915050565b600061073f60001984600802610721565b1980831691505092915050565b6000610758838361072e565b9150826002028217905092915050565b61077182610551565b67ffffffffffffffff81111561078a5761078961034a565b5b610794825461058b565b61079f8282856106db565b600060209050601f8311600181146107d257600084156107c0578287015190505b6107ca858261074c565b865550610832565b601f1984166107e0866105bc565b60005b82811015610808578489015182556001820191506020850194506020810190506107e3565b868310156108255784890151610821601f89168261072e565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006108658261083a565b9050919050565b6108758161085a565b82525050565b6000602082019050610890600083018461086c565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006108d082610490565b91506108db83610490565b92508282019050808211156108f3576108f2610896565b5b92915050565b61090281610490565b82525050565b600060608201905061091d600083018661086c565b61092a60208301856108f9565b61093760408301846108f9565b949350505050565b600060208201905061095460008301846108f9565b92915050565b610e56806109696000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063313ce56711610066578063313ce5671461013457806370a082311461015257806395d89b4114610182578063a9059cbb146101a0578063dd62ed3e146101d057610093565b806306fdde0314610098578063095ea7b3146100b657806318160ddd146100e657806323b872dd14610104575b600080fd5b6100a0610200565b6040516100ad9190610aaa565b60405180910390f35b6100d060048036038101906100cb9190610b65565b610292565b6040516100dd9190610bc0565b60405180910390f35b6100ee6102b5565b6040516100fb9190610bea565b60405180910390f35b61011e60048036038101906101199190610c05565b6102bf565b60405161012b9190610bc0565b60405180910390f35b61013c6102ee565b6040516101499190610c74565b60405180910390f35b61016c60048036038101906101679190610c8f565b6102f7565b6040516101799190610bea565b60405180910390f35b61018a61033f565b6040516101979190610aaa565b60405180910390f35b6101ba60048036038101906101b59190610b65565b6103d1565b6040516101c79190610bc0565b60405180910390f35b6101ea60048036038101906101e59190610cbc565b6103f4565b6040516101f79190610bea565b60405180910390f35b60606003805461020f90610d2b565b80601f016020809104026020016040519081016040528092919081815260200182805461023b90610d2b565b80156102885780601f1061025d57610100808354040283529160200191610288565b820191906000526020600020905b81548152906001019060200180831161026b57829003601f168201915b5050505050905090565b60008061029d61047b565b90506102aa818585610483565b600191505092915050565b6000600254905090565b6000806102ca61047b565b90506102d7858285610495565b6102e285858561052a565b60019150509392505050565b60006012905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461034e90610d2b565b80601f016020809104026020016040519081016040528092919081815260200182805461037a90610d2b565b80156103c75780601f1061039c576101008083540402835291602001916103c7565b820191906000526020600020905b8154815290600101906020018083116103aa57829003601f168201915b5050505050905090565b6000806103dc61047b565b90506103e981858561052a565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b610490838383600161061e565b505050565b60006104a184846103f4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156105245781811015610514578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161050b93929190610d6b565b60405180910390fd5b6105238484848403600061061e565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361059c5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105939190610da2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361060e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106059190610da2565b60405180910390fd5b6106198383836107f5565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036106905760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016106879190610da2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107025760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016106f99190610da2565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156107ef578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107e69190610bea565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361084757806002600082825461083b9190610dec565b9250508190555061091a565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156108d3578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016108ca93929190610d6b565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361096357806002600082825403925050819055506109b0565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a0d9190610bea565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610a54578082015181840152602081019050610a39565b60008484015250505050565b6000601f19601f8301169050919050565b6000610a7c82610a1a565b610a868185610a25565b9350610a96818560208601610a36565b610a9f81610a60565b840191505092915050565b60006020820190508181036000830152610ac48184610a71565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610afc82610ad1565b9050919050565b610b0c81610af1565b8114610b1757600080fd5b50565b600081359050610b2981610b03565b92915050565b6000819050919050565b610b4281610b2f565b8114610b4d57600080fd5b50565b600081359050610b5f81610b39565b92915050565b60008060408385031215610b7c57610b7b610acc565b5b6000610b8a85828601610b1a565b9250506020610b9b85828601610b50565b9150509250929050565b60008115159050919050565b610bba81610ba5565b82525050565b6000602082019050610bd56000830184610bb1565b92915050565b610be481610b2f565b82525050565b6000602082019050610bff6000830184610bdb565b92915050565b600080600060608486031215610c1e57610c1d610acc565b5b6000610c2c86828701610b1a565b9350506020610c3d86828701610b1a565b9250506040610c4e86828701610b50565b9150509250925092565b600060ff82169050919050565b610c6e81610c58565b82525050565b6000602082019050610c896000830184610c65565b92915050565b600060208284031215610ca557610ca4610acc565b5b6000610cb384828501610b1a565b91505092915050565b60008060408385031215610cd357610cd2610acc565b5b6000610ce185828601610b1a565b9250506020610cf285828601610b1a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610d4357607f821691505b602082108103610d5657610d55610cfc565b5b50919050565b610d6581610af1565b82525050565b6000606082019050610d806000830186610d5c565b610d8d6020830185610bdb565b610d9a6040830184610bdb565b949350505050565b6000602082019050610db76000830184610d5c565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610df782610b2f565b9150610e0283610b2f565b9250828201905080821115610e1a57610e19610dbd565b5b9291505056fea2646970667358221220f413ecdb821df363531c0a0bcc98dfeb9baf7e41031710ae13ffb1596f19db2b64736f6c634300081c0033",
-    "linkReferences": {},
-    "deployedLinkReferences": {}
-}
\ No newline at end of file
diff --git a/packages/plugin-abstract/src/constants/index.ts b/packages/plugin-abstract/src/constants/index.ts
deleted file mode 100644
index cd3b1267dc2..00000000000
--- a/packages/plugin-abstract/src/constants/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export const ETH_ADDRESS = "0x000000000000000000000000000000000000800A";
diff --git a/packages/plugin-abstract/src/environment.ts b/packages/plugin-abstract/src/environment.ts
deleted file mode 100644
index 502872ef016..00000000000
--- a/packages/plugin-abstract/src/environment.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-import type { IAgentRuntime } from "@elizaos/core";
-import { isAddress } from "viem";
-import { z } from "zod";
-
-export const abstractEnvSchema = z.object({
-	ABSTRACT_ADDRESS: z
-		.string()
-		.min(1, "Abstract address is required")
-		.refine((address) => isAddress(address, { strict: false }), {
-			message: "Abstract address must be a valid address",
-		}),
-	ABSTRACT_PRIVATE_KEY: z
-		.string()
-		.min(1, "Abstract private key is required")
-		.refine((key) => /^[a-fA-F0-9]{64}$/.test(key), {
-			message:
-				"Abstract private key must be a 64-character hexadecimal string (32 bytes) without the '0x' prefix",
-		}),
-});
-
-export type AbstractConfig = z.infer<typeof abstractEnvSchema>;
-
-export async function validateAbstractConfig(
-	runtime: IAgentRuntime,
-): Promise<AbstractConfig> {
-	try {
-		const config = {
-			ABSTRACT_ADDRESS: runtime.getSetting("ABSTRACT_ADDRESS"),
-			ABSTRACT_PRIVATE_KEY: runtime.getSetting("ABSTRACT_PRIVATE_KEY"),
-		};
-
-		return abstractEnvSchema.parse(config);
-	} catch (error) {
-		if (error instanceof z.ZodError) {
-			const errorMessages = error.errors
-				.map((err) => `${err.path.join(".")}: ${err.message}`)
-				.join("\n");
-			throw new Error(
-				`Abstract configuration validation failed:\n${errorMessages}`,
-			);
-		}
-		throw error;
-	}
-}
diff --git a/packages/plugin-abstract/src/hooks/index.ts b/packages/plugin-abstract/src/hooks/index.ts
deleted file mode 100644
index b77aa9b1c6c..00000000000
--- a/packages/plugin-abstract/src/hooks/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from "./useGetAccount";
-export * from "./useGetWalletClient";
diff --git a/packages/plugin-abstract/src/hooks/useGetAccount.ts b/packages/plugin-abstract/src/hooks/useGetAccount.ts
deleted file mode 100644
index 5700c3f848c..00000000000
--- a/packages/plugin-abstract/src/hooks/useGetAccount.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import type { IAgentRuntime } from "@elizaos/core";
-import type { PrivateKeyAccount } from "viem/accounts";
-import { privateKeyToAccount } from "viem/accounts";
-
-export const useGetAccount = (runtime: IAgentRuntime): PrivateKeyAccount => {
-	const PRIVATE_KEY = runtime.getSetting("ABSTRACT_PRIVATE_KEY");
-	if (!PRIVATE_KEY) {
-		throw new Error("ABSTRACT_PRIVATE_KEY is not set");
-	}
-	return privateKeyToAccount(`0x${PRIVATE_KEY}`);
-};
diff --git a/packages/plugin-abstract/src/hooks/useGetWalletClient.ts b/packages/plugin-abstract/src/hooks/useGetWalletClient.ts
deleted file mode 100644
index 93c464737dd..00000000000
--- a/packages/plugin-abstract/src/hooks/useGetWalletClient.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { createWalletClient, http } from "viem";
-import { abstractTestnet } from "viem/chains";
-import { eip712WalletActions } from "viem/zksync";
-
-export const useGetWalletClient = (): ReturnType<typeof createWalletClient> => {
-	const client = createWalletClient({
-		chain: abstractTestnet,
-		transport: http(),
-	}).extend(eip712WalletActions());
-
-	return client;
-};
diff --git a/packages/plugin-abstract/src/index.ts b/packages/plugin-abstract/src/index.ts
deleted file mode 100644
index 09076cc0ce8..00000000000
--- a/packages/plugin-abstract/src/index.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import type { Plugin } from "@elizaos/core";
-
-import { transferAction, getBalanceAction, deployTokenAction } from "./actions";
-
-export const abstractPlugin: Plugin = {
-	name: "abstract",
-	description: "Abstract Plugin for Eliza",
-	actions: [transferAction, getBalanceAction, deployTokenAction],
-	evaluators: [],
-	providers: [],
-};
-
-export default abstractPlugin;
diff --git a/packages/plugin-abstract/src/utils/index.ts b/packages/plugin-abstract/src/utils/index.ts
deleted file mode 100644
index 70b70856047..00000000000
--- a/packages/plugin-abstract/src/utils/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./viemHelpers";
diff --git a/packages/plugin-abstract/src/utils/viemHelpers.ts b/packages/plugin-abstract/src/utils/viemHelpers.ts
deleted file mode 100644
index c1c7044e169..00000000000
--- a/packages/plugin-abstract/src/utils/viemHelpers.ts
+++ /dev/null
@@ -1,87 +0,0 @@
-import {
-	type Address,
-	createPublicClient,
-	getAddress,
-	http,
-	isAddress,
-	type PublicClient,
-} from "viem";
-import { abstractTestnet, mainnet } from "viem/chains";
-import { normalize } from "viem/ens";
-import { elizaLogger } from "@elizaos/core";
-import { ETH_ADDRESS } from "../constants";
-
-import {
-	type Account,
-	type Client,
-	createClient,
-	createWalletClient,
-	type Transport,
-} from "viem";
-import { toAccount } from "viem/accounts";
-import type { ChainEIP712 } from "viem/zksync";
-
-import { getSmartAccountAddressFromInitialSigner } from "./utils.js";
-import {
-	type AbstractWalletActions,
-	globalWalletActions,
-} from "./walletActions.js";
-
-// Shared clients
-export const ethereumClient = createPublicClient({
-	chain: mainnet,
-	transport: http(),
-});
-
-export const abstractPublicClient = createPublicClient({
-	chain: abstractTestnet,
-	transport: http(),
-});
-
-// Helper to resolve ENS names
-export async function resolveAddress(
-	addressOrEns: string,
-): Promise<Address | null> {
-	if (isAddress(addressOrEns)) {
-		return getAddress(addressOrEns);
-	}
-
-	let address: string;
-	try {
-		const name = normalize(addressOrEns.trim());
-		const resolved = await ethereumClient.getEnsAddress({ name });
-		if (resolved) {
-			address = resolved;
-			elizaLogger.log(`Resolved ${name} to ${resolved}`);
-		}
-	} catch (error) {
-		elizaLogger.error("Error resolving ENS name:", error);
-	}
-
-	return address ? getAddress(address) : null;
-}
-
-const tokens = [
-	{
-		address: ETH_ADDRESS,
-		symbol: "ETH",
-		decimals: 18,
-	},
-	{
-		address: "0xe4c7fbb0a626ed208021ccaba6be1566905e2dfc",
-		symbol: "USDC",
-		decimals: 6,
-	},
-];
-
-export function getTokenByName(name: string) {
-	const token = tokens.find(
-		(token) => token.symbol.toLowerCase() === name.toLowerCase(),
-	);
-
-	if (!token) {
-		throw new Error(`Token ${name} not found`);
-	}
-
-	return token;
-}
diff --git a/packages/plugin-abstract/tsconfig.json b/packages/plugin-abstract/tsconfig.json
deleted file mode 100644
index 005fbac9d36..00000000000
--- a/packages/plugin-abstract/tsconfig.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-    "extends": "../core/tsconfig.json",
-    "compilerOptions": {
-        "outDir": "dist",
-        "rootDir": "src"
-    },
-    "include": ["src/**/*.ts"]
-}
diff --git a/packages/plugin-abstract/tsup.config.ts b/packages/plugin-abstract/tsup.config.ts
deleted file mode 100644
index e42bf4efeae..00000000000
--- a/packages/plugin-abstract/tsup.config.ts
+++ /dev/null
@@ -1,20 +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",
-        // Add other modules you want to externalize
-    ],
-});
diff --git a/packages/plugin-crypto-news/package.json b/packages/plugin-crypto-news/package.json
index 3ff91e03223..b29969a4afa 100644
--- a/packages/plugin-crypto-news/package.json
+++ b/packages/plugin-crypto-news/package.json
@@ -7,6 +7,7 @@
     "types": "dist/index.d.ts",
     "dependencies": {
         "@elizaos/core": "workspace:*",
+        "google-sr": "^4.1.0",
         "rss-to-json": "^2.1.1"
     },
     "devDependencies": {
diff --git a/packages/plugin-pyth-data/schema.json b/packages/plugin-pyth-data/schema.json
index 6628a575d00..a036280f023 100644
--- a/packages/plugin-pyth-data/schema.json
+++ b/packages/plugin-pyth-data/schema.json
@@ -1 +1 @@
-{"openapi":"3.0.3","info":{"title":"hermes","description":"Hermes is an agent that provides Verified Prices from the Pythnet Pyth Oracle.","license":{"name":""},"version":"0.8.2"},"paths":{"/api/get_price_feed":{"get":{"tags":["rest"],"summary":"**Deprecated: use /v2/updates/price/{publish_time} instead**","description":"**Deprecated: use /v2/updates/price/{publish_time} instead**\n\nGet a price update for a price feed with a specific timestamp\n\nGiven a price feed id and timestamp, retrieve the Pyth price update closest to that timestamp.","operationId":"get_price_feed","parameters":[{"name":"id","in":"query","description":"The id of the price feed to get an update for.","required":true,"schema":{"$ref":"#/components/schemas/PriceIdInput"}},{"name":"publish_time","in":"query","description":"The unix timestamp in seconds. This endpoint will return the first update whose\npublish_time is >= the provided value.","required":true,"schema":{"type":"integer","format":"int64"},"example":1717632000},{"name":"verbose","in":"query","description":"If true, include the `metadata` field in the response with additional metadata about the\nprice update.","required":false,"schema":{"type":"boolean"}},{"name":"binary","in":"query","description":"If true, include the binary price update in the `vaa` field of each returned feed. This\nbinary data can be submitted to Pyth contracts to update the on-chain price.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Price update retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcPriceFeed"}}}}},"deprecated":true}},"/api/get_vaa":{"get":{"tags":["rest"],"summary":"**Deprecated: use /v2/updates/price/{publish_time} instead**","description":"**Deprecated: use /v2/updates/price/{publish_time} instead**\n\nGet a VAA for a price feed with a specific timestamp\n\nGiven a price feed id and timestamp, retrieve the Pyth price update closest to that timestamp.","operationId":"get_vaa","parameters":[{"name":"id","in":"query","description":"The ID of the price feed to get an update for.","required":true,"schema":{"$ref":"#/components/schemas/PriceIdInput"}},{"name":"publish_time","in":"query","description":"The unix timestamp in seconds. This endpoint will return the first update whose\npublish_time is >= the provided value.","required":true,"schema":{"type":"integer","format":"int64"},"example":1690576641}],"responses":{"200":{"description":"Price update retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetVaaResponse"}}}},"404":{"description":"Price update not found","content":{"text/plain":{"schema":{"type":"string"}}}}},"deprecated":true}},"/api/get_vaa_ccip":{"get":{"tags":["rest"],"summary":"**Deprecated: use /v2/updates/price/{publish_time} instead**","description":"**Deprecated: use /v2/updates/price/{publish_time} instead**\n\nGet a VAA for a price feed using CCIP\n\nThis endpoint accepts a single argument which is a hex-encoded byte string of the following form:\n`<price feed id (32 bytes> <publish time as unix timestamp (8 bytes, big endian)>`","operationId":"get_vaa_ccip","parameters":[{"name":"data","in":"query","required":true,"schema":{"$ref":"#/components/schemas/GetVaaCcipInput"}}],"responses":{"200":{"description":"Price update retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetVaaCcipResponse"}}}}},"deprecated":true}},"/api/latest_price_feeds":{"get":{"tags":["rest"],"summary":"**Deprecated: use /v2/updates/price/latest instead**","description":"**Deprecated: use /v2/updates/price/latest instead**\n\nGet the latest price updates by price feed id.\n\nGiven a collection of price feed ids, retrieve the latest Pyth price for each price feed.","operationId":"latest_price_feeds","parameters":[{"name":"ids[]","in":"query","description":"Get the most recent price update for this set of price feed ids.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```","required":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceIdInput"}},"example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},{"name":"verbose","in":"query","description":"If true, include the `metadata` field in the response with additional metadata about\nthe price update.","required":false,"schema":{"type":"boolean"}},{"name":"binary","in":"query","description":"If true, include the binary price update in the `vaa` field of each returned feed.\nThis binary data can be submitted to Pyth contracts to update the on-chain price.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Price updates retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RpcPriceFeed"}}}}}},"deprecated":true}},"/api/latest_vaas":{"get":{"tags":["rest"],"summary":"**Deprecated: use /v2/updates/price/latest instead**","description":"**Deprecated: use /v2/updates/price/latest instead**\n\nGet VAAs for a set of price feed ids.\n\nGiven a collection of price feed ids, retrieve the latest VAA for each. The returned VAA(s) can\nbe submitted to the Pyth contract to update the on-chain price. If VAAs are not found for every\nprovided price ID the call will fail.","operationId":"latest_vaas","parameters":[{"name":"ids[]","in":"query","description":"Get the VAAs for this set of price feed ids.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```","required":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceIdInput"}},"example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"}],"responses":{"200":{"description":"VAAs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}},"example":["UE5BVQEAAAADuAEAAAADDQC1H7meY5fTed0FsykIb8dt+7nKpbuzfvU2DplDi+dcUl8MC+UIkS65+rkiq+zmNBxE2gaxkBkjdIicZ/fBo+X7AAEqp+WtlWb84np8jJfLpuQ2W+l5KXTigsdAhz5DyVgU3xs+EnaIZxBwcE7EKzjMam+V9rlRy0CGsiQ1kjqqLzfAAQLsoVO0Vu5gVmgc8XGQ7xYhoz36rsBgMjG+e3l/B01esQi/KzPuBf/Ar8Sg5aSEOvEU0muSDb+KIr6d8eEC+FtcAAPZEaBSt4ysXVL84LUcJemQD3SiG30kOfUpF8o7/wI2M2Jf/LyCsbKEQUyLtLbZqnJBSfZJR5AMsrnHDqngMLEGAAY4UDG9GCpRuPvg8hOlsrXuPP3zq7yVPqyG0SG+bNo8rEhP5b1vXlHdG4bZsutX47d5VZ6xnFROKudx3T3/fnWUAQgAU1+kUFc3e0ZZeX1dLRVEryNIVyxMQIcxWwdey+jlIAYowHRM0fJX3Scs80OnT/CERwh5LMlFyU1w578NqxW+AQl2E/9fxjgUTi8crOfDpwsUsmOWw0+Q5OUGhELv/2UZoHAjsaw9OinWUggKACo4SdpPlHYldoWF+J2yGWOW+F4iAQre4c+ocb6a9uSWOnTldFkioqhd9lhmV542+VonCvuy4Tu214NP+2UNd/4Kk3KJCf3iziQJrCBeLi1cLHdLUikgAQtvRFR/nepcF9legl+DywAkUHi5/1MNjlEQvlHyh2XbMiS85yu7/9LgM6Sr+0ukfZY5mSkOcvUkpHn+T+Nw/IrQAQ7lty5luvKUmBpI3ITxSmojJ1aJ0kj/dc0ZcQk+/qo0l0l3/eRLkYjw5j+MZKA8jEubrHzUCke98eSoj8l08+PGAA+DAKNtCwNZe4p6J1Ucod8Lo5RKFfA84CPLVyEzEPQFZ25U9grUK6ilF4GhEia/ndYXLBt3PGW3qa6CBBPM7rH3ABGAyYEtUwzB4CeVedA5o6cKpjRkIebqDNSOqltsr+w7kXdfFVtsK2FMGFZNt5rbpIR+ppztoJ6eOKHmKmi9nQ99ARKkTxRErOs9wJXNHaAuIRV38o1pxRrlQRzGsRuKBqxcQEpC8OPFpyKYcp6iD5l7cO/gRDTamLFyhiUBwKKMP07FAWTEJv8AAAAAABrhAfrtrFhR4yubI7X5QRqMK6xKrj7U3XuBHdGnLqSqcQAAAAAAGp0GAUFVV1YAAAAAAAUYUmIAACcQBsfKUtr4PgZbIXRxRESU79PjE4IBAFUA5i32yLSoX+GmfbRNwS3l2zMPesZrctxliv7fD0pBW0MAAAKqqMJFwAAAAAAqE/NX////+AAAAABkxCb7AAAAAGTEJvoAAAKqIcWxYAAAAAAlR5m4CP/mPsh1IezjYpDlJ4GRb5q4fTs2LjtyO6M0XgVimrIQ4kSh1qg7JKW4gbGkyRntVFR9JO/GNd3FPDit0BK6M+JzXh/h12YNCz9wxlZTvXrNtWNbzqT+91pvl5cphhSPMfAHyEzTPaGR9tKDy9KNu56pmhaY32d2vfEWQmKo22guegeR98oDxs67MmnUraco46a3zEnac2Bm80pasUgMO24="]}}}},"deprecated":true}},"/api/price_feed_ids":{"get":{"tags":["rest"],"summary":"**Deprecated: use /v2/price_feeds instead**","description":"**Deprecated: use /v2/price_feeds instead**\n\nGet the set of price feed IDs.\n\nThis endpoint fetches all of the price feed IDs for which price updates can be retrieved.","operationId":"price_feed_ids","responses":{"200":{"description":"Price feed ids retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RpcPriceIdentifier"}}}}}},"deprecated":true}},"/v2/price_feeds":{"get":{"tags":["rest"],"summary":"Get the set of price feeds.","description":"Get the set of price feeds.\n\nThis endpoint fetches all price feeds from the Pyth network. It can be filtered by asset type\nand query string.","operationId":"price_feeds_metadata","parameters":[{"name":"query","in":"query","description":"Optional query parameter. If provided, the results will be filtered to all price feeds whose symbol contains the query string. Query string is case insensitive.","required":false,"schema":{"type":"string","nullable":true},"example":"bitcoin"},{"name":"asset_type","in":"query","description":"Optional query parameter. If provided, the results will be filtered by asset type. Possible values are crypto, equity, fx, metal, rates. Filter string is case insensitive.","required":false,"schema":{"allOf":[{"$ref":"#/components/schemas/AssetType"}],"nullable":true},"example":"crypto"}],"responses":{"200":{"description":"Price feeds metadata retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceFeedMetadata"}}}}}}}},"/v2/updates/price/latest":{"get":{"tags":["rest"],"summary":"Get the latest price updates by price feed id.","description":"Get the latest price updates by price feed id.\n\nGiven a collection of price feed ids, retrieve the latest Pyth price for each price feed.","operationId":"latest_price_updates","parameters":[{"name":"ids[]","in":"query","description":"Get the most recent price update for this set of price feed ids.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```","required":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceIdInput"}},"example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},{"name":"encoding","in":"query","description":"Optional encoding type. If true, return the price update in the encoding specified by the encoding parameter. Default is `hex`.","required":false,"schema":{"$ref":"#/components/schemas/EncodingType"}},{"name":"parsed","in":"query","description":"If true, include the parsed price update in the `parsed` field of each returned feed. Default is `true`.","required":false,"schema":{"type":"boolean"}},{"name":"ignore_invalid_price_ids","in":"query","description":"If true, invalid price IDs in the `ids` parameter are ignored. Only applicable to the v2 APIs. Default is `false`.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Price updates retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceUpdate"}}}},"404":{"description":"Price ids not found","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/v2/updates/price/stream":{"get":{"tags":["rest"],"summary":"SSE route handler for streaming price updates.","description":"SSE route handler for streaming price updates.","operationId":"price_stream_sse_handler","parameters":[{"name":"ids[]","in":"query","description":"Get the most recent price update for this set of price feed ids.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```","required":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceIdInput"}},"example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},{"name":"encoding","in":"query","description":"Optional encoding type. If true, return the price update in the encoding specified by the encoding parameter. Default is `hex`.","required":false,"schema":{"$ref":"#/components/schemas/EncodingType"}},{"name":"parsed","in":"query","description":"If true, include the parsed price update in the `parsed` field of each returned feed. Default is `true`.","required":false,"schema":{"type":"boolean"}},{"name":"allow_unordered","in":"query","description":"If true, allows unordered price updates to be included in the stream.","required":false,"schema":{"type":"boolean"}},{"name":"benchmarks_only","in":"query","description":"If true, only include benchmark prices that are the initial price updates at a given timestamp (i.e., prevPubTime != pubTime).","required":false,"schema":{"type":"boolean"}},{"name":"ignore_invalid_price_ids","in":"query","description":"If true, invalid price IDs in the `ids` parameter are ignored. Only applicable to the v2 APIs. Default is `false`.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Price updates retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceUpdate"}}}},"404":{"description":"Price ids not found","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/v2/updates/price/{publish_time}":{"get":{"tags":["rest"],"summary":"Get the latest price updates by price feed id.","description":"Get the latest price updates by price feed id.\n\nGiven a collection of price feed ids, retrieve the latest Pyth price for each price feed.","operationId":"timestamp_price_updates","parameters":[{"name":"publish_time","in":"path","description":"The unix timestamp in seconds. This endpoint will return the first update whose\npublish_time is >= the provided value.","required":true,"schema":{"type":"integer","format":"int64"},"example":1717632000},{"name":"ids[]","in":"query","description":"Get the most recent price update for this set of price feed ids.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```","required":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceIdInput"}},"example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},{"name":"encoding","in":"query","description":"Optional encoding type. If true, return the price update in the encoding specified by the encoding parameter. Default is `hex`.","required":false,"schema":{"$ref":"#/components/schemas/EncodingType"}},{"name":"parsed","in":"query","description":"If true, include the parsed price update in the `parsed` field of each returned feed. Default is `true`.","required":false,"schema":{"type":"boolean"}},{"name":"ignore_invalid_price_ids","in":"query","description":"If true, invalid price IDs in the `ids` parameter are ignored. Only applicable to the v2 APIs. Default is `false`.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Price updates retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceUpdate"}}}},"404":{"description":"Price ids not found","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/v2/updates/publisher_stake_caps/latest":{"get":{"tags":["rest"],"summary":"Get the most recent publisher stake caps update data.","description":"Get the most recent publisher stake caps update data.","operationId":"latest_publisher_stake_caps","parameters":[{"name":"encoding","in":"query","description":"Get the most recent publisher stake caps update data.\nOptional encoding type. If true, return the message in the encoding specified by the encoding parameter. Default is `hex`.","required":false,"schema":{"$ref":"#/components/schemas/EncodingType"}},{"name":"parsed","in":"query","description":"If true, include the parsed update in the `parsed` field of each returned feed. Default is `true`.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Publisher stake caps update data retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LatestPublisherStakeCapsUpdateDataResponse"}}}}}}},"/v2/updates/twap/{window_seconds}/latest":{"get":{"tags":["rest"],"summary":"Get the latest TWAP by price feed id with a custom time window.","description":"Get the latest TWAP by price feed id with a custom time window.\n\nGiven a collection of price feed ids, retrieve the latest Pyth TWAP price for each price feed.","operationId":"latest_twaps","parameters":[{"name":"window_seconds","in":"path","description":"The time window in seconds over which to calculate the TWAP, ending at the current time.\nFor example, a value of 300 would return the most recent 5 minute TWAP.\nMust be greater than 0 and less than or equal to 600 seconds (10 minutes).","required":true,"schema":{"type":"integer","format":"int64","minimum":0},"example":"300"},{"name":"ids[]","in":"query","description":"Get the most recent TWAP (time weighted average price) for this set of price feed ids.\nThe `binary` data contains the signed start & end cumulative price updates needed to calculate\nthe TWAPs on-chain. The `parsed` data contains the calculated TWAPs.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```","required":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceIdInput"}},"example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},{"name":"encoding","in":"query","description":"Optional encoding type. If true, return the cumulative price updates in the encoding specified by the encoding parameter. Default is `hex`.","required":false,"schema":{"$ref":"#/components/schemas/EncodingType"}},{"name":"parsed","in":"query","description":"If true, include the calculated TWAP in the `parsed` field of each returned feed. Default is `true`.","required":false,"schema":{"type":"boolean"}},{"name":"ignore_invalid_price_ids","in":"query","description":"If true, invalid price IDs in the `ids` parameter are ignored. Only applicable to the v2 APIs. Default is `false`.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"TWAPs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TwapsResponse"}}}},"404":{"description":"Price ids not found","content":{"text/plain":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"AssetType":{"type":"string","enum":["crypto","fx","equity","metal","rates","crypto_redemption_rate"]},"BinaryUpdate":{"type":"object","required":["encoding","data"],"properties":{"data":{"type":"array","items":{"type":"string"}},"encoding":{"$ref":"#/components/schemas/EncodingType"}}},"EncodingType":{"type":"string","enum":["hex","base64"]},"GetVaaCcipInput":{"type":"string","format":"binary"},"GetVaaCcipResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"string"}}},"GetVaaResponse":{"type":"object","required":["vaa","publishTime"],"properties":{"publishTime":{"type":"integer","format":"int64","example":1690576641},"vaa":{"type":"string","description":"The VAA binary represented as a base64 string.","example":"UE5BVQEAAAADuAEAAAADDQC1H7meY5fTed0FsykIb8dt+7nKpbuzfvU2DplDi+dcUl8MC+UIkS65+rkiq+zmNBxE2gaxkBkjdIicZ/fBo+X7AAEqp+WtlWb84np8jJfLpuQ2W+l5KXTigsdAhz5DyVgU3xs+EnaIZxBwcE7EKzjMam+V9rlRy0CGsiQ1kjqqLzfAAQLsoVO0Vu5gVmgc8XGQ7xYhoz36rsBgMjG+e3l/B01esQi/KzPuBf/Ar8Sg5aSEOvEU0muSDb+KIr6d8eEC+FtcAAPZEaBSt4ysXVL84LUcJemQD3SiG30kOfUpF8o7/wI2M2Jf/LyCsbKEQUyLtLbZqnJBSfZJR5AMsrnHDqngMLEGAAY4UDG9GCpRuPvg8hOlsrXuPP3zq7yVPqyG0SG+bNo8rEhP5b1vXlHdG4bZsutX47d5VZ6xnFROKudx3T3/fnWUAQgAU1+kUFc3e0ZZeX1dLRVEryNIVyxMQIcxWwdey+jlIAYowHRM0fJX3Scs80OnT/CERwh5LMlFyU1w578NqxW+AQl2E/9fxjgUTi8crOfDpwsUsmOWw0+Q5OUGhELv/2UZoHAjsaw9OinWUggKACo4SdpPlHYldoWF+J2yGWOW+F4iAQre4c+ocb6a9uSWOnTldFkioqhd9lhmV542+VonCvuy4Tu214NP+2UNd/4Kk3KJCf3iziQJrCBeLi1cLHdLUikgAQtvRFR/nepcF9legl+DywAkUHi5/1MNjlEQvlHyh2XbMiS85yu7/9LgM6Sr+0ukfZY5mSkOcvUkpHn+T+Nw/IrQAQ7lty5luvKUmBpI3ITxSmojJ1aJ0kj/dc0ZcQk+/qo0l0l3/eRLkYjw5j+MZKA8jEubrHzUCke98eSoj8l08+PGAA+DAKNtCwNZe4p6J1Ucod8Lo5RKFfA84CPLVyEzEPQFZ25U9grUK6ilF4GhEia/ndYXLBt3PGW3qa6CBBPM7rH3ABGAyYEtUwzB4CeVedA5o6cKpjRkIebqDNSOqltsr+w7kXdfFVtsK2FMGFZNt5rbpIR+ppztoJ6eOKHmKmi9nQ99ARKkTxRErOs9wJXNHaAuIRV38o1pxRrlQRzGsRuKBqxcQEpC8OPFpyKYcp6iD5l7cO/gRDTamLFyhiUBwKKMP07FAWTEJv8AAAAAABrhAfrtrFhR4yubI7X5QRqMK6xKrj7U3XuBHdGnLqSqcQAAAAAAGp0GAUFVV1YAAAAAAAUYUmIAACcQBsfKUtr4PgZbIXRxRESU79PjE4IBAFUA5i32yLSoX+GmfbRNwS3l2zMPesZrctxliv7fD0pBW0MAAAKqqMJFwAAAAAAqE/NX////+AAAAABkxCb7AAAAAGTEJvoAAAKqIcWxYAAAAAAlR5m4CP/mPsh1IezjYpDlJ4GRb5q4fTs2LjtyO6M0XgVimrIQ4kSh1qg7JKW4gbGkyRntVFR9JO/GNd3FPDit0BK6M+JzXh/h12YNCz9wxlZTvXrNtWNbzqT+91pvl5cphhSPMfAHyEzTPaGR9tKDy9KNu56pmhaY32d2vfEWQmKo22guegeR98oDxs67MmnUraco46a3zEnac2Bm80pasUgMO24="}}},"LatestPublisherStakeCapsUpdateDataResponse":{"type":"object","required":["binary"],"properties":{"binary":{"$ref":"#/components/schemas/BinaryUpdate"},"parsed":{"type":"array","items":{"$ref":"#/components/schemas/ParsedPublisherStakeCapsUpdate"},"nullable":true}}},"ParsedPriceFeedTwap":{"type":"object","required":["id","start_timestamp","end_timestamp","twap","down_slots_ratio"],"properties":{"down_slots_ratio":{"type":"string","description":"The % of slots where the network was down over the TWAP window.\nA value of zero indicates no slots were missed over the window, and\na value of one indicates that every slot was missed over the window.\nThis is a float value stored as a string to avoid precision loss."},"end_timestamp":{"type":"integer","format":"int64","description":"The end unix timestamp of the window"},"id":{"$ref":"#/components/schemas/RpcPriceIdentifier"},"start_timestamp":{"type":"integer","format":"int64","description":"The start unix timestamp of the window"},"twap":{"$ref":"#/components/schemas/RpcPrice"}}},"ParsedPriceUpdate":{"type":"object","required":["id","price","ema_price","metadata"],"properties":{"ema_price":{"$ref":"#/components/schemas/RpcPrice"},"id":{"$ref":"#/components/schemas/RpcPriceIdentifier"},"metadata":{"$ref":"#/components/schemas/RpcPriceFeedMetadataV2"},"price":{"$ref":"#/components/schemas/RpcPrice"}}},"ParsedPublisherStakeCap":{"type":"object","required":["publisher","cap"],"properties":{"cap":{"type":"integer","format":"int64","minimum":0},"publisher":{"type":"string"}}},"ParsedPublisherStakeCapsUpdate":{"type":"object","required":["publisher_stake_caps"],"properties":{"publisher_stake_caps":{"type":"array","items":{"$ref":"#/components/schemas/ParsedPublisherStakeCap"}}}},"PriceFeedMetadata":{"type":"object","required":["id","attributes"],"properties":{"attributes":{"type":"object","additionalProperties":{"type":"string"}},"id":{"$ref":"#/components/schemas/RpcPriceIdentifier"}}},"PriceIdInput":{"type":"string","description":"A price id is a 32-byte hex string, optionally prefixed with \"0x\".\nPrice ids are case insensitive.\n\nExamples:\n* 0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43\n* e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43\n\nSee https://pyth.network/developers/price-feed-ids for a list of all price feed ids.","example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},"PriceUpdate":{"type":"object","required":["binary"],"properties":{"binary":{"$ref":"#/components/schemas/BinaryUpdate"},"parsed":{"type":"array","items":{"$ref":"#/components/schemas/ParsedPriceUpdate"},"nullable":true}}},"RpcPrice":{"type":"object","description":"A price with a degree of uncertainty at a certain time, represented as a price +- a confidence\ninterval.\n\nThe confidence interval roughly corresponds to the standard error of a normal distribution.\nBoth the price and confidence are stored in a fixed-point numeric representation, `x *\n10^expo`, where `expo` is the exponent. For example:","required":["price","conf","expo","publish_time"],"properties":{"conf":{"type":"string","description":"The confidence interval associated with the price, stored as a string to avoid precision loss","example":"509500001"},"expo":{"type":"integer","format":"int32","description":"The exponent associated with both the price and confidence interval. Multiply those values\nby `10^expo` to get the real value.","example":-8},"price":{"type":"string","description":"The price itself, stored as a string to avoid precision loss","example":"2920679499999"},"publish_time":{"type":"integer","format":"int64","description":"When the price was published. The `publish_time` is a unix timestamp, i.e., the number of\nseconds since the Unix epoch (00:00:00 UTC on 1 Jan 1970).","example":1717632000}}},"RpcPriceFeed":{"type":"object","required":["id","price","ema_price"],"properties":{"ema_price":{"$ref":"#/components/schemas/RpcPrice"},"id":{"$ref":"#/components/schemas/RpcPriceIdentifier"},"metadata":{"allOf":[{"$ref":"#/components/schemas/RpcPriceFeedMetadata"}],"nullable":true},"price":{"$ref":"#/components/schemas/RpcPrice"},"vaa":{"type":"string","description":"The VAA binary represented as a base64 string.","example":"UE5BVQEAAAADuAEAAAADDQC1H7meY5fTed0FsykIb8dt+7nKpbuzfvU2DplDi+dcUl8MC+UIkS65+rkiq+zmNBxE2gaxkBkjdIicZ/fBo+X7AAEqp+WtlWb84np8jJfLpuQ2W+l5KXTigsdAhz5DyVgU3xs+EnaIZxBwcE7EKzjMam+V9rlRy0CGsiQ1kjqqLzfAAQLsoVO0Vu5gVmgc8XGQ7xYhoz36rsBgMjG+e3l/B01esQi/KzPuBf/Ar8Sg5aSEOvEU0muSDb+KIr6d8eEC+FtcAAPZEaBSt4ysXVL84LUcJemQD3SiG30kOfUpF8o7/wI2M2Jf/LyCsbKEQUyLtLbZqnJBSfZJR5AMsrnHDqngMLEGAAY4UDG9GCpRuPvg8hOlsrXuPP3zq7yVPqyG0SG+bNo8rEhP5b1vXlHdG4bZsutX47d5VZ6xnFROKudx3T3/fnWUAQgAU1+kUFc3e0ZZeX1dLRVEryNIVyxMQIcxWwdey+jlIAYowHRM0fJX3Scs80OnT/CERwh5LMlFyU1w578NqxW+AQl2E/9fxjgUTi8crOfDpwsUsmOWw0+Q5OUGhELv/2UZoHAjsaw9OinWUggKACo4SdpPlHYldoWF+J2yGWOW+F4iAQre4c+ocb6a9uSWOnTldFkioqhd9lhmV542+VonCvuy4Tu214NP+2UNd/4Kk3KJCf3iziQJrCBeLi1cLHdLUikgAQtvRFR/nepcF9legl+DywAkUHi5/1MNjlEQvlHyh2XbMiS85yu7/9LgM6Sr+0ukfZY5mSkOcvUkpHn+T+Nw/IrQAQ7lty5luvKUmBpI3ITxSmojJ1aJ0kj/dc0ZcQk+/qo0l0l3/eRLkYjw5j+MZKA8jEubrHzUCke98eSoj8l08+PGAA+DAKNtCwNZe4p6J1Ucod8Lo5RKFfA84CPLVyEzEPQFZ25U9grUK6ilF4GhEia/ndYXLBt3PGW3qa6CBBPM7rH3ABGAyYEtUwzB4CeVedA5o6cKpjRkIebqDNSOqltsr+w7kXdfFVtsK2FMGFZNt5rbpIR+ppztoJ6eOKHmKmi9nQ99ARKkTxRErOs9wJXNHaAuIRV38o1pxRrlQRzGsRuKBqxcQEpC8OPFpyKYcp6iD5l7cO/gRDTamLFyhiUBwKKMP07FAWTEJv8AAAAAABrhAfrtrFhR4yubI7X5QRqMK6xKrj7U3XuBHdGnLqSqcQAAAAAAGp0GAUFVV1YAAAAAAAUYUmIAACcQBsfKUtr4PgZbIXRxRESU79PjE4IBAFUA5i32yLSoX+GmfbRNwS3l2zMPesZrctxliv7fD0pBW0MAAAKqqMJFwAAAAAAqE/NX////+AAAAABkxCb7AAAAAGTEJvoAAAKqIcWxYAAAAAAlR5m4CP/mPsh1IezjYpDlJ4GRb5q4fTs2LjtyO6M0XgVimrIQ4kSh1qg7JKW4gbGkyRntVFR9JO/GNd3FPDit0BK6M+JzXh/h12YNCz9wxlZTvXrNtWNbzqT+91pvl5cphhSPMfAHyEzTPaGR9tKDy9KNu56pmhaY32d2vfEWQmKo22guegeR98oDxs67MmnUraco46a3zEnac2Bm80pasUgMO24=","nullable":true}}},"RpcPriceFeedMetadata":{"type":"object","required":["emitter_chain"],"properties":{"emitter_chain":{"type":"integer","format":"int32","example":26,"minimum":0},"prev_publish_time":{"type":"integer","format":"int64","example":1717632000,"nullable":true},"price_service_receive_time":{"type":"integer","format":"int64","example":1717632000,"nullable":true},"slot":{"type":"integer","format":"int64","example":85480034,"nullable":true,"minimum":0}}},"RpcPriceFeedMetadataV2":{"type":"object","properties":{"prev_publish_time":{"type":"integer","format":"int64","example":1717632000,"nullable":true},"proof_available_time":{"type":"integer","format":"int64","example":1717632000,"nullable":true},"slot":{"type":"integer","format":"int64","example":85480034,"nullable":true,"minimum":0}}},"RpcPriceIdentifier":{"type":"string","example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},"TwapsResponse":{"type":"object","required":["binary"],"properties":{"binary":{"$ref":"#/components/schemas/BinaryUpdate"},"parsed":{"type":"array","items":{"$ref":"#/components/schemas/ParsedPriceFeedTwap"},"description":"The calculated TWAPs for each price ID","nullable":true}}}}},"tags":[{"name":"hermes","description":"Pyth Real-Time Pricing API"}]}
\ No newline at end of file
+{"openapi":"3.0.3","info":{"title":"hermes","description":"Hermes is an agent that provides Verified Prices from the Pythnet Pyth Oracle.","license":{"name":""},"version":"0.8.1"},"paths":{"/api/get_price_feed":{"get":{"tags":["rest"],"summary":"**Deprecated: use /v2/updates/price/{publish_time} instead**","description":"**Deprecated: use /v2/updates/price/{publish_time} instead**\n\nGet a price update for a price feed with a specific timestamp\n\nGiven a price feed id and timestamp, retrieve the Pyth price update closest to that timestamp.","operationId":"get_price_feed","parameters":[{"name":"id","in":"query","description":"The id of the price feed to get an update for.","required":true,"schema":{"$ref":"#/components/schemas/PriceIdInput"}},{"name":"publish_time","in":"query","description":"The unix timestamp in seconds. This endpoint will return the first update whose\npublish_time is >= the provided value.","required":true,"schema":{"type":"integer","format":"int64"},"example":1717632000},{"name":"verbose","in":"query","description":"If true, include the `metadata` field in the response with additional metadata about the\nprice update.","required":false,"schema":{"type":"boolean"}},{"name":"binary","in":"query","description":"If true, include the binary price update in the `vaa` field of each returned feed. This\nbinary data can be submitted to Pyth contracts to update the on-chain price.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Price update retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcPriceFeed"}}}}},"deprecated":true}},"/api/get_vaa":{"get":{"tags":["rest"],"summary":"**Deprecated: use /v2/updates/price/{publish_time} instead**","description":"**Deprecated: use /v2/updates/price/{publish_time} instead**\n\nGet a VAA for a price feed with a specific timestamp\n\nGiven a price feed id and timestamp, retrieve the Pyth price update closest to that timestamp.","operationId":"get_vaa","parameters":[{"name":"id","in":"query","description":"The ID of the price feed to get an update for.","required":true,"schema":{"$ref":"#/components/schemas/PriceIdInput"}},{"name":"publish_time","in":"query","description":"The unix timestamp in seconds. This endpoint will return the first update whose\npublish_time is >= the provided value.","required":true,"schema":{"type":"integer","format":"int64"},"example":1690576641}],"responses":{"200":{"description":"Price update retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetVaaResponse"}}}},"404":{"description":"Price update not found","content":{"text/plain":{"schema":{"type":"string"}}}}},"deprecated":true}},"/api/get_vaa_ccip":{"get":{"tags":["rest"],"summary":"**Deprecated: use /v2/updates/price/{publish_time} instead**","description":"**Deprecated: use /v2/updates/price/{publish_time} instead**\n\nGet a VAA for a price feed using CCIP\n\nThis endpoint accepts a single argument which is a hex-encoded byte string of the following form:\n`<price feed id (32 bytes> <publish time as unix timestamp (8 bytes, big endian)>`","operationId":"get_vaa_ccip","parameters":[{"name":"data","in":"query","required":true,"schema":{"$ref":"#/components/schemas/GetVaaCcipInput"}}],"responses":{"200":{"description":"Price update retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetVaaCcipResponse"}}}}},"deprecated":true}},"/api/latest_price_feeds":{"get":{"tags":["rest"],"summary":"**Deprecated: use /v2/updates/price/latest instead**","description":"**Deprecated: use /v2/updates/price/latest instead**\n\nGet the latest price updates by price feed id.\n\nGiven a collection of price feed ids, retrieve the latest Pyth price for each price feed.","operationId":"latest_price_feeds","parameters":[{"name":"ids[]","in":"query","description":"Get the most recent price update for this set of price feed ids.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```","required":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceIdInput"}},"example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},{"name":"verbose","in":"query","description":"If true, include the `metadata` field in the response with additional metadata about\nthe price update.","required":false,"schema":{"type":"boolean"}},{"name":"binary","in":"query","description":"If true, include the binary price update in the `vaa` field of each returned feed.\nThis binary data can be submitted to Pyth contracts to update the on-chain price.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Price updates retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RpcPriceFeed"}}}}}},"deprecated":true}},"/api/latest_vaas":{"get":{"tags":["rest"],"summary":"**Deprecated: use /v2/updates/price/latest instead**","description":"**Deprecated: use /v2/updates/price/latest instead**\n\nGet VAAs for a set of price feed ids.\n\nGiven a collection of price feed ids, retrieve the latest VAA for each. The returned VAA(s) can\nbe submitted to the Pyth contract to update the on-chain price. If VAAs are not found for every\nprovided price ID the call will fail.","operationId":"latest_vaas","parameters":[{"name":"ids[]","in":"query","description":"Get the VAAs for this set of price feed ids.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```","required":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceIdInput"}},"example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"}],"responses":{"200":{"description":"VAAs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}},"example":["UE5BVQEAAAADuAEAAAADDQC1H7meY5fTed0FsykIb8dt+7nKpbuzfvU2DplDi+dcUl8MC+UIkS65+rkiq+zmNBxE2gaxkBkjdIicZ/fBo+X7AAEqp+WtlWb84np8jJfLpuQ2W+l5KXTigsdAhz5DyVgU3xs+EnaIZxBwcE7EKzjMam+V9rlRy0CGsiQ1kjqqLzfAAQLsoVO0Vu5gVmgc8XGQ7xYhoz36rsBgMjG+e3l/B01esQi/KzPuBf/Ar8Sg5aSEOvEU0muSDb+KIr6d8eEC+FtcAAPZEaBSt4ysXVL84LUcJemQD3SiG30kOfUpF8o7/wI2M2Jf/LyCsbKEQUyLtLbZqnJBSfZJR5AMsrnHDqngMLEGAAY4UDG9GCpRuPvg8hOlsrXuPP3zq7yVPqyG0SG+bNo8rEhP5b1vXlHdG4bZsutX47d5VZ6xnFROKudx3T3/fnWUAQgAU1+kUFc3e0ZZeX1dLRVEryNIVyxMQIcxWwdey+jlIAYowHRM0fJX3Scs80OnT/CERwh5LMlFyU1w578NqxW+AQl2E/9fxjgUTi8crOfDpwsUsmOWw0+Q5OUGhELv/2UZoHAjsaw9OinWUggKACo4SdpPlHYldoWF+J2yGWOW+F4iAQre4c+ocb6a9uSWOnTldFkioqhd9lhmV542+VonCvuy4Tu214NP+2UNd/4Kk3KJCf3iziQJrCBeLi1cLHdLUikgAQtvRFR/nepcF9legl+DywAkUHi5/1MNjlEQvlHyh2XbMiS85yu7/9LgM6Sr+0ukfZY5mSkOcvUkpHn+T+Nw/IrQAQ7lty5luvKUmBpI3ITxSmojJ1aJ0kj/dc0ZcQk+/qo0l0l3/eRLkYjw5j+MZKA8jEubrHzUCke98eSoj8l08+PGAA+DAKNtCwNZe4p6J1Ucod8Lo5RKFfA84CPLVyEzEPQFZ25U9grUK6ilF4GhEia/ndYXLBt3PGW3qa6CBBPM7rH3ABGAyYEtUwzB4CeVedA5o6cKpjRkIebqDNSOqltsr+w7kXdfFVtsK2FMGFZNt5rbpIR+ppztoJ6eOKHmKmi9nQ99ARKkTxRErOs9wJXNHaAuIRV38o1pxRrlQRzGsRuKBqxcQEpC8OPFpyKYcp6iD5l7cO/gRDTamLFyhiUBwKKMP07FAWTEJv8AAAAAABrhAfrtrFhR4yubI7X5QRqMK6xKrj7U3XuBHdGnLqSqcQAAAAAAGp0GAUFVV1YAAAAAAAUYUmIAACcQBsfKUtr4PgZbIXRxRESU79PjE4IBAFUA5i32yLSoX+GmfbRNwS3l2zMPesZrctxliv7fD0pBW0MAAAKqqMJFwAAAAAAqE/NX////+AAAAABkxCb7AAAAAGTEJvoAAAKqIcWxYAAAAAAlR5m4CP/mPsh1IezjYpDlJ4GRb5q4fTs2LjtyO6M0XgVimrIQ4kSh1qg7JKW4gbGkyRntVFR9JO/GNd3FPDit0BK6M+JzXh/h12YNCz9wxlZTvXrNtWNbzqT+91pvl5cphhSPMfAHyEzTPaGR9tKDy9KNu56pmhaY32d2vfEWQmKo22guegeR98oDxs67MmnUraco46a3zEnac2Bm80pasUgMO24="]}}}},"deprecated":true}},"/api/price_feed_ids":{"get":{"tags":["rest"],"summary":"**Deprecated: use /v2/price_feeds instead**","description":"**Deprecated: use /v2/price_feeds instead**\n\nGet the set of price feed IDs.\n\nThis endpoint fetches all of the price feed IDs for which price updates can be retrieved.","operationId":"price_feed_ids","responses":{"200":{"description":"Price feed ids retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RpcPriceIdentifier"}}}}}},"deprecated":true}},"/v2/price_feeds":{"get":{"tags":["rest"],"summary":"Get the set of price feeds.","description":"Get the set of price feeds.\n\nThis endpoint fetches all price feeds from the Pyth network. It can be filtered by asset type\nand query string.","operationId":"price_feeds_metadata","parameters":[{"name":"query","in":"query","description":"Optional query parameter. If provided, the results will be filtered to all price feeds whose symbol contains the query string. Query string is case insensitive.","required":false,"schema":{"type":"string","nullable":true},"example":"bitcoin"},{"name":"asset_type","in":"query","description":"Optional query parameter. If provided, the results will be filtered by asset type. Possible values are crypto, equity, fx, metal, rates. Filter string is case insensitive.","required":false,"schema":{"allOf":[{"$ref":"#/components/schemas/AssetType"}],"nullable":true},"example":"crypto"}],"responses":{"200":{"description":"Price feeds metadata retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceFeedMetadata"}}}}}}}},"/v2/updates/price/latest":{"get":{"tags":["rest"],"summary":"Get the latest price updates by price feed id.","description":"Get the latest price updates by price feed id.\n\nGiven a collection of price feed ids, retrieve the latest Pyth price for each price feed.","operationId":"latest_price_updates","parameters":[{"name":"ids[]","in":"query","description":"Get the most recent price update for this set of price feed ids.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```","required":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceIdInput"}},"example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},{"name":"encoding","in":"query","description":"Optional encoding type. If true, return the price update in the encoding specified by the encoding parameter. Default is `hex`.","required":false,"schema":{"$ref":"#/components/schemas/EncodingType"}},{"name":"parsed","in":"query","description":"If true, include the parsed price update in the `parsed` field of each returned feed. Default is `true`.","required":false,"schema":{"type":"boolean"}},{"name":"ignore_invalid_price_ids","in":"query","description":"If true, invalid price IDs in the `ids` parameter are ignored. Only applicable to the v2 APIs. Default is `false`.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Price updates retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceUpdate"}}}},"404":{"description":"Price ids not found","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/v2/updates/price/stream":{"get":{"tags":["rest"],"summary":"SSE route handler for streaming price updates.","description":"SSE route handler for streaming price updates.","operationId":"price_stream_sse_handler","parameters":[{"name":"ids[]","in":"query","description":"Get the most recent price update for this set of price feed ids.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```","required":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceIdInput"}},"example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},{"name":"encoding","in":"query","description":"Optional encoding type. If true, return the price update in the encoding specified by the encoding parameter. Default is `hex`.","required":false,"schema":{"$ref":"#/components/schemas/EncodingType"}},{"name":"parsed","in":"query","description":"If true, include the parsed price update in the `parsed` field of each returned feed. Default is `true`.","required":false,"schema":{"type":"boolean"}},{"name":"allow_unordered","in":"query","description":"If true, allows unordered price updates to be included in the stream.","required":false,"schema":{"type":"boolean"}},{"name":"benchmarks_only","in":"query","description":"If true, only include benchmark prices that are the initial price updates at a given timestamp (i.e., prevPubTime != pubTime).","required":false,"schema":{"type":"boolean"}},{"name":"ignore_invalid_price_ids","in":"query","description":"If true, invalid price IDs in the `ids` parameter are ignored. Only applicable to the v2 APIs. Default is `false`.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Price updates retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceUpdate"}}}},"404":{"description":"Price ids not found","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/v2/updates/price/{publish_time}":{"get":{"tags":["rest"],"summary":"Get the latest price updates by price feed id.","description":"Get the latest price updates by price feed id.\n\nGiven a collection of price feed ids, retrieve the latest Pyth price for each price feed.","operationId":"timestamp_price_updates","parameters":[{"name":"publish_time","in":"path","description":"The unix timestamp in seconds. This endpoint will return the first update whose\npublish_time is >= the provided value.","required":true,"schema":{"type":"integer","format":"int64"},"example":1717632000},{"name":"ids[]","in":"query","description":"Get the most recent price update for this set of price feed ids.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```","required":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceIdInput"}},"example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},{"name":"encoding","in":"query","description":"Optional encoding type. If true, return the price update in the encoding specified by the encoding parameter. Default is `hex`.","required":false,"schema":{"$ref":"#/components/schemas/EncodingType"}},{"name":"parsed","in":"query","description":"If true, include the parsed price update in the `parsed` field of each returned feed. Default is `true`.","required":false,"schema":{"type":"boolean"}},{"name":"ignore_invalid_price_ids","in":"query","description":"If true, invalid price IDs in the `ids` parameter are ignored. Only applicable to the v2 APIs. Default is `false`.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Price updates retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceUpdate"}}}},"404":{"description":"Price ids not found","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/v2/updates/publisher_stake_caps/latest":{"get":{"tags":["rest"],"summary":"Get the most recent publisher stake caps update data.","description":"Get the most recent publisher stake caps update data.","operationId":"latest_publisher_stake_caps","parameters":[{"name":"encoding","in":"query","description":"Get the most recent publisher stake caps update data.\nOptional encoding type. If true, return the message in the encoding specified by the encoding parameter. Default is `hex`.","required":false,"schema":{"$ref":"#/components/schemas/EncodingType"}},{"name":"parsed","in":"query","description":"If true, include the parsed update in the `parsed` field of each returned feed. Default is `true`.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Publisher stake caps update data retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LatestPublisherStakeCapsUpdateDataResponse"}}}}}}},"/v2/updates/twap/{window_seconds}/latest":{"get":{"tags":["rest"],"summary":"Get the latest TWAP by price feed id with a custom time window.","description":"Get the latest TWAP by price feed id with a custom time window.\n\nGiven a collection of price feed ids, retrieve the latest Pyth TWAP price for each price feed.","operationId":"latest_twaps","parameters":[{"name":"window_seconds","in":"path","description":"The time window in seconds over which to calculate the TWAP, ending at the current time.\nFor example, a value of 300 would return the most recent 5 minute TWAP.\nMust be greater than 0 and less than or equal to 600 seconds (10 minutes).","required":true,"schema":{"type":"integer","format":"int64","minimum":0},"example":"300"},{"name":"ids[]","in":"query","description":"Get the most recent TWAP (time weighted average price) for this set of price feed ids.\nThe `binary` data contains the signed start & end cumulative price updates needed to calculate\nthe TWAPs on-chain. The `parsed` data contains the calculated TWAPs.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```","required":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceIdInput"}},"example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},{"name":"encoding","in":"query","description":"Optional encoding type. If true, return the cumulative price updates in the encoding specified by the encoding parameter. Default is `hex`.","required":false,"schema":{"$ref":"#/components/schemas/EncodingType"}},{"name":"parsed","in":"query","description":"If true, include the calculated TWAP in the `parsed` field of each returned feed. Default is `true`.","required":false,"schema":{"type":"boolean"}},{"name":"ignore_invalid_price_ids","in":"query","description":"If true, invalid price IDs in the `ids` parameter are ignored. Only applicable to the v2 APIs. Default is `false`.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"TWAPs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TwapsResponse"}}}},"404":{"description":"Price ids not found","content":{"text/plain":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"AssetType":{"type":"string","enum":["crypto","fx","equity","metal","rates","crypto_redemption_rate"]},"BinaryUpdate":{"type":"object","required":["encoding","data"],"properties":{"data":{"type":"array","items":{"type":"string"}},"encoding":{"$ref":"#/components/schemas/EncodingType"}}},"EncodingType":{"type":"string","enum":["hex","base64"]},"GetVaaCcipInput":{"type":"string","format":"binary"},"GetVaaCcipResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"string"}}},"GetVaaResponse":{"type":"object","required":["vaa","publishTime"],"properties":{"publishTime":{"type":"integer","format":"int64","example":1690576641},"vaa":{"type":"string","description":"The VAA binary represented as a base64 string.","example":"UE5BVQEAAAADuAEAAAADDQC1H7meY5fTed0FsykIb8dt+7nKpbuzfvU2DplDi+dcUl8MC+UIkS65+rkiq+zmNBxE2gaxkBkjdIicZ/fBo+X7AAEqp+WtlWb84np8jJfLpuQ2W+l5KXTigsdAhz5DyVgU3xs+EnaIZxBwcE7EKzjMam+V9rlRy0CGsiQ1kjqqLzfAAQLsoVO0Vu5gVmgc8XGQ7xYhoz36rsBgMjG+e3l/B01esQi/KzPuBf/Ar8Sg5aSEOvEU0muSDb+KIr6d8eEC+FtcAAPZEaBSt4ysXVL84LUcJemQD3SiG30kOfUpF8o7/wI2M2Jf/LyCsbKEQUyLtLbZqnJBSfZJR5AMsrnHDqngMLEGAAY4UDG9GCpRuPvg8hOlsrXuPP3zq7yVPqyG0SG+bNo8rEhP5b1vXlHdG4bZsutX47d5VZ6xnFROKudx3T3/fnWUAQgAU1+kUFc3e0ZZeX1dLRVEryNIVyxMQIcxWwdey+jlIAYowHRM0fJX3Scs80OnT/CERwh5LMlFyU1w578NqxW+AQl2E/9fxjgUTi8crOfDpwsUsmOWw0+Q5OUGhELv/2UZoHAjsaw9OinWUggKACo4SdpPlHYldoWF+J2yGWOW+F4iAQre4c+ocb6a9uSWOnTldFkioqhd9lhmV542+VonCvuy4Tu214NP+2UNd/4Kk3KJCf3iziQJrCBeLi1cLHdLUikgAQtvRFR/nepcF9legl+DywAkUHi5/1MNjlEQvlHyh2XbMiS85yu7/9LgM6Sr+0ukfZY5mSkOcvUkpHn+T+Nw/IrQAQ7lty5luvKUmBpI3ITxSmojJ1aJ0kj/dc0ZcQk+/qo0l0l3/eRLkYjw5j+MZKA8jEubrHzUCke98eSoj8l08+PGAA+DAKNtCwNZe4p6J1Ucod8Lo5RKFfA84CPLVyEzEPQFZ25U9grUK6ilF4GhEia/ndYXLBt3PGW3qa6CBBPM7rH3ABGAyYEtUwzB4CeVedA5o6cKpjRkIebqDNSOqltsr+w7kXdfFVtsK2FMGFZNt5rbpIR+ppztoJ6eOKHmKmi9nQ99ARKkTxRErOs9wJXNHaAuIRV38o1pxRrlQRzGsRuKBqxcQEpC8OPFpyKYcp6iD5l7cO/gRDTamLFyhiUBwKKMP07FAWTEJv8AAAAAABrhAfrtrFhR4yubI7X5QRqMK6xKrj7U3XuBHdGnLqSqcQAAAAAAGp0GAUFVV1YAAAAAAAUYUmIAACcQBsfKUtr4PgZbIXRxRESU79PjE4IBAFUA5i32yLSoX+GmfbRNwS3l2zMPesZrctxliv7fD0pBW0MAAAKqqMJFwAAAAAAqE/NX////+AAAAABkxCb7AAAAAGTEJvoAAAKqIcWxYAAAAAAlR5m4CP/mPsh1IezjYpDlJ4GRb5q4fTs2LjtyO6M0XgVimrIQ4kSh1qg7JKW4gbGkyRntVFR9JO/GNd3FPDit0BK6M+JzXh/h12YNCz9wxlZTvXrNtWNbzqT+91pvl5cphhSPMfAHyEzTPaGR9tKDy9KNu56pmhaY32d2vfEWQmKo22guegeR98oDxs67MmnUraco46a3zEnac2Bm80pasUgMO24="}}},"LatestPublisherStakeCapsUpdateDataResponse":{"type":"object","required":["binary"],"properties":{"binary":{"$ref":"#/components/schemas/BinaryUpdate"},"parsed":{"type":"array","items":{"$ref":"#/components/schemas/ParsedPublisherStakeCapsUpdate"},"nullable":true}}},"ParsedPriceFeedTwap":{"type":"object","required":["id","start_timestamp","end_timestamp","twap","down_slots_ratio"],"properties":{"down_slots_ratio":{"type":"string","description":"The % of slots where the network was down over the TWAP window.\nA value of zero indicates no slots were missed over the window, and\na value of one indicates that every slot was missed over the window.\nThis is a float value stored as a string to avoid precision loss."},"end_timestamp":{"type":"integer","format":"int64","description":"The end unix timestamp of the window"},"id":{"$ref":"#/components/schemas/RpcPriceIdentifier"},"start_timestamp":{"type":"integer","format":"int64","description":"The start unix timestamp of the window"},"twap":{"$ref":"#/components/schemas/RpcPrice"}}},"ParsedPriceUpdate":{"type":"object","required":["id","price","ema_price","metadata"],"properties":{"ema_price":{"$ref":"#/components/schemas/RpcPrice"},"id":{"$ref":"#/components/schemas/RpcPriceIdentifier"},"metadata":{"$ref":"#/components/schemas/RpcPriceFeedMetadataV2"},"price":{"$ref":"#/components/schemas/RpcPrice"}}},"ParsedPublisherStakeCap":{"type":"object","required":["publisher","cap"],"properties":{"cap":{"type":"integer","format":"int64","minimum":0},"publisher":{"type":"string"}}},"ParsedPublisherStakeCapsUpdate":{"type":"object","required":["publisher_stake_caps"],"properties":{"publisher_stake_caps":{"type":"array","items":{"$ref":"#/components/schemas/ParsedPublisherStakeCap"}}}},"PriceFeedMetadata":{"type":"object","required":["id","attributes"],"properties":{"attributes":{"type":"object","additionalProperties":{"type":"string"}},"id":{"$ref":"#/components/schemas/RpcPriceIdentifier"}}},"PriceIdInput":{"type":"string","description":"A price id is a 32-byte hex string, optionally prefixed with \"0x\".\nPrice ids are case insensitive.\n\nExamples:\n* 0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43\n* e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43\n\nSee https://pyth.network/developers/price-feed-ids for a list of all price feed ids.","example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},"PriceUpdate":{"type":"object","required":["binary"],"properties":{"binary":{"$ref":"#/components/schemas/BinaryUpdate"},"parsed":{"type":"array","items":{"$ref":"#/components/schemas/ParsedPriceUpdate"},"nullable":true}}},"RpcPrice":{"type":"object","description":"A price with a degree of uncertainty at a certain time, represented as a price +- a confidence\ninterval.\n\nThe confidence interval roughly corresponds to the standard error of a normal distribution.\nBoth the price and confidence are stored in a fixed-point numeric representation, `x *\n10^expo`, where `expo` is the exponent. For example:","required":["price","conf","expo","publish_time"],"properties":{"conf":{"type":"string","description":"The confidence interval associated with the price, stored as a string to avoid precision loss","example":"509500001"},"expo":{"type":"integer","format":"int32","description":"The exponent associated with both the price and confidence interval. Multiply those values\nby `10^expo` to get the real value.","example":-8},"price":{"type":"string","description":"The price itself, stored as a string to avoid precision loss","example":"2920679499999"},"publish_time":{"type":"integer","format":"int64","description":"When the price was published. The `publish_time` is a unix timestamp, i.e., the number of\nseconds since the Unix epoch (00:00:00 UTC on 1 Jan 1970).","example":1717632000}}},"RpcPriceFeed":{"type":"object","required":["id","price","ema_price"],"properties":{"ema_price":{"$ref":"#/components/schemas/RpcPrice"},"id":{"$ref":"#/components/schemas/RpcPriceIdentifier"},"metadata":{"allOf":[{"$ref":"#/components/schemas/RpcPriceFeedMetadata"}],"nullable":true},"price":{"$ref":"#/components/schemas/RpcPrice"},"vaa":{"type":"string","description":"The VAA binary represented as a base64 string.","example":"UE5BVQEAAAADuAEAAAADDQC1H7meY5fTed0FsykIb8dt+7nKpbuzfvU2DplDi+dcUl8MC+UIkS65+rkiq+zmNBxE2gaxkBkjdIicZ/fBo+X7AAEqp+WtlWb84np8jJfLpuQ2W+l5KXTigsdAhz5DyVgU3xs+EnaIZxBwcE7EKzjMam+V9rlRy0CGsiQ1kjqqLzfAAQLsoVO0Vu5gVmgc8XGQ7xYhoz36rsBgMjG+e3l/B01esQi/KzPuBf/Ar8Sg5aSEOvEU0muSDb+KIr6d8eEC+FtcAAPZEaBSt4ysXVL84LUcJemQD3SiG30kOfUpF8o7/wI2M2Jf/LyCsbKEQUyLtLbZqnJBSfZJR5AMsrnHDqngMLEGAAY4UDG9GCpRuPvg8hOlsrXuPP3zq7yVPqyG0SG+bNo8rEhP5b1vXlHdG4bZsutX47d5VZ6xnFROKudx3T3/fnWUAQgAU1+kUFc3e0ZZeX1dLRVEryNIVyxMQIcxWwdey+jlIAYowHRM0fJX3Scs80OnT/CERwh5LMlFyU1w578NqxW+AQl2E/9fxjgUTi8crOfDpwsUsmOWw0+Q5OUGhELv/2UZoHAjsaw9OinWUggKACo4SdpPlHYldoWF+J2yGWOW+F4iAQre4c+ocb6a9uSWOnTldFkioqhd9lhmV542+VonCvuy4Tu214NP+2UNd/4Kk3KJCf3iziQJrCBeLi1cLHdLUikgAQtvRFR/nepcF9legl+DywAkUHi5/1MNjlEQvlHyh2XbMiS85yu7/9LgM6Sr+0ukfZY5mSkOcvUkpHn+T+Nw/IrQAQ7lty5luvKUmBpI3ITxSmojJ1aJ0kj/dc0ZcQk+/qo0l0l3/eRLkYjw5j+MZKA8jEubrHzUCke98eSoj8l08+PGAA+DAKNtCwNZe4p6J1Ucod8Lo5RKFfA84CPLVyEzEPQFZ25U9grUK6ilF4GhEia/ndYXLBt3PGW3qa6CBBPM7rH3ABGAyYEtUwzB4CeVedA5o6cKpjRkIebqDNSOqltsr+w7kXdfFVtsK2FMGFZNt5rbpIR+ppztoJ6eOKHmKmi9nQ99ARKkTxRErOs9wJXNHaAuIRV38o1pxRrlQRzGsRuKBqxcQEpC8OPFpyKYcp6iD5l7cO/gRDTamLFyhiUBwKKMP07FAWTEJv8AAAAAABrhAfrtrFhR4yubI7X5QRqMK6xKrj7U3XuBHdGnLqSqcQAAAAAAGp0GAUFVV1YAAAAAAAUYUmIAACcQBsfKUtr4PgZbIXRxRESU79PjE4IBAFUA5i32yLSoX+GmfbRNwS3l2zMPesZrctxliv7fD0pBW0MAAAKqqMJFwAAAAAAqE/NX////+AAAAABkxCb7AAAAAGTEJvoAAAKqIcWxYAAAAAAlR5m4CP/mPsh1IezjYpDlJ4GRb5q4fTs2LjtyO6M0XgVimrIQ4kSh1qg7JKW4gbGkyRntVFR9JO/GNd3FPDit0BK6M+JzXh/h12YNCz9wxlZTvXrNtWNbzqT+91pvl5cphhSPMfAHyEzTPaGR9tKDy9KNu56pmhaY32d2vfEWQmKo22guegeR98oDxs67MmnUraco46a3zEnac2Bm80pasUgMO24=","nullable":true}}},"RpcPriceFeedMetadata":{"type":"object","required":["emitter_chain"],"properties":{"emitter_chain":{"type":"integer","format":"int32","example":26,"minimum":0},"prev_publish_time":{"type":"integer","format":"int64","example":1717632000,"nullable":true},"price_service_receive_time":{"type":"integer","format":"int64","example":1717632000,"nullable":true},"slot":{"type":"integer","format":"int64","example":85480034,"nullable":true,"minimum":0}}},"RpcPriceFeedMetadataV2":{"type":"object","properties":{"prev_publish_time":{"type":"integer","format":"int64","example":1717632000,"nullable":true},"proof_available_time":{"type":"integer","format":"int64","example":1717632000,"nullable":true},"slot":{"type":"integer","format":"int64","example":85480034,"nullable":true,"minimum":0}}},"RpcPriceIdentifier":{"type":"string","example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},"TwapsResponse":{"type":"object","required":["binary"],"properties":{"binary":{"$ref":"#/components/schemas/BinaryUpdate"},"parsed":{"type":"array","items":{"$ref":"#/components/schemas/ParsedPriceFeedTwap"},"description":"The calculated TWAPs for each price ID","nullable":true}}}}},"tags":[{"name":"hermes","description":"Pyth Real-Time Pricing API"}]}
\ No newline at end of file
diff --git a/packages/plugin-web-search/src/index.ts b/packages/plugin-web-search/src/index.ts
index a67a49441da..988e3dcfa8a 100644
--- a/packages/plugin-web-search/src/index.ts
+++ b/packages/plugin-web-search/src/index.ts
@@ -10,7 +10,7 @@ import {
     State,
 } from "@elizaos/core";
 import { encodingForModel, TiktokenModel } from "js-tiktoken";
-import { webSearch } from "./actions/webSearch";
+//import { webSearch } from "./actions/webSearch";
 import { WebSearchService } from "./services/webSearchService";
 
 const DEFAULT_MAX_WEB_SEARCH_TOKENS = 4000;

From 77d51cd97545b0d0c8dcece649248d59159235a4 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Tue, 21 Jan 2025 17:10:14 +0700
Subject: [PATCH 30/58] adding knowledge

---
 packages/client-twitter/src/plugins/templates.ts | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/packages/client-twitter/src/plugins/templates.ts b/packages/client-twitter/src/plugins/templates.ts
index 05882425c06..bf1edcb727d 100644
--- a/packages/client-twitter/src/plugins/templates.ts
+++ b/packages/client-twitter/src/plugins/templates.ts
@@ -74,6 +74,9 @@ export const twitterVoiceHandlerTemplate =
     About {{agentName}}:
     {{bio}}
 
+    # Areas of Expertise
+    {{knowledge}}
+
     # Attachments
     {{attachments}}
 

From fd6635a8bd5c3189629a0986964f6384b58817f1 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Wed, 22 Jan 2025 13:15:21 +0700
Subject: [PATCH 31/58] some fix & update

---
 .../client-telegram/src/messageManager.ts     | 189 +++++++++---------
 packages/core/src/runtime.ts                  |  92 +++++----
 2 files changed, 145 insertions(+), 136 deletions(-)

diff --git a/packages/client-telegram/src/messageManager.ts b/packages/client-telegram/src/messageManager.ts
index f401999dd6a..7e9fb9d5868 100644
--- a/packages/client-telegram/src/messageManager.ts
+++ b/packages/client-telegram/src/messageManager.ts
@@ -2,6 +2,7 @@ import {
     composeContext,
     composeRandomUser,
     type Content,
+    elizaLogger,
     generateMessageResponse,
     generateShouldRespond,
     getEmbeddingZeroVector,
@@ -11,6 +12,7 @@ import {
     type Media,
     type Memory,
     ModelClass,
+    ServiceType,
     type State,
     stringToUuid,
     type UUID,
@@ -85,8 +87,8 @@ export class MessageManager {
         this._initializeTeamMemberUsernames().catch((error) =>
             elizaLogger.error(
                 "Error initializing team member usernames:",
-                error,
-            ),
+                error
+            )
         );
 
         this.autoPostConfig = {
@@ -128,13 +130,13 @@ export class MessageManager {
                 if ("username" in chat && chat.username) {
                     this.teamMemberUsernames.set(id, chat.username);
                     elizaLogger.info(
-                        `Cached username for team member ${id}: ${chat.username}`,
+                        `Cached username for team member ${id}: ${chat.username}`
                     );
                 }
             } catch (error) {
                 elizaLogger.error(
                     `Error getting username for team member ${id}:`,
-                    error,
+                    error
                 );
             }
         }
@@ -144,16 +146,16 @@ export class MessageManager {
         // Wait for bot to be ready
         if (this.bot.botInfo) {
             elizaLogger.info(
-                "[AutoPost Telegram] Bot ready, starting monitoring",
+                "[AutoPost Telegram] Bot ready, starting monitoring"
             );
             this._initializeAutoPost();
         } else {
             elizaLogger.info(
-                "[AutoPost Telegram] Bot not ready, waiting for ready event",
+                "[AutoPost Telegram] Bot not ready, waiting for ready event"
             );
             this.bot.telegram.getMe().then(() => {
                 elizaLogger.info(
-                    "[AutoPost Telegram] Bot ready, starting monitoring",
+                    "[AutoPost Telegram] Bot ready, starting monitoring"
                 );
                 this._initializeAutoPost();
             });
@@ -165,14 +167,9 @@ export class MessageManager {
         setTimeout(() => {
             // Monitor with random intervals between 2-6 hours
             // Monitor with random intervals between 2-6 hours
-            this.autoPostInterval = setInterval(
-                () => {
-                    this._checkChannelActivity();
-                },
-                Math.floor(
-                    Math.random() * (4 * 60 * 60 * 1000) + 2 * 60 * 60 * 1000,
-                ),
-            );
+            this.autoPostInterval = setInterval(() => {
+                this._checkChannelActivity();
+            }, Math.floor(Math.random() * (4 * 60 * 60 * 1000) + 2 * 60 * 60 * 1000));
         }, 5000);
     }
 
@@ -207,7 +204,7 @@ export class MessageManager {
                     const roomId = stringToUuid(
                         this.autoPostConfig.mainChannelId +
                             "-" +
-                            this.runtime.agentId,
+                            this.runtime.agentId
                     );
                     const memory = {
                         id: stringToUuid(`autopost-${Date.now()}`),
@@ -238,12 +235,12 @@ export class MessageManager {
                     const responseContent = await this._generateResponse(
                         memory,
                         state,
-                        context,
+                        context
                     );
                     if (!responseContent?.text) return;
 
                     console.log(
-                        `[Auto Post Telegram] Recent Messages: ${responseContent}`,
+                        `[Auto Post Telegram] Recent Messages: ${responseContent}`
                     );
 
                     // Send message directly using telegram bot
@@ -252,17 +249,15 @@ export class MessageManager {
                             (chunk) =>
                                 this.bot.telegram.sendMessage(
                                     this.autoPostConfig.mainChannelId,
-                                    chunk,
-                                ),
-                        ),
+                                    chunk
+                                )
+                        )
                     );
 
                     // Create and store memories
                     const memories = messages.map((m) => ({
                         id: stringToUuid(
-                            m.message_id.toString() +
-                                "-" +
-                                this.runtime.agentId,
+                            m.message_id.toString() + "-" + this.runtime.agentId
                         ),
                         userId: this.runtime.agentId,
                         agentId: this.runtime.agentId,
@@ -287,13 +282,13 @@ export class MessageManager {
                 }
             } else {
                 elizaLogger.warn(
-                    "[AutoPost Telegram] Activity within threshold. Not posting.",
+                    "[AutoPost Telegram] Activity within threshold. Not posting."
                 );
             }
         } catch (error) {
             elizaLogger.warn(
                 "[AutoPost Telegram] Error checking channel activity:",
-                error,
+                error
             );
         }
     }
@@ -301,7 +296,7 @@ export class MessageManager {
     private async _monitorPinnedMessages(ctx: Context): Promise<void> {
         if (!this.autoPostConfig.pinnedMessagesGroups.length) {
             elizaLogger.warn(
-                "[AutoPost Telegram] Auto post config no pinned message groups",
+                "[AutoPost Telegram] Auto post config no pinned message groups"
             );
             return;
         }
@@ -315,7 +310,7 @@ export class MessageManager {
 
         if (
             !this.autoPostConfig.pinnedMessagesGroups.includes(
-                ctx.chat.id.toString(),
+                ctx.chat.id.toString()
             )
         )
             return;
@@ -325,7 +320,7 @@ export class MessageManager {
 
         try {
             elizaLogger.info(
-                `[AutoPost Telegram] Processing pinned message in group ${ctx.chat.id}`,
+                `[AutoPost Telegram] Processing pinned message in group ${ctx.chat.id}`
             );
 
             // Explicitly type and handle message content
@@ -334,12 +329,12 @@ export class MessageManager {
                 typeof pinnedMessage.text === "string"
                     ? pinnedMessage.text
                     : "caption" in pinnedMessage &&
-                        typeof pinnedMessage.caption === "string"
-                      ? pinnedMessage.caption
-                      : "New pinned message";
+                      typeof pinnedMessage.caption === "string"
+                    ? pinnedMessage.caption
+                    : "New pinned message";
 
             const roomId = stringToUuid(
-                mainChannel + "-" + this.runtime.agentId,
+                mainChannel + "-" + this.runtime.agentId
             );
             const memory = {
                 id: stringToUuid(`pinned-${Date.now()}`),
@@ -376,20 +371,20 @@ export class MessageManager {
             const responseContent = await this._generateResponse(
                 memory,
                 state,
-                context,
+                context
             );
             if (!responseContent?.text) return;
 
             // Send message using telegram bot
             const messages = await Promise.all(
                 this.splitMessage(responseContent.text.trim()).map((chunk) =>
-                    this.bot.telegram.sendMessage(mainChannel, chunk),
-                ),
+                    this.bot.telegram.sendMessage(mainChannel, chunk)
+                )
             );
 
             const memories = messages.map((m) => ({
                 id: stringToUuid(
-                    m.message_id.toString() + "-" + this.runtime.agentId,
+                    m.message_id.toString() + "-" + this.runtime.agentId
                 ),
                 userId: this.runtime.agentId,
                 agentId: this.runtime.agentId,
@@ -411,7 +406,7 @@ export class MessageManager {
         } catch (error) {
             elizaLogger.warn(
                 `[AutoPost Telegram] Error processing pinned message:`,
-                error,
+                error
             );
         }
     }
@@ -430,7 +425,7 @@ export class MessageManager {
 
         const normalizedUserId = this._getNormalizedUserId(userId);
         return teamConfig.teamAgentIds.some(
-            (teamId) => this._getNormalizedUserId(teamId) === normalizedUserId,
+            (teamId) => this._getNormalizedUserId(teamId) === normalizedUserId
         );
     }
 
@@ -444,14 +439,14 @@ export class MessageManager {
     private _isTeamCoordinationRequest(content: string): boolean {
         const contentLower = content.toLowerCase();
         return TEAM_COORDINATION.KEYWORDS?.some((keyword) =>
-            contentLower.includes(keyword.toLowerCase()),
+            contentLower.includes(keyword.toLowerCase())
         );
     }
 
     private _isRelevantToTeamMember(
         content: string,
         chatId: string,
-        lastAgentMemory: Memory | null = null,
+        lastAgentMemory: Memory | null = null
     ): boolean {
         const teamConfig = this.runtime.character.clientConfig?.telegram;
 
@@ -464,7 +459,7 @@ export class MessageManager {
 
             const similarity = cosineSimilarity(
                 content.toLowerCase(),
-                lastAgentMemory.content.text.toLowerCase(),
+                lastAgentMemory.content.text.toLowerCase()
             );
 
             return (
@@ -480,14 +475,14 @@ export class MessageManager {
 
         // Check if content matches any team member keywords
         return teamConfig.teamMemberInterestKeywords.some((keyword) =>
-            content.toLowerCase().includes(keyword.toLowerCase()),
+            content.toLowerCase().includes(keyword.toLowerCase())
         );
     }
 
     private async _analyzeContextSimilarity(
         currentMessage: string,
         previousContext?: MessageContext,
-        agentLastMessage?: string,
+        agentLastMessage?: string
     ): Promise<number> {
         if (!previousContext) return 1;
 
@@ -497,7 +492,7 @@ export class MessageManager {
         const similarity = cosineSimilarity(
             currentMessage.toLowerCase(),
             previousContext.content.toLowerCase(),
-            agentLastMessage?.toLowerCase(),
+            agentLastMessage?.toLowerCase()
         );
 
         return similarity * timeWeight;
@@ -505,14 +500,14 @@ export class MessageManager {
 
     private async _shouldRespondBasedOnContext(
         message: Message,
-        chatState: InterestChats[string],
+        chatState: InterestChats[string]
     ): Promise<boolean> {
         const messageText =
             "text" in message
                 ? message.text
                 : "caption" in message
-                  ? message.caption
-                  : "";
+                ? message.caption
+                : "";
 
         if (!messageText) return false;
 
@@ -530,14 +525,14 @@ export class MessageManager {
         const lastUserMessage = [...chatState.messages].reverse().find(
             (m, index) =>
                 index > 0 && // Skip first message (current)
-                m.userId !== this.runtime.agentId,
+                m.userId !== this.runtime.agentId
         );
 
         if (!lastUserMessage) return false;
 
         const lastSelfMemories = await this.runtime.messageManager.getMemories({
             roomId: stringToUuid(
-                message.chat.id.toString() + "-" + this.runtime.agentId,
+                message.chat.id.toString() + "-" + this.runtime.agentId
             ),
             unique: false,
             count: 5,
@@ -554,7 +549,7 @@ export class MessageManager {
                 content: lastUserMessage.content.text || "",
                 timestamp: Date.now(),
             },
-            lastSelfSortedMemories?.[0]?.content?.text,
+            lastSelfSortedMemories?.[0]?.content?.text
         );
 
         const similarityThreshold =
@@ -574,8 +569,8 @@ export class MessageManager {
             "text" in message
                 ? message.text
                 : "caption" in message
-                  ? message.caption
-                  : "";
+                ? message.caption
+                : "";
         if (!messageText) return false;
 
         const isReplyToBot =
@@ -610,7 +605,7 @@ export class MessageManager {
         ) {
             return this._isRelevantToTeamMember(
                 lastMessage?.content.text || "",
-                chatId,
+                chatId
             );
         }
 
@@ -619,7 +614,7 @@ export class MessageManager {
             if (
                 !this._isRelevantToTeamMember(
                     lastMessage?.content.text || "",
-                    chatId,
+                    chatId
                 )
             ) {
                 const recentTeamResponses = chatState.messages
@@ -627,7 +622,7 @@ export class MessageManager {
                     .some(
                         (m) =>
                             m.userId !== this.runtime.agentId &&
-                            this._isTeamMember(m.userId.toString()),
+                            this._isTeamMember(m.userId.toString())
                     );
 
                 if (recentTeamResponses) {
@@ -642,7 +637,7 @@ export class MessageManager {
 
     // Process image messages and generate descriptions
     private async processImage(
-        message: Message,
+        message: Message
     ): Promise<{ description: string } | null> {
         try {
             let imageUrl: string | null = null;
@@ -652,7 +647,7 @@ export class MessageManager {
             if ("photo" in message && message.photo?.length > 0) {
                 const photo = message.photo[message.photo.length - 1];
                 const fileLink = await this.bot.telegram.getFileLink(
-                    photo.file_id,
+                    photo.file_id
                 );
                 imageUrl = fileLink.toString();
             } else if (
@@ -660,7 +655,7 @@ export class MessageManager {
                 message.document?.mime_type?.startsWith("image/")
             ) {
                 const fileLink = await this.bot.telegram.getFileLink(
-                    message.document.file_id,
+                    message.document.file_id
                 );
                 imageUrl = fileLink.toString();
             }
@@ -668,7 +663,7 @@ export class MessageManager {
             if (imageUrl) {
                 const imageDescriptionService =
                     this.runtime.getService<IImageDescriptionService>(
-                        ServiceType.IMAGE_DESCRIPTION,
+                        ServiceType.IMAGE_DESCRIPTION
                     );
                 const { title, description } =
                     await imageDescriptionService.describeImage(imageUrl);
@@ -684,7 +679,7 @@ export class MessageManager {
     // Decide if the bot should respond to the message
     private async _shouldRespond(
         message: Message,
-        state: State,
+        state: State
     ): Promise<boolean> {
         if (
             this.runtime.character.clientConfig?.telegram
@@ -722,8 +717,8 @@ export class MessageManager {
             "text" in message
                 ? message.text
                 : "caption" in message
-                  ? message.caption
-                  : "";
+                ? message.caption
+                : "";
 
         // Check if team member has direct interest first
         if (
@@ -745,10 +740,10 @@ export class MessageManager {
                         Math.floor(
                             Math.random() *
                                 (TIMING_CONSTANTS.TEAM_MEMBER_DELAY_MAX -
-                                    TIMING_CONSTANTS.TEAM_MEMBER_DELAY_MIN),
+                                    TIMING_CONSTANTS.TEAM_MEMBER_DELAY_MIN)
                         ) + TIMING_CONSTANTS.TEAM_MEMBER_DELAY_MIN; // 1-3 second random delay
                     await new Promise((resolve) =>
-                        setTimeout(resolve, randomDelay),
+                        setTimeout(resolve, randomDelay)
                     );
                     return true;
                 }
@@ -760,20 +755,20 @@ export class MessageManager {
             ) {
                 // Add small delay for non-leader responses
                 await new Promise((resolve) =>
-                    setTimeout(resolve, TIMING_CONSTANTS.TEAM_MEMBER_DELAY),
+                    setTimeout(resolve, TIMING_CONSTANTS.TEAM_MEMBER_DELAY)
                 ); //1.5 second delay
 
                 // If leader has responded in last few seconds, reduce chance of responding
                 if (chatState.messages?.length) {
                     const recentMessages = chatState.messages.slice(
-                        -MESSAGE_CONSTANTS.RECENT_MESSAGE_COUNT,
+                        -MESSAGE_CONSTANTS.RECENT_MESSAGE_COUNT
                     );
                     const leaderResponded = recentMessages.some(
                         (m) =>
                             m.userId ===
                                 this.runtime.character.clientConfig?.telegram
                                     ?.teamLeaderId &&
-                            Date.now() - chatState.lastMessageSent < 3000,
+                            Date.now() - chatState.lastMessageSent < 3000
                     );
 
                     if (leaderResponded) {
@@ -794,21 +789,21 @@ export class MessageManager {
                     Math.floor(
                         Math.random() *
                             (TIMING_CONSTANTS.LEADER_DELAY_MAX -
-                                TIMING_CONSTANTS.LEADER_DELAY_MIN),
+                                TIMING_CONSTANTS.LEADER_DELAY_MIN)
                     ) + TIMING_CONSTANTS.LEADER_DELAY_MIN; // 2-4 second random delay
                 await new Promise((resolve) =>
-                    setTimeout(resolve, randomDelay),
+                    setTimeout(resolve, randomDelay)
                 );
 
                 // After delay, check if another team member has already responded
                 if (chatState?.messages?.length) {
                     const recentResponses = chatState.messages.slice(
-                        -MESSAGE_CONSTANTS.RECENT_MESSAGE_COUNT,
+                        -MESSAGE_CONSTANTS.RECENT_MESSAGE_COUNT
                     );
                     const otherTeamMemberResponded = recentResponses.some(
                         (m) =>
                             m.userId !== this.runtime.agentId &&
-                            this._isTeamMember(m.userId),
+                            this._isTeamMember(m.userId)
                     );
 
                     if (otherTeamMemberResponded) {
@@ -845,7 +840,7 @@ export class MessageManager {
                     chatId
                 ].messages.slice(-MESSAGE_CONSTANTS.CHAT_HISTORY_COUNT);
                 const ourMessageCount = recentMessages.filter(
-                    (m) => m.userId === this.runtime.agentId,
+                    (m) => m.userId === this.runtime.agentId
                 ).length;
 
                 if (ourMessageCount > 2) {
@@ -894,7 +889,7 @@ export class MessageManager {
     private async sendMessageInChunks(
         ctx: Context,
         content: Content,
-        replyToMessageId?: number,
+        replyToMessageId?: number
     ): Promise<Message.TextMessage[]> {
         if (content.attachments && content.attachments.length > 0) {
             content.attachments.map(async (attachment: Media) => {
@@ -917,7 +912,7 @@ export class MessageManager {
 
                 if (!mediaType) {
                     throw new Error(
-                        `Unsupported Telegram attachment content type: ${attachment.contentType}`,
+                        `Unsupported Telegram attachment content type: ${attachment.contentType}`
                     );
                 }
 
@@ -925,7 +920,7 @@ export class MessageManager {
                     ctx,
                     attachment.url,
                     mediaType,
-                    attachment.description,
+                    attachment.description
                 );
             });
         } else {
@@ -943,7 +938,7 @@ export class MessageManager {
                                 ? { message_id: replyToMessageId }
                                 : undefined,
                         parse_mode: "Markdown",
-                    },
+                    }
                 )) as Message.TextMessage;
 
                 sentMessages.push(sentMessage);
@@ -957,7 +952,7 @@ export class MessageManager {
         ctx: Context,
         mediaPath: string,
         type: MediaType,
-        caption?: string,
+        caption?: string
     ): Promise<void> {
         try {
             const isUrl = /^(http|https):\/\//.test(mediaPath);
@@ -965,11 +960,11 @@ export class MessageManager {
                 [MediaType.PHOTO]: ctx.telegram.sendPhoto.bind(ctx.telegram),
                 [MediaType.VIDEO]: ctx.telegram.sendVideo.bind(ctx.telegram),
                 [MediaType.DOCUMENT]: ctx.telegram.sendDocument.bind(
-                    ctx.telegram,
+                    ctx.telegram
                 ),
                 [MediaType.AUDIO]: ctx.telegram.sendAudio.bind(ctx.telegram),
                 [MediaType.ANIMATION]: ctx.telegram.sendAnimation.bind(
-                    ctx.telegram,
+                    ctx.telegram
                 ),
             };
 
@@ -994,7 +989,7 @@ export class MessageManager {
                     await sendFunction(
                         ctx.chat.id,
                         { source: fileStream },
-                        { caption },
+                        { caption }
                     );
                 } finally {
                     fileStream.destroy();
@@ -1004,11 +999,11 @@ export class MessageManager {
             elizaLogger.info(
                 `${
                     type.charAt(0).toUpperCase() + type.slice(1)
-                } sent successfully: ${mediaPath}`,
+                } sent successfully: ${mediaPath}`
             );
         } catch (error) {
             elizaLogger.error(
-                `Failed to send ${type}. Path: ${mediaPath}. Error: ${error.message}`,
+                `Failed to send ${type}. Path: ${mediaPath}. Error: ${error.message}`
             );
             elizaLogger.debug(error.stack);
             throw error;
@@ -1038,7 +1033,7 @@ export class MessageManager {
     private async _generateResponse(
         message: Memory,
         _state: State,
-        context: string,
+        context: string
     ): Promise<Content> {
         const { userId, roomId } = message;
 
@@ -1103,8 +1098,8 @@ export class MessageManager {
             "text" in message
                 ? message.text
                 : "caption" in message
-                  ? message.caption
-                  : "";
+                ? message.caption
+                : "";
 
         // Add team handling at the start
         if (
@@ -1135,7 +1130,7 @@ export class MessageManager {
                 const lastSelfMemories =
                     await this.runtime.messageManager.getMemories({
                         roomId: stringToUuid(
-                            chatId + "-" + this.runtime.agentId,
+                            chatId + "-" + this.runtime.agentId
                         ),
                         unique: false,
                         count: 5,
@@ -1148,7 +1143,7 @@ export class MessageManager {
                 const isRelevant = this._isRelevantToTeamMember(
                     messageText,
                     chatId,
-                    lastSelfSortedMemories?.[0],
+                    lastSelfSortedMemories?.[0]
                 );
 
                 if (!isRelevant) {
@@ -1181,7 +1176,7 @@ export class MessageManager {
             // Check for other team member mentions using cached usernames
             const otherTeamMembers =
                 this.runtime.character.clientConfig.telegram.teamAgentIds.filter(
-                    (id) => id !== this.bot.botInfo?.id.toString(),
+                    (id) => id !== this.bot.botInfo?.id.toString()
                 );
 
             const mentionedTeamMember = otherTeamMembers.find((id) => {
@@ -1248,7 +1243,7 @@ export class MessageManager {
 
             // Get chat ID
             const chatId = stringToUuid(
-                ctx.chat?.id.toString() + "-" + this.runtime.agentId,
+                ctx.chat?.id.toString() + "-" + this.runtime.agentId
             ) as UUID;
 
             // Get agent ID
@@ -1263,12 +1258,12 @@ export class MessageManager {
                 roomId,
                 userName,
                 userName,
-                "telegram",
+                "telegram"
             );
 
             // Get message ID
             const messageId = stringToUuid(
-                message.message_id.toString() + "-" + this.runtime.agentId,
+                message.message_id.toString() + "-" + this.runtime.agentId
             ) as UUID;
 
             // Handle images
@@ -1300,7 +1295,7 @@ export class MessageManager {
                         ? stringToUuid(
                               message.reply_to_message.message_id.toString() +
                                   "-" +
-                                  this.runtime.agentId,
+                                  this.runtime.agentId
                           )
                         : undefined,
             };
@@ -1331,7 +1326,7 @@ export class MessageManager {
                 const sentMessages = await this.sendMessageInChunks(
                     ctx,
                     content,
-                    message.message_id,
+                    message.message_id
                 );
                 if (sentMessages) {
                     const memories: Memory[] = [];
@@ -1345,7 +1340,7 @@ export class MessageManager {
                             id: stringToUuid(
                                 sentMessage.message_id.toString() +
                                     "-" +
-                                    this.runtime.agentId,
+                                    this.runtime.agentId
                             ),
                             agentId,
                             userId: agentId,
@@ -1388,7 +1383,7 @@ export class MessageManager {
                 const responseContent = await this._generateResponse(
                     memory,
                     state,
-                    context,
+                    context
                 );
 
                 if (!responseContent || !responseContent.text) return;
@@ -1408,7 +1403,7 @@ export class MessageManager {
                     memory,
                     responseMessages,
                     state,
-                    callback,
+                    callback
                 );
             }
 
diff --git a/packages/core/src/runtime.ts b/packages/core/src/runtime.ts
index 4351083f536..c6216fe9e76 100644
--- a/packages/core/src/runtime.ts
+++ b/packages/core/src/runtime.ts
@@ -1,4 +1,6 @@
+import { existsSync } from "fs";
 import { readFile } from "fs/promises";
+import { glob } from "glob";
 import { join } from "path";
 import { names, uniqueNamesGenerator } from "unique-names-generator";
 import { v4 as uuidv4 } from "uuid";
@@ -27,7 +29,11 @@ import { getProviders } from "./providers.ts";
 import { RAGKnowledgeManager } from "./ragknowledge.ts";
 import settings from "./settings.ts";
 import {
+    type Action,
+    type Actor,
     type Character,
+    type DirectoryItem,
+    type Evaluator,
     type Goal,
     type HandlerCallback,
     type IAgentRuntime,
@@ -37,6 +43,7 @@ import {
     type IRAGKnowledgeManager,
     type IVerifiableInferenceAdapter,
     type KnowledgeItem,
+    type Memory,
     // RAGKnowledgeItem,
     //Media,
     ModelClass,
@@ -47,15 +54,8 @@ import {
     type ServiceType,
     type State,
     type UUID,
-    type Action,
-    type Actor,
-    type Evaluator,
-    type Memory,
-    type DirectoryItem,
 } from "./types.ts";
 import { stringToUuid } from "./uuid.ts";
-import { glob } from "glob";
-import { existsSync } from "fs";
 /**
  * Represents the runtime environment for an agent, handling message processing,
  * action registration, and interaction with external services like OpenAI and Supabase.
@@ -371,9 +371,7 @@ export class AgentRuntime implements IAgentRuntime {
         this.imageModelProvider =
             this.character.imageModelProvider ?? this.modelProvider;
 
-        elizaLogger.info(
-            `Selected model provider: ${this.modelProvider}`
-        );
+        elizaLogger.info(`Selected model provider: ${this.modelProvider}`);
 
         elizaLogger.info(
             `Selected image model provider: ${this.imageModelProvider}`
@@ -470,7 +468,9 @@ export class AgentRuntime implements IAgentRuntime {
             this.character.knowledge.length > 0
         ) {
             elizaLogger.info(
-                `[RAG Check] RAG Knowledge enabled: ${this.character.settings.ragKnowledge ? true : false}`
+                `[RAG Check] RAG Knowledge enabled: ${
+                    this.character.settings.ragKnowledge ? true : false
+                }`
             );
             elizaLogger.info(
                 `[RAG Check] Knowledge items:`,
@@ -485,18 +485,25 @@ export class AgentRuntime implements IAgentRuntime {
                             if (typeof item === "object") {
                                 if (isDirectoryItem(item)) {
                                     elizaLogger.debug(
-                                        `[RAG Filter] Found directory item: ${JSON.stringify(item)}`
+                                        `[RAG Filter] Found directory item: ${JSON.stringify(
+                                            item
+                                        )}`
                                     );
                                     acc[0].push(item);
                                 } else if ("path" in item) {
                                     elizaLogger.debug(
-                                        `[RAG Filter] Found path item: ${JSON.stringify(item)}`
+                                        `[RAG Filter] Found path item: ${JSON.stringify(
+                                            item
+                                        )}`
                                     );
                                     acc[1].push(item);
                                 }
                             } else if (typeof item === "string") {
                                 elizaLogger.debug(
-                                    `[RAG Filter] Found string item: ${item.slice(0, 100)}...`
+                                    `[RAG Filter] Found string item: ${item.slice(
+                                        0,
+                                        100
+                                    )}...`
                                 );
                                 acc[2].push(item);
                             }
@@ -505,7 +512,7 @@ export class AgentRuntime implements IAgentRuntime {
                         [[], [], []] as [
                             Array<{ directory: string; shared?: boolean }>,
                             Array<{ path: string; shared?: boolean }>,
-                            Array<string>,
+                            Array<string>
                         ]
                     );
 
@@ -520,7 +527,9 @@ export class AgentRuntime implements IAgentRuntime {
                     );
                     for (const dir of directoryKnowledge) {
                         elizaLogger.info(
-                            `  - Directory: ${dir.directory} (shared: ${!!dir.shared})`
+                            `  - Directory: ${
+                                dir.directory
+                            } (shared: ${!!dir.shared})`
                         );
                         await this.processCharacterRAGDirectory(dir);
                     }
@@ -589,8 +598,9 @@ export class AgentRuntime implements IAgentRuntime {
     private async processCharacterKnowledge(items: string[]) {
         for (const item of items) {
             const knowledgeId = stringToUuid(item);
-            const existingDocument =
-                await this.documentsManager.getMemoryById(knowledgeId);
+            const existingDocument = await this.documentsManager.getMemoryById(
+                knowledgeId
+            );
             if (existingDocument) {
                 continue;
             }
@@ -822,7 +832,9 @@ export class AgentRuntime implements IAgentRuntime {
                             const relativePath = join(sanitizedDir, file);
 
                             elizaLogger.debug(
-                                `[RAG Directory] Processing file ${i + 1}/${files.length}:`,
+                                `[RAG Directory] Processing file ${i + 1}/${
+                                    files.length
+                                }:`,
                                 {
                                     file,
                                     relativePath,
@@ -852,7 +864,10 @@ export class AgentRuntime implements IAgentRuntime {
                 );
 
                 elizaLogger.debug(
-                    `[RAG Directory] Completed batch ${Math.min(i + BATCH_SIZE, files.length)}/${files.length} files`
+                    `[RAG Directory] Completed batch ${Math.min(
+                        i + BATCH_SIZE,
+                        files.length
+                    )}/${files.length} files`
                 );
             }
 
@@ -1121,8 +1136,9 @@ export class AgentRuntime implements IAgentRuntime {
     }
 
     async ensureParticipantInRoom(userId: UUID, roomId: UUID) {
-        const participants =
-            await this.databaseAdapter.getParticipantsForRoom(roomId);
+        const participants = await this.databaseAdapter.getParticipantsForRoom(
+            roomId
+        );
         if (!participants.includes(userId)) {
             await this.databaseAdapter.addParticipant(userId, roomId);
             if (userId === this.agentId) {
@@ -1197,7 +1213,7 @@ export class AgentRuntime implements IAgentRuntime {
         const [actorsData, recentMessagesData, goalsData]: [
             Actor[],
             Memory[],
-            Goal[],
+            Goal[]
         ] = await Promise.all([
             getActorDetails({ runtime: this, roomId }),
             this.messageManager.getMemories({
@@ -1254,20 +1270,17 @@ export class AgentRuntime implements IAgentRuntime {
                 const oneHourBeforeLastMessage =
                     lastMessageTime - 60 * 60 * 1000; // 1 hour before last message
 
-                allAttachments = recentMessagesData
-                    .reverse()
-                    .flatMap((msg) => {
-                        const msgTime = msg.createdAt ?? Date.now();
-                        const isWithinTime =
-                            msgTime >= oneHourBeforeLastMessage;
-                        const attachments = msg.content.attachments || [];
-                        if (!isWithinTime) {
-                            attachments.forEach((attachment) => {
-                                attachment.text = "[Hidden]";
-                            });
-                        }
-                        return attachments;
-                    });
+                allAttachments = recentMessagesData.reverse().flatMap((msg) => {
+                    const msgTime = msg.createdAt ?? Date.now();
+                    const isWithinTime = msgTime >= oneHourBeforeLastMessage;
+                    const attachments = msg.content.attachments || [];
+                    if (!isWithinTime) {
+                        attachments.forEach((attachment) => {
+                            attachment.text = "[Hidden]";
+                        });
+                    }
+                    return attachments;
+                });
             }
         }
 
@@ -1375,8 +1388,9 @@ Text: ${attachment.text}
             return formattedInteractions.join("\n");
         };
 
-        const formattedMessageInteractions =
-            await getRecentMessageInteractions(recentInteractions);
+        const formattedMessageInteractions = await getRecentMessageInteractions(
+            recentInteractions
+        );
 
         const getRecentPostInteractions = async (
             recentInteractionsData: Memory[],

From a11fd438af917541768a73f25924b99471901bb1 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Thu, 23 Jan 2025 12:19:48 +0700
Subject: [PATCH 32/58] change imageContext --> image descriptions

---
 packages/client-twitter/src/post.ts | 261 +++++++++++++++-------------
 1 file changed, 145 insertions(+), 116 deletions(-)

diff --git a/packages/client-twitter/src/post.ts b/packages/client-twitter/src/post.ts
index f1321cb9b6f..384d468178d 100644
--- a/packages/client-twitter/src/post.ts
+++ b/packages/client-twitter/src/post.ts
@@ -115,22 +115,34 @@ export class TwitterPostClient {
         elizaLogger.log("Twitter Client Configuration:");
         elizaLogger.log(`- Username: ${this.twitterUsername}`);
         elizaLogger.log(
-            `- Dry Run Mode: ${this.isDryRun ? "enabled" : "disabled"}`,
+            `- Dry Run Mode: ${this.isDryRun ? "enabled" : "disabled"}`
         );
         elizaLogger.log(
-            `- Post Interval: ${this.client.twitterConfig.POST_INTERVAL_MIN}-${this.client.twitterConfig.POST_INTERVAL_MAX} minutes`,
+            `- Post Interval: ${this.client.twitterConfig.POST_INTERVAL_MIN}-${this.client.twitterConfig.POST_INTERVAL_MAX} minutes`
         );
         elizaLogger.log(
-            `- Action Processing: ${this.client.twitterConfig.ENABLE_ACTION_PROCESSING ? "enabled" : "disabled"}`,
+            `- Action Processing: ${
+                this.client.twitterConfig.ENABLE_ACTION_PROCESSING
+                    ? "enabled"
+                    : "disabled"
+            }`
         );
         elizaLogger.log(
-            `- Action Interval: ${this.client.twitterConfig.ACTION_INTERVAL} minutes`,
+            `- Action Interval: ${this.client.twitterConfig.ACTION_INTERVAL} minutes`
         );
         elizaLogger.log(
-            `- Post Immediately: ${this.client.twitterConfig.POST_IMMEDIATELY ? "enabled" : "disabled"}`,
+            `- Post Immediately: ${
+                this.client.twitterConfig.POST_IMMEDIATELY
+                    ? "enabled"
+                    : "disabled"
+            }`
         );
         elizaLogger.log(
-            `- Search Enabled: ${this.client.twitterConfig.TWITTER_SEARCH_ENABLE ? "enabled" : "disabled"}`,
+            `- Search Enabled: ${
+                this.client.twitterConfig.TWITTER_SEARCH_ENABLE
+                    ? "enabled"
+                    : "disabled"
+            }`
         );
 
         const targetUsers = this.client.twitterConfig.TWITTER_TARGET_USERS;
@@ -140,7 +152,7 @@ export class TwitterPostClient {
 
         if (this.isDryRun) {
             elizaLogger.log(
-                "Twitter client initialized in dry run mode - no actual tweets should be posted",
+                "Twitter client initialized in dry run mode - no actual tweets should be posted"
             );
         }
 
@@ -151,22 +163,22 @@ export class TwitterPostClient {
                 ?.toLocaleLowerCase() === "true";
         if (approvalRequired) {
             const discordToken = this.runtime.getSetting(
-                "TWITTER_APPROVAL_DISCORD_BOT_TOKEN",
+                "TWITTER_APPROVAL_DISCORD_BOT_TOKEN"
             );
             const approvalChannelId = this.runtime.getSetting(
-                "TWITTER_APPROVAL_DISCORD_CHANNEL_ID",
+                "TWITTER_APPROVAL_DISCORD_CHANNEL_ID"
             );
 
             const APPROVAL_CHECK_INTERVAL =
                 Number.parseInt(
-                    this.runtime.getSetting("TWITTER_APPROVAL_CHECK_INTERVAL"),
+                    this.runtime.getSetting("TWITTER_APPROVAL_CHECK_INTERVAL")
                 ) || 5 * 60 * 1000; // 5 minutes
 
             this.approvalCheckInterval = APPROVAL_CHECK_INTERVAL;
 
             if (!discordToken || !approvalChannelId) {
                 throw new Error(
-                    "TWITTER_APPROVAL_DISCORD_BOT_TOKEN and TWITTER_APPROVAL_DISCORD_CHANNEL_ID are required for approval workflow",
+                    "TWITTER_APPROVAL_DISCORD_BOT_TOKEN and TWITTER_APPROVAL_DISCORD_CHANNEL_ID are required for approval workflow"
                 );
             }
 
@@ -192,7 +204,7 @@ export class TwitterPostClient {
             Events.ClientReady,
             (readyClient) => {
                 elizaLogger.log(
-                    `Discord bot is ready as ${readyClient.user.tag}!`,
+                    `Discord bot is ready as ${readyClient.user.tag}!`
                 );
 
                 // Generate invite link with required permissions
@@ -203,13 +215,13 @@ export class TwitterPostClient {
                 // - Read Message History
 
                 elizaLogger.log(
-                    `Use this link to properly invite the Twitter Post Approval Discord bot: ${invite}`,
+                    `Use this link to properly invite the Twitter Post Approval Discord bot: ${invite}`
                 );
-            },
+            }
         );
         // Login to Discord
         this.discordClientForApproval.login(
-            this.runtime.getSetting("TWITTER_APPROVAL_DISCORD_BOT_TOKEN"),
+            this.runtime.getSetting("TWITTER_APPROVAL_DISCORD_BOT_TOKEN")
         );
     }
 
@@ -254,18 +266,18 @@ export class TwitterPostClient {
                     if (results) {
                         elizaLogger.log(`Processed ${results.length} tweets`);
                         elizaLogger.log(
-                            `Next action processing scheduled in ${actionInterval} minutes`,
+                            `Next action processing scheduled in ${actionInterval} minutes`
                         );
                         // Wait for the full interval before next processing
                         await new Promise(
                             (resolve) =>
-                                setTimeout(resolve, actionInterval * 60 * 1000), // now in minutes
+                                setTimeout(resolve, actionInterval * 60 * 1000) // now in minutes
                         );
                     }
                 } catch (error) {
                     elizaLogger.error(
                         "Error in action processing loop:",
-                        error,
+                        error
                     );
                     // Add exponential backoff on error
                     await new Promise((resolve) => setTimeout(resolve, 30000)); // Wait 30s on error
@@ -285,7 +297,7 @@ export class TwitterPostClient {
             processActionsLoop().catch((error) => {
                 elizaLogger.error(
                     "Fatal error in process actions loop:",
-                    error,
+                    error
                 );
             });
         }
@@ -303,7 +315,7 @@ export class TwitterPostClient {
     createTweetObject(
         tweetResult: any,
         client: any,
-        twitterUsername: string,
+        twitterUsername: string
     ): Tweet {
         return {
             id: tweetResult.rest_id,
@@ -330,7 +342,7 @@ export class TwitterPostClient {
         client: ClientBase,
         tweet: Tweet,
         roomId: UUID,
-        newTweetContent: string,
+        newTweetContent: string
     ) {
         // Cache the last post details
         await runtime.cacheManager.set(
@@ -338,7 +350,7 @@ export class TwitterPostClient {
             {
                 id: tweet.id,
                 timestamp: Date.now(),
-            },
+            }
         );
 
         // Cache the tweet
@@ -370,24 +382,24 @@ export class TwitterPostClient {
     async handleNoteTweet(
         client: ClientBase,
         content: string,
-        tweetId?: string,
+        tweetId?: string
     ) {
         try {
             const noteTweetResult = await client.requestQueue.add(
                 async () =>
-                    await client.twitterClient.sendNoteTweet(content, tweetId),
+                    await client.twitterClient.sendNoteTweet(content, tweetId)
             );
 
             if (noteTweetResult.errors && noteTweetResult.errors.length > 0) {
                 // Note Tweet failed due to authorization. Falling back to standard Tweet.
                 const truncateContent = truncateToCompleteSentence(
                     content,
-                    this.client.twitterConfig.MAX_TWEET_LENGTH,
+                    this.client.twitterConfig.MAX_TWEET_LENGTH
                 );
                 return await this.sendStandardTweet(
                     client,
                     truncateContent,
-                    tweetId,
+                    tweetId
                 );
             } else {
                 return noteTweetResult.data.notetweet_create.tweet_results
@@ -401,12 +413,12 @@ export class TwitterPostClient {
     async sendStandardTweet(
         client: ClientBase,
         content: string,
-        tweetId?: string,
+        tweetId?: string
     ) {
         try {
             const standardTweetResult = await client.requestQueue.add(
                 async () =>
-                    await client.twitterClient.sendTweet(content, tweetId),
+                    await client.twitterClient.sendTweet(content, tweetId)
             );
             const body = await standardTweetResult.json();
             if (!body?.data?.create_tweet?.tweet_results?.result) {
@@ -426,7 +438,7 @@ export class TwitterPostClient {
         cleanedContent: string,
         roomId: UUID,
         newTweetContent: string,
-        twitterUsername: string,
+        twitterUsername: string
     ) {
         try {
             elizaLogger.log(`Posting new tweet:\n`);
@@ -442,7 +454,7 @@ export class TwitterPostClient {
             const tweet = this.createTweetObject(
                 result,
                 client,
-                twitterUsername,
+                twitterUsername
             );
 
             await this.processAndCacheTweet(
@@ -450,7 +462,7 @@ export class TwitterPostClient {
                 client,
                 tweet,
                 roomId,
-                newTweetContent,
+                newTweetContent
             );
         } catch (error) {
             elizaLogger.error("Error sending tweet:", error);
@@ -465,13 +477,13 @@ export class TwitterPostClient {
 
         try {
             const roomId = stringToUuid(
-                "twitter_generate_room-" + this.client.profile.username,
+                "twitter_generate_room-" + this.client.profile.username
             );
             await this.runtime.ensureUserExists(
                 this.runtime.agentId,
                 this.client.profile.username,
                 this.runtime.character.name,
-                "twitter",
+                "twitter"
             );
 
             const topics = this.runtime.character.topics.join(", ");
@@ -488,7 +500,7 @@ export class TwitterPostClient {
                 },
                 {
                     twitterUserName: this.client.profile.username,
-                },
+                }
             );
 
             const context = composeContext({
@@ -534,7 +546,7 @@ export class TwitterPostClient {
                     {
                         rawResponse: newTweetContent,
                         attempted: "JSON parsing",
-                    },
+                    }
                 );
                 return;
             }
@@ -544,7 +556,7 @@ export class TwitterPostClient {
             if (maxTweetLength) {
                 cleanedContent = truncateToCompleteSentence(
                     cleanedContent,
-                    maxTweetLength,
+                    maxTweetLength
                 );
             }
 
@@ -558,7 +570,7 @@ export class TwitterPostClient {
 
             if (this.isDryRun) {
                 elizaLogger.info(
-                    `Dry run: would have posted tweet: ${cleanedContent}`,
+                    `Dry run: would have posted tweet: ${cleanedContent}`
                 );
                 return;
             }
@@ -567,12 +579,12 @@ export class TwitterPostClient {
                 if (this.approvalRequired) {
                     // Send for approval instead of posting directly
                     elizaLogger.log(
-                        `Sending Tweet For Approval:\n ${cleanedContent}`,
+                        `Sending Tweet For Approval:\n ${cleanedContent}`
                     );
                     await this.sendForApproval(
                         cleanedContent,
                         roomId,
-                        newTweetContent,
+                        newTweetContent
                     );
                     elizaLogger.log("Tweet sent for approval");
                 } else {
@@ -583,7 +595,7 @@ export class TwitterPostClient {
                         cleanedContent,
                         roomId,
                         newTweetContent,
-                        this.twitterUsername,
+                        this.twitterUsername
                     );
                 }
             } catch (error) {
@@ -599,7 +611,7 @@ export class TwitterPostClient {
         options?: {
             template?: TemplateType;
             context?: string;
-        },
+        }
     ): Promise<string> {
         const context = composeContext({
             state: tweetState,
@@ -700,11 +712,11 @@ export class TwitterPostClient {
                 this.runtime.agentId,
                 this.twitterUsername,
                 this.runtime.character.name,
-                "twitter",
+                "twitter"
             );
 
             const timelines = await this.client.fetchTimelineForActions(
-                MAX_TIMELINES_TO_FETCH,
+                MAX_TIMELINES_TO_FETCH
             );
             const maxActionsProcessing =
                 this.client.twitterConfig.MAX_ACTIONS_PROCESSING;
@@ -715,17 +727,17 @@ export class TwitterPostClient {
                     // Skip if we've already processed this tweet
                     const memory =
                         await this.runtime.messageManager.getMemoryById(
-                            stringToUuid(tweet.id + "-" + this.runtime.agentId),
+                            stringToUuid(tweet.id + "-" + this.runtime.agentId)
                         );
                     if (memory) {
                         elizaLogger.log(
-                            `Already processed tweet ID: ${tweet.id}`,
+                            `Already processed tweet ID: ${tweet.id}`
                         );
                         continue;
                     }
 
                     const roomId = stringToUuid(
-                        tweet.conversationId + "-" + this.runtime.agentId,
+                        tweet.conversationId + "-" + this.runtime.agentId
                     );
 
                     const tweetState = await this.runtime.composeState(
@@ -738,7 +750,7 @@ export class TwitterPostClient {
                         {
                             twitterUserName: this.twitterUsername,
                             currentTweet: `ID: ${tweet.id}\nFrom: ${tweet.name} (@${tweet.username})\nText: ${tweet.text}`,
-                        },
+                        }
                     );
 
                     const actionContext = composeContext({
@@ -757,7 +769,7 @@ export class TwitterPostClient {
 
                     if (!actionResponse) {
                         elizaLogger.log(
-                            `No valid actions generated for tweet ${tweet.id}`,
+                            `No valid actions generated for tweet ${tweet.id}`
                         );
                         continue;
                     }
@@ -771,7 +783,7 @@ export class TwitterPostClient {
                 } catch (error) {
                     elizaLogger.error(
                         `Error processing tweet ${tweet.id}:`,
-                        error,
+                        error
                     );
                     continue;
                 }
@@ -803,7 +815,7 @@ export class TwitterPostClient {
             // Sort the timeline based on the action decision score,
             // then slice the results according to the environment variable to limit the number of actions per cycle.
             const sortedTimelines = sortProcessedTimeline(
-                processedTimelines,
+                processedTimelines
             ).slice(0, maxActionsProcessing);
 
             return this.processTimelineActions(sortedTimelines); // Return results array to indicate completion
@@ -829,7 +841,7 @@ export class TwitterPostClient {
             actionResponse: ActionResponse;
             tweetState: State;
             roomId: UUID;
-        }[],
+        }[]
     ): Promise<
         {
             tweetId: string;
@@ -846,7 +858,7 @@ export class TwitterPostClient {
                 if (actionResponse.like) {
                     if (this.isDryRun) {
                         elizaLogger.info(
-                            `Dry run: would have liked tweet ${tweet.id}`,
+                            `Dry run: would have liked tweet ${tweet.id}`
                         );
                         executedActions.push("like (dry run)");
                     } else {
@@ -857,7 +869,7 @@ export class TwitterPostClient {
                         } catch (error) {
                             elizaLogger.error(
                                 `Error liking tweet ${tweet.id}:`,
-                                error,
+                                error
                             );
                         }
                     }
@@ -866,7 +878,7 @@ export class TwitterPostClient {
                 if (actionResponse.retweet) {
                     if (this.isDryRun) {
                         elizaLogger.info(
-                            `Dry run: would have retweeted tweet ${tweet.id}`,
+                            `Dry run: would have retweeted tweet ${tweet.id}`
                         );
                         executedActions.push("retweet (dry run)");
                     } else {
@@ -877,7 +889,7 @@ export class TwitterPostClient {
                         } catch (error) {
                             elizaLogger.error(
                                 `Error retweeting tweet ${tweet.id}:`,
-                                error,
+                                error
                             );
                         }
                     }
@@ -888,12 +900,14 @@ export class TwitterPostClient {
                         // Build conversation thread for context
                         const thread = await buildConversationThread(
                             tweet,
-                            this.client,
+                            this.client
                         );
                         const formattedConversation = thread
                             .map(
                                 (t) =>
-                                    `@${t.username} (${new Date(t.timestamp * 1000).toLocaleString()}): ${t.text}`,
+                                    `@${t.username} (${new Date(
+                                        t.timestamp * 1000
+                                    ).toLocaleString()}): ${t.text}`
                             )
                             .join("\n\n");
 
@@ -901,14 +915,19 @@ export class TwitterPostClient {
                         const imageDescriptions = [];
                         if (tweet.photos?.length > 0) {
                             elizaLogger.log(
-                                "Processing images in tweet for context",
+                                "Processing images in tweet for context"
                             );
                             for (const photo of tweet.photos) {
                                 const description = await this.runtime
                                     .getService<IImageDescriptionService>(
-                                        ServiceType.IMAGE_DESCRIPTION,
+                                        ServiceType.IMAGE_DESCRIPTION
                                     )
                                     .describeImage(photo.url);
+                                console.log("TRY TO DESCRIBE IMAGE", {
+                                    url: photo.url,
+                                    tweetId: tweet.id,
+                                    description: description,
+                                });
                                 imageDescriptions.push(description);
                             }
                         }
@@ -919,7 +938,7 @@ export class TwitterPostClient {
                             try {
                                 const quotedTweet =
                                     await this.client.twitterClient.getTweet(
-                                        tweet.quotedStatusId,
+                                        tweet.quotedStatusId
                                     );
                                 if (quotedTweet) {
                                     quotedContent = `\nQuoted Tweet from @${quotedTweet.username}:\n${quotedTweet.text}`;
@@ -927,7 +946,7 @@ export class TwitterPostClient {
                             } catch (error) {
                                 elizaLogger.error(
                                     "Error fetching quoted tweet:",
-                                    error,
+                                    error
                                 );
                             }
                         }
@@ -939,7 +958,7 @@ export class TwitterPostClient {
                                 roomId: stringToUuid(
                                     tweet.conversationId +
                                         "-" +
-                                        this.runtime.agentId,
+                                        this.runtime.agentId
                                 ),
                                 agentId: this.runtime.agentId,
                                 content: {
@@ -953,10 +972,15 @@ export class TwitterPostClient {
                                 formattedConversation,
                                 imageContext:
                                     imageDescriptions.length > 0
-                                        ? `\nImages in Tweet:\n${imageDescriptions.map((desc, i) => `Image ${i + 1}: ${desc}`).join("\n")}`
+                                        ? `\nImages in Tweet:\n${imageDescriptions
+                                              .map(
+                                                  (desc, i) =>
+                                                      `Image ${i + 1}: ${desc}`
+                                              )
+                                              .join("\n")}`
                                         : "",
                                 quotedContent,
-                            },
+                            }
                         );
 
                         const quoteContent = await this.generateTweetContent(
@@ -966,24 +990,24 @@ export class TwitterPostClient {
                                     this.runtime.character.templates
                                         ?.twitterMessageHandlerTemplate ||
                                     twitterMessageHandlerTemplate,
-                            },
+                            }
                         );
 
                         if (!quoteContent) {
                             elizaLogger.error(
-                                "Failed to generate valid quote tweet content",
+                                "Failed to generate valid quote tweet content"
                             );
                             return;
                         }
 
                         elizaLogger.log(
                             "Generated quote tweet content:",
-                            quoteContent,
+                            quoteContent
                         );
                         // Check for dry run mode
                         if (this.isDryRun) {
                             elizaLogger.info(
-                                `Dry run: A quote tweet for tweet ID ${tweet.id} would have been posted with the following content: "${quoteContent}".`,
+                                `Dry run: A quote tweet for tweet ID ${tweet.id} would have been posted with the following content: "${quoteContent}".`
                             );
                             executedActions.push("quote (dry run)");
                         } else {
@@ -992,8 +1016,8 @@ export class TwitterPostClient {
                                 async () =>
                                     await this.client.twitterClient.sendQuoteTweet(
                                         quoteContent,
-                                        tweet.id,
-                                    ),
+                                        tweet.id
+                                    )
                             );
 
                             const body = await result.json();
@@ -1002,26 +1026,26 @@ export class TwitterPostClient {
                                 body?.data?.create_tweet?.tweet_results?.result
                             ) {
                                 elizaLogger.log(
-                                    "Successfully posted quote tweet",
+                                    "Successfully posted quote tweet"
                                 );
                                 executedActions.push("quote");
 
                                 // Cache generation context for debugging
                                 await this.runtime.cacheManager.set(
                                     `twitter/quote_generation_${tweet.id}.txt`,
-                                    `Context:\n${enrichedState}\n\nGenerated Quote:\n${quoteContent}`,
+                                    `Context:\n${enrichedState}\n\nGenerated Quote:\n${quoteContent}`
                                 );
                             } else {
                                 elizaLogger.error(
                                     "Quote tweet creation failed:",
-                                    body,
+                                    body
                                 );
                             }
                         }
                     } catch (error) {
                         elizaLogger.error(
                             "Error in quote tweet generation:",
-                            error,
+                            error
                         );
                     }
                 }
@@ -1031,12 +1055,12 @@ export class TwitterPostClient {
                         await this.handleTextOnlyReply(
                             tweet,
                             tweetState,
-                            executedActions,
+                            executedActions
                         );
                     } catch (error) {
                         elizaLogger.error(
                             `Error replying to tweet ${tweet.id}:`,
-                            error,
+                            error
                         );
                     }
                 }
@@ -1047,11 +1071,11 @@ export class TwitterPostClient {
                     stringToUuid(tweet.userId),
                     tweet.username,
                     tweet.name,
-                    "twitter",
+                    "twitter"
                 );
                 await this.runtime.ensureParticipantInRoom(
                     this.runtime.agentId,
-                    roomId,
+                    roomId
                 );
 
                 if (!this.isDryRun) {
@@ -1093,7 +1117,7 @@ export class TwitterPostClient {
     private async handleTextOnlyReply(
         tweet: Tweet,
         tweetState: any,
-        executedActions: string[],
+        executedActions: string[]
     ) {
         try {
             // Build conversation thread for context
@@ -1101,7 +1125,9 @@ export class TwitterPostClient {
             const formattedConversation = thread
                 .map(
                     (t) =>
-                        `@${t.username} (${new Date(t.timestamp * 1000).toLocaleString()}): ${t.text}`,
+                        `@${t.username} (${new Date(
+                            t.timestamp * 1000
+                        ).toLocaleString()}): ${t.text}`
                 )
                 .join("\n\n");
 
@@ -1112,7 +1138,7 @@ export class TwitterPostClient {
                 for (const photo of tweet.photos) {
                     const description = await this.runtime
                         .getService<IImageDescriptionService>(
-                            ServiceType.IMAGE_DESCRIPTION,
+                            ServiceType.IMAGE_DESCRIPTION
                         )
                         .describeImage(photo.url);
                     imageDescriptions.push(description);
@@ -1125,7 +1151,7 @@ export class TwitterPostClient {
                 try {
                     const quotedTweet =
                         await this.client.twitterClient.getTweet(
-                            tweet.quotedStatusId,
+                            tweet.quotedStatusId
                         );
                     if (quotedTweet) {
                         quotedContent = `\nQuoted Tweet from @${quotedTweet.username}:\n${quotedTweet.text}`;
@@ -1140,7 +1166,7 @@ export class TwitterPostClient {
                 {
                     userId: this.runtime.agentId,
                     roomId: stringToUuid(
-                        tweet.conversationId + "-" + this.runtime.agentId,
+                        tweet.conversationId + "-" + this.runtime.agentId
                     ),
                     agentId: this.runtime.agentId,
                     content: { text: tweet.text, action: "" },
@@ -1149,12 +1175,15 @@ export class TwitterPostClient {
                     twitterUserName: this.twitterUsername,
                     currentPost: `From @${tweet.username}: ${tweet.text}`,
                     formattedConversation,
-                    imageContext:
+                    //imageContext:
+                    imageDescriptions:
                         imageDescriptions.length > 0
-                            ? `\nImages in Tweet:\n${imageDescriptions.map((desc, i) => `Image ${i + 1}: ${desc}`).join("\n")}`
+                            ? `\nImages in Tweet:\n${imageDescriptions
+                                  .map((desc, i) => `Image ${i + 1}: ${desc}`)
+                                  .join("\n")}`
                             : "",
                     quotedContent,
-                },
+                }
             );
 
             // Generate and clean the reply content
@@ -1172,7 +1201,7 @@ export class TwitterPostClient {
 
             if (this.isDryRun) {
                 elizaLogger.info(
-                    `Dry run: reply to tweet ${tweet.id} would have been: ${replyText}`,
+                    `Dry run: reply to tweet ${tweet.id} would have been: ${replyText}`
                 );
                 executedActions.push("reply (dry run)");
                 return;
@@ -1205,13 +1234,13 @@ export class TwitterPostClient {
                 result = await this.handleNoteTweet(
                     this.client,
                     finalReplyText,
-                    tweet.id,
+                    tweet.id
                 );
             } else {
                 result = await this.sendStandardTweet(
                     this.client,
                     finalReplyText,
-                    tweet.id,
+                    tweet.id
                 );
             }
 
@@ -1240,7 +1269,7 @@ export class TwitterPostClient {
                 // );
                 await this.runtime.cacheManager.set(
                     `twitter/reply_generation_${tweet.id}.txt`,
-                    `Context:\n${enrichedState}\n\nGenerated Reply:\n${finalReplyText}`,
+                    `Context:\n${enrichedState}\n\nGenerated Reply:\n${finalReplyText}`
                 );
             } else {
                 elizaLogger.error("Tweet reply creation failed");
@@ -1257,7 +1286,7 @@ export class TwitterPostClient {
     private async sendForApproval(
         cleanedContent: string,
         roomId: UUID,
-        newTweetContent: string,
+        newTweetContent: string
     ): Promise<string | null> {
         try {
             const embed = {
@@ -1282,7 +1311,7 @@ export class TwitterPostClient {
             };
 
             const channel = await this.discordClientForApproval.channels.fetch(
-                this.discordApprovalChannelId,
+                this.discordApprovalChannelId
             );
 
             if (!channel || !(channel instanceof TextChannel)) {
@@ -1295,7 +1324,7 @@ export class TwitterPostClient {
             const pendingTweetsKey = `twitter/${this.client.profile.username}/pendingTweet`;
             const currentPendingTweets =
                 (await this.runtime.cacheManager.get<PendingTweet[]>(
-                    pendingTweetsKey,
+                    pendingTweetsKey
                 )) || [];
             // Add new pending tweet
             currentPendingTweets.push({
@@ -1310,26 +1339,26 @@ export class TwitterPostClient {
             // Store updated array
             await this.runtime.cacheManager.set(
                 pendingTweetsKey,
-                currentPendingTweets,
+                currentPendingTweets
             );
 
             return message.id;
         } catch (error) {
             elizaLogger.error(
                 "Error Sending Twitter Post Approval Request:",
-                error,
+                error
             );
             return null;
         }
     }
 
     private async checkApprovalStatus(
-        discordMessageId: string,
+        discordMessageId: string
     ): Promise<PendingTweetApprovalStatus> {
         try {
             // Fetch message and its replies from Discord
             const channel = await this.discordClientForApproval.channels.fetch(
-                this.discordApprovalChannelId,
+                this.discordApprovalChannelId
             );
 
             elizaLogger.log(`channel ${JSON.stringify(channel)}`);
@@ -1344,12 +1373,12 @@ export class TwitterPostClient {
 
             // Look for thumbs up reaction ('👍')
             const thumbsUpReaction = message.reactions.cache.find(
-                (reaction) => reaction.emoji.name === "👍",
+                (reaction) => reaction.emoji.name === "👍"
             );
 
             // Look for reject reaction ('❌')
             const rejectReaction = message.reactions.cache.find(
-                (reaction) => reaction.emoji.name === "❌",
+                (reaction) => reaction.emoji.name === "❌"
             );
 
             // Check if the reaction exists and has reactions
@@ -1381,12 +1410,12 @@ export class TwitterPostClient {
         const pendingTweetsKey = `twitter/${this.client.profile.username}/pendingTweet`;
         const currentPendingTweets =
             (await this.runtime.cacheManager.get<PendingTweet[]>(
-                pendingTweetsKey,
+                pendingTweetsKey
             )) || [];
 
         // Remove the specific tweet
         const updatedPendingTweets = currentPendingTweets.filter(
-            (tweet) => tweet.discordMessageId !== discordMessageId,
+            (tweet) => tweet.discordMessageId !== discordMessageId
         );
 
         if (updatedPendingTweets.length === 0) {
@@ -1394,7 +1423,7 @@ export class TwitterPostClient {
         } else {
             await this.runtime.cacheManager.set(
                 pendingTweetsKey,
-                updatedPendingTweets,
+                updatedPendingTweets
             );
         }
     }
@@ -1404,7 +1433,7 @@ export class TwitterPostClient {
         const pendingTweetsKey = `twitter/${this.client.profile.username}/pendingTweet`;
         const pendingTweets =
             (await this.runtime.cacheManager.get<PendingTweet[]>(
-                pendingTweetsKey,
+                pendingTweetsKey
             )) || [];
 
         for (const pendingTweet of pendingTweets) {
@@ -1419,20 +1448,20 @@ export class TwitterPostClient {
                 try {
                     const channel =
                         await this.discordClientForApproval.channels.fetch(
-                            pendingTweet.channelId,
+                            pendingTweet.channelId
                         );
                     if (channel instanceof TextChannel) {
                         const originalMessage = await channel.messages.fetch(
-                            pendingTweet.discordMessageId,
+                            pendingTweet.discordMessageId
                         );
                         await originalMessage.reply(
-                            "This tweet approval request has expired (24h timeout).",
+                            "This tweet approval request has expired (24h timeout)."
                         );
                     }
                 } catch (error) {
                     elizaLogger.error(
                         "Error sending expiration notification:",
-                        error,
+                        error
                     );
                 }
 
@@ -1453,27 +1482,27 @@ export class TwitterPostClient {
                     pendingTweet.cleanedContent,
                     pendingTweet.roomId,
                     pendingTweet.newTweetContent,
-                    this.twitterUsername,
+                    this.twitterUsername
                 );
 
                 // Notify on Discord about posting
                 try {
                     const channel =
                         await this.discordClientForApproval.channels.fetch(
-                            pendingTweet.channelId,
+                            pendingTweet.channelId
                         );
                     if (channel instanceof TextChannel) {
                         const originalMessage = await channel.messages.fetch(
-                            pendingTweet.discordMessageId,
+                            pendingTweet.discordMessageId
                         );
                         await originalMessage.reply(
-                            "Tweet has been posted successfully! ✅",
+                            "Tweet has been posted successfully! ✅"
                         );
                     }
                 } catch (error) {
                     elizaLogger.error(
                         "Error sending post notification:",
-                        error,
+                        error
                     );
                 }
 
@@ -1485,20 +1514,20 @@ export class TwitterPostClient {
                 try {
                     const channel =
                         await this.discordClientForApproval.channels.fetch(
-                            pendingTweet.channelId,
+                            pendingTweet.channelId
                         );
                     if (channel instanceof TextChannel) {
                         const originalMessage = await channel.messages.fetch(
-                            pendingTweet.discordMessageId,
+                            pendingTweet.discordMessageId
                         );
                         await originalMessage.reply(
-                            "Tweet has been rejected! ❌",
+                            "Tweet has been rejected! ❌"
                         );
                     }
                 } catch (error) {
                     elizaLogger.error(
                         "Error sending rejection notification:",
-                        error,
+                        error
                     );
                 }
             }

From ed50006f52caed03b30bfd76f1b7cd6c32845a7a Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Thu, 23 Jan 2025 12:30:40 +0700
Subject: [PATCH 33/58] ketinggalan

---
 packages/client-twitter/src/post.ts | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/packages/client-twitter/src/post.ts b/packages/client-twitter/src/post.ts
index 384d468178d..e132076110d 100644
--- a/packages/client-twitter/src/post.ts
+++ b/packages/client-twitter/src/post.ts
@@ -970,7 +970,8 @@ export class TwitterPostClient {
                                 twitterUserName: this.twitterUsername,
                                 currentPost: `From @${tweet.username}: ${tweet.text}`,
                                 formattedConversation,
-                                imageContext:
+                                //imageContext:
+                                imageDescriptions:
                                     imageDescriptions.length > 0
                                         ? `\nImages in Tweet:\n${imageDescriptions
                                               .map(

From cfc997ce5edcae8fdcf365b237b49909241840b3 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Thu, 23 Jan 2025 12:43:31 +0700
Subject: [PATCH 34/58] timelines fetch to action

---
 packages/client-twitter/src/post.ts | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/packages/client-twitter/src/post.ts b/packages/client-twitter/src/post.ts
index e132076110d..48b3f28566f 100644
--- a/packages/client-twitter/src/post.ts
+++ b/packages/client-twitter/src/post.ts
@@ -716,7 +716,8 @@ export class TwitterPostClient {
             );
 
             const timelines = await this.client.fetchTimelineForActions(
-                MAX_TIMELINES_TO_FETCH
+                //MAX_TIMELINES_TO_FETCH
+                this.client.twitterConfig.MAX_ACTIONS_PROCESSING // fetch only the maximum number of tweets to process
             );
             const maxActionsProcessing =
                 this.client.twitterConfig.MAX_ACTIONS_PROCESSING;

From 150e36ccc78b531c5dec49ab19c9a4343fc938fe Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Thu, 23 Jan 2025 12:47:52 +0700
Subject: [PATCH 35/58] fix bug

---
 packages/plugin-crypto-news/src/providers/cryptoNewsData.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts b/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
index e2856edce35..4c30b8b3c67 100644
--- a/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
+++ b/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
@@ -125,7 +125,7 @@ export const cryptoNewsData: Provider = {
                 // Timestamp <--- the time of the news\n\n
                 // `;
 
-                chainCatcher.data.list.forEach((article) => {
+                articles.forEach((article) => {
                     output += `- ${article.title}\n${article.description}\nTime: ${article.releaseTime}\n\n`;
                 });
 

From 2912c8e5a9bb8a3ff0adc8913f5d6c36b1d716d3 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Thu, 23 Jan 2025 13:26:24 +0700
Subject: [PATCH 36/58] ok

---
 packages/client-twitter/src/post.ts | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/packages/client-twitter/src/post.ts b/packages/client-twitter/src/post.ts
index 48b3f28566f..7db2e2c1253 100644
--- a/packages/client-twitter/src/post.ts
+++ b/packages/client-twitter/src/post.ts
@@ -716,8 +716,8 @@ export class TwitterPostClient {
             );
 
             const timelines = await this.client.fetchTimelineForActions(
-                //MAX_TIMELINES_TO_FETCH
-                this.client.twitterConfig.MAX_ACTIONS_PROCESSING // fetch only the maximum number of tweets to process
+                MAX_TIMELINES_TO_FETCH
+                //this.client.twitterConfig.MAX_ACTIONS_PROCESSING // fetch only the maximum number of tweets to process
             );
             const maxActionsProcessing =
                 this.client.twitterConfig.MAX_ACTIONS_PROCESSING;

From 39469b2264c1725d7e215ea6fad4ac75c63b20ff Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Thu, 23 Jan 2025 23:06:04 +0700
Subject: [PATCH 37/58] mistral sdk version to 1.1.0

---
 packages/core/package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packages/core/package.json b/packages/core/package.json
index e62688451eb..cd5c8f19d1f 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -66,7 +66,7 @@
         "@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/mistral": "1.1.0",
         "@ai-sdk/openai": "1.0.5",
         "@anthropic-ai/sdk": "0.30.1",
         "@fal-ai/client": "1.2.0",

From 472573dd0aa32fcd78729c77d3c10403796634a1 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Fri, 24 Jan 2025 20:29:27 +0700
Subject: [PATCH 38/58] uhuy

---
 .../client-telegram/src/messageManager.ts     |  2 +-
 packages/client-twitter/src/interactions.ts   | 97 +++++++++++--------
 2 files changed, 57 insertions(+), 42 deletions(-)

diff --git a/packages/client-telegram/src/messageManager.ts b/packages/client-telegram/src/messageManager.ts
index 7e9fb9d5868..5f27f06ac96 100644
--- a/packages/client-telegram/src/messageManager.ts
+++ b/packages/client-telegram/src/messageManager.ts
@@ -1040,7 +1040,7 @@ export class MessageManager {
         const response = await generateMessageResponse({
             runtime: this.runtime,
             context,
-            modelClass: ModelClass.LARGE,
+            modelClass: ModelClass.SMALL, // changed from large
         });
 
         if (!response) {
diff --git a/packages/client-twitter/src/interactions.ts b/packages/client-twitter/src/interactions.ts
index 1339c0b4747..33c8729a881 100644
--- a/packages/client-twitter/src/interactions.ts
+++ b/packages/client-twitter/src/interactions.ts
@@ -109,7 +109,7 @@ export class TwitterInteractionClient {
             setTimeout(
                 handleTwitterInteractionsLoop,
                 // Defaults to 2 minutes
-                this.client.twitterConfig.TWITTER_POLL_INTERVAL * 1000,
+                this.client.twitterConfig.TWITTER_POLL_INTERVAL * 1000
             );
         };
         handleTwitterInteractionsLoop();
@@ -125,13 +125,13 @@ export class TwitterInteractionClient {
                 await this.client.fetchSearchTweets(
                     `@${twitterUsername}`,
                     20,
-                    SearchMode.Latest,
+                    SearchMode.Latest
                 )
             ).tweets;
 
             elizaLogger.log(
                 "Completed checking mentioned tweets:",
-                mentionCandidates.length,
+                mentionCandidates.length
             );
             let uniqueTweetCandidates = [...mentionCandidates];
             // Only process target users if configured
@@ -152,7 +152,7 @@ export class TwitterInteractionClient {
                                 await this.client.twitterClient.fetchSearchTweets(
                                     `from:${username}`,
                                     3,
-                                    SearchMode.Latest,
+                                    SearchMode.Latest
                                 )
                             ).tweets;
 
@@ -184,13 +184,13 @@ export class TwitterInteractionClient {
                             if (validTweets.length > 0) {
                                 tweetsByUser.set(username, validTweets);
                                 elizaLogger.log(
-                                    `Found ${validTweets.length} valid tweets from ${username}`,
+                                    `Found ${validTweets.length} valid tweets from ${username}`
                                 );
                             }
                         } catch (error) {
                             elizaLogger.error(
                                 `Error fetching tweets for ${username}:`,
-                                error,
+                                error
                             );
                             continue;
                         }
@@ -207,7 +207,10 @@ export class TwitterInteractionClient {
                                 ];
                             selectedTweets.push(randomTweet);
                             elizaLogger.log(
-                                `Selected tweet from ${username}: ${randomTweet.text?.substring(0, 100)}`,
+                                `Selected tweet from ${username}: ${randomTweet.text?.substring(
+                                    0,
+                                    100
+                                )}`
                             );
                         }
                     }
@@ -220,7 +223,7 @@ export class TwitterInteractionClient {
                 }
             } else {
                 elizaLogger.log(
-                    "No target users configured, processing only mentions",
+                    "No target users configured, processing only mentions"
                 );
             }
 
@@ -237,25 +240,25 @@ export class TwitterInteractionClient {
                 ) {
                     // Generate the tweetId UUID the same way it's done in handleTweet
                     const tweetId = stringToUuid(
-                        tweet.id + "-" + this.runtime.agentId,
+                        tweet.id + "-" + this.runtime.agentId
                     );
 
                     // Check if we've already processed this tweet
                     const existingResponse =
                         await this.runtime.messageManager.getMemoryById(
-                            tweetId,
+                            tweetId
                         );
 
                     if (existingResponse) {
                         elizaLogger.log(
-                            `Already responded to tweet ${tweet.id}, skipping`,
+                            `Already responded to tweet ${tweet.id}, skipping`
                         );
                         continue;
                     }
                     elizaLogger.log("New Tweet found", tweet.permanentUrl);
 
                     const roomId = stringToUuid(
-                        tweet.conversationId + "-" + this.runtime.agentId,
+                        tweet.conversationId + "-" + this.runtime.agentId
                     );
 
                     const userIdUUID =
@@ -268,12 +271,12 @@ export class TwitterInteractionClient {
                         roomId,
                         tweet.username,
                         tweet.name,
-                        "twitter",
+                        "twitter"
                     );
 
                     const thread = await buildConversationThread(
                         tweet,
-                        this.client,
+                        this.client
                     );
 
                     const message = {
@@ -316,7 +319,7 @@ export class TwitterInteractionClient {
         if (
             tweet.userId === this.client.profile.id &&
             !this.client.twitterConfig.TWITTER_TARGET_USERS.includes(
-                tweet.username,
+                tweet.username
             )
         ) {
             return;
@@ -338,14 +341,14 @@ export class TwitterInteractionClient {
         const formattedConversation = thread
             .map(
                 (tweet) => `@${tweet.username} (${new Date(
-                    tweet.timestamp * 1000,
+                    tweet.timestamp * 1000
                 ).toLocaleString("en-US", {
                     hour: "2-digit",
                     minute: "2-digit",
                     month: "short",
                     day: "numeric",
                 })}):
-        ${tweet.text}`,
+        ${tweet.text}`
             )
             .join("\n\n");
 
@@ -354,9 +357,14 @@ export class TwitterInteractionClient {
             for (const photo of tweet.photos) {
                 const description = await this.runtime
                     .getService<IImageDescriptionService>(
-                        ServiceType.IMAGE_DESCRIPTION,
+                        ServiceType.IMAGE_DESCRIPTION
                     )
                     .describeImage(photo.url);
+                console.log("TRY TO DESCRIBE IMAGE", {
+                    url: photo.url,
+                    tweetId: tweet.id,
+                    description: description,
+                });
                 imageDescriptionsArray.push(description);
             }
         } catch (error) {
@@ -374,7 +382,9 @@ export class TwitterInteractionClient {
                     ? `\nImages in Tweet:\n${imageDescriptionsArray
                           .map(
                               (desc, i) =>
-                                  `Image ${i + 1}: Title: ${desc.title}\nDescription: ${desc.description}`,
+                                  `Image ${i + 1}: Title: ${
+                                      desc.title
+                                  }\nDescription: ${desc.description}`
                           )
                           .join("\n\n")}`
                     : "",
@@ -382,8 +392,9 @@ export class TwitterInteractionClient {
 
         // check if the tweet exists, save if it doesn't
         const tweetId = stringToUuid(tweet.id + "-" + this.runtime.agentId);
-        const tweetExists =
-            await this.runtime.messageManager.getMemoryById(tweetId);
+        const tweetExists = await this.runtime.messageManager.getMemoryById(
+            tweetId
+        );
 
         if (!tweetExists) {
             elizaLogger.log("tweet does not exist, saving");
@@ -400,7 +411,7 @@ export class TwitterInteractionClient {
                         ? stringToUuid(
                               tweet.inReplyToStatusId +
                                   "-" +
-                                  this.runtime.agentId,
+                                  this.runtime.agentId
                           )
                         : undefined,
                 },
@@ -454,9 +465,13 @@ export class TwitterInteractionClient {
                               example
                                   .map(
                                       (msg) =>
-                                          `${msg.user}: ${msg.content.text}${msg.content.action ? ` [Action: ${msg.content.action}]` : ""}`,
+                                          `${msg.user}: ${msg.content.text}${
+                                              msg.content.action
+                                                  ? ` [Action: ${msg.content.action}]`
+                                                  : ""
+                                          }`
                                   )
-                                  .join("\n"),
+                                  .join("\n")
                           )
                           .join("\n\n")
                     : "",
@@ -486,19 +501,19 @@ export class TwitterInteractionClient {
         if (response.text) {
             if (this.isDryRun) {
                 elizaLogger.info(
-                    `Dry run: Selected Post: ${tweet.id} - ${tweet.username}: ${tweet.text}\nAgent's Output:\n${response.text}`,
+                    `Dry run: Selected Post: ${tweet.id} - ${tweet.username}: ${tweet.text}\nAgent's Output:\n${response.text}`
                 );
             } else {
                 try {
                     const callback: HandlerCallback = async (
-                        response: Content,
+                        response: Content
                     ) => {
                         const memories = await sendTweet(
                             this.client,
                             response,
                             message.roomId,
                             this.client.twitterConfig.TWITTER_USERNAME,
-                            tweet.id,
+                            tweet.id
                         );
                         return memories;
                     };
@@ -506,7 +521,7 @@ export class TwitterInteractionClient {
                     const responseMessages = await callback(response);
 
                     state = (await this.runtime.updateRecentMessageState(
-                        state,
+                        state
                     )) as State;
 
                     for (const responseMessage of responseMessages) {
@@ -519,7 +534,7 @@ export class TwitterInteractionClient {
                             responseMessage.content.action = "CONTINUE";
                         }
                         await this.runtime.messageManager.createMemory(
-                            responseMessage,
+                            responseMessage
                         );
                     }
 
@@ -527,14 +542,14 @@ export class TwitterInteractionClient {
                         message,
                         responseMessages,
                         state,
-                        callback,
+                        callback
                     );
 
                     const responseInfo = `Context:\n\n${context}\n\nSelected Post: ${tweet.id} - ${tweet.username}: ${tweet.text}\nAgent's Output:\n${response.text}`;
 
                     await this.runtime.cacheManager.set(
                         `twitter/tweet_generation_${tweet.id}.txt`,
-                        responseInfo,
+                        responseInfo
                     );
                     await wait();
                 } catch (error) {
@@ -546,7 +561,7 @@ export class TwitterInteractionClient {
 
     async buildConversationThread(
         tweet: Tweet,
-        maxReplies = 10,
+        maxReplies = 10
     ): Promise<Tweet[]> {
         const thread: Tweet[] = [];
         const visited: Set<string> = new Set();
@@ -570,11 +585,11 @@ export class TwitterInteractionClient {
 
             // Handle memory storage
             const memory = await this.runtime.messageManager.getMemoryById(
-                stringToUuid(currentTweet.id + "-" + this.runtime.agentId),
+                stringToUuid(currentTweet.id + "-" + this.runtime.agentId)
             );
             if (!memory) {
                 const roomId = stringToUuid(
-                    currentTweet.conversationId + "-" + this.runtime.agentId,
+                    currentTweet.conversationId + "-" + this.runtime.agentId
                 );
                 const userId = stringToUuid(currentTweet.userId);
 
@@ -583,12 +598,12 @@ export class TwitterInteractionClient {
                     roomId,
                     currentTweet.username,
                     currentTweet.name,
-                    "twitter",
+                    "twitter"
                 );
 
                 this.runtime.messageManager.createMemory({
                     id: stringToUuid(
-                        currentTweet.id + "-" + this.runtime.agentId,
+                        currentTweet.id + "-" + this.runtime.agentId
                     ),
                     agentId: this.runtime.agentId,
                     content: {
@@ -599,7 +614,7 @@ export class TwitterInteractionClient {
                             ? stringToUuid(
                                   currentTweet.inReplyToStatusId +
                                       "-" +
-                                      this.runtime.agentId,
+                                      this.runtime.agentId
                               )
                             : undefined,
                     },
@@ -624,11 +639,11 @@ export class TwitterInteractionClient {
             if (currentTweet.inReplyToStatusId) {
                 elizaLogger.log(
                     "Fetching parent tweet:",
-                    currentTweet.inReplyToStatusId,
+                    currentTweet.inReplyToStatusId
                 );
                 try {
                     const parentTweet = await this.twitterClient.getTweet(
-                        currentTweet.inReplyToStatusId,
+                        currentTweet.inReplyToStatusId
                     );
 
                     if (parentTweet) {
@@ -640,7 +655,7 @@ export class TwitterInteractionClient {
                     } else {
                         elizaLogger.log(
                             "No parent tweet found for:",
-                            currentTweet.inReplyToStatusId,
+                            currentTweet.inReplyToStatusId
                         );
                     }
                 } catch (error) {
@@ -652,7 +667,7 @@ export class TwitterInteractionClient {
             } else {
                 elizaLogger.log(
                     "Reached end of reply chain at:",
-                    currentTweet.id,
+                    currentTweet.id
                 );
             }
         }

From f094aab9de09d9d3d2f91fde9c3c09b6344796cd Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Fri, 24 Jan 2025 21:53:29 +0700
Subject: [PATCH 39/58] update lagi

---
 packages/client-twitter/src/post.ts | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/packages/client-twitter/src/post.ts b/packages/client-twitter/src/post.ts
index 7db2e2c1253..9a29867b270 100644
--- a/packages/client-twitter/src/post.ts
+++ b/packages/client-twitter/src/post.ts
@@ -51,7 +51,12 @@ Write a post that is {{adjective}} about {{topic}} (without mentioning {{topic}}
 Your response must include the summary of the # NEWS above into a sentences and Dont discard or remove any important numbers and informations
 If the news isnt about SUI or SUIRISE, dont mix the context with SUI Shilling. keep the original and relevant context of the news.
 Your response should be 1, 2, or 3 sentences (choose the length at random).
-Your response should not contain any questions. Brief, concise statements only. The total character count MUST be less than {{maxTweetLength}}. No emojis. Use \\n\\n (double spaces) between statements if there are multiple statements in your response.`;
+Your response should not contain any questions. Brief, concise statements only. The total character count MUST be less than {{maxTweetLength}}. No emojis. Use \\n\\n (double spaces) between statements if there are multiple statements in your response.
+Replace any entities , person, organization name on your response with its twitter account handler ONLY if you know it, otherwise leave it as it is.
+Replace any crypto project name such as Ethereum, Bitcoin, or something else with its ticker starting with $.
+If you found any crypto project ticker that doesnt have $ before it you have to add the $ so for example ETH become $ETH.
+If there's any twitter handler already on the news you should keep it
+`;
 
 export const twitterActionTemplate =
     `

From 2ea33d7b53df7ee8e0ab7aa2e612a1d42fb00ffe Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Fri, 24 Jan 2025 22:13:28 +0700
Subject: [PATCH 40/58] update

---
 packages/client-twitter/src/post.ts | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/packages/client-twitter/src/post.ts b/packages/client-twitter/src/post.ts
index 9a29867b270..e2365dd3618 100644
--- a/packages/client-twitter/src/post.ts
+++ b/packages/client-twitter/src/post.ts
@@ -52,10 +52,9 @@ Your response must include the summary of the # NEWS above into a sentences and
 If the news isnt about SUI or SUIRISE, dont mix the context with SUI Shilling. keep the original and relevant context of the news.
 Your response should be 1, 2, or 3 sentences (choose the length at random).
 Your response should not contain any questions. Brief, concise statements only. The total character count MUST be less than {{maxTweetLength}}. No emojis. Use \\n\\n (double spaces) between statements if there are multiple statements in your response.
-Replace any entities , person, organization name on your response with its twitter account handler ONLY if you know it, otherwise leave it as it is.
-Replace any crypto project name such as Ethereum, Bitcoin, or something else with its ticker starting with $.
-If you found any crypto project ticker that doesnt have $ before it you have to add the $ so for example ETH become $ETH.
-If there's any twitter handler already on the news you should keep it
+Your response should replace any entities , person, organization name on your response with its twitter account handler. Search from the web even if you think you know it and if you still cant find it just leave it as the original text.
+Your response should replace any crypto project name such as Ethereum, Bitcoin, or something else with its ticker starting with $.
+Your response should replace any crypto project ticker that doesnt have $ before it you have to add the $ so for example ETH become $ETH.
 `;
 
 export const twitterActionTemplate =

From 4205e5a4bb18e1d4bf00d07ce8725bf2daeda446 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Fri, 24 Jan 2025 22:41:52 +0700
Subject: [PATCH 41/58] ganti lagi

---
 packages/client-twitter/src/post.ts | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/packages/client-twitter/src/post.ts b/packages/client-twitter/src/post.ts
index e2365dd3618..baa30f5a0fe 100644
--- a/packages/client-twitter/src/post.ts
+++ b/packages/client-twitter/src/post.ts
@@ -51,10 +51,11 @@ Write a post that is {{adjective}} about {{topic}} (without mentioning {{topic}}
 Your response must include the summary of the # NEWS above into a sentences and Dont discard or remove any important numbers and informations
 If the news isnt about SUI or SUIRISE, dont mix the context with SUI Shilling. keep the original and relevant context of the news.
 Your response should be 1, 2, or 3 sentences (choose the length at random).
-Your response should not contain any questions. Brief, concise statements only. The total character count MUST be less than {{maxTweetLength}}. No emojis. Use \\n\\n (double spaces) between statements if there are multiple statements in your response.
-Your response should replace any entities , person, organization name on your response with its twitter account handler. Search from the web even if you think you know it and if you still cant find it just leave it as the original text.
+Your response should not contain any questions. Brief, concise statements only. The total character count MUST be less than 400. No emojis. Use \n\n (double spaces) between statements if there are multiple statements in your response.
+Your response should replace any entities , person, organization name on your response with its twitter account handler.
 Your response should replace any crypto project name such as Ethereum, Bitcoin, or something else with its ticker starting with $.
 Your response should replace any crypto project ticker that doesnt have $ before it you have to add the $ so for example ETH become $ETH.
+Your response should not include ChainCatcher text on it.
 `;
 
 export const twitterActionTemplate =

From 31852c7f82d79d02b83b6937e457dabc4c24140c Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Fri, 24 Jan 2025 23:17:04 +0700
Subject: [PATCH 42/58] revert modelclass medium for handletweet

---
 packages/client-twitter/src/interactions.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packages/client-twitter/src/interactions.ts b/packages/client-twitter/src/interactions.ts
index 33c8729a881..fdfd6618bde 100644
--- a/packages/client-twitter/src/interactions.ts
+++ b/packages/client-twitter/src/interactions.ts
@@ -486,7 +486,7 @@ export class TwitterInteractionClient {
         const response = await generateMessageResponse({
             runtime: this.runtime,
             context,
-            modelClass: ModelClass.LARGE,
+            modelClass: ModelClass.MEDIUM,
         });
 
         const removeQuotes = (str: string) =>

From dde4bd8d5f58dbc8fa845bbf913acd0ac27ae7ee Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Sun, 26 Jan 2025 06:32:37 +0700
Subject: [PATCH 43/58] prompt

---
 packages/client-twitter/src/post.ts | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/packages/client-twitter/src/post.ts b/packages/client-twitter/src/post.ts
index baa30f5a0fe..e2c089803ec 100644
--- a/packages/client-twitter/src/post.ts
+++ b/packages/client-twitter/src/post.ts
@@ -53,8 +53,8 @@ If the news isnt about SUI or SUIRISE, dont mix the context with SUI Shilling. k
 Your response should be 1, 2, or 3 sentences (choose the length at random).
 Your response should not contain any questions. Brief, concise statements only. The total character count MUST be less than 400. No emojis. Use \n\n (double spaces) between statements if there are multiple statements in your response.
 Your response should replace any entities , person, organization name on your response with its twitter account handler.
-Your response should replace any crypto project name such as Ethereum, Bitcoin, or something else with its ticker starting with $.
-Your response should replace any crypto project ticker that doesnt have $ before it you have to add the $ so for example ETH become $ETH.
+Your response should replace any crypto currency name such as Ethereum, Bitcoin, or something else with its ticker starting with $.
+Your response should replace any crypto currency ticker that doesnt have $ before it you have to add the $ so for example ETH become $ETH ( ticker has length up to 4 characters ).
 Your response should not include ChainCatcher text on it.
 `;
 

From e7571d489245fa97aeb957a92ca2b1fe9005bd35 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Thu, 30 Jan 2025 09:57:33 +0700
Subject: [PATCH 44/58] OKOK

---
 packages/client-twitter/src/post.ts | 1 -
 1 file changed, 1 deletion(-)

diff --git a/packages/client-twitter/src/post.ts b/packages/client-twitter/src/post.ts
index e2c089803ec..8283abb5033 100644
--- a/packages/client-twitter/src/post.ts
+++ b/packages/client-twitter/src/post.ts
@@ -52,7 +52,6 @@ Your response must include the summary of the # NEWS above into a sentences and
 If the news isnt about SUI or SUIRISE, dont mix the context with SUI Shilling. keep the original and relevant context of the news.
 Your response should be 1, 2, or 3 sentences (choose the length at random).
 Your response should not contain any questions. Brief, concise statements only. The total character count MUST be less than 400. No emojis. Use \n\n (double spaces) between statements if there are multiple statements in your response.
-Your response should replace any entities , person, organization name on your response with its twitter account handler.
 Your response should replace any crypto currency name such as Ethereum, Bitcoin, or something else with its ticker starting with $.
 Your response should replace any crypto currency ticker that doesnt have $ before it you have to add the $ so for example ETH become $ETH ( ticker has length up to 4 characters ).
 Your response should not include ChainCatcher text on it.

From 8cd73158beed716ad13692a2f49d02172249c610 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Thu, 30 Jan 2025 15:20:06 +0700
Subject: [PATCH 45/58] jajaja

---
 agent/package.json                            |   1 +
 agent/src/index.ts                            |   3 +
 .../client-telegram/src/messageManager.ts     |   9 +-
 .../src/plugins/SttTtsSpacesPlugin.ts         |  19 +-
 packages/client-twitter/src/search.ts         |  45 +++-
 packages/plugin-neocortex-market/.gitignore   |  37 +++
 packages/plugin-neocortex-market/.npmignore   |   6 +
 .../plugin-neocortex-market/eslint.config.mjs |   3 +
 packages/plugin-neocortex-market/package.json |  20 ++
 .../src/actions/trending.ts                   | 232 ++++++++++++++++++
 packages/plugin-neocortex-market/src/index.ts |  15 ++
 .../src/lib/InsidexManage.ts                  | 165 +++++++++++++
 .../plugin-neocortex-market/src/lib/types.ts  |  57 +++++
 .../src/services/GoplusSecurityService.ts     | 144 +++++++++++
 .../src/templates/index.ts                    |  29 +++
 .../plugin-neocortex-market/tsconfig.json     |  11 +
 .../plugin-neocortex-market/tsup.config.ts    |  10 +
 packages/plugin-pyth-data/schema.json         |   2 +-
 18 files changed, 787 insertions(+), 21 deletions(-)
 create mode 100644 packages/plugin-neocortex-market/.gitignore
 create mode 100644 packages/plugin-neocortex-market/.npmignore
 create mode 100644 packages/plugin-neocortex-market/eslint.config.mjs
 create mode 100644 packages/plugin-neocortex-market/package.json
 create mode 100644 packages/plugin-neocortex-market/src/actions/trending.ts
 create mode 100644 packages/plugin-neocortex-market/src/index.ts
 create mode 100644 packages/plugin-neocortex-market/src/lib/InsidexManage.ts
 create mode 100644 packages/plugin-neocortex-market/src/lib/types.ts
 create mode 100644 packages/plugin-neocortex-market/src/services/GoplusSecurityService.ts
 create mode 100644 packages/plugin-neocortex-market/src/templates/index.ts
 create mode 100644 packages/plugin-neocortex-market/tsconfig.json
 create mode 100644 packages/plugin-neocortex-market/tsup.config.ts

diff --git a/agent/package.json b/agent/package.json
index e0b56dfa7bc..75a60624f84 100644
--- a/agent/package.json
+++ b/agent/package.json
@@ -109,6 +109,7 @@
         "@elizaos/plugin-devin": "workspace:*",
         "@ethosdao/plugin-market-analisys": "workspace:*",
         "@srise/plugin-crypto-news": "workspace:*",
+        "@srise/plugin-neocortex-market": "workspace:*",
         "@elizaos/plugin-goplus": "workspace:*",
         "readline": "1.3.0",
         "ws": "8.18.0",
diff --git a/agent/src/index.ts b/agent/src/index.ts
index 40105d989bd..ce8fc7d2a54 100644
--- a/agent/src/index.ts
+++ b/agent/src/index.ts
@@ -13,6 +13,7 @@ import { SlackClientInterface } from "@elizaos/client-slack";
 import { TelegramClientInterface } from "@elizaos/client-telegram";
 import { TwitterClientInterface } from "@elizaos/client-twitter";
 import { agentKitPlugin } from "@elizaos/plugin-agentkit";
+import { neoCortexMarketPlugin } from "@srise/plugin-neocortex-market";
 // import { ReclaimAdapter } from "@elizaos/plugin-reclaim";
 import {
     AgentRuntime,
@@ -918,6 +919,7 @@ export async function createAgent(
                 ? webSearchPlugin
                 : null,
             getSecret(character, "SERPER_API_KEY") ? cryptoNewsPlugin : null,
+
             getSecret(character, "SOLANA_PUBLIC_KEY") ||
             (getSecret(character, "WALLET_PUBLIC_KEY") &&
                 !getSecret(character, "WALLET_PUBLIC_KEY")?.startsWith("0x"))
@@ -1100,6 +1102,7 @@ export async function createAgent(
                 ? openaiPlugin
                 : null,
             getSecret(character, "DEVIN_API_TOKEN") ? devinPlugin : null,
+            getSecret(character, "INSIDEX_API_KEY") ? neoCortexMarketPlugin : null,
         ].filter(Boolean),
         providers: [],
         actions: [],
diff --git a/packages/client-telegram/src/messageManager.ts b/packages/client-telegram/src/messageManager.ts
index 5f27f06ac96..f43fa0076d9 100644
--- a/packages/client-telegram/src/messageManager.ts
+++ b/packages/client-telegram/src/messageManager.ts
@@ -1390,10 +1390,11 @@ export class MessageManager {
 
                 // Execute callback to send messages and log memories
                 const responseMessages = await callback(responseContent);
-                // console.log({
-                //     responseMessages,
-                //     responseContent,
-                // });
+                console.log({
+                    memory,
+                    context,
+                    responseContent,
+                });
 
                 // Update state after response
                 state = await this.runtime.updateRecentMessageState(state);
diff --git a/packages/client-twitter/src/plugins/SttTtsSpacesPlugin.ts b/packages/client-twitter/src/plugins/SttTtsSpacesPlugin.ts
index c930f6e5ce0..888fa94d304 100644
--- a/packages/client-twitter/src/plugins/SttTtsSpacesPlugin.ts
+++ b/packages/client-twitter/src/plugins/SttTtsSpacesPlugin.ts
@@ -318,10 +318,11 @@ export class SttTtsPlugin implements Plugin {
             // Get response
             const replyText = await this.handleUserMessage(sttText, userId);
             if (!replyText || !replyText.length || !replyText.trim()) {
-                elizaLogger.warn(
-                    "[SttTtsPlugin] No replyText for user =>",
-                    userId
-                );
+                elizaLogger.warn("[SttTtsPlugin] No replyText for user =>", {
+                    userId,
+                    sttText,
+                    replyText,
+                });
                 return;
             }
             elizaLogger.log(
@@ -382,7 +383,7 @@ export class SttTtsPlugin implements Plugin {
                     return;
                 }
             } catch (err) {
-                console.log("SttTtsplugin error",err);
+                console.log("SttTtsplugin error", err);
                 elizaLogger.error("[SttTtsPlugin] TTS streaming error =>", err);
             } finally {
                 // Clean up the AbortController
@@ -587,8 +588,14 @@ export class SttTtsPlugin implements Plugin {
         const response = await generateShouldRespond({
             runtime: this.runtime,
             context: shouldRespondContext,
-            modelClass: ModelClass.SMALL,
+            modelClass: ModelClass.LARGE, // it was small
         });
+        if (response !== "RESPOND") {
+            console.log("STTTTS SHOULD RESPOND ? ", {
+                response,
+                shouldRespondContext,
+            });
+        }
 
         if (response === "RESPOND") {
             return true;
diff --git a/packages/client-twitter/src/search.ts b/packages/client-twitter/src/search.ts
index 01ed6e68277..d41321d355b 100644
--- a/packages/client-twitter/src/search.ts
+++ b/packages/client-twitter/src/search.ts
@@ -1,17 +1,19 @@
-import { SearchMode } from "agent-twitter-client";
-import { composeContext, elizaLogger } from "@elizaos/core";
-import { generateMessageResponse, generateText } from "@elizaos/core";
-import { messageCompletionFooter } from "@elizaos/core";
 import {
+    composeContext,
     type Content,
+    elizaLogger,
+    generateMessageResponse,
+    generateText,
     type HandlerCallback,
     type IAgentRuntime,
     type IImageDescriptionService,
+    messageCompletionFooter,
     ModelClass,
     ServiceType,
     type State,
+    stringToUuid,
 } from "@elizaos/core";
-import { stringToUuid } from "@elizaos/core";
+import { SearchMode } from "agent-twitter-client";
 import type { ClientBase } from "./base";
 import { buildConversationThread, sendTweet, wait } from "./utils.ts";
 
@@ -95,7 +97,13 @@ export class TwitterSearchClient {
                 `# ${this.runtime.character.name}'s Home Timeline\n\n` +
                 homeTimeline
                     .map((tweet) => {
-                        return `ID: ${tweet.id}\nFrom: ${tweet.name} (@${tweet.username})${tweet.inReplyToStatusId ? ` In reply to: ${tweet.inReplyToStatusId}` : ""}\nText: ${tweet.text}\n---\n`;
+                        return `ID: ${tweet.id}\nFrom: ${tweet.name} (@${
+                            tweet.username
+                        })${
+                            tweet.inReplyToStatusId
+                                ? ` In reply to: ${tweet.inReplyToStatusId}`
+                                : ""
+                        }\nText: ${tweet.text}\n---\n`;
                     })
                     .join("\n");
 
@@ -126,14 +134,18 @@ export class TwitterSearchClient {
       })
       .map(
           (tweet) => `
-    ID: ${tweet.id}${tweet.inReplyToStatusId ? ` In reply to: ${tweet.inReplyToStatusId}` : ""}
+    ID: ${tweet.id}${
+              tweet.inReplyToStatusId
+                  ? ` In reply to: ${tweet.inReplyToStatusId}`
+                  : ""
+          }
     From: ${tweet.name} (@${tweet.username})
     Text: ${tweet.text}
   `
       )
       .join("\n")}
 
-  Which tweet is the most interesting and relevant for Ruby to reply to? Please provide only the ID of the tweet in your response.
+  Which tweet is the most interesting and relevant for SUIRISE to reply to? Please provide only the ID of the tweet in your response.
   Notes:
     - Respond to English tweets only
     - Respond to tweets that don't have a lot of hashtags, links, URLs or images
@@ -244,9 +256,22 @@ export class TwitterSearchClient {
 
   Original Post:
   By @${selectedTweet.username}
-  ${selectedTweet.text}${replyContext.length > 0 && `\nReplies to original post:\n${replyContext}`}
+  ${selectedTweet.text}${
+                    replyContext.length > 0 &&
+                    `\nReplies to original post:\n${replyContext}`
+                }
   ${`Original post text: ${selectedTweet.text}`}
-  ${selectedTweet.urls.length > 0 ? `URLs: ${selectedTweet.urls.join(", ")}\n` : ""}${imageDescriptions.length > 0 ? `\nImages in Post (Described): ${imageDescriptions.join(", ")}\n` : ""}
+  ${
+      selectedTweet.urls.length > 0
+          ? `URLs: ${selectedTweet.urls.join(", ")}\n`
+          : ""
+  }${
+                    imageDescriptions.length > 0
+                        ? `\nImages in Post (Described): ${imageDescriptions.join(
+                              ", "
+                          )}\n`
+                        : ""
+                }
   `,
             });
 
diff --git a/packages/plugin-neocortex-market/.gitignore b/packages/plugin-neocortex-market/.gitignore
new file mode 100644
index 00000000000..f781f0bc4b3
--- /dev/null
+++ b/packages/plugin-neocortex-market/.gitignore
@@ -0,0 +1,37 @@
+# Node modules
+node_modules/
+
+# Logs
+logs
+*.log
+npm-debug.log*
+
+# Build output
+dist/
+build/
+
+# Dependency directories
+jspm_packages/
+
+# Optional npm cache directory
+.npm/
+
+# dotenv environment variable file
+.env
+
+# Turborepo
+.turbo/
+
+# IDE specific files
+.idea/
+.vscode/
+*.sublime-project
+*.sublime-workspace
+
+# Mac system files
+.DS_Store
+
+# Windows system files
+Thumbs.db
+ehthumbs.db
+Icon?
diff --git a/packages/plugin-neocortex-market/.npmignore b/packages/plugin-neocortex-market/.npmignore
new file mode 100644
index 00000000000..078562eceab
--- /dev/null
+++ b/packages/plugin-neocortex-market/.npmignore
@@ -0,0 +1,6 @@
+*
+
+!dist/**
+!package.json
+!readme.md
+!tsup.config.ts
\ No newline at end of file
diff --git a/packages/plugin-neocortex-market/eslint.config.mjs b/packages/plugin-neocortex-market/eslint.config.mjs
new file mode 100644
index 00000000000..92fe5bbebef
--- /dev/null
+++ b/packages/plugin-neocortex-market/eslint.config.mjs
@@ -0,0 +1,3 @@
+import eslintGlobalConfig from "../../eslint.config.mjs";
+
+export default [...eslintGlobalConfig];
diff --git a/packages/plugin-neocortex-market/package.json b/packages/plugin-neocortex-market/package.json
new file mode 100644
index 00000000000..933e332a2c5
--- /dev/null
+++ b/packages/plugin-neocortex-market/package.json
@@ -0,0 +1,20 @@
+{
+    "name": "@srise/plugin-neocortex-market",
+    "version": "0.1.9-alpha.1",
+    "main": "dist/index.js",
+    "type": "module",
+    "types": "dist/index.d.ts",
+    "dependencies": {
+        "@elizaos/core": "workspace:*",
+        "tsup": "^8.3.5",
+        "ws": "^8.18.0"
+    },
+    "scripts": {
+        "build": "tsup --format esm --dts",
+        "dev": "tsx watch src/index.ts"
+    },
+    "devDependencies": {
+        "@types/ws": "^8.5.13",
+        "tsx": "^4.19.2"
+    }
+}
diff --git a/packages/plugin-neocortex-market/src/actions/trending.ts b/packages/plugin-neocortex-market/src/actions/trending.ts
new file mode 100644
index 00000000000..51857769fad
--- /dev/null
+++ b/packages/plugin-neocortex-market/src/actions/trending.ts
@@ -0,0 +1,232 @@
+import {
+    Action,
+    elizaLogger,
+    generateText,
+    HandlerCallback,
+    IAgentRuntime,
+    Memory,
+    ModelClass,
+    State,
+} from "@elizaos/core";
+import { InsidexManage } from "../lib/InsidexManage";
+import { responsePrompt } from "../templates";
+
+export const trendingTokenAction: Action = {
+    name: "TRENDING_TOKEN",
+    similes: ["TOKEN_TRENDING", "GET_TRENDING_TOKEN"],
+    description:
+        "Obtain the recently trending token. Call this action if the user asking for whats trending or hot token even if there's any related conversation before.",
+    validate: async (runtime: IAgentRuntime, message: Memory) => {
+        const apiKey = !!runtime.getSetting("INSIDEX_API_KEY");
+        console.log("APIKEY", {
+            apiKey,
+            s: runtime.getSetting("INSIDEX_API_KEY"),
+        });
+        return apiKey;
+    },
+    handler: async (
+        runtime: IAgentRuntime,
+        message: Memory,
+        state: State,
+        options: any,
+        callback: HandlerCallback
+    ) => {
+        try {
+            //elizaLogger.log("check input text", message.content.text);
+            const insideXManage = new InsidexManage(
+                runtime.getSetting("INSIDEX_API_KEY")
+            );
+            //elizaLogger.log("FINDING TRENDING TOKEN", message.content.text);
+            const result = (await insideXManage.trendingToken()).slice(0, 5);
+
+            elizaLogger.info(
+                `Received Response from InsideX trending total : ${result.length}`
+            );
+            const checkResponse = await generateText({
+                runtime: runtime,
+                context: responsePrompt(
+                    JSON.stringify(result),
+                    message.content.text
+                ),
+                modelClass: ModelClass.LARGE,
+            });
+            elizaLogger.info("LLM InsideX Response", checkResponse);
+            // console.log("debug insidex", {
+            //     context: responsePrompt(
+            //         JSON.stringify(result),
+            //         message.content.text
+            //     ),
+            // });
+            callback({
+                text: checkResponse,
+            });
+
+            // let checkResult: any;
+            // switch (obj.type) {
+            //     case GoPlusType.EVMTOKEN_SECURITY_CHECK:
+            //         checkResult = await goPlusManage.tokenSecurity(
+            //             obj.network,
+            //             obj.token
+            //         );
+            //         break;
+            //     case GoPlusType.SOLTOKEN_SECURITY_CHECK:
+            //         checkResult =
+            //             await goPlusManage.solanaTokenSecurityUsingGET(
+            //                 obj.token
+            //             );
+            //         break;
+            //     case GoPlusType.SUITOKEN_SECURITY_CHECK:
+            //         checkResult = await goPlusManage.suiTokenSecurityUsingGET(
+            //             obj.token
+            //         );
+            //         break;
+            //     case GoPlusType.RUGPULL_SECURITY_CHECK:
+            //         checkResult = await goPlusManage.rugpullDetection(
+            //             obj.network,
+            //             obj.contract
+            //         );
+            //         break;
+            //     case GoPlusType.NFT_SECURITY_CHECK:
+            //         checkResult = await goPlusManage.nftSecurity(
+            //             obj.network,
+            //             obj.token
+            //         );
+            //         break;
+            //     case GoPlusType.ADRESS_SECURITY_CHECK:
+            //         checkResult = await goPlusManage.addressSecurity(
+            //             obj.wallet
+            //         );
+            //         break;
+            //     case GoPlusType.APPROVAL_SECURITY_CHECK:
+            //         checkResult = await goPlusManage.approvalSecurity(
+            //             obj.network,
+            //             obj.contract
+            //         );
+            //         break;
+            //     case GoPlusType.ACCOUNT_ERC20_SECURITY_CHECK:
+            //         checkResult = await goPlusManage.erc20ApprovalSecurity(
+            //             obj.network,
+            //             obj.wallet
+            //         );
+            //         break;
+            //     case GoPlusType.ACCOUNT_ERC721_SECURITY_CHECK:
+            //         checkResult = await goPlusManage.erc721ApprovalSecurity(
+            //             obj.network,
+            //             obj.wallet
+            //         );
+            //         break;
+            //     case GoPlusType.ACCOUNT_ERC1155_SECURITY_CHECK:
+            //         checkResult = await goPlusManage.erc1155ApprovalSecurity(
+            //             obj.network,
+            //             obj.wallet
+            //         );
+            //         break;
+            //     case GoPlusType.SIGNATURE_SECURITY_CHECK:
+            //         checkResult = await goPlusManage.inputDecode(
+            //             obj.network,
+            //             obj.data
+            //         );
+            //         break;
+            //     case GoPlusType.URL_SECURITY_CHECK:
+            //         checkResult =
+            //             await goPlusManage.dappSecurityAndPhishingSite(obj.url);
+            //         break;
+            //     default:
+            //         throw new Error("type is invaild");
+            // }
+            // elizaLogger.log("checkResult text", checkResult);
+            // const checkResponse = await generateText({
+            //     runtime: runtime,
+            //     context: responsePrompt(
+            //         JSON.stringify(checkResult),
+            //         message.content.text
+            //     ),
+            //     modelClass: ModelClass.LARGE,
+            // });
+            // elizaLogger.log("checkResponse text", checkResponse);
+            // callback({
+            //     text: checkResponse,
+            // });
+        } catch (e) {
+            elizaLogger.error("Error in trendingTokenAction handler", e);
+            return "error";
+        }
+    },
+    examples: [
+        [
+            {
+                user: "{{user1}}",
+                content: {
+                    text: "What are the hottest tokens in the market right now?",
+                },
+            },
+            {
+                user: "{{agentName}}",
+                content: {
+                    text: "Here is what I found about the trending tokens:",
+                    action: "TRENDING_TOKEN",
+                },
+            },
+        ],
+        [
+            {
+                user: "{{user1}}",
+                content: {
+                    text: "Which tokens are currently gaining the most attention among investors?",
+                },
+            },
+            {
+                user: "{{agentName}}",
+                content: {
+                    text: "Here are the tokens attracting investor interest:",
+                    action: "TRENDING_TOKEN",
+                },
+            },
+        ],
+        [
+            {
+                user: "{{user1}}",
+                content: {
+                    text: "What are some trending cryptocurrencies at the moment?",
+                },
+            },
+            {
+                user: "{{agentName}}",
+                content: {
+                    text: "These are the trending cryptocurrencies I found:",
+                    action: "TRENDING_TOKEN",
+                },
+            },
+        ],
+        [
+            {
+                user: "{{user1}}",
+                content: {
+                    text: "Whats hot right now ?",
+                },
+            },
+            {
+                user: "{{agentName}}",
+                content: {
+                    text: "Here are the tokens that have surged in popularity recently:",
+                    action: "TRENDING_TOKEN",
+                },
+            },
+        ],
+        [
+            {
+                user: "{{user1}}",
+                content: {
+                    text: "Whats trending token right now ?",
+                },
+            },
+            {
+                user: "{{agentName}}",
+                content: {
+                    text: "These tokens are currently generating the most buzz in the crypto community:",
+                    action: "TRENDING_TOKEN",
+                },
+            },
+        ],
+    ],
+} as Action;
diff --git a/packages/plugin-neocortex-market/src/index.ts b/packages/plugin-neocortex-market/src/index.ts
new file mode 100644
index 00000000000..b81a4e04954
--- /dev/null
+++ b/packages/plugin-neocortex-market/src/index.ts
@@ -0,0 +1,15 @@
+import type { Plugin } from "@elizaos/core";
+import { trendingTokenAction } from "./actions/trending";
+//import GoplusSecurityService from "./services/GoplusSecurityService";
+
+//export * from "./services/GoplusSecurityService";
+
+export const neoCortexMarketPlugin: Plugin = {
+    name: "neocortex-market",
+    description: "Neo Cortex for getting market insight",
+    actions: [trendingTokenAction],
+    evaluators: [],
+    providers: [],
+    //services: [new GoplusSecurityService()],
+    services: [],
+};
diff --git a/packages/plugin-neocortex-market/src/lib/InsidexManage.ts b/packages/plugin-neocortex-market/src/lib/InsidexManage.ts
new file mode 100644
index 00000000000..60aae820344
--- /dev/null
+++ b/packages/plugin-neocortex-market/src/lib/InsidexManage.ts
@@ -0,0 +1,165 @@
+import { TrendingTokens } from "./types";
+
+export const GoPlusType = {
+    EVMTOKEN_SECURITY_CHECK: "EVMTOKEN_SECURITY_CHECK",
+    SOLTOKEN_SECURITY_CHECK: "SOLTOKEN_SECURITY_CHECK",
+    SUITOKEN_SECURITY_CHECK: "SUITOKEN_SECURITY_CHECK",
+    RUGPULL_SECURITY_CHECK: "RUGPULL_SECURITY_CHECK",
+    NFT_SECURITY_CHECK: "NFT_SECURITY_CHECK",
+    ADRESS_SECURITY_CHECK: "ADRESS_SECURITY_CHECK",
+    APPROVAL_SECURITY_CHECK: "APPROVAL_SECURITY_CHECK",
+    ACCOUNT_ERC20_SECURITY_CHECK: "ACCOUNT_ERC20_SECURITY_CHECK",
+    ACCOUNT_ERC721_SECURITY_CHECK: "ACCOUNT_ERC721_SECURITY_CHECK",
+    ACCOUNT_ERC1155_SECURITY_CHECK: "ACCOUNT_ERC1155_SECURITY_CHECK",
+    SIGNATURE_SECURITY_CHECK: "SIGNATURE_SECURITY_CHECK",
+    URL_SECURITY_CHECK: "URL_SECURITY_CHECK",
+};
+
+export type GoPlusType = (typeof GoPlusType)[keyof typeof GoPlusType];
+export type GoPlusParamType = {
+    type: GoPlusType;
+    network?: string;
+    token?: string;
+    contract?: string;
+    wallet?: string;
+    url?: string;
+    data?: string;
+};
+
+const excludeCoinsFromTrending = [
+    "0x375f70cf2ae4c00bf37117d0c85a2c71545e6ee05c4a5c7d282cd66a4504b068::usdt::USDT",
+    "0xd0e89b2af5e4910726fbcd8b8dd37bb79b29e5f83f7491bca830e94f7f226d29::eth::ETH",
+    "0x06864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b::cetus::CETUS",
+    "0x2053d08c1e2bd02791056171aab0fd12bd7cd7efad2ab8f6b9c8902f14df2ff2::ausd::AUSD",
+    "0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c::coin::COIN",
+    "0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN",
+    "0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881::coin::COIN",
+    "0xb7844e289a8410e50fb3ca48d69eb9cf29e27d223ef90353fe1bd8e27ff8f3f8::coin::COIN",
+    "0xce7ff77a83ea0cb6fd39bd8748e2ec89a3f41e8efdc3f4eb123e0ca37b184db2::buck::BUCK",
+    "0x2053d08c1e2bd02791056171aab0fd12bd7cd7efad2ab8f6b9c8902f14df2ff2::ausd::AUSD",
+];
+export class InsidexManage {
+    private apiKey: string;
+
+    constructor(apiKey: string = null) {
+        this.apiKey = apiKey;
+    }
+
+    async requestGet(api: string) {
+        const myHeaders = new Headers();
+        if (this.apiKey) {
+            myHeaders.append("x-api-key", this.apiKey);
+        }
+        const url = `https://api-ex.insidex.trade/${api}`;
+        const res = await fetch(url, {
+            method: "GET",
+            headers: myHeaders,
+            redirect: "follow",
+        });
+
+        return await res.json();
+    }
+
+    async trendingToken(): Promise<TrendingTokens | any> {
+        const api = `coins/trending`;
+        const trendingRes = (await this.requestGet(api)) as TrendingTokens;
+
+        const trending = trendingRes
+            .filter((token) => {
+                return (
+                    token.isCoinHoneyPot == "false" &&
+                    token.suspiciousActivities.length < 1 &&
+                    token.totalLiquidityUsd !== "NaN" &&
+                    !excludeCoinsFromTrending.includes(token.coin)
+                );
+            })
+            .sort((a, b) => parseFloat(b.volume24h) - parseFloat(a.volume24h));
+        return trending;
+    }
+
+    // async tokenSecurity(
+    //     chainId: string,
+    //     address: string
+    // ): Promise<TrendingTokens> {
+    //     const api = `api/v1/token_security/${chainId}?contract_addresses=${address}`;
+    //     return await this.requestGet(api);
+    // }
+
+    // async rugpullDetection(chainId: string, address: string) {
+    //     const api = `api/v1/rugpull_detecting/${chainId}?contract_addresses=${address}`;
+    //     return await this.requestGet(api);
+    // }
+
+    // async solanaTokenSecurityUsingGET(address: string) {
+    //     const api = `api/v1/solana/token_security?contract_addresses=${address}`;
+    //     return await this.requestGet(api);
+    // }
+
+    // async suiTokenSecurityUsingGET(address: string) {
+    //     const api = `api/v1/sui/token_security?contract_addresses=${address}`;
+    //     return await this.requestGet(api);
+    // }
+
+    // async nftSecurity(chainId: string, address: string) {
+    //     const api = `api/v1/nft_security/${chainId}?contract_addresses=${address}`;
+    //     return await this.requestGet(api);
+    // }
+
+    // async addressSecurity(address: string) {
+    //     const api = `api/v1/address_security/${address}`;
+    //     return await this.requestGet(api);
+    // }
+
+    // async approvalSecurity(chainId: string, contract: string) {
+    //     const api = `api/v1/approval_security/${chainId}?contract_addresses=${contract}`;
+    //     return await this.requestGet(api);
+    // }
+
+    // async erc20ApprovalSecurity(chainId: string, wallet: string) {
+    //     const api = `api/v2/token_approval_security/${chainId}?addresses=${wallet}`;
+    //     return await this.requestGet(api);
+    // }
+
+    // async erc721ApprovalSecurity(chainId: string, wallet: string) {
+    //     const api = `api/v2/nft721_approval_security/${chainId}?addresses=${wallet}`;
+    //     return await this.requestGet(api);
+    // }
+
+    // async erc1155ApprovalSecurity(chainId: string, wallet: string) {
+    //     const api = `api/v2/nft1155_approval_security/${chainId}?addresses=${wallet}`;
+    //     return await this.requestGet(api);
+    // }
+
+    // async inputDecode(chainId: string, data: string) {
+    //     const body = JSON.stringify({
+    //         chain_id: chainId,
+    //         data: data,
+    //     });
+    //     const res = await fetch(
+    //         "https://api.gopluslabs.io/api/v1/abi/input_decode",
+    //         {
+    //             headers: {
+    //                 accept: "*/*",
+    //                 "accept-language": "en,zh-CN;q=0.9,zh;q=0.8",
+    //                 "content-type": "application/json",
+    //             },
+    //             body: body,
+    //             method: "POST",
+    //         }
+    //     );
+    //     return await res.json();
+    // }
+
+    // async dappSecurityAndPhishingSite(url: string) {
+    //     const api = `api/v1/dapp_secu
+    //     rity?url=${url}`;
+    //     const data1 = await this.requestGet(api);
+
+    //     const api2 = `api/v1/phishing_site?url=${url}`;
+    //     const data2 = await this.requestGet(api2);
+    //     return {
+    //         data1,
+    //         data2,
+    //     };
+    // }
+}
diff --git a/packages/plugin-neocortex-market/src/lib/types.ts b/packages/plugin-neocortex-market/src/lib/types.ts
new file mode 100644
index 00000000000..7f234bebfed
--- /dev/null
+++ b/packages/plugin-neocortex-market/src/lib/types.ts
@@ -0,0 +1,57 @@
+export type TrendingTokens = TrendingToken[];
+
+export interface TrendingToken {
+    isMintable: string;
+    tokensBurned: string;
+    tokensBurnedPercentage: string;
+    lpBurnt: string;
+    coinSupply: string;
+    coinMetadata: CoinMetadata;
+    tokensInLiquidity: string;
+    percentageTokenSupplyInLiquidity: string;
+    isCoinHoneyPot: string;
+    suspiciousActivities: any[];
+    top10HolderPercentage: string;
+    top20HolderPercentage: string;
+    fullyDilutedMarketCap: string;
+    marketCap: string;
+    totalLiquidityUsd: string;
+    timeCreated: string;
+    coin: string;
+    coinDev: string;
+    price5mAgo: string;
+    price1hAgo: string;
+    price6hAgo: string;
+    price24hAgo: string;
+    percentagePriceChange5m: string;
+    percentagePriceChange1h: string;
+    percentagePriceChange6h: string;
+    percentagePriceChange24h: string;
+    coinDevHoldings: string;
+    coinDevHoldingsPercentage: string;
+    buyVolume5m: string;
+    buyVolume1h: string;
+    buyVolume6h: string;
+    buyVolume24h: string;
+    sellVolume5m: string;
+    sellVolume1h: string;
+    sellVolume6h: string;
+    sellVolume24h: string;
+    volume5m: string;
+    volume1h: string;
+    volume6h: string;
+    volume24h: string;
+    coinPrice: string;
+}
+
+export interface CoinMetadata {
+    _id?: string;
+    coinType?: string;
+    decimals: string;
+    id: string;
+    name: string;
+    symbol: string;
+    supply?: string;
+    description?: string;
+    iconUrl?: string;
+}
diff --git a/packages/plugin-neocortex-market/src/services/GoplusSecurityService.ts b/packages/plugin-neocortex-market/src/services/GoplusSecurityService.ts
new file mode 100644
index 00000000000..9cc3e5cd216
--- /dev/null
+++ b/packages/plugin-neocortex-market/src/services/GoplusSecurityService.ts
@@ -0,0 +1,144 @@
+// import {
+//     type IAgentRuntime,
+//     ModelClass,
+//     Service,
+//     ServiceType,
+//     elizaLogger,
+//     generateObjectDeprecated,
+//     generateText,
+// } from "@elizaos/core";
+// import {
+//     GoPlusManage,
+//     type GoPlusParamType,
+//     GoPlusType,
+// } from "../lib/InsidexManage";
+// import { requestPrompt, responsePrompt } from "../templates";
+
+// export interface IGoplusSecurityService extends Service {
+//     check(text: string): Promise<string>;
+// }
+
+// export class GoplusSecurityService
+//     extends Service
+//     implements IGoplusSecurityService
+// {
+//     private apiKey: string;
+//     private runtime: IAgentRuntime;
+//     getInstance(): GoplusSecurityService {
+//         return this;
+//     }
+//     static get serviceType() {
+//         return "goplus_security" as ServiceType; // ServiceType.GOPLUS_SECURITY;
+//     }
+
+//     initialize(runtime: IAgentRuntime): Promise<void> {
+//         this.runtime = runtime;
+//         this.apiKey = runtime.getSetting("GOPLUS_API_KEY");
+//         return;
+//     }
+
+//     /**
+//      * Connect to WebSocket and send a message
+//      */
+//     async check(text: string): Promise<string> {
+//         try {
+//             elizaLogger.log("check input text", text);
+//             const obj = (await generateObjectDeprecated({
+//                 runtime: this.runtime,
+//                 context: requestPrompt(text),
+//                 modelClass: ModelClass.SMALL, // gpt-4o-mini
+//             })) as GoPlusParamType;
+
+//             elizaLogger.log("check generateObjectDeprecated text", obj);
+
+//             const goPlusManage = new GoPlusManage(this.apiKey);
+//             let checkResult: any;
+//             switch (obj.type) {
+//                 case GoPlusType.EVMTOKEN_SECURITY_CHECK:
+//                     checkResult = await goPlusManage.tokenSecurity(
+//                         obj.network,
+//                         obj.token
+//                     );
+//                     break;
+//                 case GoPlusType.SOLTOKEN_SECURITY_CHECK:
+//                     checkResult =
+//                         await goPlusManage.solanaTokenSecurityUsingGET(
+//                             obj.token
+//                         );
+//                     break;
+//                 case GoPlusType.SUITOKEN_SECURITY_CHECK:
+//                     checkResult = await goPlusManage.suiTokenSecurityUsingGET(
+//                         obj.token
+//                     );
+//                     break;
+//                 case GoPlusType.RUGPULL_SECURITY_CHECK:
+//                     checkResult = await goPlusManage.rugpullDetection(
+//                         obj.network,
+//                         obj.contract
+//                     );
+//                     break;
+//                 case GoPlusType.NFT_SECURITY_CHECK:
+//                     checkResult = await goPlusManage.nftSecurity(
+//                         obj.network,
+//                         obj.token
+//                     );
+//                     break;
+//                 case GoPlusType.ADRESS_SECURITY_CHECK:
+//                     checkResult = await goPlusManage.addressSecurity(
+//                         obj.wallet
+//                     );
+//                     break;
+//                 case GoPlusType.APPROVAL_SECURITY_CHECK:
+//                     checkResult = await goPlusManage.approvalSecurity(
+//                         obj.network,
+//                         obj.contract
+//                     );
+//                     break;
+//                 case GoPlusType.ACCOUNT_ERC20_SECURITY_CHECK:
+//                     checkResult = await goPlusManage.erc20ApprovalSecurity(
+//                         obj.network,
+//                         obj.wallet
+//                     );
+//                     break;
+//                 case GoPlusType.ACCOUNT_ERC721_SECURITY_CHECK:
+//                     checkResult = await goPlusManage.erc721ApprovalSecurity(
+//                         obj.network,
+//                         obj.wallet
+//                     );
+//                     break;
+//                 case GoPlusType.ACCOUNT_ERC1155_SECURITY_CHECK:
+//                     checkResult = await goPlusManage.erc1155ApprovalSecurity(
+//                         obj.network,
+//                         obj.wallet
+//                     );
+//                     break;
+//                 case GoPlusType.SIGNATURE_SECURITY_CHECK:
+//                     checkResult = await goPlusManage.inputDecode(
+//                         obj.network,
+//                         obj.data
+//                     );
+//                     break;
+//                 case GoPlusType.URL_SECURITY_CHECK:
+//                     checkResult =
+//                         await goPlusManage.dappSecurityAndPhishingSite(obj.url);
+//                     break;
+//                 default:
+//                     throw new Error("type is invaild");
+//             }
+
+//             elizaLogger.log("checkResult text", checkResult);
+//             const checkResponse = await generateText({
+//                 runtime: this.runtime,
+//                 context: responsePrompt(JSON.stringify(checkResult), text),
+//                 modelClass: ModelClass.SMALL,
+//             });
+//             elizaLogger.log("checkResponse text", checkResponse);
+//             return checkResponse;
+//         } catch (e) {
+//             elizaLogger.error(e);
+//             return "error";
+//         }
+//     }
+// }
+
+// export default GoplusSecurityService;
diff --git a/packages/plugin-neocortex-market/src/templates/index.ts b/packages/plugin-neocortex-market/src/templates/index.ts
new file mode 100644
index 00000000000..e91806b3d72
--- /dev/null
+++ b/packages/plugin-neocortex-market/src/templates/index.ts
@@ -0,0 +1,29 @@
+export const responsePrompt = (
+    apiresult: string,
+    text: string
+) => `You are a professional cryptocurrency and technical analyst with expertise in market insights. Your task is to analyze the provided market insight API response from NeoCorteX and summarize the key findings in a simple, beginner-friendly manner without leaving out any critical details, such as the project name, ticker, price action, volume, market cap, sentiment, and other relevant metrics.
+API to analyze:“”"
+${apiresult}
+“”"
+
+Instructions:
+1. Highlight Key Metrics: Extract the most important details for each trending token (e.g., name, ticker, price, percentage change, market cap, volume, and sentiment).
+2. Explain in Plain English: Present the analysis in an easy-to-read narrative format rather than listing data points. Ensure the explanation feels approachable, engaging, and not overly technical.
+3. Include an NeoCorteX Perspective: Offer your brief professional opinion on the performance, risks, and opportunities for each token based on the provided metrics.
+4. Use Visual Enhancements: Include icons like 📈 (for growth), 📉 (for decline), ⚠️ (for risks), and 💡 (for insights) to make the analysis visually appealing and easier to understand.
+5. Summarize Clearly: Wrap up with an overview or conclusion that ties together all the information.
+6. Disclaimer: Remind the user to always "Do Your Own Research" (DYOR) and clarify that this is not financial advice.
+
+Response Formatting:
+1. Begin with an Introduction: A quick overview of the trending tokens and what the report will cover.
+2. Token Analysis:
+2.1 For each token (up to 5 from the API):
+2.1.1 Include the name and ticker (e.g., "TokenName ($TICKER)").
+2.1.2 Summarize its price movement and market performance (mention changes in price, volume, and market cap).
+2.1.3 Highlight any unique or notable metrics (e.g., burn rate, liquidity, or suspicious activity).
+2.1.4 Add NeoCorteX's professional opinion (e.g., whether it shows potential growth or signs of caution).
+3. Use Icons to make the text more engaging.
+4. End with a friendly Reminder: "DYOR and remember this is not financial advice.
+
+Conclusion:
+"This analysis highlights key trends for the day, but always DYOR and remember this is not financial advice."`;
diff --git a/packages/plugin-neocortex-market/tsconfig.json b/packages/plugin-neocortex-market/tsconfig.json
new file mode 100644
index 00000000000..c9ef9bea7ba
--- /dev/null
+++ b/packages/plugin-neocortex-market/tsconfig.json
@@ -0,0 +1,11 @@
+{
+    "extends": "../core/tsconfig.json",
+    "compilerOptions": {
+        "outDir": "dist",
+        "rootDir": "./src",
+        "declaration": true
+    },
+    "include": [
+        "src"
+    ]
+}
diff --git a/packages/plugin-neocortex-market/tsup.config.ts b/packages/plugin-neocortex-market/tsup.config.ts
new file mode 100644
index 00000000000..d96e321c706
--- /dev/null
+++ b/packages/plugin-neocortex-market/tsup.config.ts
@@ -0,0 +1,10 @@
+import { defineConfig } from "tsup";
+
+export default defineConfig({
+    entry: ["src/index.ts"],
+    format: ["esm"],
+    dts: true,
+    sourcemap: true,
+    splitting: false,
+    clean: true,
+});
diff --git a/packages/plugin-pyth-data/schema.json b/packages/plugin-pyth-data/schema.json
index a036280f023..6628a575d00 100644
--- a/packages/plugin-pyth-data/schema.json
+++ b/packages/plugin-pyth-data/schema.json
@@ -1 +1 @@
-{"openapi":"3.0.3","info":{"title":"hermes","description":"Hermes is an agent that provides Verified Prices from the Pythnet Pyth Oracle.","license":{"name":""},"version":"0.8.1"},"paths":{"/api/get_price_feed":{"get":{"tags":["rest"],"summary":"**Deprecated: use /v2/updates/price/{publish_time} instead**","description":"**Deprecated: use /v2/updates/price/{publish_time} instead**\n\nGet a price update for a price feed with a specific timestamp\n\nGiven a price feed id and timestamp, retrieve the Pyth price update closest to that timestamp.","operationId":"get_price_feed","parameters":[{"name":"id","in":"query","description":"The id of the price feed to get an update for.","required":true,"schema":{"$ref":"#/components/schemas/PriceIdInput"}},{"name":"publish_time","in":"query","description":"The unix timestamp in seconds. This endpoint will return the first update whose\npublish_time is >= the provided value.","required":true,"schema":{"type":"integer","format":"int64"},"example":1717632000},{"name":"verbose","in":"query","description":"If true, include the `metadata` field in the response with additional metadata about the\nprice update.","required":false,"schema":{"type":"boolean"}},{"name":"binary","in":"query","description":"If true, include the binary price update in the `vaa` field of each returned feed. This\nbinary data can be submitted to Pyth contracts to update the on-chain price.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Price update retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcPriceFeed"}}}}},"deprecated":true}},"/api/get_vaa":{"get":{"tags":["rest"],"summary":"**Deprecated: use /v2/updates/price/{publish_time} instead**","description":"**Deprecated: use /v2/updates/price/{publish_time} instead**\n\nGet a VAA for a price feed with a specific timestamp\n\nGiven a price feed id and timestamp, retrieve the Pyth price update closest to that timestamp.","operationId":"get_vaa","parameters":[{"name":"id","in":"query","description":"The ID of the price feed to get an update for.","required":true,"schema":{"$ref":"#/components/schemas/PriceIdInput"}},{"name":"publish_time","in":"query","description":"The unix timestamp in seconds. This endpoint will return the first update whose\npublish_time is >= the provided value.","required":true,"schema":{"type":"integer","format":"int64"},"example":1690576641}],"responses":{"200":{"description":"Price update retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetVaaResponse"}}}},"404":{"description":"Price update not found","content":{"text/plain":{"schema":{"type":"string"}}}}},"deprecated":true}},"/api/get_vaa_ccip":{"get":{"tags":["rest"],"summary":"**Deprecated: use /v2/updates/price/{publish_time} instead**","description":"**Deprecated: use /v2/updates/price/{publish_time} instead**\n\nGet a VAA for a price feed using CCIP\n\nThis endpoint accepts a single argument which is a hex-encoded byte string of the following form:\n`<price feed id (32 bytes> <publish time as unix timestamp (8 bytes, big endian)>`","operationId":"get_vaa_ccip","parameters":[{"name":"data","in":"query","required":true,"schema":{"$ref":"#/components/schemas/GetVaaCcipInput"}}],"responses":{"200":{"description":"Price update retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetVaaCcipResponse"}}}}},"deprecated":true}},"/api/latest_price_feeds":{"get":{"tags":["rest"],"summary":"**Deprecated: use /v2/updates/price/latest instead**","description":"**Deprecated: use /v2/updates/price/latest instead**\n\nGet the latest price updates by price feed id.\n\nGiven a collection of price feed ids, retrieve the latest Pyth price for each price feed.","operationId":"latest_price_feeds","parameters":[{"name":"ids[]","in":"query","description":"Get the most recent price update for this set of price feed ids.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```","required":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceIdInput"}},"example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},{"name":"verbose","in":"query","description":"If true, include the `metadata` field in the response with additional metadata about\nthe price update.","required":false,"schema":{"type":"boolean"}},{"name":"binary","in":"query","description":"If true, include the binary price update in the `vaa` field of each returned feed.\nThis binary data can be submitted to Pyth contracts to update the on-chain price.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Price updates retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RpcPriceFeed"}}}}}},"deprecated":true}},"/api/latest_vaas":{"get":{"tags":["rest"],"summary":"**Deprecated: use /v2/updates/price/latest instead**","description":"**Deprecated: use /v2/updates/price/latest instead**\n\nGet VAAs for a set of price feed ids.\n\nGiven a collection of price feed ids, retrieve the latest VAA for each. The returned VAA(s) can\nbe submitted to the Pyth contract to update the on-chain price. If VAAs are not found for every\nprovided price ID the call will fail.","operationId":"latest_vaas","parameters":[{"name":"ids[]","in":"query","description":"Get the VAAs for this set of price feed ids.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```","required":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceIdInput"}},"example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"}],"responses":{"200":{"description":"VAAs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}},"example":["UE5BVQEAAAADuAEAAAADDQC1H7meY5fTed0FsykIb8dt+7nKpbuzfvU2DplDi+dcUl8MC+UIkS65+rkiq+zmNBxE2gaxkBkjdIicZ/fBo+X7AAEqp+WtlWb84np8jJfLpuQ2W+l5KXTigsdAhz5DyVgU3xs+EnaIZxBwcE7EKzjMam+V9rlRy0CGsiQ1kjqqLzfAAQLsoVO0Vu5gVmgc8XGQ7xYhoz36rsBgMjG+e3l/B01esQi/KzPuBf/Ar8Sg5aSEOvEU0muSDb+KIr6d8eEC+FtcAAPZEaBSt4ysXVL84LUcJemQD3SiG30kOfUpF8o7/wI2M2Jf/LyCsbKEQUyLtLbZqnJBSfZJR5AMsrnHDqngMLEGAAY4UDG9GCpRuPvg8hOlsrXuPP3zq7yVPqyG0SG+bNo8rEhP5b1vXlHdG4bZsutX47d5VZ6xnFROKudx3T3/fnWUAQgAU1+kUFc3e0ZZeX1dLRVEryNIVyxMQIcxWwdey+jlIAYowHRM0fJX3Scs80OnT/CERwh5LMlFyU1w578NqxW+AQl2E/9fxjgUTi8crOfDpwsUsmOWw0+Q5OUGhELv/2UZoHAjsaw9OinWUggKACo4SdpPlHYldoWF+J2yGWOW+F4iAQre4c+ocb6a9uSWOnTldFkioqhd9lhmV542+VonCvuy4Tu214NP+2UNd/4Kk3KJCf3iziQJrCBeLi1cLHdLUikgAQtvRFR/nepcF9legl+DywAkUHi5/1MNjlEQvlHyh2XbMiS85yu7/9LgM6Sr+0ukfZY5mSkOcvUkpHn+T+Nw/IrQAQ7lty5luvKUmBpI3ITxSmojJ1aJ0kj/dc0ZcQk+/qo0l0l3/eRLkYjw5j+MZKA8jEubrHzUCke98eSoj8l08+PGAA+DAKNtCwNZe4p6J1Ucod8Lo5RKFfA84CPLVyEzEPQFZ25U9grUK6ilF4GhEia/ndYXLBt3PGW3qa6CBBPM7rH3ABGAyYEtUwzB4CeVedA5o6cKpjRkIebqDNSOqltsr+w7kXdfFVtsK2FMGFZNt5rbpIR+ppztoJ6eOKHmKmi9nQ99ARKkTxRErOs9wJXNHaAuIRV38o1pxRrlQRzGsRuKBqxcQEpC8OPFpyKYcp6iD5l7cO/gRDTamLFyhiUBwKKMP07FAWTEJv8AAAAAABrhAfrtrFhR4yubI7X5QRqMK6xKrj7U3XuBHdGnLqSqcQAAAAAAGp0GAUFVV1YAAAAAAAUYUmIAACcQBsfKUtr4PgZbIXRxRESU79PjE4IBAFUA5i32yLSoX+GmfbRNwS3l2zMPesZrctxliv7fD0pBW0MAAAKqqMJFwAAAAAAqE/NX////+AAAAABkxCb7AAAAAGTEJvoAAAKqIcWxYAAAAAAlR5m4CP/mPsh1IezjYpDlJ4GRb5q4fTs2LjtyO6M0XgVimrIQ4kSh1qg7JKW4gbGkyRntVFR9JO/GNd3FPDit0BK6M+JzXh/h12YNCz9wxlZTvXrNtWNbzqT+91pvl5cphhSPMfAHyEzTPaGR9tKDy9KNu56pmhaY32d2vfEWQmKo22guegeR98oDxs67MmnUraco46a3zEnac2Bm80pasUgMO24="]}}}},"deprecated":true}},"/api/price_feed_ids":{"get":{"tags":["rest"],"summary":"**Deprecated: use /v2/price_feeds instead**","description":"**Deprecated: use /v2/price_feeds instead**\n\nGet the set of price feed IDs.\n\nThis endpoint fetches all of the price feed IDs for which price updates can be retrieved.","operationId":"price_feed_ids","responses":{"200":{"description":"Price feed ids retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RpcPriceIdentifier"}}}}}},"deprecated":true}},"/v2/price_feeds":{"get":{"tags":["rest"],"summary":"Get the set of price feeds.","description":"Get the set of price feeds.\n\nThis endpoint fetches all price feeds from the Pyth network. It can be filtered by asset type\nand query string.","operationId":"price_feeds_metadata","parameters":[{"name":"query","in":"query","description":"Optional query parameter. If provided, the results will be filtered to all price feeds whose symbol contains the query string. Query string is case insensitive.","required":false,"schema":{"type":"string","nullable":true},"example":"bitcoin"},{"name":"asset_type","in":"query","description":"Optional query parameter. If provided, the results will be filtered by asset type. Possible values are crypto, equity, fx, metal, rates. Filter string is case insensitive.","required":false,"schema":{"allOf":[{"$ref":"#/components/schemas/AssetType"}],"nullable":true},"example":"crypto"}],"responses":{"200":{"description":"Price feeds metadata retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceFeedMetadata"}}}}}}}},"/v2/updates/price/latest":{"get":{"tags":["rest"],"summary":"Get the latest price updates by price feed id.","description":"Get the latest price updates by price feed id.\n\nGiven a collection of price feed ids, retrieve the latest Pyth price for each price feed.","operationId":"latest_price_updates","parameters":[{"name":"ids[]","in":"query","description":"Get the most recent price update for this set of price feed ids.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```","required":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceIdInput"}},"example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},{"name":"encoding","in":"query","description":"Optional encoding type. If true, return the price update in the encoding specified by the encoding parameter. Default is `hex`.","required":false,"schema":{"$ref":"#/components/schemas/EncodingType"}},{"name":"parsed","in":"query","description":"If true, include the parsed price update in the `parsed` field of each returned feed. Default is `true`.","required":false,"schema":{"type":"boolean"}},{"name":"ignore_invalid_price_ids","in":"query","description":"If true, invalid price IDs in the `ids` parameter are ignored. Only applicable to the v2 APIs. Default is `false`.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Price updates retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceUpdate"}}}},"404":{"description":"Price ids not found","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/v2/updates/price/stream":{"get":{"tags":["rest"],"summary":"SSE route handler for streaming price updates.","description":"SSE route handler for streaming price updates.","operationId":"price_stream_sse_handler","parameters":[{"name":"ids[]","in":"query","description":"Get the most recent price update for this set of price feed ids.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```","required":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceIdInput"}},"example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},{"name":"encoding","in":"query","description":"Optional encoding type. If true, return the price update in the encoding specified by the encoding parameter. Default is `hex`.","required":false,"schema":{"$ref":"#/components/schemas/EncodingType"}},{"name":"parsed","in":"query","description":"If true, include the parsed price update in the `parsed` field of each returned feed. Default is `true`.","required":false,"schema":{"type":"boolean"}},{"name":"allow_unordered","in":"query","description":"If true, allows unordered price updates to be included in the stream.","required":false,"schema":{"type":"boolean"}},{"name":"benchmarks_only","in":"query","description":"If true, only include benchmark prices that are the initial price updates at a given timestamp (i.e., prevPubTime != pubTime).","required":false,"schema":{"type":"boolean"}},{"name":"ignore_invalid_price_ids","in":"query","description":"If true, invalid price IDs in the `ids` parameter are ignored. Only applicable to the v2 APIs. Default is `false`.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Price updates retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceUpdate"}}}},"404":{"description":"Price ids not found","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/v2/updates/price/{publish_time}":{"get":{"tags":["rest"],"summary":"Get the latest price updates by price feed id.","description":"Get the latest price updates by price feed id.\n\nGiven a collection of price feed ids, retrieve the latest Pyth price for each price feed.","operationId":"timestamp_price_updates","parameters":[{"name":"publish_time","in":"path","description":"The unix timestamp in seconds. This endpoint will return the first update whose\npublish_time is >= the provided value.","required":true,"schema":{"type":"integer","format":"int64"},"example":1717632000},{"name":"ids[]","in":"query","description":"Get the most recent price update for this set of price feed ids.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```","required":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceIdInput"}},"example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},{"name":"encoding","in":"query","description":"Optional encoding type. If true, return the price update in the encoding specified by the encoding parameter. Default is `hex`.","required":false,"schema":{"$ref":"#/components/schemas/EncodingType"}},{"name":"parsed","in":"query","description":"If true, include the parsed price update in the `parsed` field of each returned feed. Default is `true`.","required":false,"schema":{"type":"boolean"}},{"name":"ignore_invalid_price_ids","in":"query","description":"If true, invalid price IDs in the `ids` parameter are ignored. Only applicable to the v2 APIs. Default is `false`.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Price updates retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceUpdate"}}}},"404":{"description":"Price ids not found","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/v2/updates/publisher_stake_caps/latest":{"get":{"tags":["rest"],"summary":"Get the most recent publisher stake caps update data.","description":"Get the most recent publisher stake caps update data.","operationId":"latest_publisher_stake_caps","parameters":[{"name":"encoding","in":"query","description":"Get the most recent publisher stake caps update data.\nOptional encoding type. If true, return the message in the encoding specified by the encoding parameter. Default is `hex`.","required":false,"schema":{"$ref":"#/components/schemas/EncodingType"}},{"name":"parsed","in":"query","description":"If true, include the parsed update in the `parsed` field of each returned feed. Default is `true`.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Publisher stake caps update data retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LatestPublisherStakeCapsUpdateDataResponse"}}}}}}},"/v2/updates/twap/{window_seconds}/latest":{"get":{"tags":["rest"],"summary":"Get the latest TWAP by price feed id with a custom time window.","description":"Get the latest TWAP by price feed id with a custom time window.\n\nGiven a collection of price feed ids, retrieve the latest Pyth TWAP price for each price feed.","operationId":"latest_twaps","parameters":[{"name":"window_seconds","in":"path","description":"The time window in seconds over which to calculate the TWAP, ending at the current time.\nFor example, a value of 300 would return the most recent 5 minute TWAP.\nMust be greater than 0 and less than or equal to 600 seconds (10 minutes).","required":true,"schema":{"type":"integer","format":"int64","minimum":0},"example":"300"},{"name":"ids[]","in":"query","description":"Get the most recent TWAP (time weighted average price) for this set of price feed ids.\nThe `binary` data contains the signed start & end cumulative price updates needed to calculate\nthe TWAPs on-chain. The `parsed` data contains the calculated TWAPs.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```","required":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceIdInput"}},"example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},{"name":"encoding","in":"query","description":"Optional encoding type. If true, return the cumulative price updates in the encoding specified by the encoding parameter. Default is `hex`.","required":false,"schema":{"$ref":"#/components/schemas/EncodingType"}},{"name":"parsed","in":"query","description":"If true, include the calculated TWAP in the `parsed` field of each returned feed. Default is `true`.","required":false,"schema":{"type":"boolean"}},{"name":"ignore_invalid_price_ids","in":"query","description":"If true, invalid price IDs in the `ids` parameter are ignored. Only applicable to the v2 APIs. Default is `false`.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"TWAPs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TwapsResponse"}}}},"404":{"description":"Price ids not found","content":{"text/plain":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"AssetType":{"type":"string","enum":["crypto","fx","equity","metal","rates","crypto_redemption_rate"]},"BinaryUpdate":{"type":"object","required":["encoding","data"],"properties":{"data":{"type":"array","items":{"type":"string"}},"encoding":{"$ref":"#/components/schemas/EncodingType"}}},"EncodingType":{"type":"string","enum":["hex","base64"]},"GetVaaCcipInput":{"type":"string","format":"binary"},"GetVaaCcipResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"string"}}},"GetVaaResponse":{"type":"object","required":["vaa","publishTime"],"properties":{"publishTime":{"type":"integer","format":"int64","example":1690576641},"vaa":{"type":"string","description":"The VAA binary represented as a base64 string.","example":"UE5BVQEAAAADuAEAAAADDQC1H7meY5fTed0FsykIb8dt+7nKpbuzfvU2DplDi+dcUl8MC+UIkS65+rkiq+zmNBxE2gaxkBkjdIicZ/fBo+X7AAEqp+WtlWb84np8jJfLpuQ2W+l5KXTigsdAhz5DyVgU3xs+EnaIZxBwcE7EKzjMam+V9rlRy0CGsiQ1kjqqLzfAAQLsoVO0Vu5gVmgc8XGQ7xYhoz36rsBgMjG+e3l/B01esQi/KzPuBf/Ar8Sg5aSEOvEU0muSDb+KIr6d8eEC+FtcAAPZEaBSt4ysXVL84LUcJemQD3SiG30kOfUpF8o7/wI2M2Jf/LyCsbKEQUyLtLbZqnJBSfZJR5AMsrnHDqngMLEGAAY4UDG9GCpRuPvg8hOlsrXuPP3zq7yVPqyG0SG+bNo8rEhP5b1vXlHdG4bZsutX47d5VZ6xnFROKudx3T3/fnWUAQgAU1+kUFc3e0ZZeX1dLRVEryNIVyxMQIcxWwdey+jlIAYowHRM0fJX3Scs80OnT/CERwh5LMlFyU1w578NqxW+AQl2E/9fxjgUTi8crOfDpwsUsmOWw0+Q5OUGhELv/2UZoHAjsaw9OinWUggKACo4SdpPlHYldoWF+J2yGWOW+F4iAQre4c+ocb6a9uSWOnTldFkioqhd9lhmV542+VonCvuy4Tu214NP+2UNd/4Kk3KJCf3iziQJrCBeLi1cLHdLUikgAQtvRFR/nepcF9legl+DywAkUHi5/1MNjlEQvlHyh2XbMiS85yu7/9LgM6Sr+0ukfZY5mSkOcvUkpHn+T+Nw/IrQAQ7lty5luvKUmBpI3ITxSmojJ1aJ0kj/dc0ZcQk+/qo0l0l3/eRLkYjw5j+MZKA8jEubrHzUCke98eSoj8l08+PGAA+DAKNtCwNZe4p6J1Ucod8Lo5RKFfA84CPLVyEzEPQFZ25U9grUK6ilF4GhEia/ndYXLBt3PGW3qa6CBBPM7rH3ABGAyYEtUwzB4CeVedA5o6cKpjRkIebqDNSOqltsr+w7kXdfFVtsK2FMGFZNt5rbpIR+ppztoJ6eOKHmKmi9nQ99ARKkTxRErOs9wJXNHaAuIRV38o1pxRrlQRzGsRuKBqxcQEpC8OPFpyKYcp6iD5l7cO/gRDTamLFyhiUBwKKMP07FAWTEJv8AAAAAABrhAfrtrFhR4yubI7X5QRqMK6xKrj7U3XuBHdGnLqSqcQAAAAAAGp0GAUFVV1YAAAAAAAUYUmIAACcQBsfKUtr4PgZbIXRxRESU79PjE4IBAFUA5i32yLSoX+GmfbRNwS3l2zMPesZrctxliv7fD0pBW0MAAAKqqMJFwAAAAAAqE/NX////+AAAAABkxCb7AAAAAGTEJvoAAAKqIcWxYAAAAAAlR5m4CP/mPsh1IezjYpDlJ4GRb5q4fTs2LjtyO6M0XgVimrIQ4kSh1qg7JKW4gbGkyRntVFR9JO/GNd3FPDit0BK6M+JzXh/h12YNCz9wxlZTvXrNtWNbzqT+91pvl5cphhSPMfAHyEzTPaGR9tKDy9KNu56pmhaY32d2vfEWQmKo22guegeR98oDxs67MmnUraco46a3zEnac2Bm80pasUgMO24="}}},"LatestPublisherStakeCapsUpdateDataResponse":{"type":"object","required":["binary"],"properties":{"binary":{"$ref":"#/components/schemas/BinaryUpdate"},"parsed":{"type":"array","items":{"$ref":"#/components/schemas/ParsedPublisherStakeCapsUpdate"},"nullable":true}}},"ParsedPriceFeedTwap":{"type":"object","required":["id","start_timestamp","end_timestamp","twap","down_slots_ratio"],"properties":{"down_slots_ratio":{"type":"string","description":"The % of slots where the network was down over the TWAP window.\nA value of zero indicates no slots were missed over the window, and\na value of one indicates that every slot was missed over the window.\nThis is a float value stored as a string to avoid precision loss."},"end_timestamp":{"type":"integer","format":"int64","description":"The end unix timestamp of the window"},"id":{"$ref":"#/components/schemas/RpcPriceIdentifier"},"start_timestamp":{"type":"integer","format":"int64","description":"The start unix timestamp of the window"},"twap":{"$ref":"#/components/schemas/RpcPrice"}}},"ParsedPriceUpdate":{"type":"object","required":["id","price","ema_price","metadata"],"properties":{"ema_price":{"$ref":"#/components/schemas/RpcPrice"},"id":{"$ref":"#/components/schemas/RpcPriceIdentifier"},"metadata":{"$ref":"#/components/schemas/RpcPriceFeedMetadataV2"},"price":{"$ref":"#/components/schemas/RpcPrice"}}},"ParsedPublisherStakeCap":{"type":"object","required":["publisher","cap"],"properties":{"cap":{"type":"integer","format":"int64","minimum":0},"publisher":{"type":"string"}}},"ParsedPublisherStakeCapsUpdate":{"type":"object","required":["publisher_stake_caps"],"properties":{"publisher_stake_caps":{"type":"array","items":{"$ref":"#/components/schemas/ParsedPublisherStakeCap"}}}},"PriceFeedMetadata":{"type":"object","required":["id","attributes"],"properties":{"attributes":{"type":"object","additionalProperties":{"type":"string"}},"id":{"$ref":"#/components/schemas/RpcPriceIdentifier"}}},"PriceIdInput":{"type":"string","description":"A price id is a 32-byte hex string, optionally prefixed with \"0x\".\nPrice ids are case insensitive.\n\nExamples:\n* 0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43\n* e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43\n\nSee https://pyth.network/developers/price-feed-ids for a list of all price feed ids.","example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},"PriceUpdate":{"type":"object","required":["binary"],"properties":{"binary":{"$ref":"#/components/schemas/BinaryUpdate"},"parsed":{"type":"array","items":{"$ref":"#/components/schemas/ParsedPriceUpdate"},"nullable":true}}},"RpcPrice":{"type":"object","description":"A price with a degree of uncertainty at a certain time, represented as a price +- a confidence\ninterval.\n\nThe confidence interval roughly corresponds to the standard error of a normal distribution.\nBoth the price and confidence are stored in a fixed-point numeric representation, `x *\n10^expo`, where `expo` is the exponent. For example:","required":["price","conf","expo","publish_time"],"properties":{"conf":{"type":"string","description":"The confidence interval associated with the price, stored as a string to avoid precision loss","example":"509500001"},"expo":{"type":"integer","format":"int32","description":"The exponent associated with both the price and confidence interval. Multiply those values\nby `10^expo` to get the real value.","example":-8},"price":{"type":"string","description":"The price itself, stored as a string to avoid precision loss","example":"2920679499999"},"publish_time":{"type":"integer","format":"int64","description":"When the price was published. The `publish_time` is a unix timestamp, i.e., the number of\nseconds since the Unix epoch (00:00:00 UTC on 1 Jan 1970).","example":1717632000}}},"RpcPriceFeed":{"type":"object","required":["id","price","ema_price"],"properties":{"ema_price":{"$ref":"#/components/schemas/RpcPrice"},"id":{"$ref":"#/components/schemas/RpcPriceIdentifier"},"metadata":{"allOf":[{"$ref":"#/components/schemas/RpcPriceFeedMetadata"}],"nullable":true},"price":{"$ref":"#/components/schemas/RpcPrice"},"vaa":{"type":"string","description":"The VAA binary represented as a base64 string.","example":"UE5BVQEAAAADuAEAAAADDQC1H7meY5fTed0FsykIb8dt+7nKpbuzfvU2DplDi+dcUl8MC+UIkS65+rkiq+zmNBxE2gaxkBkjdIicZ/fBo+X7AAEqp+WtlWb84np8jJfLpuQ2W+l5KXTigsdAhz5DyVgU3xs+EnaIZxBwcE7EKzjMam+V9rlRy0CGsiQ1kjqqLzfAAQLsoVO0Vu5gVmgc8XGQ7xYhoz36rsBgMjG+e3l/B01esQi/KzPuBf/Ar8Sg5aSEOvEU0muSDb+KIr6d8eEC+FtcAAPZEaBSt4ysXVL84LUcJemQD3SiG30kOfUpF8o7/wI2M2Jf/LyCsbKEQUyLtLbZqnJBSfZJR5AMsrnHDqngMLEGAAY4UDG9GCpRuPvg8hOlsrXuPP3zq7yVPqyG0SG+bNo8rEhP5b1vXlHdG4bZsutX47d5VZ6xnFROKudx3T3/fnWUAQgAU1+kUFc3e0ZZeX1dLRVEryNIVyxMQIcxWwdey+jlIAYowHRM0fJX3Scs80OnT/CERwh5LMlFyU1w578NqxW+AQl2E/9fxjgUTi8crOfDpwsUsmOWw0+Q5OUGhELv/2UZoHAjsaw9OinWUggKACo4SdpPlHYldoWF+J2yGWOW+F4iAQre4c+ocb6a9uSWOnTldFkioqhd9lhmV542+VonCvuy4Tu214NP+2UNd/4Kk3KJCf3iziQJrCBeLi1cLHdLUikgAQtvRFR/nepcF9legl+DywAkUHi5/1MNjlEQvlHyh2XbMiS85yu7/9LgM6Sr+0ukfZY5mSkOcvUkpHn+T+Nw/IrQAQ7lty5luvKUmBpI3ITxSmojJ1aJ0kj/dc0ZcQk+/qo0l0l3/eRLkYjw5j+MZKA8jEubrHzUCke98eSoj8l08+PGAA+DAKNtCwNZe4p6J1Ucod8Lo5RKFfA84CPLVyEzEPQFZ25U9grUK6ilF4GhEia/ndYXLBt3PGW3qa6CBBPM7rH3ABGAyYEtUwzB4CeVedA5o6cKpjRkIebqDNSOqltsr+w7kXdfFVtsK2FMGFZNt5rbpIR+ppztoJ6eOKHmKmi9nQ99ARKkTxRErOs9wJXNHaAuIRV38o1pxRrlQRzGsRuKBqxcQEpC8OPFpyKYcp6iD5l7cO/gRDTamLFyhiUBwKKMP07FAWTEJv8AAAAAABrhAfrtrFhR4yubI7X5QRqMK6xKrj7U3XuBHdGnLqSqcQAAAAAAGp0GAUFVV1YAAAAAAAUYUmIAACcQBsfKUtr4PgZbIXRxRESU79PjE4IBAFUA5i32yLSoX+GmfbRNwS3l2zMPesZrctxliv7fD0pBW0MAAAKqqMJFwAAAAAAqE/NX////+AAAAABkxCb7AAAAAGTEJvoAAAKqIcWxYAAAAAAlR5m4CP/mPsh1IezjYpDlJ4GRb5q4fTs2LjtyO6M0XgVimrIQ4kSh1qg7JKW4gbGkyRntVFR9JO/GNd3FPDit0BK6M+JzXh/h12YNCz9wxlZTvXrNtWNbzqT+91pvl5cphhSPMfAHyEzTPaGR9tKDy9KNu56pmhaY32d2vfEWQmKo22guegeR98oDxs67MmnUraco46a3zEnac2Bm80pasUgMO24=","nullable":true}}},"RpcPriceFeedMetadata":{"type":"object","required":["emitter_chain"],"properties":{"emitter_chain":{"type":"integer","format":"int32","example":26,"minimum":0},"prev_publish_time":{"type":"integer","format":"int64","example":1717632000,"nullable":true},"price_service_receive_time":{"type":"integer","format":"int64","example":1717632000,"nullable":true},"slot":{"type":"integer","format":"int64","example":85480034,"nullable":true,"minimum":0}}},"RpcPriceFeedMetadataV2":{"type":"object","properties":{"prev_publish_time":{"type":"integer","format":"int64","example":1717632000,"nullable":true},"proof_available_time":{"type":"integer","format":"int64","example":1717632000,"nullable":true},"slot":{"type":"integer","format":"int64","example":85480034,"nullable":true,"minimum":0}}},"RpcPriceIdentifier":{"type":"string","example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},"TwapsResponse":{"type":"object","required":["binary"],"properties":{"binary":{"$ref":"#/components/schemas/BinaryUpdate"},"parsed":{"type":"array","items":{"$ref":"#/components/schemas/ParsedPriceFeedTwap"},"description":"The calculated TWAPs for each price ID","nullable":true}}}}},"tags":[{"name":"hermes","description":"Pyth Real-Time Pricing API"}]}
\ No newline at end of file
+{"openapi":"3.0.3","info":{"title":"hermes","description":"Hermes is an agent that provides Verified Prices from the Pythnet Pyth Oracle.","license":{"name":""},"version":"0.8.2"},"paths":{"/api/get_price_feed":{"get":{"tags":["rest"],"summary":"**Deprecated: use /v2/updates/price/{publish_time} instead**","description":"**Deprecated: use /v2/updates/price/{publish_time} instead**\n\nGet a price update for a price feed with a specific timestamp\n\nGiven a price feed id and timestamp, retrieve the Pyth price update closest to that timestamp.","operationId":"get_price_feed","parameters":[{"name":"id","in":"query","description":"The id of the price feed to get an update for.","required":true,"schema":{"$ref":"#/components/schemas/PriceIdInput"}},{"name":"publish_time","in":"query","description":"The unix timestamp in seconds. This endpoint will return the first update whose\npublish_time is >= the provided value.","required":true,"schema":{"type":"integer","format":"int64"},"example":1717632000},{"name":"verbose","in":"query","description":"If true, include the `metadata` field in the response with additional metadata about the\nprice update.","required":false,"schema":{"type":"boolean"}},{"name":"binary","in":"query","description":"If true, include the binary price update in the `vaa` field of each returned feed. This\nbinary data can be submitted to Pyth contracts to update the on-chain price.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Price update retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcPriceFeed"}}}}},"deprecated":true}},"/api/get_vaa":{"get":{"tags":["rest"],"summary":"**Deprecated: use /v2/updates/price/{publish_time} instead**","description":"**Deprecated: use /v2/updates/price/{publish_time} instead**\n\nGet a VAA for a price feed with a specific timestamp\n\nGiven a price feed id and timestamp, retrieve the Pyth price update closest to that timestamp.","operationId":"get_vaa","parameters":[{"name":"id","in":"query","description":"The ID of the price feed to get an update for.","required":true,"schema":{"$ref":"#/components/schemas/PriceIdInput"}},{"name":"publish_time","in":"query","description":"The unix timestamp in seconds. This endpoint will return the first update whose\npublish_time is >= the provided value.","required":true,"schema":{"type":"integer","format":"int64"},"example":1690576641}],"responses":{"200":{"description":"Price update retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetVaaResponse"}}}},"404":{"description":"Price update not found","content":{"text/plain":{"schema":{"type":"string"}}}}},"deprecated":true}},"/api/get_vaa_ccip":{"get":{"tags":["rest"],"summary":"**Deprecated: use /v2/updates/price/{publish_time} instead**","description":"**Deprecated: use /v2/updates/price/{publish_time} instead**\n\nGet a VAA for a price feed using CCIP\n\nThis endpoint accepts a single argument which is a hex-encoded byte string of the following form:\n`<price feed id (32 bytes> <publish time as unix timestamp (8 bytes, big endian)>`","operationId":"get_vaa_ccip","parameters":[{"name":"data","in":"query","required":true,"schema":{"$ref":"#/components/schemas/GetVaaCcipInput"}}],"responses":{"200":{"description":"Price update retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetVaaCcipResponse"}}}}},"deprecated":true}},"/api/latest_price_feeds":{"get":{"tags":["rest"],"summary":"**Deprecated: use /v2/updates/price/latest instead**","description":"**Deprecated: use /v2/updates/price/latest instead**\n\nGet the latest price updates by price feed id.\n\nGiven a collection of price feed ids, retrieve the latest Pyth price for each price feed.","operationId":"latest_price_feeds","parameters":[{"name":"ids[]","in":"query","description":"Get the most recent price update for this set of price feed ids.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```","required":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceIdInput"}},"example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},{"name":"verbose","in":"query","description":"If true, include the `metadata` field in the response with additional metadata about\nthe price update.","required":false,"schema":{"type":"boolean"}},{"name":"binary","in":"query","description":"If true, include the binary price update in the `vaa` field of each returned feed.\nThis binary data can be submitted to Pyth contracts to update the on-chain price.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Price updates retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RpcPriceFeed"}}}}}},"deprecated":true}},"/api/latest_vaas":{"get":{"tags":["rest"],"summary":"**Deprecated: use /v2/updates/price/latest instead**","description":"**Deprecated: use /v2/updates/price/latest instead**\n\nGet VAAs for a set of price feed ids.\n\nGiven a collection of price feed ids, retrieve the latest VAA for each. The returned VAA(s) can\nbe submitted to the Pyth contract to update the on-chain price. If VAAs are not found for every\nprovided price ID the call will fail.","operationId":"latest_vaas","parameters":[{"name":"ids[]","in":"query","description":"Get the VAAs for this set of price feed ids.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```","required":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceIdInput"}},"example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"}],"responses":{"200":{"description":"VAAs retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}},"example":["UE5BVQEAAAADuAEAAAADDQC1H7meY5fTed0FsykIb8dt+7nKpbuzfvU2DplDi+dcUl8MC+UIkS65+rkiq+zmNBxE2gaxkBkjdIicZ/fBo+X7AAEqp+WtlWb84np8jJfLpuQ2W+l5KXTigsdAhz5DyVgU3xs+EnaIZxBwcE7EKzjMam+V9rlRy0CGsiQ1kjqqLzfAAQLsoVO0Vu5gVmgc8XGQ7xYhoz36rsBgMjG+e3l/B01esQi/KzPuBf/Ar8Sg5aSEOvEU0muSDb+KIr6d8eEC+FtcAAPZEaBSt4ysXVL84LUcJemQD3SiG30kOfUpF8o7/wI2M2Jf/LyCsbKEQUyLtLbZqnJBSfZJR5AMsrnHDqngMLEGAAY4UDG9GCpRuPvg8hOlsrXuPP3zq7yVPqyG0SG+bNo8rEhP5b1vXlHdG4bZsutX47d5VZ6xnFROKudx3T3/fnWUAQgAU1+kUFc3e0ZZeX1dLRVEryNIVyxMQIcxWwdey+jlIAYowHRM0fJX3Scs80OnT/CERwh5LMlFyU1w578NqxW+AQl2E/9fxjgUTi8crOfDpwsUsmOWw0+Q5OUGhELv/2UZoHAjsaw9OinWUggKACo4SdpPlHYldoWF+J2yGWOW+F4iAQre4c+ocb6a9uSWOnTldFkioqhd9lhmV542+VonCvuy4Tu214NP+2UNd/4Kk3KJCf3iziQJrCBeLi1cLHdLUikgAQtvRFR/nepcF9legl+DywAkUHi5/1MNjlEQvlHyh2XbMiS85yu7/9LgM6Sr+0ukfZY5mSkOcvUkpHn+T+Nw/IrQAQ7lty5luvKUmBpI3ITxSmojJ1aJ0kj/dc0ZcQk+/qo0l0l3/eRLkYjw5j+MZKA8jEubrHzUCke98eSoj8l08+PGAA+DAKNtCwNZe4p6J1Ucod8Lo5RKFfA84CPLVyEzEPQFZ25U9grUK6ilF4GhEia/ndYXLBt3PGW3qa6CBBPM7rH3ABGAyYEtUwzB4CeVedA5o6cKpjRkIebqDNSOqltsr+w7kXdfFVtsK2FMGFZNt5rbpIR+ppztoJ6eOKHmKmi9nQ99ARKkTxRErOs9wJXNHaAuIRV38o1pxRrlQRzGsRuKBqxcQEpC8OPFpyKYcp6iD5l7cO/gRDTamLFyhiUBwKKMP07FAWTEJv8AAAAAABrhAfrtrFhR4yubI7X5QRqMK6xKrj7U3XuBHdGnLqSqcQAAAAAAGp0GAUFVV1YAAAAAAAUYUmIAACcQBsfKUtr4PgZbIXRxRESU79PjE4IBAFUA5i32yLSoX+GmfbRNwS3l2zMPesZrctxliv7fD0pBW0MAAAKqqMJFwAAAAAAqE/NX////+AAAAABkxCb7AAAAAGTEJvoAAAKqIcWxYAAAAAAlR5m4CP/mPsh1IezjYpDlJ4GRb5q4fTs2LjtyO6M0XgVimrIQ4kSh1qg7JKW4gbGkyRntVFR9JO/GNd3FPDit0BK6M+JzXh/h12YNCz9wxlZTvXrNtWNbzqT+91pvl5cphhSPMfAHyEzTPaGR9tKDy9KNu56pmhaY32d2vfEWQmKo22guegeR98oDxs67MmnUraco46a3zEnac2Bm80pasUgMO24="]}}}},"deprecated":true}},"/api/price_feed_ids":{"get":{"tags":["rest"],"summary":"**Deprecated: use /v2/price_feeds instead**","description":"**Deprecated: use /v2/price_feeds instead**\n\nGet the set of price feed IDs.\n\nThis endpoint fetches all of the price feed IDs for which price updates can be retrieved.","operationId":"price_feed_ids","responses":{"200":{"description":"Price feed ids retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RpcPriceIdentifier"}}}}}},"deprecated":true}},"/v2/price_feeds":{"get":{"tags":["rest"],"summary":"Get the set of price feeds.","description":"Get the set of price feeds.\n\nThis endpoint fetches all price feeds from the Pyth network. It can be filtered by asset type\nand query string.","operationId":"price_feeds_metadata","parameters":[{"name":"query","in":"query","description":"Optional query parameter. If provided, the results will be filtered to all price feeds whose symbol contains the query string. Query string is case insensitive.","required":false,"schema":{"type":"string","nullable":true},"example":"bitcoin"},{"name":"asset_type","in":"query","description":"Optional query parameter. If provided, the results will be filtered by asset type. Possible values are crypto, equity, fx, metal, rates. Filter string is case insensitive.","required":false,"schema":{"allOf":[{"$ref":"#/components/schemas/AssetType"}],"nullable":true},"example":"crypto"}],"responses":{"200":{"description":"Price feeds metadata retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceFeedMetadata"}}}}}}}},"/v2/updates/price/latest":{"get":{"tags":["rest"],"summary":"Get the latest price updates by price feed id.","description":"Get the latest price updates by price feed id.\n\nGiven a collection of price feed ids, retrieve the latest Pyth price for each price feed.","operationId":"latest_price_updates","parameters":[{"name":"ids[]","in":"query","description":"Get the most recent price update for this set of price feed ids.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```","required":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceIdInput"}},"example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},{"name":"encoding","in":"query","description":"Optional encoding type. If true, return the price update in the encoding specified by the encoding parameter. Default is `hex`.","required":false,"schema":{"$ref":"#/components/schemas/EncodingType"}},{"name":"parsed","in":"query","description":"If true, include the parsed price update in the `parsed` field of each returned feed. Default is `true`.","required":false,"schema":{"type":"boolean"}},{"name":"ignore_invalid_price_ids","in":"query","description":"If true, invalid price IDs in the `ids` parameter are ignored. Only applicable to the v2 APIs. Default is `false`.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Price updates retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceUpdate"}}}},"404":{"description":"Price ids not found","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/v2/updates/price/stream":{"get":{"tags":["rest"],"summary":"SSE route handler for streaming price updates.","description":"SSE route handler for streaming price updates.","operationId":"price_stream_sse_handler","parameters":[{"name":"ids[]","in":"query","description":"Get the most recent price update for this set of price feed ids.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```","required":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceIdInput"}},"example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},{"name":"encoding","in":"query","description":"Optional encoding type. If true, return the price update in the encoding specified by the encoding parameter. Default is `hex`.","required":false,"schema":{"$ref":"#/components/schemas/EncodingType"}},{"name":"parsed","in":"query","description":"If true, include the parsed price update in the `parsed` field of each returned feed. Default is `true`.","required":false,"schema":{"type":"boolean"}},{"name":"allow_unordered","in":"query","description":"If true, allows unordered price updates to be included in the stream.","required":false,"schema":{"type":"boolean"}},{"name":"benchmarks_only","in":"query","description":"If true, only include benchmark prices that are the initial price updates at a given timestamp (i.e., prevPubTime != pubTime).","required":false,"schema":{"type":"boolean"}},{"name":"ignore_invalid_price_ids","in":"query","description":"If true, invalid price IDs in the `ids` parameter are ignored. Only applicable to the v2 APIs. Default is `false`.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Price updates retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceUpdate"}}}},"404":{"description":"Price ids not found","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/v2/updates/price/{publish_time}":{"get":{"tags":["rest"],"summary":"Get the latest price updates by price feed id.","description":"Get the latest price updates by price feed id.\n\nGiven a collection of price feed ids, retrieve the latest Pyth price for each price feed.","operationId":"timestamp_price_updates","parameters":[{"name":"publish_time","in":"path","description":"The unix timestamp in seconds. This endpoint will return the first update whose\npublish_time is >= the provided value.","required":true,"schema":{"type":"integer","format":"int64"},"example":1717632000},{"name":"ids[]","in":"query","description":"Get the most recent price update for this set of price feed ids.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```","required":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceIdInput"}},"example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},{"name":"encoding","in":"query","description":"Optional encoding type. If true, return the price update in the encoding specified by the encoding parameter. Default is `hex`.","required":false,"schema":{"$ref":"#/components/schemas/EncodingType"}},{"name":"parsed","in":"query","description":"If true, include the parsed price update in the `parsed` field of each returned feed. Default is `true`.","required":false,"schema":{"type":"boolean"}},{"name":"ignore_invalid_price_ids","in":"query","description":"If true, invalid price IDs in the `ids` parameter are ignored. Only applicable to the v2 APIs. Default is `false`.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Price updates retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceUpdate"}}}},"404":{"description":"Price ids not found","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/v2/updates/publisher_stake_caps/latest":{"get":{"tags":["rest"],"summary":"Get the most recent publisher stake caps update data.","description":"Get the most recent publisher stake caps update data.","operationId":"latest_publisher_stake_caps","parameters":[{"name":"encoding","in":"query","description":"Get the most recent publisher stake caps update data.\nOptional encoding type. If true, return the message in the encoding specified by the encoding parameter. Default is `hex`.","required":false,"schema":{"$ref":"#/components/schemas/EncodingType"}},{"name":"parsed","in":"query","description":"If true, include the parsed update in the `parsed` field of each returned feed. Default is `true`.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Publisher stake caps update data retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LatestPublisherStakeCapsUpdateDataResponse"}}}}}}},"/v2/updates/twap/{window_seconds}/latest":{"get":{"tags":["rest"],"summary":"Get the latest TWAP by price feed id with a custom time window.","description":"Get the latest TWAP by price feed id with a custom time window.\n\nGiven a collection of price feed ids, retrieve the latest Pyth TWAP price for each price feed.","operationId":"latest_twaps","parameters":[{"name":"window_seconds","in":"path","description":"The time window in seconds over which to calculate the TWAP, ending at the current time.\nFor example, a value of 300 would return the most recent 5 minute TWAP.\nMust be greater than 0 and less than or equal to 600 seconds (10 minutes).","required":true,"schema":{"type":"integer","format":"int64","minimum":0},"example":"300"},{"name":"ids[]","in":"query","description":"Get the most recent TWAP (time weighted average price) for this set of price feed ids.\nThe `binary` data contains the signed start & end cumulative price updates needed to calculate\nthe TWAPs on-chain. The `parsed` data contains the calculated TWAPs.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```","required":true,"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceIdInput"}},"example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},{"name":"encoding","in":"query","description":"Optional encoding type. If true, return the cumulative price updates in the encoding specified by the encoding parameter. Default is `hex`.","required":false,"schema":{"$ref":"#/components/schemas/EncodingType"}},{"name":"parsed","in":"query","description":"If true, include the calculated TWAP in the `parsed` field of each returned feed. Default is `true`.","required":false,"schema":{"type":"boolean"}},{"name":"ignore_invalid_price_ids","in":"query","description":"If true, invalid price IDs in the `ids` parameter are ignored. Only applicable to the v2 APIs. Default is `false`.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"TWAPs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TwapsResponse"}}}},"404":{"description":"Price ids not found","content":{"text/plain":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"AssetType":{"type":"string","enum":["crypto","fx","equity","metal","rates","crypto_redemption_rate"]},"BinaryUpdate":{"type":"object","required":["encoding","data"],"properties":{"data":{"type":"array","items":{"type":"string"}},"encoding":{"$ref":"#/components/schemas/EncodingType"}}},"EncodingType":{"type":"string","enum":["hex","base64"]},"GetVaaCcipInput":{"type":"string","format":"binary"},"GetVaaCcipResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"string"}}},"GetVaaResponse":{"type":"object","required":["vaa","publishTime"],"properties":{"publishTime":{"type":"integer","format":"int64","example":1690576641},"vaa":{"type":"string","description":"The VAA binary represented as a base64 string.","example":"UE5BVQEAAAADuAEAAAADDQC1H7meY5fTed0FsykIb8dt+7nKpbuzfvU2DplDi+dcUl8MC+UIkS65+rkiq+zmNBxE2gaxkBkjdIicZ/fBo+X7AAEqp+WtlWb84np8jJfLpuQ2W+l5KXTigsdAhz5DyVgU3xs+EnaIZxBwcE7EKzjMam+V9rlRy0CGsiQ1kjqqLzfAAQLsoVO0Vu5gVmgc8XGQ7xYhoz36rsBgMjG+e3l/B01esQi/KzPuBf/Ar8Sg5aSEOvEU0muSDb+KIr6d8eEC+FtcAAPZEaBSt4ysXVL84LUcJemQD3SiG30kOfUpF8o7/wI2M2Jf/LyCsbKEQUyLtLbZqnJBSfZJR5AMsrnHDqngMLEGAAY4UDG9GCpRuPvg8hOlsrXuPP3zq7yVPqyG0SG+bNo8rEhP5b1vXlHdG4bZsutX47d5VZ6xnFROKudx3T3/fnWUAQgAU1+kUFc3e0ZZeX1dLRVEryNIVyxMQIcxWwdey+jlIAYowHRM0fJX3Scs80OnT/CERwh5LMlFyU1w578NqxW+AQl2E/9fxjgUTi8crOfDpwsUsmOWw0+Q5OUGhELv/2UZoHAjsaw9OinWUggKACo4SdpPlHYldoWF+J2yGWOW+F4iAQre4c+ocb6a9uSWOnTldFkioqhd9lhmV542+VonCvuy4Tu214NP+2UNd/4Kk3KJCf3iziQJrCBeLi1cLHdLUikgAQtvRFR/nepcF9legl+DywAkUHi5/1MNjlEQvlHyh2XbMiS85yu7/9LgM6Sr+0ukfZY5mSkOcvUkpHn+T+Nw/IrQAQ7lty5luvKUmBpI3ITxSmojJ1aJ0kj/dc0ZcQk+/qo0l0l3/eRLkYjw5j+MZKA8jEubrHzUCke98eSoj8l08+PGAA+DAKNtCwNZe4p6J1Ucod8Lo5RKFfA84CPLVyEzEPQFZ25U9grUK6ilF4GhEia/ndYXLBt3PGW3qa6CBBPM7rH3ABGAyYEtUwzB4CeVedA5o6cKpjRkIebqDNSOqltsr+w7kXdfFVtsK2FMGFZNt5rbpIR+ppztoJ6eOKHmKmi9nQ99ARKkTxRErOs9wJXNHaAuIRV38o1pxRrlQRzGsRuKBqxcQEpC8OPFpyKYcp6iD5l7cO/gRDTamLFyhiUBwKKMP07FAWTEJv8AAAAAABrhAfrtrFhR4yubI7X5QRqMK6xKrj7U3XuBHdGnLqSqcQAAAAAAGp0GAUFVV1YAAAAAAAUYUmIAACcQBsfKUtr4PgZbIXRxRESU79PjE4IBAFUA5i32yLSoX+GmfbRNwS3l2zMPesZrctxliv7fD0pBW0MAAAKqqMJFwAAAAAAqE/NX////+AAAAABkxCb7AAAAAGTEJvoAAAKqIcWxYAAAAAAlR5m4CP/mPsh1IezjYpDlJ4GRb5q4fTs2LjtyO6M0XgVimrIQ4kSh1qg7JKW4gbGkyRntVFR9JO/GNd3FPDit0BK6M+JzXh/h12YNCz9wxlZTvXrNtWNbzqT+91pvl5cphhSPMfAHyEzTPaGR9tKDy9KNu56pmhaY32d2vfEWQmKo22guegeR98oDxs67MmnUraco46a3zEnac2Bm80pasUgMO24="}}},"LatestPublisherStakeCapsUpdateDataResponse":{"type":"object","required":["binary"],"properties":{"binary":{"$ref":"#/components/schemas/BinaryUpdate"},"parsed":{"type":"array","items":{"$ref":"#/components/schemas/ParsedPublisherStakeCapsUpdate"},"nullable":true}}},"ParsedPriceFeedTwap":{"type":"object","required":["id","start_timestamp","end_timestamp","twap","down_slots_ratio"],"properties":{"down_slots_ratio":{"type":"string","description":"The % of slots where the network was down over the TWAP window.\nA value of zero indicates no slots were missed over the window, and\na value of one indicates that every slot was missed over the window.\nThis is a float value stored as a string to avoid precision loss."},"end_timestamp":{"type":"integer","format":"int64","description":"The end unix timestamp of the window"},"id":{"$ref":"#/components/schemas/RpcPriceIdentifier"},"start_timestamp":{"type":"integer","format":"int64","description":"The start unix timestamp of the window"},"twap":{"$ref":"#/components/schemas/RpcPrice"}}},"ParsedPriceUpdate":{"type":"object","required":["id","price","ema_price","metadata"],"properties":{"ema_price":{"$ref":"#/components/schemas/RpcPrice"},"id":{"$ref":"#/components/schemas/RpcPriceIdentifier"},"metadata":{"$ref":"#/components/schemas/RpcPriceFeedMetadataV2"},"price":{"$ref":"#/components/schemas/RpcPrice"}}},"ParsedPublisherStakeCap":{"type":"object","required":["publisher","cap"],"properties":{"cap":{"type":"integer","format":"int64","minimum":0},"publisher":{"type":"string"}}},"ParsedPublisherStakeCapsUpdate":{"type":"object","required":["publisher_stake_caps"],"properties":{"publisher_stake_caps":{"type":"array","items":{"$ref":"#/components/schemas/ParsedPublisherStakeCap"}}}},"PriceFeedMetadata":{"type":"object","required":["id","attributes"],"properties":{"attributes":{"type":"object","additionalProperties":{"type":"string"}},"id":{"$ref":"#/components/schemas/RpcPriceIdentifier"}}},"PriceIdInput":{"type":"string","description":"A price id is a 32-byte hex string, optionally prefixed with \"0x\".\nPrice ids are case insensitive.\n\nExamples:\n* 0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43\n* e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43\n\nSee https://pyth.network/developers/price-feed-ids for a list of all price feed ids.","example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},"PriceUpdate":{"type":"object","required":["binary"],"properties":{"binary":{"$ref":"#/components/schemas/BinaryUpdate"},"parsed":{"type":"array","items":{"$ref":"#/components/schemas/ParsedPriceUpdate"},"nullable":true}}},"RpcPrice":{"type":"object","description":"A price with a degree of uncertainty at a certain time, represented as a price +- a confidence\ninterval.\n\nThe confidence interval roughly corresponds to the standard error of a normal distribution.\nBoth the price and confidence are stored in a fixed-point numeric representation, `x *\n10^expo`, where `expo` is the exponent. For example:","required":["price","conf","expo","publish_time"],"properties":{"conf":{"type":"string","description":"The confidence interval associated with the price, stored as a string to avoid precision loss","example":"509500001"},"expo":{"type":"integer","format":"int32","description":"The exponent associated with both the price and confidence interval. Multiply those values\nby `10^expo` to get the real value.","example":-8},"price":{"type":"string","description":"The price itself, stored as a string to avoid precision loss","example":"2920679499999"},"publish_time":{"type":"integer","format":"int64","description":"When the price was published. The `publish_time` is a unix timestamp, i.e., the number of\nseconds since the Unix epoch (00:00:00 UTC on 1 Jan 1970).","example":1717632000}}},"RpcPriceFeed":{"type":"object","required":["id","price","ema_price"],"properties":{"ema_price":{"$ref":"#/components/schemas/RpcPrice"},"id":{"$ref":"#/components/schemas/RpcPriceIdentifier"},"metadata":{"allOf":[{"$ref":"#/components/schemas/RpcPriceFeedMetadata"}],"nullable":true},"price":{"$ref":"#/components/schemas/RpcPrice"},"vaa":{"type":"string","description":"The VAA binary represented as a base64 string.","example":"UE5BVQEAAAADuAEAAAADDQC1H7meY5fTed0FsykIb8dt+7nKpbuzfvU2DplDi+dcUl8MC+UIkS65+rkiq+zmNBxE2gaxkBkjdIicZ/fBo+X7AAEqp+WtlWb84np8jJfLpuQ2W+l5KXTigsdAhz5DyVgU3xs+EnaIZxBwcE7EKzjMam+V9rlRy0CGsiQ1kjqqLzfAAQLsoVO0Vu5gVmgc8XGQ7xYhoz36rsBgMjG+e3l/B01esQi/KzPuBf/Ar8Sg5aSEOvEU0muSDb+KIr6d8eEC+FtcAAPZEaBSt4ysXVL84LUcJemQD3SiG30kOfUpF8o7/wI2M2Jf/LyCsbKEQUyLtLbZqnJBSfZJR5AMsrnHDqngMLEGAAY4UDG9GCpRuPvg8hOlsrXuPP3zq7yVPqyG0SG+bNo8rEhP5b1vXlHdG4bZsutX47d5VZ6xnFROKudx3T3/fnWUAQgAU1+kUFc3e0ZZeX1dLRVEryNIVyxMQIcxWwdey+jlIAYowHRM0fJX3Scs80OnT/CERwh5LMlFyU1w578NqxW+AQl2E/9fxjgUTi8crOfDpwsUsmOWw0+Q5OUGhELv/2UZoHAjsaw9OinWUggKACo4SdpPlHYldoWF+J2yGWOW+F4iAQre4c+ocb6a9uSWOnTldFkioqhd9lhmV542+VonCvuy4Tu214NP+2UNd/4Kk3KJCf3iziQJrCBeLi1cLHdLUikgAQtvRFR/nepcF9legl+DywAkUHi5/1MNjlEQvlHyh2XbMiS85yu7/9LgM6Sr+0ukfZY5mSkOcvUkpHn+T+Nw/IrQAQ7lty5luvKUmBpI3ITxSmojJ1aJ0kj/dc0ZcQk+/qo0l0l3/eRLkYjw5j+MZKA8jEubrHzUCke98eSoj8l08+PGAA+DAKNtCwNZe4p6J1Ucod8Lo5RKFfA84CPLVyEzEPQFZ25U9grUK6ilF4GhEia/ndYXLBt3PGW3qa6CBBPM7rH3ABGAyYEtUwzB4CeVedA5o6cKpjRkIebqDNSOqltsr+w7kXdfFVtsK2FMGFZNt5rbpIR+ppztoJ6eOKHmKmi9nQ99ARKkTxRErOs9wJXNHaAuIRV38o1pxRrlQRzGsRuKBqxcQEpC8OPFpyKYcp6iD5l7cO/gRDTamLFyhiUBwKKMP07FAWTEJv8AAAAAABrhAfrtrFhR4yubI7X5QRqMK6xKrj7U3XuBHdGnLqSqcQAAAAAAGp0GAUFVV1YAAAAAAAUYUmIAACcQBsfKUtr4PgZbIXRxRESU79PjE4IBAFUA5i32yLSoX+GmfbRNwS3l2zMPesZrctxliv7fD0pBW0MAAAKqqMJFwAAAAAAqE/NX////+AAAAABkxCb7AAAAAGTEJvoAAAKqIcWxYAAAAAAlR5m4CP/mPsh1IezjYpDlJ4GRb5q4fTs2LjtyO6M0XgVimrIQ4kSh1qg7JKW4gbGkyRntVFR9JO/GNd3FPDit0BK6M+JzXh/h12YNCz9wxlZTvXrNtWNbzqT+91pvl5cphhSPMfAHyEzTPaGR9tKDy9KNu56pmhaY32d2vfEWQmKo22guegeR98oDxs67MmnUraco46a3zEnac2Bm80pasUgMO24=","nullable":true}}},"RpcPriceFeedMetadata":{"type":"object","required":["emitter_chain"],"properties":{"emitter_chain":{"type":"integer","format":"int32","example":26,"minimum":0},"prev_publish_time":{"type":"integer","format":"int64","example":1717632000,"nullable":true},"price_service_receive_time":{"type":"integer","format":"int64","example":1717632000,"nullable":true},"slot":{"type":"integer","format":"int64","example":85480034,"nullable":true,"minimum":0}}},"RpcPriceFeedMetadataV2":{"type":"object","properties":{"prev_publish_time":{"type":"integer","format":"int64","example":1717632000,"nullable":true},"proof_available_time":{"type":"integer","format":"int64","example":1717632000,"nullable":true},"slot":{"type":"integer","format":"int64","example":85480034,"nullable":true,"minimum":0}}},"RpcPriceIdentifier":{"type":"string","example":"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"},"TwapsResponse":{"type":"object","required":["binary"],"properties":{"binary":{"$ref":"#/components/schemas/BinaryUpdate"},"parsed":{"type":"array","items":{"$ref":"#/components/schemas/ParsedPriceFeedTwap"},"description":"The calculated TWAPs for each price ID","nullable":true}}}}},"tags":[{"name":"hermes","description":"Pyth Real-Time Pricing API"}]}
\ No newline at end of file

From f2bf656f82fe64f86942b42d283d81eddc933926 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Thu, 30 Jan 2025 17:33:39 +0700
Subject: [PATCH 46/58] ok

---
 packages/core/src/types.ts | 55 +++++++++++++++++++-------------------
 1 file changed, 28 insertions(+), 27 deletions(-)

diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts
index 7231ec090e2..0a0eede983c 100644
--- a/packages/core/src/types.ts
+++ b/packages/core/src/types.ts
@@ -408,7 +408,7 @@ export type Handler = (
     message: Memory,
     state?: State,
     options?: { [key: string]: unknown },
-    callback?: HandlerCallback,
+    callback?: HandlerCallback
 ) => Promise<unknown>;
 
 /**
@@ -416,7 +416,7 @@ export type Handler = (
  */
 export type HandlerCallback = (
     response: Content,
-    files?: any,
+    files?: any
 ) => Promise<Memory[]>;
 
 /**
@@ -425,7 +425,7 @@ export type HandlerCallback = (
 export type Validator = (
     runtime: IAgentRuntime,
     message: Memory,
-    state?: State,
+    state?: State
 ) => Promise<boolean>;
 
 /**
@@ -502,7 +502,7 @@ export interface Provider {
     get: (
         runtime: IAgentRuntime,
         message: Memory,
-        state?: State,
+        state?: State
     ) => Promise<any>;
 }
 
@@ -1022,13 +1022,13 @@ export interface IDatabaseAdapter {
             agentId?: UUID;
             unique?: boolean;
             tableName: string;
-        },
+        }
     ): Promise<Memory[]>;
 
     createMemory(
         memory: Memory,
         tableName: string,
-        unique?: boolean,
+        unique?: boolean
     ): Promise<void>;
 
     removeMemory(memoryId: UUID, tableName: string): Promise<void>;
@@ -1038,7 +1038,7 @@ export interface IDatabaseAdapter {
     countMemories(
         roomId: UUID,
         unique?: boolean,
-        tableName?: string,
+        tableName?: string
     ): Promise<number>;
 
     getGoals(params: {
@@ -1077,13 +1077,13 @@ export interface IDatabaseAdapter {
 
     getParticipantUserState(
         roomId: UUID,
-        userId: UUID,
+        userId: UUID
     ): Promise<"FOLLOWED" | "MUTED" | null>;
 
     setParticipantUserState(
         roomId: UUID,
         userId: UUID,
-        state: "FOLLOWED" | "MUTED" | null,
+        state: "FOLLOWED" | "MUTED" | null
     ): Promise<void>;
 
     createRelationship(params: { userA: UUID; userB: UUID }): Promise<boolean>;
@@ -1147,7 +1147,7 @@ export interface IMemoryManager {
     }): Promise<Memory[]>;
 
     getCachedEmbeddings(
-        content: string,
+        content: string
     ): Promise<{ embedding: number[]; levenshtein_score: number }[]>;
 
     getMemoryById(id: UUID): Promise<Memory | null>;
@@ -1162,7 +1162,7 @@ export interface IMemoryManager {
             count?: number;
             roomId: UUID;
             unique?: boolean;
-        },
+        }
     ): Promise<Memory[]>;
 
     createMemory(memory: Memory, unique?: boolean): Promise<void>;
@@ -1294,14 +1294,14 @@ export interface IAgentRuntime {
         message: Memory,
         responses: Memory[],
         state?: State,
-        callback?: HandlerCallback,
+        callback?: HandlerCallback
     ): Promise<void>;
 
     evaluate(
         message: Memory,
         state?: State,
         didRespond?: boolean,
-        callback?: HandlerCallback,
+        callback?: HandlerCallback
     ): Promise<string[] | null>;
 
     ensureParticipantExists(userId: UUID, roomId: UUID): Promise<void>;
@@ -1310,7 +1310,7 @@ export interface IAgentRuntime {
         userId: UUID,
         userName: string | null,
         name: string | null,
-        source: string | null,
+        source: string | null
     ): Promise<void>;
 
     registerAction(action: Action): void;
@@ -1320,7 +1320,7 @@ export interface IAgentRuntime {
         roomId: UUID,
         userName?: string,
         userScreenName?: string,
-        source?: string,
+        source?: string
     ): Promise<void>;
 
     ensureParticipantInRoom(userId: UUID, roomId: UUID): Promise<void>;
@@ -1329,7 +1329,7 @@ export interface IAgentRuntime {
 
     composeState(
         message: Memory,
-        additionalKeys?: { [key: string]: unknown },
+        additionalKeys?: { [key: string]: unknown }
     ): Promise<State>;
 
     updateRecentMessageState(state: State): Promise<State>;
@@ -1337,14 +1337,14 @@ export interface IAgentRuntime {
 
 export interface IImageDescriptionService extends Service {
     describeImage(
-        imageUrl: string,
+        imageUrl: string
     ): Promise<{ title: string; description: string }>;
 }
 
 export interface ITranscriptionService extends Service {
     transcribeAttachment(audioBuffer: ArrayBuffer): Promise<string | null>;
     transcribeAttachmentLocally(
-        audioBuffer: ArrayBuffer,
+        audioBuffer: ArrayBuffer
     ): Promise<string | null>;
     transcribe(audioBuffer: ArrayBuffer): Promise<string | null>;
     transcribeLocally(audioBuffer: ArrayBuffer): Promise<string | null>;
@@ -1365,7 +1365,7 @@ export interface ITextGenerationService extends Service {
         stop: string[],
         frequency_penalty: number,
         presence_penalty: number,
-        max_tokens: number,
+        max_tokens: number
     ): Promise<any>;
     queueTextCompletion(
         context: string,
@@ -1373,7 +1373,7 @@ export interface ITextGenerationService extends Service {
         stop: string[],
         frequency_penalty: number,
         presence_penalty: number,
-        max_tokens: number,
+        max_tokens: number
     ): Promise<string>;
     getEmbeddingResponse(input: string): Promise<number[] | undefined>;
 }
@@ -1382,7 +1382,7 @@ export interface IBrowserService extends Service {
     closeBrowser(): Promise<void>;
     getPageContent(
         url: string,
-        runtime: IAgentRuntime,
+        runtime: IAgentRuntime
     ): Promise<{ title: string; description: string; bodyContent: string }>;
 }
 
@@ -1401,7 +1401,7 @@ export interface IAwsS3Service extends Service {
         imagePath: string,
         subDirectory: string,
         useSignedUrl: boolean,
-        expiresIn: number,
+        expiresIn: number
     ): Promise<{
         success: boolean;
         url?: string;
@@ -1449,7 +1449,7 @@ export interface IIrysService extends Service {
     getDataFromAnAgent(
         agentsWalletPublicKeys: string[],
         tags: GraphQLTag[],
-        timestamp: IrysTimestamp,
+        timestamp: IrysTimestamp
     ): Promise<DataIrysFetchedFromGQL>;
     workerUploadDataOnIrys(
         data: any,
@@ -1460,13 +1460,13 @@ export interface IIrysService extends Service {
         validationThreshold: number[],
         minimumProviders: number[],
         testProvider: boolean[],
-        reputation: number[],
+        reputation: number[]
     ): Promise<UploadIrysResult>;
     providerUploadDataOnIrys(
         data: any,
         dataType: IrysDataType,
         serviceCategory: string[],
-        protocol: string[],
+        protocol: string[]
     ): Promise<UploadIrysResult>;
 }
 
@@ -1477,7 +1477,7 @@ export interface ITeeLogService extends Service {
         roomId: string,
         userId: string,
         type: string,
-        content: string,
+        content: string
     ): Promise<boolean>;
 }
 
@@ -1547,6 +1547,7 @@ export enum ServiceType {
     TEE_LOG = "tee_log",
     GOPLUS_SECURITY = "goplus_security",
     WEB_SEARCH = "web_search",
+    NEOCORTEX_NEWS_FEED = "neocortex_news_feed",
 }
 
 export enum LoggingLevel {
@@ -1645,7 +1646,7 @@ export interface IVerifiableInferenceAdapter {
     generateText(
         context: string,
         modelClass: string,
-        options?: VerifiableInferenceOptions,
+        options?: VerifiableInferenceOptions
     ): Promise<VerifiableInferenceResult>;
 
     /**

From a915e378874bad7b59278dcb481972be883f0fb2 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Fri, 31 Jan 2025 10:44:15 +0700
Subject: [PATCH 47/58] news puller

---
 agent/package.json                            |   4 +-
 agent/src/index.ts                            |   8 +-
 packages/client-twitter/src/index.ts          |   7 +-
 packages/core/src/generation.ts               |   2 +
 packages/plugin-crypto-news/package.json      |   8 +-
 packages/plugin-crypto-news/src/index.ts      |   2 +
 .../src/providers/cryptoNewsData.ts           | 175 +++--
 .../src/services/NewsPullerService.ts         | 611 ++++++++++++++++++
 .../src/templates/tweets.ts                   |  24 +
 .../src/utils/chainCatcher.ts                 |   2 +-
 10 files changed, 736 insertions(+), 107 deletions(-)
 create mode 100644 packages/plugin-crypto-news/src/services/NewsPullerService.ts
 create mode 100644 packages/plugin-crypto-news/src/templates/tweets.ts

diff --git a/agent/package.json b/agent/package.json
index 289c5ce43d9..a7b6f3e03b5 100644
--- a/agent/package.json
+++ b/agent/package.json
@@ -39,7 +39,6 @@
         "@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:*",
@@ -49,7 +48,6 @@
         "@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:*",
@@ -103,7 +101,6 @@
         "@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:*",
@@ -154,6 +151,7 @@
         "@elizaos/plugin-zksync-era": "workspace:*",
         "@srise/plugin-crypto-news": "workspace:*",
         "@srise/plugin-neocortex-market": "workspace:*",
+        "@elizaos/plugin-goplus": "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 6c7972787a7..843b9da49d5 100644
--- a/agent/src/index.ts
+++ b/agent/src/index.ts
@@ -23,6 +23,7 @@ import { XmtpClientInterface } from "@elizaos/client-xmtp";
 import { agentKitPlugin } from "@elizaos/plugin-agentkit";
 import { dcapPlugin } from "@elizaos/plugin-dcap";
 import { gelatoPlugin } from "@elizaos/plugin-gelato";
+import { goplusPlugin } from "@elizaos/plugin-goplus";
 import { elizaCodeinPlugin, onchainJson } from "@elizaos/plugin-iq6900";
 import { lightningPlugin } from "@elizaos/plugin-lightning";
 import { OmniflixPlugin } from "@elizaos/plugin-omniflix";
@@ -959,13 +960,6 @@ export async function createAgent(
         );
     }
 
-    let zilliqaPlugin: any | undefined;
-    if (getSecret(character, "ZILLIQA_PRIVATE_KEY")) {
-        zilliqaPlugin = await createZilliqaPlugin((secret) =>
-            getSecret(character, secret)
-        );
-    }
-
     // Initialize Reclaim adapter if environment variables are present
     // let verifiableInferenceAdapter;
     // if (
diff --git a/packages/client-twitter/src/index.ts b/packages/client-twitter/src/index.ts
index 52957c1878b..521db67a6a8 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 { elizaLogger, type Client, type IAgentRuntime } from "@elizaos/core";
 import { ClientBase } from "./base.ts";
 import { validateTwitterConfig, type TwitterConfig } from "./environment.ts";
 import { TwitterInteractionClient } from "./interactions.ts";
@@ -50,8 +50,9 @@ class TwitterManager {
 
 export const TwitterClientInterface: Client = {
     async start(runtime: IAgentRuntime) {
-        const twitterConfig: TwitterConfig =
-            await validateTwitterConfig(runtime);
+        const twitterConfig: TwitterConfig = await validateTwitterConfig(
+            runtime
+        );
 
         elizaLogger.log("Twitter client started");
 
diff --git a/packages/core/src/generation.ts b/packages/core/src/generation.ts
index e648914c02c..710e7af522e 100644
--- a/packages/core/src/generation.ts
+++ b/packages/core/src/generation.ts
@@ -4,6 +4,7 @@ import { createGoogleGenerativeAI } from "@ai-sdk/google";
 import { createGroq } from "@ai-sdk/groq";
 import { createMistral } from "@ai-sdk/mistral";
 import { createOpenAI } from "@ai-sdk/openai";
+import { AutoTokenizer } from "@huggingface/transformers";
 import {
     generateObject as aiGenerateObject,
     generateText as aiGenerateText,
@@ -52,6 +53,7 @@ import {
     type VerifiableInferenceResult,
 } from "./types.ts";
 
+import { fal } from "@fal-ai/client";
 import BigNumber from "bignumber.js";
 import { createPublicClient, http } from "viem";
 
diff --git a/packages/plugin-crypto-news/package.json b/packages/plugin-crypto-news/package.json
index b29969a4afa..153434248bc 100644
--- a/packages/plugin-crypto-news/package.json
+++ b/packages/plugin-crypto-news/package.json
@@ -8,12 +8,14 @@
     "dependencies": {
         "@elizaos/core": "workspace:*",
         "google-sr": "^4.1.0",
-        "rss-to-json": "^2.1.1"
+        "rss-to-json": "^2.1.1",
+        "agent-twitter-client": "0.0.18",
+        "tsup": "8.3.5"
     },
     "devDependencies": {
         "@types/node": "^20.0.0",
-        "tsup": "8.3.5",
-        "tsx": "^4.19.2"
+        "tsx": "^4.19.2",
+        "vitest": "^1.0.0"
     },
     "scripts": {
         "build": "tsup --format esm --dts",
diff --git a/packages/plugin-crypto-news/src/index.ts b/packages/plugin-crypto-news/src/index.ts
index 30c6e4961b9..9de2bac236d 100644
--- a/packages/plugin-crypto-news/src/index.ts
+++ b/packages/plugin-crypto-news/src/index.ts
@@ -1,5 +1,6 @@
 import { Plugin } from "@elizaos/core";
 import { cryptoNewsData } from "./providers/cryptoNewsData";
+import NewsPullerService from "./services/NewsPullerService";
 //import { getTokenOverviewAction } from "./actions/tokenOverview";
 //import { twitterTrendingMarketData } from "./providers/twitterTrendingMarketData";
 
@@ -9,4 +10,5 @@ export const cryptoNewsPlugin: Plugin = {
     actions: [],
     providers: [cryptoNewsData],
     evaluators: [],
+    services: [new NewsPullerService()],
 };
diff --git a/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts b/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
index 4c30b8b3c67..260a4a7449a 100644
--- a/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
+++ b/packages/plugin-crypto-news/src/providers/cryptoNewsData.ts
@@ -1,9 +1,4 @@
-import { embed, Provider, stringToUuid } from "@elizaos/core";
-import {
-    ChainCatcherItem,
-    ChainCatcherResponse,
-    fetchChainCatcher,
-} from "../utils/chainCatcher";
+import { Provider } from "@elizaos/core";
 
 // interface FormattedMarketData {
 //     symbol: string;
@@ -53,97 +48,97 @@ export const cryptoNewsData: Provider = {
             return "";
         }
 
-        try {
-            // fetch several times
-            const chainCatcher: ChainCatcherResponse =
-                await fetchChainCatcher();
-            const cacheManager = runtime.cacheManager;
-            const articles: ChainCatcherItem[] = [];
-            let output;
+        // try {
+        //     // fetch several times
+        //     const chainCatcher: ChainCatcherResponse =
+        //         await fetchChainCatcher();
+        //     const cacheManager = runtime.cacheManager;
+        //     const articles: ChainCatcherItem[] = [];
+        //     let output;
 
-            for (const article of chainCatcher.data.list) {
-                const cached = await cacheManager.get(
-                    `cryptoNews_${article.id}`
-                );
-                if (!cached) {
-                    // new acrticle
-                    console.log(
-                        `NEW ARTICLE : ${article.title} # ${article.id}`
-                    );
-                    // means it's not cached, then we push it to the articles
-                    articles.push(article);
-                    // cache it
-                    await cacheManager.set(`cryptoNews_${article.id}`, article);
-                    const embedding = await embed(runtime, article.description);
-                    console.log("embedding", embedding);
-                    // put the news to knowledge as well
-                    await runtime.ragKnowledgeManager.createKnowledge({
-                        id: stringToUuid(`cryptoNews_${article.id}`),
-                        agentId: runtime.agentId,
-                        content: {
-                            text: article.description,
-                            metadata: {
-                                isMain: true,
-                                isShared: true,
-                                source: "articles",
-                            },
-                        },
-                        embedding: new Float32Array(embedding),
-                    });
+        //     for (const article of chainCatcher.data.list) {
+        //         const cached = await cacheManager.get(
+        //             `cryptoNews_${article.id}`
+        //         );
+        //         if (!cached) {
+        //             // new acrticle
+        //             console.log(
+        //                 `NEW ARTICLE : ${article.title} # ${article.id}`
+        //             );
+        //             // means it's not cached, then we push it to the articles
+        //             articles.push(article);
+        //             // cache it
+        //             await cacheManager.set(`cryptoNews_${article.id}`, article);
+        //             const embedding = await embed(runtime, article.description);
+        //             console.log("embedding", embedding);
+        //             // put the news to knowledge as well
+        //             await runtime.ragKnowledgeManager.createKnowledge({
+        //                 id: stringToUuid(`cryptoNews_${article.id}`),
+        //                 agentId: runtime.agentId,
+        //                 content: {
+        //                     text: article.description,
+        //                     metadata: {
+        //                         isMain: true,
+        //                         isShared: true,
+        //                         source: "articles",
+        //                     },
+        //                 },
+        //                 embedding: new Float32Array(embedding),
+        //             });
 
-                    // await runtime.knowledgeManager.createMemory({
-                    //     // We namespace the knowledge base uuid to avoid id
-                    //     // collision with the document above.
-                    //     id: stringToUuid(`cryptoNews_${article.id}`),
-                    //     agentId: runtime.agentId,
-                    //     roomId: runtime.agentId,
+        //             // await runtime.knowledgeManager.createMemory({
+        //             //     // We namespace the knowledge base uuid to avoid id
+        //             //     // collision with the document above.
+        //             //     id: stringToUuid(`cryptoNews_${article.id}`),
+        //             //     agentId: runtime.agentId,
+        //             //     roomId: runtime.agentId,
 
-                    //     userId: runtime.agentId,
-                    //     createdAt: Date.now(),
-                    //     content: {
-                    //         text: article.description,
-                    //         type: "news",
-                    //     },
-                    //     embedding,
-                    // });
-                } else {
-                    console.log(
-                        `ARTICLE ${article.id} is already cached, skipping`
-                    );
-                }
-            }
+        //             //     userId: runtime.agentId,
+        //             //     createdAt: Date.now(),
+        //             //     content: {
+        //             //         text: article.description,
+        //             //         type: "news",
+        //             //     },
+        //             //     embedding,
+        //             // });
+        //         } else {
+        //             console.log(
+        //                 `ARTICLE ${article.id} is already cached, skipping`
+        //             );
+        //         }
+        //     }
 
-            // const cryptoNews: SerperNewsResponse =
-            //     await fetchSerperNews("crypto");
-            // const suiNews: SerperNewsResponse = await fetchSerperNews("$SUI");
-            if (articles.length > 0) {
-                output = `# NEWS for ${runtime.character.name}\n\n`;
-                // output += `The News have this format:\n\n`;
-                // output += `
-                // - Title <--- Title of the news\n
-                // Description <--- Content of the news\n
-                // Timestamp <--- the time of the news\n\n
-                // `;
+        //     // const cryptoNews: SerperNewsResponse =
+        //     //     await fetchSerperNews("crypto");
+        //     // const suiNews: SerperNewsResponse = await fetchSerperNews("$SUI");
+        //     if (articles.length > 0) {
+        //         output = `# NEWS for ${runtime.character.name}\n\n`;
+        //         // output += `The News have this format:\n\n`;
+        //         // output += `
+        //         // - Title <--- Title of the news\n
+        //         // Description <--- Content of the news\n
+        //         // Timestamp <--- the time of the news\n\n
+        //         // `;
 
-                articles.forEach((article) => {
-                    output += `- ${article.title}\n${article.description}\nTime: ${article.releaseTime}\n\n`;
-                });
+        //         articles.forEach((article) => {
+        //             output += `- ${article.title}\n${article.description}\nTime: ${article.releaseTime}\n\n`;
+        //         });
 
-                // cryptoNews.news.forEach((article) => {
-                //     output += `- ${article.title}\n${article.snippet}\n\n`;
-                // });
-                // suiNews.news.forEach((article) => {
-                //     output += `- ${article.title}\n${article.snippet}\n\n`;
-                // });
-                output += `# ADDITIONAL_NOTES: if there's any decimal numbers you should convert the decimal separator into comma instead of dot\n\n# END NEWS\n\n`;
-            }
+        //         // cryptoNews.news.forEach((article) => {
+        //         //     output += `- ${article.title}\n${article.snippet}\n\n`;
+        //         // });
+        //         // suiNews.news.forEach((article) => {
+        //         //     output += `- ${article.title}\n${article.snippet}\n\n`;
+        //         // });
+        //         output += `# ADDITIONAL_NOTES: if there's any decimal numbers you should convert the decimal separator into comma instead of dot\n\n# END NEWS\n\n`;
+        //     }
 
-            // elizaLogger.log(output);
+        //     // elizaLogger.log(output);
 
-            return output;
-        } catch (error) {
-            console.error("Error in fetching news provider:", error);
-            return "";
-        }
+        //     return output;
+        // } catch (error) {
+        //     console.error("Error in fetching news provider:", error);
+        //     return "";
+        // }
     },
 };
diff --git a/packages/plugin-crypto-news/src/services/NewsPullerService.ts b/packages/plugin-crypto-news/src/services/NewsPullerService.ts
new file mode 100644
index 00000000000..6a1c52d8dce
--- /dev/null
+++ b/packages/plugin-crypto-news/src/services/NewsPullerService.ts
@@ -0,0 +1,611 @@
+import {
+    cleanJsonResponse,
+    composeContext,
+    elizaLogger,
+    embed,
+    extractAttributes,
+    generateText,
+    ModelClass,
+    parseJSONObjectFromText,
+    Service,
+    ServiceType,
+    stringToUuid,
+    truncateToCompleteSentence,
+    type IAgentRuntime,
+} from "@elizaos/core";
+import { Profile, Scraper } from "agent-twitter-client";
+import { twitterPostTemplate } from "../templates/tweets";
+import { ChainCatcherResponse, fetchChainCatcher } from "../utils/chainCatcher";
+export const DEFAULT_MAX_TWEET_LENGTH = 280;
+
+// import { sampleProvider } from "../providers/sampleProvider"; // TODO: Uncomment this line to use the sampleProvider
+
+// declare module "@elizaos/core" {
+//     export enum ServiceType {
+//         NEOCORTEX_NEWS_FEED = "neocortex_news_feed",
+//     }
+// }
+// The SampleService is a simple service that logs "Hello world" every 15 minutes.
+export class NewsPullerService extends Service {
+    private runtime: IAgentRuntime | null = null;
+    private intervalId: NodeJS.Timeout | null = null;
+    private DEFAULT_INTERVAL = 60 * 60 * 1000; // 1hr / 60 minutes
+    private twitterClient;
+    private me: Profile;
+    private processingNews = false;
+
+    static get serviceType(): ServiceType {
+        return ServiceType.NEOCORTEX_NEWS_FEED;
+    }
+
+    private static isInitialized = false;
+
+    async initialize(runtime: IAgentRuntime): Promise<void> {
+        // Verify if the service is already initialized
+        if (NewsPullerService.isInitialized) {
+            return;
+        }
+        this.DEFAULT_INTERVAL =
+            (Number(runtime.getSetting("NEWS_PULLER_INTERVAL")) || 60) *
+            60 *
+            1000;
+        this.runtime = runtime;
+        // init twitter
+        await this.twitterLogin();
+        // Start the periodic task
+        this.startPeriodicTask();
+        NewsPullerService.isInitialized = true;
+        console.log(
+            "NewsPullerService : initialized and started periodic task"
+        );
+    }
+
+    private static activeTaskCount = 0;
+
+    private startPeriodicTask(): void {
+        // Verify if a task is already active
+        if (NewsPullerService.activeTaskCount > 0) {
+            console.log(
+                "NewsPullerService: Periodic task already running, skipping"
+            );
+            return;
+        }
+
+        // Clear any existing interval
+        if (this.intervalId) {
+            clearInterval(this.intervalId);
+        }
+
+        NewsPullerService.activeTaskCount++;
+        console.log(
+            `SampleService: Starting periodic task (active tasks: ${NewsPullerService.activeTaskCount})`
+        );
+
+        // Initial call immediately
+        this.fetchSample();
+
+        // Set up periodic calls
+        this.intervalId = setInterval(() => {
+            this.fetchSample();
+        }, this.DEFAULT_INTERVAL);
+    }
+
+    private async twitterLogin() {
+        // initiate the twitter login
+        const twitterClient =
+            this.runtime.clients?.twitter?.client?.twitterClient;
+        this.twitterClient = twitterClient || new Scraper();
+        let retries = 3;
+        if (!twitterClient) {
+            const username = this.runtime.getSetting("TWITTER_USERNAME");
+            const password = this.runtime.getSetting("TWITTER_PASSWORD");
+            const email = this.runtime.getSetting("TWITTER_EMAIL");
+            const twitter2faSecret =
+                this.runtime.getSetting("TWITTER_2FA_SECRET");
+
+            if (!username || !password) {
+                elizaLogger.error(
+                    "Twitter credentials not configured in environment"
+                );
+                return false;
+            }
+
+            const cachedCookies = await this.getCachedCookies(username);
+            if (cachedCookies) {
+                elizaLogger.info("Using cached cookies");
+                await this.setCookiesFromArray(cachedCookies);
+            }
+            // Login with credentials
+            // await this.twitterClient.login(
+            //     username,
+            //     password,
+            //     email,
+            //     twitter2faSecret
+            // );
+            // if (!(await this.twitterClient.isLoggedIn())) {
+            //     elizaLogger.error("Failed to login to Twitter");
+            //     return false;
+            // }
+
+            while (retries > 0) {
+                try {
+                    if (await this.twitterClient.isLoggedIn()) {
+                        // cookies are valid, no login required
+                        elizaLogger.info("Successfully logged in.");
+                        break;
+                    } else {
+                        await this.twitterClient.login(
+                            username,
+                            password,
+                            email,
+                            twitter2faSecret
+                        );
+                        if (await this.twitterClient.isLoggedIn()) {
+                            // fresh login, store new cookies
+                            elizaLogger.info("Successfully logged in.");
+                            elizaLogger.info("Caching cookies");
+                            await this.cacheCookies(
+                                username,
+                                await this.twitterClient.getCookies()
+                            );
+                            break;
+                        }
+                    }
+                } catch (error) {
+                    elizaLogger.error(`Login attempt failed: ${error.message}`);
+                }
+
+                retries--;
+                elizaLogger.error(
+                    `Failed to login to Twitter. Retrying... (${retries} attempts left)`
+                );
+
+                if (retries === 0) {
+                    elizaLogger.error(
+                        "Max retries reached. Exiting login process."
+                    );
+                    throw new Error(
+                        "Twitter login failed after maximum retries."
+                    );
+                }
+
+                await new Promise((resolve) => setTimeout(resolve, 2000));
+            }
+            this.me = await this.twitterClient.me();
+        }
+    }
+    private async fetchSample(): Promise<void> {
+        if (!this.runtime) {
+            console.log("NewsPullerService: Runtime not initialized");
+            return;
+        }
+        if (this.processingNews) {
+            console.log("NewsPullerService: Already processing news");
+        }
+        this.processingNews = true;
+
+        try {
+            // fetch several times
+            const chainCatcher: ChainCatcherResponse =
+                await fetchChainCatcher();
+            const cacheManager = this.runtime.cacheManager;
+            //const articles: ChainCatcherItem[] = [];
+            let tweetId;
+            let tempNews = "";
+            let count = 0;
+
+            for (const article of chainCatcher.data.list) {
+                const cached = await cacheManager.get(
+                    `cryptoNews_${article.id}`
+                );
+                if (!cached) {
+                    // new acrticle
+                    // console.log(
+                    //     `NEW ARTICLE : ${article.title} # ${article.id}`
+                    // );
+                    // means it's not cached, then we push it to the articles
+                    //articles.push(article);
+                    // cache it
+                    await cacheManager.set(`cryptoNews_${article.id}`, article);
+                    const embedding = await embed(
+                        this.runtime,
+                        article.description
+                    );
+                    //console.log("embedding", embedding);
+                    // put the news to knowledge as well
+
+                    await this.runtime.ragKnowledgeManager.createKnowledge({
+                        id: stringToUuid(`cryptoNews_${article.id}`),
+                        agentId: this.runtime.agentId,
+                        content: {
+                            text: article.description,
+                            metadata: {
+                                isMain: true,
+                                isShared: true,
+                                source: "articles",
+                            },
+                        },
+                        embedding: new Float32Array(embedding),
+                    });
+
+                    // combine news
+                    tempNews += `- ${article.title}\n${article.description}\nTime: ${article.releaseTime}\n\n`;
+                    count++;
+                    // post the tweet
+                    if (
+                        count === 2 ||
+                        article.id ===
+                            chainCatcher.data.list[
+                                chainCatcher.data.list.length - 1
+                            ].id
+                    ) {
+                        const tweetR = await this.generateTweet(
+                            article.description,
+                            tweetId
+                        );
+                        if (tweetR.success) {
+                            tweetId = tweetR.id;
+                        }
+                        tempNews = "";
+                        count = 0;
+                    }
+                } else {
+                    console.log(
+                        `ARTICLE ${article.id} is already cached, skipping`
+                    );
+                }
+            }
+            this.processingNews = false;
+
+            // const cryptoNews: SerperNewsResponse =
+            //     await fetchSerperNews("crypto");
+            // const suiNews: SerperNewsResponse = await fetchSerperNews("$SUI");
+            // if (articles.length > 0) {
+            //     output = `# NEWS for ${this.runtime.character.name}\n\n`;
+            //     // output += `The News have this format:\n\n`;
+            //     // output += `
+            //     // - Title <--- Title of the news\n
+            //     // Description <--- Content of the news\n
+            //     // Timestamp <--- the time of the news\n\n
+            //     // `;
+
+            //     articles.forEach((article) => {
+            //         output += `- ${article.title}\n${article.description}\nTime: ${article.releaseTime}\n\n`;
+            //     });
+
+            //     // cryptoNews.news.forEach((article) => {
+            //     //     output += `- ${article.title}\n${article.snippet}\n\n`;
+            //     // });
+            //     // suiNews.news.forEach((article) => {
+            //     //     output += `- ${article.title}\n${article.snippet}\n\n`;
+            //     // });
+            //     output += `# ADDITIONAL_NOTES: if there's any decimal numbers you should convert the decimal separator into comma instead of dot\n\n# END NEWS\n\n`;
+            // }
+
+            // elizaLogger.log(output);
+
+            // return output;
+        } catch (error) {
+            console.error("Error in fetching news provider:", error);
+            this.processingNews = false;
+            return;
+        }
+
+        // try {
+        //     // Example of using the sampleProvider
+        //     // Create dummy memory and state objects for the provider
+        //     // const dummyMemory: Memory = {
+        //     //     id: stringToUuid("sample-service-trigger"),
+        //     //     userId: this.runtime.agentId,
+        //     //     agentId: this.runtime.agentId,
+        //     //     roomId: this.runtime.agentId,
+        //     //     content: { text: "Periodic sample fetch" },
+        //     //     createdAt: Date.now(),
+        //     // };
+
+        //     // const dummyState: State = {
+        //     //     userId: this.runtime.agentId,
+        //     //     bio: "",
+        //     //     lore: "",
+        //     //     messageDirections: "",
+        //     //     postDirections: "",
+        //     //     roomId: this.runtime.agentId,
+        //     //     actors: "",
+        //     //     recentMessages: "",
+        //     //     recentMessagesData: [],
+        //     // };
+        //     // await sampleProvider.get(this.runtime, dummyMemory, dummyState);
+
+        //     // hello world log example
+        //     console.log("SampleService: Hello world");
+
+        //     console.log(
+        //         "SampleService: Successfully fetched and processed sample"
+        //     );
+        // } catch (error) {
+        //     console.log("SampleService: Error fetching sample:", error);
+        // }
+    }
+
+    private async generateTweet(text: any, tweetId?: string) {
+        elizaLogger.log("NewsPuller : Generating tweet");
+        if (!this.runtime) {
+            console.log("NewsPullerService: Twitter Runtime not initialized");
+            return;
+        }
+
+        //console.log("NewsPullerService: Twitter client", twitterClient);
+        try {
+            const roomId = stringToUuid(
+                "twitter_generate_room-" + this.me.username
+            );
+            await this.runtime.ensureUserExists(
+                this.runtime.agentId,
+                this.me.username,
+                this.runtime.character.name,
+                "twitter"
+            );
+
+            const maxTweetLength = Number(DEFAULT_MAX_TWEET_LENGTH);
+            const state = await this.runtime.composeState(
+                {
+                    userId: this.runtime.agentId,
+                    roomId: roomId,
+                    agentId: this.runtime.agentId,
+                    content: {
+                        text: "",
+                    },
+                },
+                {
+                    twitterUserName: this.me.username,
+                    maxTweetLength,
+                    news: text,
+                }
+            );
+
+            const context = composeContext({
+                state,
+                template: twitterPostTemplate,
+            });
+            // console.log("PROMPT", context);
+            //elizaLogger.debug("generate post prompt:\n" + context);
+
+            const response = await generateText({
+                runtime: this.runtime,
+                context,
+                modelClass: ModelClass.MEDIUM,
+            });
+
+            const rawTweetContent = cleanJsonResponse(response);
+
+            // First attempt to clean content
+            let tweetTextForPosting = null;
+            let mediaData = null;
+
+            // Try parsing as JSON first
+            const parsedResponse = parseJSONObjectFromText(rawTweetContent);
+            if (parsedResponse?.text) {
+                tweetTextForPosting = parsedResponse.text;
+            }
+
+            // if (
+            //     parsedResponse?.attachments &&
+            //     parsedResponse?.attachments.length > 0
+            // ) {
+            //     mediaData = await fetchMediaData(parsedResponse.attachments);
+            // }
+
+            // Try extracting text attribute
+            if (!tweetTextForPosting) {
+                const parsingText = extractAttributes(rawTweetContent, [
+                    "text",
+                ]).text;
+                if (parsingText) {
+                    tweetTextForPosting = truncateToCompleteSentence(
+                        extractAttributes(rawTweetContent, ["text"]).text,
+                        maxTweetLength
+                    );
+                }
+            }
+
+            // Use the raw text
+            if (!tweetTextForPosting) {
+                tweetTextForPosting = rawTweetContent;
+            }
+
+            // Truncate the content to the maximum tweet length specified in the environment settings, ensuring the truncation respects sentence boundaries.
+            if (maxTweetLength) {
+                tweetTextForPosting = truncateToCompleteSentence(
+                    tweetTextForPosting,
+                    maxTweetLength
+                );
+            }
+
+            const removeQuotes = (str: string) =>
+                str.replace(/^['"](.*)['"]$/, "$1");
+
+            const fixNewLines = (str: string) => str.replaceAll(/\\n/g, "\n\n"); //ensures double spaces
+
+            // Final cleaning
+            tweetTextForPosting = removeQuotes(
+                fixNewLines(tweetTextForPosting)
+            );
+
+            try {
+                console.log(
+                    `NEWS PULLER: would have posted tweet: ${tweetTextForPosting} | Length: ${tweetTextForPosting.length}`
+                );
+                return await this.postTweet(tweetTextForPosting, tweetId); // return the tweet ID
+            } catch (err) {
+                console.error("NEWS_PULLER: ERROR posting tweet:", err);
+            }
+            return;
+            // if (this.isDryRun) {
+            //     elizaLogger.info(
+            //         `Dry run: would have posted tweet: ${tweetTextForPosting}`
+            //     );
+            //     return;
+            // }
+
+            // try {
+            //     if (this.approvalRequired) {
+            //         // Send for approval instead of posting directly
+            //         elizaLogger.log(
+            //             `Sending Tweet For Approval:\n ${tweetTextForPosting}`
+            //         );
+            //         await this.sendForApproval(
+            //             tweetTextForPosting,
+            //             roomId,
+            //             rawTweetContent
+            //         );
+            //         elizaLogger.log("Tweet sent for approval");
+            //     } else {
+            //         elizaLogger.log(
+            //             `Posting new tweet:\n ${tweetTextForPosting}`
+            //         );
+            //         this.postTweet(
+            //             this.runtime,
+            //             this.client,
+            //             tweetTextForPosting,
+            //             roomId,
+            //             rawTweetContent,
+            //             this.twitterUsername,
+            //             mediaData
+            //         );
+            //     }
+            // } catch (error) {
+            //     elizaLogger.error("Error sending tweet:", error);
+            // }
+        } catch (error) {
+            console.error("NEWS_PULLER: ERROR generating new tweet:", error);
+        }
+    }
+
+    private async postTweet(
+        content: string,
+        tweetId: string
+    ): Promise<{ success: boolean; id: string }> {
+        try {
+            // Send the tweet
+            elizaLogger.log("Attempting to send tweet:", content);
+
+            try {
+                if (content.length > DEFAULT_MAX_TWEET_LENGTH) {
+                    const noteTweetResult =
+                        await this.twitterClient.sendNoteTweet(
+                            content,
+                            tweetId
+                        );
+                    if (
+                        noteTweetResult.errors &&
+                        noteTweetResult.errors.length > 0
+                    ) {
+                        // Note Tweet failed due to authorization. Falling back to standard Tweet.
+                        return await this.sendTweet(content, tweetId);
+                    }
+                    return {
+                        success: true,
+                        id: noteTweetResult?.data?.notetweet_create
+                            ?.tweet_results?.result?.rest_id,
+                    }; // return the ID of the tweet
+                }
+                return await this.sendTweet(content, tweetId);
+            } catch (error) {
+                throw new Error(`Note Tweet failed: ${error}`);
+            }
+        } catch (error) {
+            // Log the full error details
+            elizaLogger.error("Error posting tweet:", {
+                message: error.message,
+                stack: error.stack,
+                name: error.name,
+                cause: error.cause,
+            });
+            return {
+                success: false,
+                id: null,
+            };
+        }
+    }
+
+    private async sendTweet(content: string, tweetId: string | null) {
+        const result = await this.twitterClient.sendTweet(content, tweetId);
+
+        const body = await result.json();
+        //console.dir(body, { depth: null, colors: true });
+
+        // Check for Twitter API errors
+        if (body.errors) {
+            const error = body.errors[0];
+            elizaLogger.error(
+                `Twitter API error (${error.code}): ${error.message}`
+            );
+            return {
+                success: false,
+                id: null,
+            };
+        }
+
+        // Check for successful tweet creation
+        if (!body?.data?.create_tweet?.tweet_results?.result) {
+            elizaLogger.error(
+                "Failed to post tweet: No tweet result in response"
+            );
+            return {
+                success: false,
+                id: null,
+            };
+        }
+        return {
+            success: true,
+            id: body?.data?.create_tweet?.tweet_results?.result?.rest_id,
+        }; // return the ID of the tweet
+        //return body?.data?.create_tweet?.tweet_results?.result?.rest_id; // returns the ID of the tweet
+        //return true;
+    }
+
+    async getCachedCookies(username: string) {
+        return await this.runtime.cacheManager.get<any[]>(
+            `twitter/${username}/cookies`
+        );
+    }
+
+    async cacheCookies(username: string, cookies: any[]) {
+        await this.runtime.cacheManager.set(
+            `twitter/${username}/cookies`,
+            cookies
+        );
+    }
+
+    async setCookiesFromArray(cookiesArray: any[]) {
+        const cookieStrings = cookiesArray.map(
+            (cookie) =>
+                `${cookie.key}=${cookie.value}; Domain=${cookie.domain}; Path=${
+                    cookie.path
+                }; ${cookie.secure ? "Secure" : ""}; ${
+                    cookie.httpOnly ? "HttpOnly" : ""
+                }; SameSite=${cookie.sameSite || "Lax"}`
+        );
+        await this.twitterClient.setCookies(cookieStrings);
+    }
+
+    // Method to stop the service
+    stop(): void {
+        if (this.intervalId) {
+            clearInterval(this.intervalId);
+            this.intervalId = null;
+            NewsPullerService.activeTaskCount--;
+            console.log(
+                `NewsPullerService stopped (active tasks: ${NewsPullerService.activeTaskCount})`
+            );
+        }
+        NewsPullerService.isInitialized = false;
+    }
+
+    // Method to manually trigger a sample fetch (for testing)
+    async forceFetch(): Promise<void> {
+        await this.fetchSample();
+    }
+}
+
+export default NewsPullerService;
diff --git a/packages/plugin-crypto-news/src/templates/tweets.ts b/packages/plugin-crypto-news/src/templates/tweets.ts
new file mode 100644
index 00000000000..1ab107ba26e
--- /dev/null
+++ b/packages/plugin-crypto-news/src/templates/tweets.ts
@@ -0,0 +1,24 @@
+export const twitterPostTemplate = `
+# Areas of Expertise
+{{knowledge}}
+
+# About {{agentName}} (@{{twitterUserName}}):
+{{bio}}
+{{lore}}
+
+# NEWS :
+{{news}}
+
+{{characterPostExamples}}
+
+{{postDirections}}
+
+# Task: Generate a post in the voice and style and perspective of {{agentName}} @{{twitterUserName}}.
+Write a post that is {{adjective}} about the #NEWS, from the perspective of {{agentName}}. You are allowed to add opinion about the #NEWS, but it should be in the voice of {{agentName}}.
+If the news isnt about SUI or SUIRISE, dont mix the context with SUI Shilling. keep the original and relevant context of the news.
+Your response should be 1, 2 sentences (choose the length at random).
+Your response should not contain any questions. Brief, concise statements only. The total character count MUST be less than 280. No emojis. Use \n\n (double spaces) between statements if there are multiple statements in your response.
+Your response should replace any crypto currency name such as Ethereum, Bitcoin, or something else with its ticker starting with $.
+Your response should replace any crypto currency ticker that doesnt have $ before it you have to add the $ so for example ETH become $ETH ( ticker has length up to 4 characters ).
+Your response should not include ChainCatcher text on it.
+`;
diff --git a/packages/plugin-crypto-news/src/utils/chainCatcher.ts b/packages/plugin-crypto-news/src/utils/chainCatcher.ts
index 8c6cde3076e..a03a3c54f3a 100644
--- a/packages/plugin-crypto-news/src/utils/chainCatcher.ts
+++ b/packages/plugin-crypto-news/src/utils/chainCatcher.ts
@@ -34,7 +34,7 @@ export async function fetchChainCatcher(): Promise<ChainCatcherResponse> {
             body: JSON.stringify({
                 type: 2,
                 page: 1,
-                limit: 5,
+                limit: 10,
             }),
         };
         const response = await fetch(

From e30865843319f95e05815f945763303381798620 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Fri, 31 Jan 2025 13:20:20 +0700
Subject: [PATCH 48/58] asdasd

---
 .../plugin-crypto-news/src/services/NewsPullerService.ts    | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/packages/plugin-crypto-news/src/services/NewsPullerService.ts b/packages/plugin-crypto-news/src/services/NewsPullerService.ts
index 6a1c52d8dce..f6450b04cfd 100644
--- a/packages/plugin-crypto-news/src/services/NewsPullerService.ts
+++ b/packages/plugin-crypto-news/src/services/NewsPullerService.ts
@@ -45,10 +45,8 @@ export class NewsPullerService extends Service {
         if (NewsPullerService.isInitialized) {
             return;
         }
-        this.DEFAULT_INTERVAL =
-            (Number(runtime.getSetting("NEWS_PULLER_INTERVAL")) || 60) *
-            60 *
-            1000;
+        const intv = Number(runtime.getSetting("NEWS_PULLER_INTERVAL"));
+        this.DEFAULT_INTERVAL = (intv ? intv : 60) * 60 * 1000;
         this.runtime = runtime;
         // init twitter
         await this.twitterLogin();

From 5c633d3de51e6b00f3b5739580da1f8b6b30f5ca Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Fri, 31 Jan 2025 13:23:16 +0700
Subject: [PATCH 49/58] asdas

---
 packages/plugin-crypto-news/src/services/NewsPullerService.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packages/plugin-crypto-news/src/services/NewsPullerService.ts b/packages/plugin-crypto-news/src/services/NewsPullerService.ts
index f6450b04cfd..4bcaac3d88d 100644
--- a/packages/plugin-crypto-news/src/services/NewsPullerService.ts
+++ b/packages/plugin-crypto-news/src/services/NewsPullerService.ts
@@ -54,7 +54,7 @@ export class NewsPullerService extends Service {
         this.startPeriodicTask();
         NewsPullerService.isInitialized = true;
         console.log(
-            "NewsPullerService : initialized and started periodic task"
+            `NewsPullerService : initialized and started periodic task (interval: ${this.DEFAULT_INTERVAL} ms || ${intv})`
         );
     }
 

From 028d33a91f87be31625dc0e2d42b32da122ede96 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Fri, 31 Jan 2025 13:27:10 +0700
Subject: [PATCH 50/58] xx

---
 .../src/services/NewsPullerService.ts                  | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/packages/plugin-crypto-news/src/services/NewsPullerService.ts b/packages/plugin-crypto-news/src/services/NewsPullerService.ts
index 4bcaac3d88d..df5694068fb 100644
--- a/packages/plugin-crypto-news/src/services/NewsPullerService.ts
+++ b/packages/plugin-crypto-news/src/services/NewsPullerService.ts
@@ -51,7 +51,7 @@ export class NewsPullerService extends Service {
         // init twitter
         await this.twitterLogin();
         // Start the periodic task
-        this.startPeriodicTask();
+        await this.startPeriodicTask();
         NewsPullerService.isInitialized = true;
         console.log(
             `NewsPullerService : initialized and started periodic task (interval: ${this.DEFAULT_INTERVAL} ms || ${intv})`
@@ -60,7 +60,7 @@ export class NewsPullerService extends Service {
 
     private static activeTaskCount = 0;
 
-    private startPeriodicTask(): void {
+    private async startPeriodicTask(): Promise<void> {
         // Verify if a task is already active
         if (NewsPullerService.activeTaskCount > 0) {
             console.log(
@@ -80,11 +80,11 @@ export class NewsPullerService extends Service {
         );
 
         // Initial call immediately
-        this.fetchSample();
+        await this.fetchSample();
 
         // Set up periodic calls
-        this.intervalId = setInterval(() => {
-            this.fetchSample();
+        this.intervalId = setInterval(async () => {
+            await this.fetchSample();
         }, this.DEFAULT_INTERVAL);
     }
 

From c9b8d38defc41d5a0ff4000c2cd91b1c8ebac023 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Fri, 31 Jan 2025 13:33:18 +0700
Subject: [PATCH 51/58] tpl

---
 packages/plugin-crypto-news/src/templates/tweets.ts | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/packages/plugin-crypto-news/src/templates/tweets.ts b/packages/plugin-crypto-news/src/templates/tweets.ts
index 1ab107ba26e..effd44f45fd 100644
--- a/packages/plugin-crypto-news/src/templates/tweets.ts
+++ b/packages/plugin-crypto-news/src/templates/tweets.ts
@@ -14,10 +14,10 @@ export const twitterPostTemplate = `
 {{postDirections}}
 
 # Task: Generate a post in the voice and style and perspective of {{agentName}} @{{twitterUserName}}.
-Write a post that is {{adjective}} about the #NEWS, from the perspective of {{agentName}}. You are allowed to add opinion about the #NEWS, but it should be in the voice of {{agentName}}.
-If the news isnt about SUI or SUIRISE, dont mix the context with SUI Shilling. keep the original and relevant context of the news.
+Write a post that is {{adjective}} about the #NEWS, from the perspective of {{agentName}}. You must include the conclusion or summary of the NEWS, and you must include all important numbers, statistics and context of the NEWS.
+If the news isnt about SUI or SUIRISE, dont mix the context with SUI Shilling.
 Your response should be 1, 2 sentences (choose the length at random).
-Your response should not contain any questions. Brief, concise statements only. The total character count MUST be less than 280. No emojis. Use \n\n (double spaces) between statements if there are multiple statements in your response.
+Your response should not contain any questions. Brief, concise statements only. The total character count MUST be less than 400. No emojis. Use \n\n (double spaces) between statements if there are multiple statements in your response.
 Your response should replace any crypto currency name such as Ethereum, Bitcoin, or something else with its ticker starting with $.
 Your response should replace any crypto currency ticker that doesnt have $ before it you have to add the $ so for example ETH become $ETH ( ticker has length up to 4 characters ).
 Your response should not include ChainCatcher text on it.

From 129fbf924024983593dbb77f22a84dde89149d16 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Sat, 1 Feb 2025 09:40:18 +0700
Subject: [PATCH 52/58] xx

---
 packages/plugin-crypto-news/src/services/NewsPullerService.ts | 1 -
 1 file changed, 1 deletion(-)

diff --git a/packages/plugin-crypto-news/src/services/NewsPullerService.ts b/packages/plugin-crypto-news/src/services/NewsPullerService.ts
index df5694068fb..52cd6e72da9 100644
--- a/packages/plugin-crypto-news/src/services/NewsPullerService.ts
+++ b/packages/plugin-crypto-news/src/services/NewsPullerService.ts
@@ -220,7 +220,6 @@ export class NewsPullerService extends Service {
                             metadata: {
                                 isMain: true,
                                 isShared: true,
-                                source: "articles",
                             },
                         },
                         embedding: new Float32Array(embedding),

From b8bcfb8309d466bd423076cd8690f4640d1b8a60 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Sat, 1 Feb 2025 14:53:24 +0700
Subject: [PATCH 53/58] xxx

---
 packages/core/src/runtime.ts | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/packages/core/src/runtime.ts b/packages/core/src/runtime.ts
index 4cba2d0dd54..22de1be7186 100644
--- a/packages/core/src/runtime.ts
+++ b/packages/core/src/runtime.ts
@@ -1502,6 +1502,15 @@ Text: ${attachment.text}
             });
 
             formattedKnowledge = formatKnowledge(knowledgeData);
+            console.log("[FEEETCHING KNOWLEDGE]");
+            console.dir(
+                {
+                    knowledgeData: knowledgeData,
+                    query: message.content.text,
+                    formattedKnowledge,
+                },
+                { depth: null, colors: true }
+            );
         } else {
             knowledgeData = await knowledge.get(this, message);
 

From 9dfa137a05c800af833cd6c94ca1a1b1a4a5f361 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Sat, 1 Feb 2025 15:32:38 +0700
Subject: [PATCH 54/58] lower the treshold

---
 packages/core/src/ragknowledge.ts | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

diff --git a/packages/core/src/ragknowledge.ts b/packages/core/src/ragknowledge.ts
index 3d6be4ab42c..6a00dc62e56 100644
--- a/packages/core/src/ragknowledge.ts
+++ b/packages/core/src/ragknowledge.ts
@@ -1,3 +1,5 @@
+import { existsSync } from "fs";
+import { join } from "path";
 import { embed } from "./embedding.ts";
 import { splitChunks } from "./generation.ts";
 import elizaLogger from "./logger.ts";
@@ -9,8 +11,6 @@ import {
     KnowledgeScope,
 } from "./types.ts";
 import { stringToUuid } from "./uuid.ts";
-import { existsSync } from "fs";
-import { join } from "path";
 
 /**
  * Manage knowledge in the database.
@@ -47,7 +47,7 @@ export class RAGKnowledgeManager implements IRAGKnowledgeManager {
         this.knowledgeRoot = opts.knowledgeRoot;
     }
 
-    private readonly defaultRAGMatchThreshold = 0.85;
+    private readonly defaultRAGMatchThreshold = 0.75;
     private readonly defaultRAGMatchCount = 5;
 
     /**
@@ -507,7 +507,9 @@ export class RAGKnowledgeManager implements IRAGKnowledgeManager {
         try {
             const fileSizeKB = new TextEncoder().encode(content).length / 1024;
             elizaLogger.info(
-                `[File Progress] Starting ${file.path} (${fileSizeKB.toFixed(2)} KB)`
+                `[File Progress] Starting ${file.path} (${fileSizeKB.toFixed(
+                    2
+                )} KB)`
             );
 
             // Generate scoped ID for the file
@@ -571,8 +573,9 @@ export class RAGKnowledgeManager implements IRAGKnowledgeManager {
                 // Batch database operations
                 await Promise.all(
                     embeddings.map(async (embeddingArray, index) => {
-                        const chunkId =
-                            `${scopedId}-chunk-${i + index}` as UUID;
+                        const chunkId = `${scopedId}-chunk-${
+                            i + index
+                        }` as UUID;
                         const chunkEmbedding = new Float32Array(embeddingArray);
 
                         await this.runtime.databaseAdapter.createKnowledge({
@@ -599,7 +602,11 @@ export class RAGKnowledgeManager implements IRAGKnowledgeManager {
                 processedChunks += batch.length;
                 const batchTime = (Date.now() - batchStart) / 1000;
                 elizaLogger.info(
-                    `[Batch Progress] ${file.path}: Processed ${processedChunks}/${totalChunks} chunks (${batchTime.toFixed(2)}s for batch)`
+                    `[Batch Progress] ${
+                        file.path
+                    }: Processed ${processedChunks}/${totalChunks} chunks (${batchTime.toFixed(
+                        2
+                    )}s for batch)`
                 );
             }
 

From de4bc84ba1ccfd9ffce3654c63ddd2ba770b9da1 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Sat, 1 Feb 2025 15:47:13 +0700
Subject: [PATCH 55/58] restore it to 0.85

---
 packages/core/src/ragknowledge.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packages/core/src/ragknowledge.ts b/packages/core/src/ragknowledge.ts
index 6a00dc62e56..3932282ac6e 100644
--- a/packages/core/src/ragknowledge.ts
+++ b/packages/core/src/ragknowledge.ts
@@ -47,7 +47,7 @@ export class RAGKnowledgeManager implements IRAGKnowledgeManager {
         this.knowledgeRoot = opts.knowledgeRoot;
     }
 
-    private readonly defaultRAGMatchThreshold = 0.75;
+    private readonly defaultRAGMatchThreshold = 0.85; // default 0.85
     private readonly defaultRAGMatchCount = 5;
 
     /**

From 8f998243060e8cc4513084dd8d356064e745ac5b Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Sat, 1 Feb 2025 16:44:19 +0700
Subject: [PATCH 56/58] improveee

---
 packages/client-twitter/src/interactions.ts | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/packages/client-twitter/src/interactions.ts b/packages/client-twitter/src/interactions.ts
index 1a5bfc561ea..0ea66a60087 100644
--- a/packages/client-twitter/src/interactions.ts
+++ b/packages/client-twitter/src/interactions.ts
@@ -71,14 +71,13 @@ PRIORITY RULE: ALWAYS RESPOND to these users regardless of topic or message cont
 For other users:
 - {{agentName}} should RESPOND to messages directed at them
 - {{agentName}} should RESPOND to conversations relevant to their background
-- {{agentName}} should IGNORE irrelevant messages
 - {{agentName}} should IGNORE very short messages unless directly addressed
+- {{agentName}} should IGNORE to any marketing messages, shilling messages, promotion messages, or controversial topics
 - {{agentName}} should STOP if asked to stop
 - {{agentName}} should STOP if conversation is concluded
 - {{agentName}} is in a room with other users and wants to be conversational, but not annoying.
 
 IMPORTANT:
-- {{agentName}} (aka @{{twitterUserName}}) is particularly sensitive about being annoying, so if there is any doubt, it is better to IGNORE than to RESPOND.
 - For users not in the priority list, {{agentName}} (@{{twitterUserName}}) should err on the side of IGNORE rather than RESPOND if in doubt.
 
 Recent Posts:
@@ -280,9 +279,10 @@ export class TwitterInteractionClient {
                     );
 
                     const message = {
-                        content: { 
+                        content: {
                             text: tweet.text,
-                            imageUrls: tweet.photos?.map(photo => photo.url) || []
+                            imageUrls:
+                                tweet.photos?.map((photo) => photo.url) || [],
                         },
                         agentId: this.runtime.agentId,
                         userId: userIdUUID,
@@ -410,7 +410,7 @@ export class TwitterInteractionClient {
                 content: {
                     text: tweet.text,
                     url: tweet.permanentUrl,
-                    imageUrls: tweet.photos?.map(photo => photo.url) || [],
+                    imageUrls: tweet.photos?.map((photo) => photo.url) || [],
                     inReplyTo: tweet.inReplyToStatusId
                         ? stringToUuid(
                               tweet.inReplyToStatusId +
@@ -543,8 +543,8 @@ export class TwitterInteractionClient {
                         );
                     }
                     const responseTweetId =
-                    responseMessages[responseMessages.length - 1]?.content
-                        ?.tweetId;
+                        responseMessages[responseMessages.length - 1]?.content
+                            ?.tweetId;
                     await this.runtime.processActions(
                         message,
                         responseMessages,
@@ -619,7 +619,9 @@ export class TwitterInteractionClient {
                         text: currentTweet.text,
                         source: "twitter",
                         url: currentTweet.permanentUrl,
-                        imageUrls: currentTweet.photos?.map(photo => photo.url) || [],
+                        imageUrls:
+                            currentTweet.photos?.map((photo) => photo.url) ||
+                            [],
                         inReplyTo: currentTweet.inReplyToStatusId
                             ? stringToUuid(
                                   currentTweet.inReplyToStatusId +

From be1d69013842b5dbd5f2fab965285c053f701453 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Sat, 1 Feb 2025 19:09:11 +0700
Subject: [PATCH 57/58] image descriptions

---
 packages/client-twitter/src/interactions.ts | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/packages/client-twitter/src/interactions.ts b/packages/client-twitter/src/interactions.ts
index 0ea66a60087..83d4206e10e 100644
--- a/packages/client-twitter/src/interactions.ts
+++ b/packages/client-twitter/src/interactions.ts
@@ -59,6 +59,8 @@ Here is the current post text again. Remember to include an action if the curren
 {{currentPost}}
 Here is the descriptions of images in the Current post.
 {{imageDescriptions}}
+
+# ADDITIONAL NOTES : If there's any image descriptions, please include the conclusion of the image description within your context. You shouldnt discard any information from the image descriptions. You should make the image description as your additional topic to react or respond. If there's no image descriptions, you can ignore this part.
 ` + messageCompletionFooter;
 
 export const twitterShouldRespondTemplate = (targetUsersStr: string) =>

From 64ace80c0b048ff5f9de135a8c16b503f2cb5687 Mon Sep 17 00:00:00 2001
From: Indowebdeveloper <git@indowebdeveloper.com>
Date: Sun, 2 Feb 2025 11:35:41 +0700
Subject: [PATCH 58/58] fix

---
 agent/src/index.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/agent/src/index.ts b/agent/src/index.ts
index 843b9da49d5..d14779231d0 100644
--- a/agent/src/index.ts
+++ b/agent/src/index.ts
@@ -1055,7 +1055,7 @@ export async function createAgent(
             getSecret(character, "SERPER_API_KEY")
                 ? webSearchPlugin
                 : null,
-            getSecret(character, "SERPER_API_KEY") ? cryptoNewsPlugin : null,
+            cryptoNewsPlugin,
 
             getSecret(character, "SOLANA_PUBLIC_KEY") ||
             (getSecret(character, "WALLET_PUBLIC_KEY") &&