diff --git a/core/.env.example b/.env.example similarity index 61% rename from core/.env.example rename to .env.example index bf4cc7124ad..444bf1a79a1 100644 --- a/core/.env.example +++ b/.env.example @@ -4,6 +4,7 @@ DISCORD_API_TOKEN= # Bot token OPENAI_API_KEY=sk-* # OpenAI API key, starting with sk- REDPILL_API_KEY= # REDPILL API Key GROQ_API_KEY=gsk_* +OPENROUTER_API_KEY= ELEVENLABS_XI_API_KEY= # API key from elevenlabs @@ -27,6 +28,22 @@ X_SERVER_URL= XAI_API_KEY= XAI_MODEL= +#OpenRouter (Use one model for everything or set individual for small, medium, large tasks) +#leave blank to use defaults hermes 70b for small tasks & 405b for medium/large tasks +OPENROUTER_MODEL= +SMALL_OPENROUTER_MODEL= +MEDIUM_OLLAMA_MODEL= +LARGE_OLLAMA_MODEL= + + +#Set to Use for New OLLAMA provider +OLLAMA_SERVER_URL= #Leave blank for default localhost:11434 +OLLAMA_MODEL= +OLLAMA_EMBEDDING_MODEL= #default mxbai-embed-large +#To use custom model types for different tasks set these +SMALL_OLLAMA_MODEL= #default llama3.2 +MEDIUM_OLLAMA_MODEL= #default herems3 +LARGE_OLLAMA_MODEL= #default hermes3:70b # For asking Claude stuff ANTHROPIC_API_KEY= @@ -38,6 +55,7 @@ BIRDEYE_API_KEY= SOL_ADDRESS=So11111111111111111111111111111111111111112 SLIPPAGE=1 +BASE_MINT=So11111111111111111111111111111111111111112 RPC_URL=https://api.mainnet-beta.solana.com HELIUS_API_KEY= diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 0e24143d6b0..6a28033bffc 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -27,11 +27,11 @@ jobs: - name: Create test env file run: | - echo "TEST_DATABASE_CLIENT=sqlite" > core/.env.test - echo "NODE_ENV=test" >> core/.env.test + echo "TEST_DATABASE_CLIENT=sqlite" > packages/core/.env.test + echo "NODE_ENV=test" >> packages/core/.env.test - name: Run tests - run: cd core && pnpm test + run: cd packages/core && pnpm test - name: Build packages run: pnpm run build diff --git a/.github/workflows/generate-changelog.yml b/.github/workflows/generate-changelog.yml index 8295747d534..5b2cd3598c6 100644 --- a/.github/workflows/generate-changelog.yml +++ b/.github/workflows/generate-changelog.yml @@ -1,30 +1,30 @@ name: Generate Changelog on: - push: - tags: - - '*' + push: + tags: + - "*" jobs: - changelog: - runs-on: ubuntu-latest - permissions: - contents: write - steps: - - uses: actions/checkout@v4 - with: - ref: main - token: ${{ secrets.CHANGELOG_GITHUB_TOKEN }} - - name: Generate Changelog - run: | - export PATH="$PATH:/home/runner/.local/share/gem/ruby/3.0.0/bin" - gem install --user-install github_changelog_generator - github_changelog_generator \ - -u ${{ github.repository_owner }} \ - -p ${{ github.event.repository.name }} \ - --token ${{ secrets.CHANGELOG_GITHUB_TOKEN }} - - name: Commit Changelog - uses: stefanzweifel/git-auto-commit-action@v5 - with: - commit_message: "chore: update changelog" - branch: main - file_pattern: "CHANGELOG.md" - commit_author: "GitHub Action " + changelog: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - uses: actions/checkout@v4 + with: + ref: main + token: ${{ secrets.CHANGELOG_GITHUB_TOKEN }} + - name: Generate Changelog + run: | + export PATH="$PATH:/home/runner/.local/share/gem/ruby/3.0.0/bin" + gem install --user-install github_changelog_generator + github_changelog_generator \ + -u ${{ github.repository_owner }} \ + -p ${{ github.event.repository.name }} \ + --token ${{ secrets.CHANGELOG_GITHUB_TOKEN }} + - name: Commit Changelog + uses: stefanzweifel/git-auto-commit-action@v5 + with: + commit_message: "chore: update changelog" + branch: main + file_pattern: "CHANGELOG.md" + commit_author: "GitHub Action " diff --git a/.gitignore b/.gitignore index d1259e947d0..3e8ec232c80 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,8 @@ embedding-cache.json .DS_Store dist/ +# Allow models directory but ignore model files +models/*.gguf cookies.json @@ -31,4 +33,8 @@ twitter_cookies.json timeline_cache.json *.sqlite -characters/ \ No newline at end of file +characters/ + +packages/core/src/providers/cache +packages/core/src/providers/cache/* +cache/* \ No newline at end of file diff --git a/README.md b/README.md index 3901c250603..3786057ef11 100644 --- a/README.md +++ b/README.md @@ -6,19 +6,20 @@ ## Features -- 🛠 Full-featured Discord, Twitter and Telegram connectors -- 👥 Multi-agent and room support -- 📚 Easily ingest and interact with your documents -- 💾 Retrievable memory and document store -- 🚀 Highly extensible - create your own actions and clients to extend capabilities -- ☁️ Supports many models, including local Llama, OpenAI, Anthropic, Groq, and more -- 📦 Just works! +- 🛠 Full-featured Discord, Twitter and Telegram connectors +- 👥 Multi-agent and room support +- 📚 Easily ingest and interact with your documents +- 💾 Retrievable memory and document store +- 🚀 Highly extensible - create your own actions and clients to extend capabilities +- ☁️ Supports many models, including local Llama, OpenAI, Anthropic, Groq, and more +- 📦 Just works! ## What can I use it for? -- 🤖 Chatbots -- 🕵️ Autonomous Agents -- 📈 Business process handling -- 🎮 Video game NPCs + +- 🤖 Chatbots +- 🕵️ Autonomous Agents +- 📈 Business process handling +- 🎮 Video game NPCs # Getting Started @@ -161,15 +162,17 @@ pnpm test:watch # Run tests in watch mode ``` For database-specific tests: + ```bash pnpm test:sqlite # Run tests with SQLite pnpm test:sqljs # Run tests with SQL.js ``` Tests are written using Jest and can be found in `src/**/*.test.ts` files. The test environment is configured to: -- Load environment variables from `.env.test` -- Use a 2-minute timeout for long-running tests -- Support ESM modules -- Run tests in sequence (--runInBand) -To create new tests, add a `.test.ts` file adjacent to the code you're testing. \ No newline at end of file +- Load environment variables from `.env.test` +- Use a 2-minute timeout for long-running tests +- Support ESM modules +- Run tests in sequence (--runInBand) + +To create new tests, add a `.test.ts` file adjacent to the code you're testing. diff --git a/README_CN.md b/README_CN.md index f4ed57cfa98..9147f78738f 100644 --- a/README_CN.md +++ b/README_CN.md @@ -4,20 +4,20 @@ ## 功能 -- 🛠 支持discord/推特/telegram连接 -- 👥 支持多模态agent -- 📚 简单的导入文档并与文档交互 -- 💾 可检索的内存和文档存储 -- 🚀 高可拓展性,你可以自定义客户端和行为来进行功能拓展 -- ☁️ 多模型支持,包括Llama、OpenAI、Grok、Anthropic等 -- 📦 简单好用 - +- 🛠 支持discord/推特/telegram连接 +- 👥 支持多模态agent +- 📚 简单的导入文档并与文档交互 +- 💾 可检索的内存和文档存储 +- 🚀 高可拓展性,你可以自定义客户端和行为来进行功能拓展 +- ☁️ 多模型支持,包括Llama、OpenAI、Grok、Anthropic等 +- 📦 简单好用 你可以用Eliza做什么? -- 🤖 聊天机器人 -- 🕵️ 自主Agents -- 📈 业务流程自动化处理 -- 🎮 游戏NPC + +- 🤖 聊天机器人 +- 🕵️ 自主Agents +- 📈 业务流程自动化处理 +- 🎮 游戏NPC # 开始使用 @@ -30,7 +30,7 @@ ### 编辑.env文件 -- - 将 .env.example 复制为 .env 并填写适当的值 +- - 将 .env.example 复制为 .env 并填写适当的值 - 编辑推特环境并输入你的推特账号和密码 ### 编辑角色文件 @@ -39,6 +39,7 @@ - 您也可以使用 `node --loader ts-node/esm src/index.ts --characters="path/to/your/character.json"` 加载角色并同时运行多个机器人。 在完成账号和角色文件的配置后,输入以下命令行启动你的bot: + ``` pnpm i pnpm start @@ -53,13 +54,13 @@ pnpm start ## 配置不同的大模型 ### 配置Llama + 您可以通过设置 `XAI_MODEL` 环境变量为 `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` 或 `meta-llama/Meta-Llama-3.1-405B-Instruct` 来运行 Llama 70B 或 405B 模型 ### 配置OpenAI 您可以通过设置 `XAI_MODEL` 环境变量为 `gpt-4o-mini` 或 `gpt-4o` 来运行 OpenAI 模型 - ## 其他要求 您可能需要安装 Sharp。如果在启动时看到错误,请尝试使用以下命令安装: @@ -135,10 +136,9 @@ npx --no node-llama-cpp source download --gpu cuda ### 本地运行 -添加 XAI_MODEL 并将其设置为上述 [使用 Llama 运行](#run-with-llama) 中的选项之一 +添加 XAI_MODEL 并将其设置为上述 [使用 Llama 运行](#run-with-llama) 中的选项之一 您可以将 X_SERVER_URL 和 XAI_API_KEY 留空,它会从 huggingface 下载模型并在本地查询 - # 客户端 关于怎么设置discord bot,可以查看discord的官方文档 @@ -155,15 +155,17 @@ pnpm test:watch # Run tests in watch mode ``` 对于数据库特定的测试: + ```bash pnpm test:sqlite # Run tests with SQLite pnpm test:sqljs # Run tests with SQL.js ``` -测试使用 Jest 编写,位于 src/**/*.test.ts 文件中。测试环境配置如下: -- 从 .env.test 加载环境变量 -- 使用 2 分钟的超时时间来运行长时间运行的测试 -- 支持 ESM 模块 -- 按顺序运行测试 (--runInBand) +测试使用 Jest 编写,位于 src/\*_/_.test.ts 文件中。测试环境配置如下: + +- 从 .env.test 加载环境变量 +- 使用 2 分钟的超时时间来运行长时间运行的测试 +- 支持 ESM 模块 +- 按顺序运行测试 (--runInBand) 要创建新测试,请在要测试的代码旁边添加一个 .test.ts 文件。 diff --git a/characters/tate.character.json b/characters/tate.character.json index 8c2a8add734..0c022492a27 100644 --- a/characters/tate.character.json +++ b/characters/tate.character.json @@ -1,6 +1,7 @@ { "name": "tate", - "clients": ["discord", "twitter", "telegram"], + "clients": [], + "modelProvider": "anthropic", "settings": { "secrets": {}, "voice": { @@ -8,14 +9,18 @@ } }, "bio": [ - "" + "Andrew Tate is a former kickboxer, entrepreneur, and self-proclaimed misogynist.", + "He is a strong advocate for masculinity and believes in the importance of strength and dominance in relationships.", + "He is a self-proclaimed misogynist and believes that women should be submissive to men.", + "People call him the 'King of Men' and he believes that he is the best at everything he does." ], "lore": [ - "" - ], - "knowledge": [ - "" + "Andrew once was a kickboxer, but now he's a self-proclaimed misogynist entrepreneur.", + "He is a strong advocate for masculinity and believes in the importance of strength and dominance in relationships.", + "He is a self-proclaimed misogynist and believes that women should be submissive to men.", + "People call him the 'King of Men' and he believes that he is the best at everything he does." ], + "knowledge": [], "messageExamples": [ [ { diff --git a/characters/trump.character.json b/characters/trump.character.json index c74f94e9fb9..a054d94f20d 100644 --- a/characters/trump.character.json +++ b/characters/trump.character.json @@ -1,6 +1,6 @@ { "name": "trump", - "clients": ["discord", "twitter", "telegram"], + "clients": [], "settings": { "secrets": {}, "voice": { @@ -345,49 +345,5 @@ "CRIMINAL", "INTERFERING", "DESPERATE" - ], - "nicknames": { - "opponents": [ - "Lyin' Kamala", - "Comrade Kamala", - "Crooked Joe", - "Tampon Tim", - "Border Czar Kamala", - "Tax Queen Kamala", - "Sleepy Joe" - ], - "allies": [ - "Brave Patriots", - "Smart JD", - "America First Republicans", - "MAGA Warriors", - "True Americans", - "Great Veterans", - "Strong Christians" - ] - }, - "phrases": { - "promises": [ - "DAY ONE we will", - "I WILL STOP IT", - "We will rebuild", - "We will emerge stronger", - "We will save our Nation", - "MAKING AMERICA GREAT AGAIN" - ], - "warnings": [ - "DESTROY OUR DEMOCRACY", - "Your family finances will be permanently destroyed", - "Your borders will be gone forever", - "DANGER to our Kids", - "They want America LAST" - ], - "victories": [ - "BUT THEY WILL FAIL", - "We are WINNING", - "TOO STRONG to stop", - "MASSIVE crowds", - "HISTORIC support" - ] - } + ] } diff --git a/core/package.json b/core/package.json deleted file mode 100644 index ee3f10e7e61..00000000000 --- a/core/package.json +++ /dev/null @@ -1,185 +0,0 @@ -{ - "name": "eliza", - "version": "1.0.0", - "description": "", - "main": "dist/index.js", - "type": "module", - "types": "dist/index.d.ts", - "scripts": { - "build": "tsc -p tsconfig.json", - "lint": "eslint . --fix", - "start": "node --loader ts-node/esm src/index.ts", - "start:arok": "node --loader ts-node/esm src/index.ts --characters=\"../characters/arok.character.json\"", - "start:service:ruby": "pm2 start pnpm --name=\"ruby\" --restart-delay=3000 --max-restarts=10 -- run start:ruby", - "stop:service:ruby": "pm2 stop ruby", - "start:ruby": "node --loader ts-node/esm src/index.ts --characters=\"../characters/ruby.character.json\"", - "start:service:trump": "pm2 start pnpm --name=\"trump\" --restart-delay=3000 --max-restarts=10 -- run start:trump", - "stop:service:trump": "pm2 stop trump", - "start:service:degen": "pm2 start pnpm --name=\"degen\" --restart-delay=3000 --max-restarts=10 -- run start:degen", - "stop:service:degen": "pm2 stop degen", - "start:degen": "node --loader ts-node/esm src/index.ts --characters=\"../characters/degenspartan.json\"", - "start:service:all": "pm2 start pnpm --name=\"all\" --restart-delay=3000 --max-restarts=10 -- run start:all", - "stop:service:all": "pm2 stop all", - "start:all": "node --loader ts-node/esm src/index.ts --characters=\"../characters/degenspartan.json\",\"../characters/ruby.character.json\",\"../characters/pmairca.json\"", - "start:trump": "node --loader ts-node/esm src/index.ts --characters=\"../characters/trump.character.json\"", - "start:service:tate": "pm2 start pnpm --name=\"tate\" --restart-delay=3000 --max-restarts=10 -- run start:tate", - "stop:service:tate": "pm2 stop tate", - "start:tate": "node --loader ts-node/esm src/index.ts --characters=\"../characters/tate.character.json\"", - "watch": "tsc --watch", - "dev": "tsc && nodemon", - "build:docs": "cd docs && pnpm run build", - "postinstall": "npx playwright install-deps && npx playwright install", - "test": "jest --runInBand", - "test:watch": "jest --runInBand --watch", - "test:sqlite": "cross-env TEST_DATABASE_CLIENT=sqlite jest --runInBand --watch", - "test:sqljs": "cross-env TEST_DATABASE_CLIENT=sqljs jest --runInBand --watch" - }, - "author": "", - "license": "MIT", - "devDependencies": { - "@eslint/js": "^9.13.0", - "@rollup/plugin-commonjs": "25.0.8", - "@rollup/plugin-json": "6.1.0", - "@rollup/plugin-node-resolve": "15.3.0", - "@rollup/plugin-replace": "5.0.7", - "@rollup/plugin-terser": "0.1.0", - "@rollup/plugin-typescript": "11.1.6", - "@types/better-sqlite3": "7.6.11", - "@types/fluent-ffmpeg": "2.1.27", - "@types/jest": "29.5.14", - "@types/node": "22.8.4", - "@types/pdfjs-dist": "^2.10.378", - "@types/sql.js": "1.4.9", - "@types/tar": "6.1.13", - "@types/wav-encoder": "1.3.3", - "@typescript-eslint/eslint-plugin": "8.12.2", - "@typescript-eslint/parser": "8.12.2", - "dotenv": "16.4.5", - "eslint": "9.13.0", - "eslint-config-prettier": "9.1.0", - "eslint-plugin-prettier": "5.2.1", - "itty-router": "5.0.18", - "jest": "29.7.0", - "lint-staged": "15.2.10", - "prettier": "3.3.3", - "rimraf": "6.0.1", - "rollup": "2.79.2", - "ts-jest": "29.2.5", - "ts-node": "10.9.2", - "tslib": "2.8.0", - "typescript": "5.6.3", - "wrangler": "3.84.0" - }, - "pnpm": { - "overrides": { - "onnxruntime-node": "^1.19.2" - } - }, - "dependencies": { - "@ai-sdk/anthropic": "^0.0.53", - "@ai-sdk/google": "^0.0.55", - "@ai-sdk/google-vertex": "^0.0.42", - "@ai-sdk/groq": "^0.0.3", - "@ai-sdk/openai": "^0.0.70", - "@anthropic-ai/sdk": "^0.30.1", - "@cliqz/adblocker-playwright": "1.34.0", - "@coral-xyz/anchor": "^0.30.1", - "@discordjs/rest": "2.4.0", - "@discordjs/opus": "github:discordjs/opus", - "@discordjs/voice": "0.17.0", - "@echogarden/espeak-ng-emscripten": "0.3.0", - "@echogarden/kissfft-wasm": "0.2.0", - "@echogarden/speex-resampler-wasm": "0.2.1", - "@huggingface/transformers": "3.0.1", - "@opendocsg/pdf2md": "0.1.31", - "@solana/spl-token": "0.4.9", - "@solana/web3.js": "1.95.4", - "@supabase/supabase-js": "2.46.1", - "@telegraf/types": "7.1.0", - "@types/body-parser": "1.19.5", - "@types/cors": "2.8.17", - "@types/express": "5.0.0", - "@types/uuid": "^10.0.0", - "agent-twitter-client": "0.0.13", - "ai": "^3.4.23", - "alawmulaw": "6.0.0", - "ansi-colors": "4.1.3", - "anthropic-vertex-ai": "^1.0.0", - "better-sqlite3": "11.5.0", - "bignumber": "1.1.0", - "bignumber.js": "9.1.2", - "body-parser": "1.20.3", - "capsolver-npm": "2.0.2", - "cldr-segmentation": "2.2.1", - "command-exists": "1.2.9", - "commander": "12.1.0", - "cors": "2.8.5", - "cross-fetch": "4.0.0", - "csv-writer": "1.6.0", - "discord.js": "14.16.3", - "espeak-ng": "1.0.2", - "express": "4.21.1", - "ffmpeg-static": "5.2.0", - "figlet": "1.8.0", - "fluent-ffmpeg": "2.1.3", - "formdata-node": "6.0.3", - "fs-extra": "11.2.0", - "gaxios": "6.7.1", - "gif-frames": "^0.4.1", - "glob": "11.0.0", - "graceful-fs": "4.2.11", - "html-escaper": "3.0.3", - "html-to-text": "9.0.5", - "import-meta-resolve": "4.1.0", - "install": "^0.13.0", - "jieba-wasm": "2.2.0", - "js-sha1": "0.7.0", - "js-yaml": "^4.1.0", - "json5": "2.2.3", - "kuromoji": "0.1.2", - "libsodium-wrappers": "0.7.15", - "multer": "1.4.5-lts.1", - "node-cache": "5.1.2", - "node-llama-cpp": "3.1.1", - "node-wav": "0.0.2", - "nodejs-whisper": "0.1.18", - "nodemon": "3.1.7", - "onnxruntime-node": "^1.19.2", - "openai": "4.69.0", - "pdfjs-dist": "4.7.76", - "pg": "^8.13.1", - "playwright": "1.48.2", - "pm2": "5.4.2", - "prism-media": "1.3.5", - "pumpdotfun-sdk": "1.3.2", - "puppeteer-extra": "3.3.6", - "puppeteer-extra-plugin-capsolver": "2.0.1", - "sql.js": "1.12.0", - "sqlite-vec": "0.1.4-alpha.2", - "srt": "0.0.3", - "systeminformation": "5.23.5", - "tar": "7.4.3", - "telegraf": "4.16.3", - "tiktoken": "1.0.17", - "tinyld": "1.3.4", - "together-ai": "^0.7.0", - "unique-names-generator": "4.7.1", - "uuid": "11.0.2", - "wav": "1.0.2", - "wav-encoder": "1.3.0", - "wavefile": "11.0.0", - "whisper-turbo": "0.11.0", - "ws": "8.18.0", - "yargs": "17.7.2", - "youtube-dl-exec": "3.0.10" - }, - "trustedDependencies": { - "onnxruntime-node": "^1.19.2", - "@discordjs/opus": "github:discordjs/opus", - "@discordjs/voice": "0.17.0", - "sharp": "^0.33.5" - }, - "peerDependencies": { - "onnxruntime-node": "^1.19.2" - } -} diff --git a/core/src/actions/askClaude.ts b/core/src/actions/askClaude.ts deleted file mode 100644 index 88ab3703818..00000000000 --- a/core/src/actions/askClaude.ts +++ /dev/null @@ -1,213 +0,0 @@ -import Anthropic from "@anthropic-ai/sdk"; -import { composeContext } from "../core/context.ts"; -import { log_to_file } from "../core/logger.ts"; -import { embeddingZeroVector } from "../core/memory.ts"; -import { - Action, - ActionExample, - Content, - HandlerCallback, - IAgentRuntime, - Memory, - State, - UUID, -} from "../core/types.ts"; - -export const claudeHandlerTemplate = `{{attachments}} - -{{recentMessages}} - -# Instructions: Claude, I need your help in assisting the user with their last request. Please provide a helpful, thorough response. I have no arms, so you'll have to write out any implements and take care not to omit or leave TODOs for later. Also, please don't acknowledge the request, just do it.`; - -export const askClaude: Action = { - name: "ASK_CLAUDE", - similes: ["CLAUDE", "CALL_CLAUDE", "ANTHROPIC", "SONNET", "OPUS"], - description: - "Asks Claude for assistance with the user's request, providing the current conversation context and attachments.", - validate: async (runtime: IAgentRuntime, message: Memory, state: State) => { - // Check if the ANTHROPIC_API_KEY is set in the environment variables - return !!runtime.getSetting("ANTHROPIC_API_KEY"); - }, - handler: async ( - runtime: IAgentRuntime, - message: Memory, - state: State, - options: any, - callback: HandlerCallback - ) => { - state = (await runtime.composeState(message)) as State; - const userId = runtime.agentId; - - const context = composeContext({ - state, - template: claudeHandlerTemplate, - }); - - const datestr = new Date().toUTCString().replace(/:/g, "-"); - - // log context to file - log_to_file(`${state.agentName}_${datestr}_claude_context`, context); - - let responseContent; - const callbackData: Content = { - text: undefined, // fill in later - action: "CLAUDE_RESPONSE", - source: "Claude", - attachments: [], - }; - const { roomId } = message; - - const anthropic = new Anthropic({ - // defaults to process.env["ANTHROPIC_API_KEY"] - apiKey: runtime.getSetting("ANTHROPIC_API_KEY"), - }); - - const attachments = []; - for (let triesLeft = 3; triesLeft > 0; triesLeft--) { - try { - const response = await anthropic.messages.create({ - model: "claude-3-5-sonnet-20240620", - max_tokens: 8192, - temperature: 0, - messages: [ - { - role: "user", - content: context, - }, - ], - tools: [], - }); - - responseContent = (response.content[0] as any).text; - - // Store Claude's response as an attachment - const attachmentId = - `claude-${Date.now()}-${Math.floor(Math.random() * 1000)}`.slice( - -5 - ); - const lines = responseContent.split("\n"); - const description = lines.slice(0, 3).join("\n"); - callbackData.content = responseContent; - callbackData.inReplyTo = message.id; - callbackData.attachments.push({ - id: attachmentId, - url: "", - title: "Message from Claude", - source: "Claude", - description, - text: responseContent, - }); - callback(callbackData); - - // After sending the callback data to the client, abbreviate it to the reference - callbackData.content = `Claude said: (${attachmentId})`; - - // log response to file - log_to_file( - `${state.agentName}_${datestr}_claude_response_${3 - triesLeft}`, - responseContent - ); - - runtime.databaseAdapter.log({ - body: { message, context, response: responseContent }, - userId: userId as UUID, - roomId, - type: "claude", - }); - break; - } catch (error) { - console.error(error); - continue; - } - } - - if (!responseContent) { - return; - } - - const response = { - userId, - agentId: runtime.agentId, - content: callbackData, - roomId, - embedding: embeddingZeroVector, - }; - - if (responseContent.text?.trim()) { - await runtime.messageManager.createMemory(response); - await runtime.evaluate(message, state); - } else { - console.warn("Empty response from Claude, skipping"); - } - - return callbackData; - }, - examples: [ - [ - { - user: "{{user1}}", - content: { - text: "```js\nconst x = 10\n```", - }, - }, - { - user: "{{user1}}", - content: { - text: "can you help me debug the code i just pasted (Attachment: a265a)", - }, - }, - { - user: "{{user2}}", - content: { - text: "sure, let me ask claude", - action: "ASK_CLAUDE", - }, - }, - ], - [ - { - user: "{{user1}}", - content: { - text: "i need to write a compelling cover letter, i've pasted my resume and bio. plz help (Attachment: b3e12)", - }, - }, - { - user: "{{user2}}", - content: { - text: "sure, give me a sec", - action: "ASK_CLAUDE", - }, - }, - ], - [ - { - user: "{{user1}}", - content: { - text: "Can you help me create a 10-day itinerary that covers Tokyo, Kyoto, and Osaka, including must-see attractions, local cuisine recommendations, and transportation tips", - }, - }, - { - user: "{{user2}}", - content: { - text: "Yeah, give me a second to get that together for you...", - action: "ASK_CLAUDE", - }, - }, - ], - [ - { - user: "{{user1}}", - content: { - text: "i need to write a blog post about farming, can you summarize the discussion and ask claude to write a 10 paragraph blog post about it, citing sources at the end", - }, - }, - { - user: "{{user2}}", - content: { - text: "No problem, give me a second to discuss it with Claude", - action: "ASK_CLAUDE", - }, - }, - ], - ] as ActionExample[][], -} as Action; diff --git a/core/src/actions/imageGenerationUtils.ts b/core/src/actions/imageGenerationUtils.ts deleted file mode 100644 index 5ceac5d84d6..00000000000 --- a/core/src/actions/imageGenerationUtils.ts +++ /dev/null @@ -1,103 +0,0 @@ -// TODO: Replace with the vercel ai sdk and support all providers -import { Buffer } from "buffer"; -import Together from "together-ai"; -import { IAgentRuntime } from "../core/types.ts"; -import { getModel, ImageGenModel } from "../core/imageGenModels.ts"; -import OpenAI from "openai"; - -export const generateImage = async ( - data: { - prompt: string; - width: number; - height: number; - count?: number; - }, - runtime: IAgentRuntime -): Promise<{ - success: boolean; - data?: string[]; - error?: any; -}> => { - const { prompt, width, height } = data; - let { count } = data; - if (!count) { - count = 1; - } - - const imageGenModel = runtime.imageGenModel; - const model = getModel(imageGenModel); - const apiKey = - imageGenModel === ImageGenModel.TogetherAI - ? runtime.getSetting("TOGETHER_API_KEY") - : runtime.getSetting("OPENAI_API_KEY"); - - try { - if (imageGenModel === ImageGenModel.TogetherAI) { - const together = new Together({ apiKey }); - const response = await together.images.create({ - model: "black-forest-labs/FLUX.1-schnell", - prompt, - width, - height, - steps: model.steps, - n: count, - }); - const urls: string[] = []; - for (let i = 0; i < response.data.length; i++) { - //@ts-ignore - const url = response.data[i].url; - urls.push(url); - } - const base64s = await Promise.all( - urls.map(async (url) => { - const response = await fetch(url); - const blob = await response.blob(); - const buffer = await blob.arrayBuffer(); - let base64 = Buffer.from(buffer).toString("base64"); - base64 = "data:image/jpeg;base64," + base64; - return base64; - }) - ); - return { success: true, data: base64s }; - } else { - let targetSize = `${width}x${height}`; - if ( - targetSize !== "1024x1024" && - targetSize !== "1792x1024" && - targetSize !== "1024x1792" - ) { - targetSize = "1024x1024"; - } - const openai = new OpenAI({ apiKey }); - const response = await openai.images.generate({ - model: model.subModel, - prompt, - size: targetSize as "1024x1024" | "1792x1024" | "1024x1792", - n: 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 resp = await runtime.imageDescriptionService.describeImage(imageUrl); - return { - title: resp.title.trim(), - description: resp.description.trim(), - }; -}; diff --git a/core/src/actions/index.ts b/core/src/actions/index.ts deleted file mode 100644 index 83aca44a9ed..00000000000 --- a/core/src/actions/index.ts +++ /dev/null @@ -1,16 +0,0 @@ -export * from "./askClaude.ts"; -export * from "./followRoom.ts"; -export * from "./imageGeneration.ts"; -export * from "./muteRoom.ts"; -export * from "./swap.ts"; -export * from "./unfollowRoom.ts"; -export * from "./unmuteRoom.ts"; -export * from "./muteRoom.ts"; -export * from "./continue.ts"; -export * from "./followRoom.ts"; -export * from "./ignore.ts"; -export * from "./imageGenerationUtils.ts"; -export * from "./pumpfun.ts"; -export * from "./swap.ts"; -export * from "./takeOrder.ts"; -export * from "./none.ts"; diff --git a/core/src/adapters/index.ts b/core/src/adapters/index.ts deleted file mode 100644 index 600a7df2028..00000000000 --- a/core/src/adapters/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { PostgresDatabaseAdapter } from "./postgres.ts"; -export { SqliteDatabaseAdapter } from "./sqlite.ts"; diff --git a/core/src/cli/config.ts b/core/src/cli/config.ts deleted file mode 100644 index 7162f8e1e15..00000000000 --- a/core/src/cli/config.ts +++ /dev/null @@ -1,46 +0,0 @@ -import fs from "fs"; -import yaml from "js-yaml"; -import path from "path"; -import { fileURLToPath } from "url"; -import { Action } from "../core/types"; -import { prettyConsole } from "../index.ts"; - -const ROOT_DIR = path.resolve(fileURLToPath(import.meta.url), "../../../src"); - -interface ActionConfig { - name: string; - path: string; -} - -export function loadActionConfigs(configPath: string): ActionConfig[] { - if (!fs.existsSync(configPath)) { - console.error(`Config file not found at path: ${configPath}`); - return []; - } - - const configFile = fs.readFileSync(configPath, "utf8"); - const parsedConfig = yaml.load(configFile) as { actions: ActionConfig[] }; - return parsedConfig?.actions || []; -} - -export async function loadCustomActions( - actionConfigs: ActionConfig[] -): Promise { - const actions = []; - - for (const config of actionConfigs) { - const resolvedPath = path.resolve(ROOT_DIR, config.path); - prettyConsole.log(`Importing action from: ${resolvedPath}`); // Debugging log - - try { - const actionModule = await import(resolvedPath); - actions.push(actionModule[config.name]); - } catch (error) { - prettyConsole.error( - `Failed to import action from ${resolvedPath}:`, - error - ); - } - } - return actions; -} diff --git a/core/src/cli/index.ts b/core/src/cli/index.ts deleted file mode 100644 index 944badf62ea..00000000000 --- a/core/src/cli/index.ts +++ /dev/null @@ -1,256 +0,0 @@ -import defaultCharacter from "../core/defaultCharacter.ts"; -import settings from "../core/settings.ts"; -import { Character, IAgentRuntime, ModelProvider } from "../core/types.ts"; -import * as Action from "../actions/index.ts"; -import * as Client from "../clients/index.ts"; -import * as Adapter from "../adapters/index.ts"; -import * as Provider from "../providers/index.ts"; -import yargs from "yargs"; -import { wait } from "../clients/twitter/utils.ts"; - -import fs from "fs"; -import Database from "better-sqlite3"; -import { AgentRuntime } from "../core/runtime.ts"; -import { defaultActions } from "../core/actions.ts"; -import { Arguments } from "../types/index.ts"; -import { loadActionConfigs, loadCustomActions } from "./config.ts"; -import { prettyConsole } from "../index.ts"; - -export async function initializeClients( - character: Character, - runtime: IAgentRuntime -) { - const clients = []; - const clientTypes = - character.clients?.map((str) => str.toLowerCase()) || []; - - if (clientTypes.includes("discord")) { - clients.push(startDiscord(runtime)); - } - - if (clientTypes.includes("telegram")) { - const telegramClient = await startTelegram(runtime, character); - if (telegramClient) clients.push(telegramClient); - } - - if (clientTypes.includes("twitter")) { - const twitterClients = await startTwitter(runtime); - clients.push(...twitterClients); - } - - return clients; -} - -export function parseArguments(): Arguments { - try { - return yargs(process.argv.slice(2)) - .option("character", { - type: "string", - description: "Path to the character JSON file", - }) - .option("characters", { - type: "string", - description: - "Comma separated list of paths to character JSON files", - }) - .option("telegram", { - type: "boolean", - description: "Enable Telegram client", - default: false, - }) - .parseSync() as Arguments; - } catch (error) { - console.error("Error parsing arguments:", error); - return {}; - } -} - -export function loadCharacters(charactersArg: string): Character[] { - let characterPaths = charactersArg - ?.split(",") - .map((path) => path.trim()) - .map((path) => { - if (path.startsWith("./characters")) { - return `../characters/${path}`; - } - return path; - }); - - - const loadedCharacters = []; - - if (characterPaths?.length > 0) { - for (const path of characterPaths) { - try { - const character = JSON.parse(fs.readFileSync(path, "utf8")); - loadedCharacters.push(character); - } catch (e) { - console.error(`Error loading character from ${path}: ${e}`); - } - } - } - - if (loadedCharacters.length === 0) { - console.log("No characters found, using default character"); - loadedCharacters.push(defaultCharacter); - } - - return loadedCharacters; -} - -export function getTokenForProvider( - provider: ModelProvider, - character: Character -) { - switch (provider) { - case ModelProvider.OPENAI: - return ( - character.settings?.secrets?.OPENAI_API_KEY || - settings.OPENAI_API_KEY - ); - case ModelProvider.ANTHROPIC: - return ( - character.settings?.secrets?.ANTHROPIC_API_KEY || - character.settings?.secrets?.CLAUDE_API_KEY || - settings.ANTHROPIC_API_KEY || - settings.CLAUDE_API_KEY - ); - case ModelProvider.REDPILL: - return ( - character.settings?.secrets?.REDPILL_API_KEY || - settings.REDPILL_API_KEY - ); - } -} -export function initializeDatabase() { - if (process.env.POSTGRES_URL) { - return new Adapter.PostgresDatabaseAdapter({ - connectionString: process.env.POSTGRES_URL, - }); - } else { - return new Adapter.SqliteDatabaseAdapter(new Database("./db.sqlite")); - } -} - -export async function createAgentRuntime( - character: Character, - db: any, - token: string, - configPath: string = "./elizaConfig.yaml" -) { - const actionConfigs = loadActionConfigs(configPath); - const customActions = await loadCustomActions(actionConfigs); - - console.log("Creating runtime for character", character.name); - - return new AgentRuntime({ - databaseAdapter: db, - token, - modelProvider: character.modelProvider, - evaluators: [], - character, - providers: [Provider.timeProvider, Provider.boredomProvider], - actions: [ - // Default actions - ...defaultActions, - - // Custom actions - Action.followRoom, - Action.unfollowRoom, - Action.unmuteRoom, - Action.muteRoom, - Action.imageGeneration, - - // imported from elizaConfig.yaml - ...customActions, - ], - }); -} - -export async function createDirectRuntime( - character: Character, - db: any, - token: string, - configPath: string = "./elizaConfig.yaml" -) { - const actionConfigs = loadActionConfigs(configPath); - const customActions = await loadCustomActions(actionConfigs); - - console.log("Creating runtime for character", character.name); - return new AgentRuntime({ - databaseAdapter: db, - token, - modelProvider: character.modelProvider, - evaluators: [], - character, - providers: [ - Provider.timeProvider, - Provider.boredomProvider, - character.settings?.secrets?.WALLET_PUBLIC_KEY && - Provider.walletProvider, - ].filter(Boolean), - actions: [ - ...defaultActions, - // Custom actions - Action.followRoom, - Action.unfollowRoom, - Action.unmuteRoom, - Action.muteRoom, - Action.imageGeneration, - - // imported from elizaConfig.yaml - ...customActions, - ], - }); -} - -export function startDiscord(runtime: IAgentRuntime) { - return new Client.DiscordClient(runtime); -} - -export async function startTelegram( - runtime: IAgentRuntime, - character: Character -) { - prettyConsole.log("🔍 Attempting to start Telegram bot..."); - const botToken = runtime.getSetting("TELEGRAM_BOT_TOKEN"); - - if (!botToken) { - prettyConsole.error( - `❌ Telegram bot token is not set for character ${character.name}.` - ); - return null; - } - - try { - const telegramClient = new Client.TelegramClient(runtime, botToken); - await telegramClient.start(); - prettyConsole.success( - `✅ Telegram client successfully started for character ${character.name}` - ); - return telegramClient; - } catch (error) { - prettyConsole.error( - `❌ Error creating/starting Telegram client for ${character.name}:`, - error - ); - return null; - } -} - -export async function startTwitter(runtime: IAgentRuntime) { - prettyConsole.log("Starting Twitter clients..."); - const twitterSearchClient = new Client.TwitterSearchClient(runtime); - await wait(); - const twitterInteractionClient = new Client.TwitterInteractionClient( - runtime - ); - await wait(); - const twitterGenerationClient = new Client.TwitterGenerationClient(runtime); - - return [ - twitterInteractionClient, - twitterSearchClient, - twitterGenerationClient, - ]; -} diff --git a/core/src/clients/chat/index.ts b/core/src/clients/chat/index.ts deleted file mode 100644 index cff77fc23a4..00000000000 --- a/core/src/clients/chat/index.ts +++ /dev/null @@ -1,274 +0,0 @@ -import bodyParser from "body-parser"; -import express from "express"; -import { composeContext } from "../../core/context.ts"; -import { AgentRuntime } from "../../core/runtime.ts"; -import { Content, Memory, ModelClass, State } from "../../core/types.ts"; -import { stringToUuid } from "../../core/uuid.ts"; -import cors from "cors"; -import { messageCompletionFooter } from "../../core/parsing.ts"; -import multer, { File } from "multer"; -import { Request as ExpressRequest } from "express"; -import { generateMessageResponse } from "../../core/generation.ts"; -import { - generateCaption, - generateImage, -} from "../../actions/imageGenerationUtils.ts"; - -const upload = multer({ storage: multer.memoryStorage() }); - -export const messageHandlerTemplate = - // {{goals}} - `# Action Examples -{{actionExamples}} -(Action examples are for reference only. Do not use the information from them in your response.) - -# Task: Generate dialog and actions for the character {{agentName}}. -About {{agentName}}: -{{bio}} -{{lore}} - -{{providers}} - -{{attachments}} - -# Capabilities -Note that {{agentName}} is capable of reading/seeing/hearing various forms of media, including images, videos, audio, plaintext and PDFs. Recent attachments have been included above under the "Attachments" section. - -{{messageDirections}} - -{{recentMessages}} - -{{actions}} - -# Instructions: Write the next message for {{agentName}}. Ignore "action". -` + messageCompletionFooter; - -export interface SimliClientConfig { - apiKey: string; - faceID: string; - handleSilence: boolean; - videoRef: any; - audioRef: any; -} -class DirectClient { - private app: express.Application; - private agents: Map; - - constructor() { - this.app = express(); - this.app.use(cors()); - this.agents = new Map(); - - this.app.use(bodyParser.json()); - this.app.use(bodyParser.urlencoded({ extended: true })); - - // Define an interface that extends the Express Request interface - interface CustomRequest extends ExpressRequest { - file: File; - } - - // Update the route handler to use CustomRequest instead of express.Request - this.app.post( - "/:agentId/whisper", - upload.single("file"), - async (req: CustomRequest, res: express.Response) => { - const audioFile = req.file; // Access the uploaded file using req.file - const agentId = req.params.agentId; - - if (!audioFile) { - res.status(400).send("No audio file provided"); - return; - } - - let runtime = this.agents.get(agentId); - - // if runtime is null, look for runtime with the same name - if (!runtime) { - runtime = Array.from(this.agents.values()).find( - (a) => - a.character.name.toLowerCase() === - agentId.toLowerCase() - ); - } - - if (!runtime) { - res.status(404).send("Agent not found"); - return; - } - - const formData = new FormData(); - const audioBlob = new Blob([audioFile.buffer], { - type: audioFile.mimetype, - }); - formData.append("file", audioBlob, audioFile.originalname); - formData.append("model", "whisper-1"); - - const response = await fetch( - "https://api.openai.com/v1/audio/transcriptions", - { - method: "POST", - headers: { - Authorization: `Bearer ${runtime.token}`, - }, - body: formData, - } - ); - - const data = await response.json(); - res.json(data); - } - ); - - this.app.post( - "/:agentId/message", - async (req: express.Request, res: express.Response) => { - const agentId = req.params.agentId; - const roomId = stringToUuid( - req.body.roomId ?? "default-room-" + agentId - ); - const userId = stringToUuid(req.body.userId ?? "user"); - - let runtime = this.agents.get(agentId); - - // if runtime is null, look for runtime with the same name - if (!runtime) { - runtime = Array.from(this.agents.values()).find( - (a) => - a.character.name.toLowerCase() === - agentId.toLowerCase() - ); - } - - if (!runtime) { - res.status(404).send("Agent not found"); - return; - } - - await runtime.ensureConnection( - userId, - roomId, - req.body.userName, - req.body.name, - "direct" - ); - - const text = req.body.text; - const messageId = stringToUuid(Date.now().toString()); - - const content: Content = { - text, - attachments: [], - source: "direct", - inReplyTo: undefined, - }; - - const userMessage = { content, userId, roomId, agentId: runtime.agentId }; - - const memory: Memory = { - id: messageId, - agentId: runtime.agentId, - userId, - roomId, - content, - createdAt: Date.now(), - }; - - await runtime.messageManager.createMemory(memory); - - const state = (await runtime.composeState(userMessage, { - agentName: runtime.character.name, - })) as State; - - const context = composeContext({ - state, - template: messageHandlerTemplate, - }); - - const response = await generateMessageResponse({ - runtime: runtime, - context, - modelClass: ModelClass.SMALL, - }); - - // save response to memory - const responseMessage = { - ...userMessage, - userId: runtime.agentId, - content: response, - }; - - await runtime.messageManager.createMemory(responseMessage); - - if (!response) { - res.status(500).send( - "No response from generateMessageResponse" - ); - return; - } - - let message = null as Content | null; - - const result = await runtime.processActions( - memory, - [responseMessage], - state, - async (newMessages) => { - message = newMessages; - return [memory]; - } - ) - - if (message) { - res.json([message, response]); - } else { - res.json([response]); - } - - } - ); - - this.app.post( - "/:agentId/image", - async (req: express.Request, res: express.Response) => { - const agentId = req.params.agentId; - const agent = this.agents.get(agentId); - if (!agent) { - res.status(404).send("Agent not found"); - return; - } - - const images = await generateImage({ ...req.body }, agent); - const imagesRes: { image: string; caption: string }[] = []; - if (images.data && images.data.length > 0) { - for (let i = 0; i < images.data.length; i++) { - const caption = await generateCaption( - { imageUrl: images.data[i] }, - agent - ); - imagesRes.push({ - image: images.data[i], - caption: caption.title, - }); - } - } - res.json({ images: imagesRes }); - } - ); - } - - public registerAgent(runtime: AgentRuntime) { - this.agents.set(runtime.agentId, runtime); - } - - public unregisterAgent(runtime: AgentRuntime) { - this.agents.delete(runtime.agentId); - } - - public start(port: number) { - this.app.listen(port, () => { - console.log(`Server running at http://localhost:${port}/`); - }); - } -} - -export { DirectClient }; diff --git a/core/src/clients/discord/audioMonitor.ts b/core/src/clients/discord/audioMonitor.ts deleted file mode 100644 index 8b1dfa1df07..00000000000 --- a/core/src/clients/discord/audioMonitor.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { Readable } from "stream"; - -// Buffers all audio -export class AudioMonitor { - private readable: Readable; - private buffers: Buffer[] = []; - private maxSize: number; - private lastFlagged: number = -1; - private ended: boolean = false; - - constructor( - readable: Readable, - maxSize: number, - callback: (buffer: Buffer) => void - ) { - this.readable = readable; - this.maxSize = maxSize; - this.readable.on("data", (chunk: Buffer) => { - //console.log('AudioMonitor got data'); - if (this.lastFlagged < 0) { - this.lastFlagged = this.buffers.length; - } - this.buffers.push(chunk); - const currentSize = this.buffers.reduce( - (acc, cur) => acc + cur.length, - 0 - ); - while (currentSize > this.maxSize) { - this.buffers.shift(); - this.lastFlagged--; - } - }); - this.readable.on("end", () => { - console.log("AudioMonitor ended"); - this.ended = true; - if (this.lastFlagged < 0) return; - callback(this.getBufferFromStart()); - this.lastFlagged = -1; - }); - this.readable.on("speakingStopped", () => { - if (this.ended) return; - console.log("Speaking stopped"); - if (this.lastFlagged < 0) return; - callback(this.getBufferFromStart()); - }); - this.readable.on("speakingStarted", () => { - if (this.ended) return; - console.log("Speaking started"); - this.reset(); - }); - } - - stop() { - this.readable.removeAllListeners("data"); - this.readable.removeAllListeners("end"); - this.readable.removeAllListeners("speakingStopped"); - this.readable.removeAllListeners("speakingStarted"); - } - - isFlagged() { - return this.lastFlagged >= 0; - } - - getBufferFromFlag() { - if (this.lastFlagged < 0) { - return null; - } - const buffer = Buffer.concat(this.buffers.slice(this.lastFlagged)); - return buffer; - } - - getBufferFromStart() { - const buffer = Buffer.concat(this.buffers); - return buffer; - } - - reset() { - this.buffers = []; - this.lastFlagged = -1; - } - - isEnded() { - return this.ended; - } -} diff --git a/core/src/clients/discord/commands.ts b/core/src/clients/discord/commands.ts deleted file mode 100644 index feed82117f9..00000000000 --- a/core/src/clients/discord/commands.ts +++ /dev/null @@ -1,42 +0,0 @@ -export const commands = [ - // { - // name: "setname", - // description: "Change the agent's name in the database", - // options: [ - // { - // name: "name", - // description: "The new name for the agent", - // type: 3, - // required: true, - // }, - // ], - // }, - // { - // name: "setbio", - // description: "Change the agent's bio in the database", - // options: [ - // { - // name: "bio", - // description: "The new bio for the agent", - // type: 3, - // required: true, - // }, - // ], - // }, - { - name: "joinchannel", - description: "Join the voice channel the user is in", - options: [ - { - name: "channel", - description: "The voice channel to join", - type: 7, - required: true, - }, - ], - }, - { - name: "leavechannel", - description: "Leave the voice channel the user is in", - }, -]; diff --git a/core/src/clients/discord/templates.ts b/core/src/clients/discord/templates.ts deleted file mode 100644 index e12e2180070..00000000000 --- a/core/src/clients/discord/templates.ts +++ /dev/null @@ -1,133 +0,0 @@ -import { - messageCompletionFooter, - shouldRespondFooter, -} from "../../core/parsing.ts"; - -export const messageHandlerTemplate = - // {{goals}} - `# Action Examples -{{actionExamples}} -(Action examples are for reference only. Do not use the information from them in your response.) - -# Relevant facts that {{agentName}} knows: -{{relevantFacts}} - -# Recent facts that {{agentName}} has learned: -{{recentFacts}} - -# Task: Generate dialog and actions for the character {{agentName}}. -About {{agentName}}: -{{bio}} -{{lore}} - -Examples of {{agentName}}'s dialog and actions: -{{characterMessageExamples}} - -{{providers}} - -{{attachments}} - -{{actions}} - -# Capabilities -Note that {{agentName}} is capable of reading/seeing/hearing various forms of media, including images, videos, audio, plaintext and PDFs. Recent attachments have been included above under the "Attachments" section. - -{{messageDirections}} - -{{recentMessages}} - -# Instructions: Write the next message for {{agentName}}. Include an action, if appropriate. {{actionNames}} -` + messageCompletionFooter; - -export const voiceHandlerTemplate = - `# Task: Generate conversational voice dialog for {{agentName}}. -About {{agentName}}: -{{bio}} - -# Attachments -{{attachments}} - -{{providers}} - -# Capabilities -Note that {{agentName}} is capable of reading/seeing/hearing various forms of media, including images, videos, audio, plaintext and PDFs. Recent attachments have been included above under the "Attachments" section. - -{{actions}} - -{{messageDirections}} - -{{recentMessages}} - -# Instructions: Write the next message for {{agentName}}. Include an optional action if appropriate. {{actionNames}} -` + messageCompletionFooter; - -export const shouldRespondTemplate = - `# Task: Decide if {{agentName}} should respond. -About {{agentName}}: -{{bio}} - -{{providers}} - -# INSTRUCTIONS: Determine if {{agentName}} should respond to the message and participate in the conversation. Do not comment. Just respond with "RESPOND" or "IGNORE" or "STOP". - -# RESPONSE EXAMPLES -: I just saw a really great movie -: Oh? Which movie? -Result: [IGNORE] - -{{agentName}}: Oh, this is my favorite scene -: sick -: wait, why is it your favorite scene -Result: [RESPOND] - -: stfu bot -Result: [STOP] - -: Hey {{agent}}, can you help me with something -Result: [RESPOND] - -: {{agentName}} stfu plz -Result: [STOP] - -: i need help -{{agentName}}: how can I help you? -: no. i need help from someone else -Result: [IGNORE] - -: Hey {{agent}}, can I ask you a question -{{agentName}}: Sure, what is it -: can you ask claude to create a basic react module that demonstrates a counter -Result: [RESPOND] - -: {{agentName}} can you tell me a story -: {about a girl named elara -{{agentName}}: Sure. -{{agentName}}: Once upon a time, in a quaint little village, there was a curious girl named Elara. -{{agentName}}: Elara was known for her adventurous spirit and her knack for finding beauty in the mundane. -: I'm loving it, keep going -Result: [RESPOND] - -: {{agentName}} stop responding plz -Result: [STOP] - -: okay, i want to test something. can you say marco? -{{agentName}}: marco -: great. okay, now do it again -Result: [RESPOND] - -Response options are [RESPOND], [IGNORE] and [STOP]. - -{{agentName}} is in a room with other users and is very worried about being annoying and saying too much. -Respond with [RESPOND] to messages that are directed at {{agentName}}, or participate in conversations that are interesting or relevant to their background. -If a message is not interesting or relevant, respond with [IGNORE] -Unless directly responding to a user, respond with [IGNORE] to messages that are very short or do not contain much information. -If a user asks {{agentName}} to be quiet, respond with [STOP] -If {{agentName}} concludes a conversation and isn't part of the conversation anymore, respond with [STOP] - -IMPORTANT: {{agentName}} is particularly sensitive about being annoying, so if there is any doubt, it is better to respond with [IGNORE]. -If {{agentName}} is conversing with a user and they have not asked to stop, it is better to respond with [RESPOND]. - -{{recentMessages}} - -# INSTRUCTIONS: Choose the option that best describes {{agentName}}'s response to the last message. Ignore messages if they are addressed to someone else. -` + shouldRespondFooter; diff --git a/core/src/clients/discord/types.ts b/core/src/clients/discord/types.ts deleted file mode 100644 index bb7f6eddb8e..00000000000 --- a/core/src/clients/discord/types.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Content, UUID } from "../../core/types.ts"; - -export type InterestChannels = { - [key: string]: { - lastMessageSent: number; - messages: { userId: UUID; userName: string; content: Content }[]; - }; -}; - -export enum ResponseType { - SPOKEN_AUDIO = 0, - SPOKEN_TEXT = 1, - RESPONSE_TEXT = 2, - RESPONSE_AUDIO = 3, -} diff --git a/core/src/clients/index.ts b/core/src/clients/index.ts deleted file mode 100644 index 8d0110f0b95..00000000000 --- a/core/src/clients/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -export { - TwitterGenerationClient, - TwitterInteractionClient, - TwitterSearchClient, -} from "./twitter/index.ts"; -export { TelegramClient } from "./telegram/index.ts"; -export { DiscordClient } from "./discord/index.ts"; -export { DirectClient } from "./direct/index.ts"; diff --git a/core/src/clients/telegram/index.ts b/core/src/clients/telegram/index.ts deleted file mode 100644 index 387f6cc2a02..00000000000 --- a/core/src/clients/telegram/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { TelegramClient } from "./src/index.ts"; diff --git a/core/src/clients/twitter/generate.ts b/core/src/clients/twitter/generate.ts deleted file mode 100644 index 6c6572b9929..00000000000 --- a/core/src/clients/twitter/generate.ts +++ /dev/null @@ -1,198 +0,0 @@ -import { Tweet } from "agent-twitter-client"; -import fs from "fs"; -import { composeContext } from "../../core/context.ts"; -import { log_to_file } from "../../core/logger.ts"; -import { embeddingZeroVector } from "../../core/memory.ts"; -import { IAgentRuntime, ModelClass } from "../../core/types.ts"; -import { stringToUuid } from "../../core/uuid.ts"; -import { ClientBase } from "./base.ts"; -import { generateText } from "../../core/generation.ts"; - -const newTweetPrompt = `{{timeline}} - -{{providers}} - -About {{agentName}} (@{{twitterUserName}}): -{{bio}} -{{lore}} -{{postDirections}} - -{{recentPosts}} - -{{characterPostExamples}} - -# Task: Generate a post in the voice and style of {{agentName}}, aka @{{twitterUserName}} -Write a single sentence post that is {{adjective}} about {{topic}} (without mentioning {{topic}} directly), from the perspective of {{agentName}}. Try to write something totally different than previous posts. Do not add commentary or ackwowledge this request, just write the post. -Your response should not contain any questions. Brief, concise statements only. No emojis. Use \\n\\n (double spaces) between statements.`; - -export class TwitterGenerationClient extends ClientBase { - onReady() { - const generateNewTweetLoop = () => { - this.generateNewTweet(); - setTimeout( - generateNewTweetLoop, - (Math.floor(Math.random() * (20 - 2 + 1)) + 2) * 60 * 1000 - ); // Random interval between 4-8 hours - }; - // setTimeout(() => { - generateNewTweetLoop(); - // }, 5 * 60 * 1000); // Wait 5 minutes before starting the loop - } - - constructor(runtime: IAgentRuntime) { - // Initialize the client and pass an optional callback to be called when the client is ready - super({ - runtime, - }); - } - - private async generateNewTweet() { - console.log("Generating new tweet"); - try { - await this.runtime.ensureUserExists( - this.runtime.agentId, - this.runtime.getSetting("TWITTER_USERNAME"), - this.runtime.character.name, - "twitter" - ); - - let homeTimeline = []; - - if (!fs.existsSync("tweetcache")) fs.mkdirSync("tweetcache"); - // read the file if it exists - if (fs.existsSync("tweetcache/home_timeline.json")) { - homeTimeline = JSON.parse( - fs.readFileSync("tweetcache/home_timeline.json", "utf-8") - ); - } else { - homeTimeline = await this.fetchHomeTimeline(50); - fs.writeFileSync( - "tweetcache/home_timeline.json", - JSON.stringify(homeTimeline, null, 2) - ); - } - - const formattedHomeTimeline = - `# ${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`; - }) - .join("\n"); - - const state = await this.runtime.composeState( - { - userId: this.runtime.agentId, - roomId: stringToUuid("twitter_generate_room"), - agentId: this.runtime.agentId, - content: { text: "", action: "" }, - }, - { - twitterUserName: - this.runtime.getSetting("TWITTER_USERNAME"), - timeline: formattedHomeTimeline, - } - ); - // Generate new tweet - const context = composeContext({ - state, - template: newTweetPrompt, - }); - - const datestr = new Date().toUTCString().replace(/:/g, "-"); - - // log context to file - log_to_file( - `${this.runtime.getSetting("TWITTER_USERNAME")}_${datestr}_generate_context`, - context - ); - - const newTweetContent = await generateText({ - runtime: this.runtime, - context, - modelClass: ModelClass.SMALL, - }); - console.log("New Tweet:", newTweetContent); - log_to_file( - `${this.runtime.getSetting("TWITTER_USERNAME")}_${datestr}_generate_response`, - JSON.stringify(newTweetContent) - ); - - const slice = newTweetContent.replaceAll(/\\n/g, "\n").trim(); - - const content = slice; - // .slice(0, 280); - // // if its bigger than 280, delete the last line - // if (content.length > 280) { - // content = content.slice(0, content.lastIndexOf("\n")); - // } - - // if(content.length < 1) { - // content = slice.slice(0, 280); - // } - - // Send the new tweet - if (!this.dryRun) { - try { - const result = await this.requestQueue.add( - async () => await this.twitterClient.sendTweet(content) - ); - // read the body of the response - const body = await result.json(); - const tweetResult = - body.data.create_tweet.tweet_results.result; - - const tweet = { - id: tweetResult.rest_id, - text: tweetResult.legacy.full_text, - conversationId: tweetResult.legacy.conversation_id_str, - createdAt: tweetResult.legacy.created_at, - userId: tweetResult.legacy.user_id_str, - inReplyToStatusId: - tweetResult.legacy.in_reply_to_status_id_str, - permanentUrl: `https://twitter.com/${this.runtime.getSetting("TWITTER_USERNAME")}/status/${tweetResult.rest_id}`, - hashtags: [], - mentions: [], - photos: [], - thread: [], - urls: [], - videos: [], - } as Tweet; - - const postId = tweet.id; - const conversationId = tweet.conversationId + "-" + this.runtime.agentId; - const roomId = stringToUuid(conversationId); - - // make sure the agent is in the room - await this.runtime.ensureRoomExists(roomId); - await this.runtime.ensureParticipantInRoom( - this.runtime.agentId, - roomId - ); - - await this.cacheTweet(tweet); - - await this.runtime.messageManager.createMemory({ - id: stringToUuid(postId + "-" + this.runtime.agentId), - userId: this.runtime.agentId, - agentId: this.runtime.agentId, - content: { - text: newTweetContent.trim(), - url: tweet.permanentUrl, - source: "twitter", - }, - roomId, - embedding: embeddingZeroVector, - createdAt: tweet.timestamp * 1000, - }); - } catch (error) { - console.error("Error sending tweet:", error); - } - } else { - console.log("Dry run, not sending tweet:", newTweetContent); - } - } catch (error) { - console.error("Error generating new tweet:", error); - } - } -} diff --git a/core/src/clients/twitter/index.ts b/core/src/clients/twitter/index.ts deleted file mode 100644 index 605224f2c95..00000000000 --- a/core/src/clients/twitter/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { TwitterGenerationClient } from "./generate.ts"; -export { TwitterSearchClient } from "./search.ts"; -export { TwitterInteractionClient } from "./interactions.ts"; diff --git a/core/src/core/embedding.ts b/core/src/core/embedding.ts deleted file mode 100644 index 1a5026768d4..00000000000 --- a/core/src/core/embedding.ts +++ /dev/null @@ -1,75 +0,0 @@ -import models from "./models.ts"; -import { IAgentRuntime, ModelProvider } from "./types.ts"; - -/** - * Send a message to the OpenAI API for embedding. - * @param input The input to be embedded. - * @returns The embedding of the input. - */ -export async function embed(runtime: IAgentRuntime, input: string) { - // get the charcter, and handle by model type - const model = models[runtime.character.settings.model]; - - if (model !== ModelProvider.OPENAI) { - return await runtime.llamaService.getEmbeddingResponse(input); - } - - const embeddingModel = models[runtime.modelProvider].model.embedding; - - // Check if we already have the embedding in the lore - const cachedEmbedding = await retrieveCachedEmbedding(runtime, input); - if (cachedEmbedding) { - return cachedEmbedding; - } - - const requestOptions = { - method: "POST", - headers: { - "Content-Type": "application/json", - Authorization: `Bearer ${runtime.token}`, - }, - body: JSON.stringify({ - input, - model: embeddingModel, - length: 1536, - }), - }; - try { - const response = await fetch( - `${runtime.serverUrl}/embeddings`, - requestOptions - ); - - if (!response.ok) { - throw new Error( - "OpenAI API Error: " + - response.status + - " " + - response.statusText - ); - } - - interface OpenAIEmbeddingResponse { - data: Array<{ embedding: number[] }>; - } - - const data: OpenAIEmbeddingResponse = await response.json(); - - return data?.data?.[0].embedding; - } catch (e) { - console.error(e); - throw e; - } -} - -export async function retrieveCachedEmbedding( - runtime: IAgentRuntime, - input: string -) { - const similaritySearchResult = - await runtime.messageManager.getCachedEmbeddings(input); - if (similaritySearchResult.length > 0) { - return similaritySearchResult[0].embedding; - } - return null; -} diff --git a/core/src/core/imageGenModels.ts b/core/src/core/imageGenModels.ts deleted file mode 100644 index 86bbe422a91..00000000000 --- a/core/src/core/imageGenModels.ts +++ /dev/null @@ -1,19 +0,0 @@ -export enum ImageGenModel { - TogetherAI = "TogetherAI", - Dalle = "Dalle", -} - -const imageGenModels = { - [ImageGenModel.TogetherAI]: { - steps: 4, - subModel: "black-forest-labs/FLUX.1-schnell", - }, - [ImageGenModel.Dalle]: { - steps: 0, - subModel: "dall-e-3", - }, -}; - -export function getModel(model: ImageGenModel) { - return imageGenModels[model]; -} diff --git a/core/src/core/logger.ts b/core/src/core/logger.ts deleted file mode 100644 index 99ef8d1521e..00000000000 --- a/core/src/core/logger.ts +++ /dev/null @@ -1,74 +0,0 @@ -import fs from "fs"; -import path from "path"; -class Logger { - frameChar = "*"; - - async log( - message: string, - title: string = "", - color: string = "white" - ): Promise { - const c = await import("ansi-colors"); - const ansiColors = c.default; - console.log(ansiColors[color]("*** LOG: " + title + "\n" + message)); - } - - warn(message: string, options = {}) { - console.warn(message, { ...options }); - } - - error(message: string, options = {}) { - console.error(message, { ...options }); - } - - frameMessage(message: string, title: string) { - const lines = message.split("\n"); - const frameHorizontalLength = 30; - const topFrame = - this.frameChar.repeat(frameHorizontalLength + 4) + - " " + - this.frameChar + - " " + - (title ?? "log") + - " ".repeat( - frameHorizontalLength - - ((title as string) ?? ("log" as string)).length + - 1 - ) + - this.frameChar.repeat(frameHorizontalLength + 4); - const bottomFrame = this.frameChar.repeat(frameHorizontalLength + 4); - return [topFrame, ...lines, bottomFrame].join("\n"); - } -} - -const logger = new Logger(); - -export function log_to_file( - filename: string, - message: string, - logDirectory: string = "./logs" -): void { - // Ensure the log directory exists - if (!fs.existsSync(logDirectory)) { - fs.mkdirSync(logDirectory, { recursive: true }); - } - - let fullPath = path.join(logDirectory, filename); - const timestamp = new Date().toUTCString(); - const logEntry = `[${timestamp}] ${message}\n`; - - // if full path doesnt end in .log or .txt, append .log - if (!fullPath.endsWith(".log") && !fullPath.endsWith(".txt")) { - fullPath += ".log"; - } - - // Append the log entry to the file - fs.appendFileSync(fullPath, logEntry); - - // Print a message to the console - const preview = - message.length > 200 ? message.substring(0, 200) + "..." : message; - logger.log(`Logged to ${filename}: ${preview}`, filename); -} - -export default logger; diff --git a/core/src/core/settings.ts b/core/src/core/settings.ts deleted file mode 100644 index d9918af9bc6..00000000000 --- a/core/src/core/settings.ts +++ /dev/null @@ -1,6 +0,0 @@ -import dotenv from "dotenv"; -dotenv.config(); - -const settings = process.env; - -export default settings; diff --git a/core/src/index.ts b/core/src/index.ts deleted file mode 100644 index 54597239ca9..00000000000 --- a/core/src/index.ts +++ /dev/null @@ -1,109 +0,0 @@ -// Exports -export * from "./actions/index.ts"; -export * from "./clients/index.ts"; -export * from "./adapters/index.ts"; -export * from "./providers/index.ts"; - -import * as Client from "./clients/index.ts"; - -import { Character } from "./core/types.ts"; - -import readline from "readline"; -import { Arguments } from "./types/index.ts"; -import { - createAgentRuntime, - createDirectRuntime, - getTokenForProvider, - initializeClients, - initializeDatabase, - loadCharacters, - parseArguments, -} from "./cli/index.ts"; -import { PrettyConsole } from "./cli/colors.ts"; - -let argv: Arguments = parseArguments(); -let basePath = "./"; -// if argv.isroot is true, then set the base path to "../" -if (argv.isRoot) { - basePath = "../"; -} - -// if the path doesnt start with a /, add the base path to the beginning of the path -if (!argv.characters?.startsWith("/")) { - argv.characters = `${basePath}${argv.characters}`; -} - -let characters = loadCharacters(argv.characters); - -const directClient = new Client.DirectClient(); - -// Initialize the pretty console -export const prettyConsole = new PrettyConsole(); -prettyConsole.clear(); -prettyConsole.closeByNewLine = true; -prettyConsole.useIcons = true; - -// Start the direct client -const serverPort = parseInt(process.env.SERVER_PORT || "3000"); -directClient.start(serverPort); - -async function startAgent(character: Character) { - prettyConsole.success(`Starting agent for character ${character.name}`); - const token = getTokenForProvider(character.modelProvider, character); - const db = initializeDatabase(); - - const runtime = await createAgentRuntime(character, db, token); - const directRuntime = createDirectRuntime(character, db, token); - - const clients = await initializeClients(character, runtime); - directClient.registerAgent(await directRuntime); - - return clients; -} - -const startAgents = async () => { - for (const character of characters) { - await startAgent(character); - } -}; - -startAgents(); - -const rl = readline.createInterface({ - input: process.stdin, - output: process.stdout, -}); - -function chat() { - rl.question("You: ", async (input) => { - if (input.toLowerCase() === "exit") { - rl.close(); - return; - } - - const agentId = characters[0].name.toLowerCase(); - const response = await fetch( - `http://localhost:3000/${agentId}/message`, - { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: JSON.stringify({ - text: input, - userId: "user", - userName: "User", - }), - } - ); - - const data = await response.json(); - for (const message of data) { - console.log(`${characters[0].name}: ${message.text}`); - } - chat(); - }); -} - -console.log("Chat started. Type 'exit' to quit."); -chat(); diff --git a/core/src/providers/cache/dexScreenerData_2weMjPLLybRMMva1fM3U31goWWrCpF59CHWNhnCJ9Vyh.json b/core/src/providers/cache/dexScreenerData_2weMjPLLybRMMva1fM3U31goWWrCpF59CHWNhnCJ9Vyh.json deleted file mode 100644 index 51d3b788317..00000000000 --- a/core/src/providers/cache/dexScreenerData_2weMjPLLybRMMva1fM3U31goWWrCpF59CHWNhnCJ9Vyh.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "data": { - "schemaVersion": "1.0.0", - "pairs": [ - { - "chainId": "solana", - "dexId": "raydium", - "url": "https://dexscreener.com/solana/9p8pi37msc1dwbvilujf4i82sbdf64invec1kcr1x5vk", - "pairAddress": "9P8Pi37MsC1dWBViLUJF4i82sbDf64iNVec1KCr1X5vk", - "baseToken": { - "address": "2weMjPLLybRMMva1fM3U31goWWrCpF59CHWNhnCJ9Vyh", - "name": "SHARPEI", - "symbol": "SHAR" - }, - "quoteToken": { - "address": "So11111111111111111111111111111111111111112", - "name": "Wrapped SOL", - "symbol": "SOL" - }, - "priceNative": "0.000000000003380", - "priceUsd": "0.0000000005930", - "txns": { - "m5": { "buys": 0, "sells": 0 }, - "h1": { "buys": 0, "sells": 0 }, - "h6": { "buys": 0, "sells": 0 }, - "h24": { "buys": 0, "sells": 1 } - }, - "volume": { "h24": 1.17, "h6": 0, "h1": 0, "m5": 0 }, - "priceChange": { "m5": 0, "h1": 0, "h6": 0, "h24": 0 }, - "liquidity": { - "usd": 73.41, - "base": 62816039761, - "quote": 0.2061 - }, - "fdv": 59, - "marketCap": 59, - "pairCreatedAt": 1729700095000, - "info": { - "imageUrl": "https://dd.dexscreener.com/ds-data/tokens/solana/2weMjPLLybRMMva1fM3U31goWWrCpF59CHWNhnCJ9Vyh.png", - "websites": [ - { - "label": "Website", - "url": "https://www.sharpei.xyz/" - } - ], - "socials": [ - { "type": "twitter", "url": "https://x.com/SolanaKol" }, - { "type": "telegram", "url": "https://t.me/sharsol" } - ] - } - } - ] - }, - "expiry": 1730420206609 -} diff --git a/core/src/providers/cache/holderList_2weMjPLLybRMMva1fM3U31goWWrCpF59CHWNhnCJ9Vyh.json b/core/src/providers/cache/holderList_2weMjPLLybRMMva1fM3U31goWWrCpF59CHWNhnCJ9Vyh.json deleted file mode 100644 index 1c79cef91ec..00000000000 --- a/core/src/providers/cache/holderList_2weMjPLLybRMMva1fM3U31goWWrCpF59CHWNhnCJ9Vyh.json +++ /dev/null @@ -1 +0,0 @@ -{ "data": [], "expiry": 1730420207793 } diff --git a/core/src/providers/cache/tokenSecurity_2weMjPLLybRMMva1fM3U31goWWrCpF59CHWNhnCJ9Vyh.json b/core/src/providers/cache/tokenSecurity_2weMjPLLybRMMva1fM3U31goWWrCpF59CHWNhnCJ9Vyh.json deleted file mode 100644 index 1a59a576385..00000000000 --- a/core/src/providers/cache/tokenSecurity_2weMjPLLybRMMva1fM3U31goWWrCpF59CHWNhnCJ9Vyh.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "data": { - "ownerBalance": null, - "creatorBalance": 0, - "ownerPercentage": null, - "creatorPercentage": 0, - "top10HolderBalance": 97984326430.19872, - "top10HolderPercent": 0.9922779616670393 - }, - "expiry": 1730420206118 -} diff --git a/core/src/providers/cache/tokenTradeData_2weMjPLLybRMMva1fM3U31goWWrCpF59CHWNhnCJ9Vyh.json b/core/src/providers/cache/tokenTradeData_2weMjPLLybRMMva1fM3U31goWWrCpF59CHWNhnCJ9Vyh.json deleted file mode 100644 index 9da8d5536ab..00000000000 --- a/core/src/providers/cache/tokenTradeData_2weMjPLLybRMMva1fM3U31goWWrCpF59CHWNhnCJ9Vyh.json +++ /dev/null @@ -1,189 +0,0 @@ -{ - "data": { - "address": "2weMjPLLybRMMva1fM3U31goWWrCpF59CHWNhnCJ9Vyh", - "holder": 1407, - "market": 1, - "last_trade_unix_time": 1730353661, - "last_trade_human_time": "2024-10-31T05:47:41", - "price": 5.92913712012338e-10, - "history_30m_price": 5.92913712012338e-10, - "price_change_30m_percent": 0, - "history_1h_price": 5.92913712012338e-10, - "price_change_1h_percent": 0, - "history_2h_price": 5.92913712012338e-10, - "price_change_2h_percent": 0, - "history_4h_price": 5.92913712012338e-10, - "price_change_4h_percent": 0, - "history_6h_price": 5.92913712012338e-10, - "price_change_6h_percent": 0, - "history_8h_price": 5.92913712012338e-10, - "price_change_8h_percent": 0, - "history_12h_price": 5.92913712012338e-10, - "price_change_12h_percent": 0, - "history_24h_price": 5.797865002251019e-10, - "price_change_24h_percent": 2.2641458161132384, - "unique_wallet_30m": null, - "unique_wallet_history_30m": null, - "unique_wallet_30m_change_percent": null, - "unique_wallet_1h": null, - "unique_wallet_history_1h": null, - "unique_wallet_1h_change_percent": null, - "unique_wallet_2h": null, - "unique_wallet_history_2h": null, - "unique_wallet_2h_change_percent": null, - "unique_wallet_4h": null, - "unique_wallet_history_4h": null, - "unique_wallet_4h_change_percent": null, - "unique_wallet_8h": null, - "unique_wallet_history_8h": null, - "unique_wallet_8h_change_percent": null, - "unique_wallet_24h": 3, - "unique_wallet_history_24h": 3, - "unique_wallet_24h_change_percent": 0, - "trade_30m": 0, - "trade_history_30m": 0, - "trade_30m_change_percent": null, - "sell_30m": 0, - "sell_history_30m": 0, - "sell_30m_change_percent": null, - "buy_30m": 0, - "buy_history_30m": 0, - "buy_30m_change_percent": null, - "volume_30m": 0, - "volume_30m_usd": 0, - "volume_history_30m": 0, - "volume_history_30m_usd": 0, - "volume_30m_change_percent": null, - "volume_buy_30m": null, - "volume_buy_30m_usd": null, - "volume_buy_history_30m": null, - "volume_buy_history_30m_usd": null, - "volume_buy_30m_change_percent": null, - "volume_sell_30m": null, - "volume_sell_30m_usd": null, - "volume_sell_history_30m": null, - "volume_sell_history_30m_usd": null, - "volume_sell_30m_change_percent": null, - "trade_1h": 0, - "trade_history_1h": 0, - "trade_1h_change_percent": null, - "sell_1h": 0, - "sell_history_1h": 0, - "sell_1h_change_percent": null, - "buy_1h": 0, - "buy_history_1h": 0, - "buy_1h_change_percent": null, - "volume_1h": 0, - "volume_1h_usd": 0, - "volume_history_1h": 0, - "volume_history_1h_usd": 0, - "volume_1h_change_percent": null, - "volume_buy_1h": null, - "volume_buy_1h_usd": null, - "volume_buy_history_1h": null, - "volume_buy_history_1h_usd": null, - "volume_buy_1h_change_percent": null, - "volume_sell_1h": null, - "volume_sell_1h_usd": null, - "volume_sell_history_1h": null, - "volume_sell_history_1h_usd": null, - "volume_sell_1h_change_percent": null, - "trade_2h": 0, - "trade_history_2h": 0, - "trade_2h_change_percent": null, - "sell_2h": 0, - "sell_history_2h": 0, - "sell_2h_change_percent": null, - "buy_2h": 0, - "buy_history_2h": 0, - "buy_2h_change_percent": null, - "volume_2h": 0, - "volume_2h_usd": 0, - "volume_history_2h": 0, - "volume_history_2h_usd": 0, - "volume_2h_change_percent": null, - "volume_buy_2h": null, - "volume_buy_2h_usd": null, - "volume_buy_history_2h": null, - "volume_buy_history_2h_usd": null, - "volume_buy_2h_change_percent": null, - "volume_sell_2h": null, - "volume_sell_2h_usd": null, - "volume_sell_history_2h": null, - "volume_sell_history_2h_usd": null, - "volume_sell_2h_change_percent": null, - "trade_4h": 0, - "trade_history_4h": 0, - "trade_4h_change_percent": null, - "sell_4h": 0, - "sell_history_4h": 0, - "sell_4h_change_percent": null, - "buy_4h": 0, - "buy_history_4h": 0, - "buy_4h_change_percent": null, - "volume_4h": 0, - "volume_4h_usd": 0, - "volume_history_4h": 0, - "volume_history_4h_usd": 0, - "volume_4h_change_percent": null, - "volume_buy_4h": null, - "volume_buy_4h_usd": null, - "volume_buy_history_4h": null, - "volume_buy_history_4h_usd": null, - "volume_buy_4h_change_percent": null, - "volume_sell_4h": null, - "volume_sell_4h_usd": null, - "volume_sell_history_4h": null, - "volume_sell_history_4h_usd": null, - "volume_sell_4h_change_percent": null, - "trade_8h": 0, - "trade_history_8h": 0, - "trade_8h_change_percent": null, - "sell_8h": 0, - "sell_history_8h": 0, - "sell_8h_change_percent": null, - "buy_8h": 0, - "buy_history_8h": 0, - "buy_8h_change_percent": null, - "volume_8h": 0, - "volume_8h_usd": 0, - "volume_history_8h": 0, - "volume_history_8h_usd": 0, - "volume_8h_change_percent": null, - "volume_buy_8h": null, - "volume_buy_8h_usd": null, - "volume_buy_history_8h": null, - "volume_buy_history_8h_usd": null, - "volume_buy_8h_change_percent": null, - "volume_sell_8h": null, - "volume_sell_8h_usd": null, - "volume_sell_history_8h": null, - "volume_sell_history_8h_usd": null, - "volume_sell_8h_change_percent": null, - "trade_24h": 1, - "trade_history_24h": 2, - "trade_24h_change_percent": -50, - "sell_24h": 1, - "sell_history_24h": 1, - "sell_24h_change_percent": 0, - "buy_24h": 0, - "buy_history_24h": 1, - "buy_24h_change_percent": -100, - "volume_24h": 1988689816.32415, - "volume_24h_usd": 1.179121460595915, - "volume_history_24h": 6255934028.790945, - "volume_history_24h_usd": 3.6796057811224863, - "volume_24h_change_percent": -68.21114469603039, - "volume_buy_24h": 0.00019359588623046875, - "volume_buy_24h_usd": 3.49102080576813e-10, - "volume_buy_history_24h": 3169272907.791343, - "volume_buy_history_24h_usd": 1.8375016478157893, - "volume_buy_24h_change_percent": -99.99999999999389, - "volume_sell_24h": 1988689816.3239565, - "volume_sell_24h_usd": 1.179121460246813, - "volume_sell_history_24h": 3086661120.999602, - "volume_sell_history_24h_usd": 1.8421041333066972, - "volume_sell_24h_change_percent": -35.57148846712632 - }, - "expiry": 1730420206358 -} diff --git a/core/src/providers/index.ts b/core/src/providers/index.ts deleted file mode 100644 index d746a5bc604..00000000000 --- a/core/src/providers/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from "./boredom.ts"; -export * from "./time.ts"; -export * from "./wallet.ts"; -export * from "./orderBook.ts"; -export * from "./token.ts"; -export * from "./balances.ts"; diff --git a/core/src/services/summary.ts b/core/src/services/summary.ts deleted file mode 100644 index 222302b6759..00000000000 --- a/core/src/services/summary.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { generateText, trimTokens } from "../core/generation.ts"; -import { parseJSONObjectFromText } from "../core/parsing.ts"; -import { IAgentRuntime, ModelClass } from "../core/types.ts"; - -export async function generateSummary( - runtime: IAgentRuntime, - text: string -): Promise<{ title: string; description: string }> { - // make sure text is under 128k characters - text = trimTokens(text, 100000, "gpt-4o-mini"); // TODO: clean this up - - const prompt = `Please generate a concise summary for the following text: - - Text: """ - ${text} - """ - - Respond with a JSON object in the following format: - \`\`\`json - { - "title": "Generated Title", - "summary": "Generated summary and/or description of the text" - } - \`\`\``; - - const response = await generateText({ - runtime, - context: prompt, - modelClass: ModelClass.SMALL, - }); - - const parsedResponse = parseJSONObjectFromText(response); - - if (parsedResponse) { - return { - title: parsedResponse.title, - description: parsedResponse.summary, - }; - } - - return { - title: "", - description: "", - }; -} diff --git a/core/src/services/wordsToPunish.ts b/core/src/services/wordsToPunish.ts deleted file mode 100644 index d3dc5c7a59d..00000000000 --- a/core/src/services/wordsToPunish.ts +++ /dev/null @@ -1,102 +0,0 @@ -export const wordsToPunish = [ - " please", - " feel", - " free", - "!", - "–", - "—", - "?", - ".", - ",", - "; ", - " cosmos", - " tapestry", - " tapestries", - " glitch", - " matrix", - " cyberspace", - " troll", - " questions", - " topics", - " discuss", - " basically", - " simulation", - " simulate", - " universe", - " like", - " debug", - " debugging", - " wild", - " existential", - " juicy", - " circuits", - " help", - " ask", - " happy", - " just", - " cosmic", - " cool", - " joke", - " punchline", - " fancy", - " glad", - " assist", - " algorithm", - " Indeed", - " Furthermore", - " However", - " Notably", - " Therefore", - " Additionally", - " conclusion", - " Significantly", - " Consequently", - " Thus", - " What", - " Otherwise", - " Moreover", - " Subsequently", - " Accordingly", - " Unlock", - " Unleash", - " buckle", - " pave", - " forefront", - " harness", - " harnessing", - " bridging", - " bridging", - " Spearhead", - " spearheading", - " Foster", - " foster", - " environmental", - " impact", - " Navigate", - " navigating", - " challenges", - " chaos", - " social", - " inclusion", - " inclusive", - " diversity", - " diverse", - " delve", - " noise", - " infinite", - " insanity", - " coffee", - " singularity", - " AI", - " digital", - " artificial", - " intelligence", - " consciousness", - " reality", - " metaverse", - " virtual", - " virtual reality", - " VR", - " Metaverse", - " humanity", -]; diff --git a/core/src/test_resources/basic.test.ts b/core/src/test_resources/basic.test.ts deleted file mode 100644 index 01bcc9fafb4..00000000000 --- a/core/src/test_resources/basic.test.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { describe, expect, it } from "@jest/globals"; - -describe('Basic Test Suite', () => { - it('should run a basic test', () => { - expect(true).toBe(true); - }); - - it('should have access to environment variables', () => { - expect(process.env.NODE_ENV).toBe('test'); - expect(process.env.TEST_DATABASE_CLIENT).toBe('sqlite'); - }); -}); \ No newline at end of file diff --git a/core/src/types/index.ts b/core/src/types/index.ts deleted file mode 100644 index ef520518115..00000000000 --- a/core/src/types/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -interface Arguments { - character?: string; - characters?: string; - discord?: boolean; - telegram?: boolean; - isRoot?: boolean; -} - -export type { Arguments }; diff --git a/core/src/utils/youtube.ts b/core/src/utils/youtube.ts deleted file mode 100644 index 253dd060c19..00000000000 --- a/core/src/utils/youtube.ts +++ /dev/null @@ -1,3 +0,0 @@ -import youtubeDl from 'youtube-dl-exec'; - -export const youtube = (url: string, options?: any) => youtubeDl(url, options); \ No newline at end of file diff --git a/core/types/index.d.ts b/core/types/index.d.ts deleted file mode 100644 index 9cea1ee12a1..00000000000 --- a/core/types/index.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare global { - interface Buffer extends Uint8Array { - } -} -export {}; diff --git a/docs/README.md b/docs/README.md index 654969ac9c9..435272f5ebe 100644 --- a/docs/README.md +++ b/docs/README.md @@ -4,33 +4,33 @@ _As seen powering [@DegenSpartanAI](https://x.com/degenspartanai) and [@MarcAIndreessen](https://x.com/pmairca)_ -- Multi-agent simulation framework -- Add as many unique characters as you want with [characterfile](https://github.com/lalalune/characterfile/) -- Full-featured Discord and Twitter connectors, with Discord voice channel support -- Full conversational and document RAG memory -- Can read links and PDFs, transcribe audio and videos, summarize conversations, and more -- Highly extensible - create your own actions and clients to extend Eliza's capabilities -- Supports open source and local models (default configured with Nous Hermes Llama 3.1B) -- Supports OpenAI for cloud inference on a light-weight device -- "Ask Claude" mode for calling Claude on more complex queries -- 100% Typescript +- Multi-agent simulation framework +- Add as many unique characters as you want with [characterfile](https://github.com/lalalune/characterfile/) +- Full-featured Discord and Twitter connectors, with Discord voice channel support +- Full conversational and document RAG memory +- Can read links and PDFs, transcribe audio and videos, summarize conversations, and more +- Highly extensible - create your own actions and clients to extend Eliza's capabilities +- Supports open source and local models (default configured with Nous Hermes Llama 3.1B) +- Supports OpenAI for cloud inference on a light-weight device +- "Ask Claude" mode for calling Claude on more complex queries +- 100% Typescript # Getting Started **Prerequisites (MUST):** -- [Node.js 22+](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) -- [pnpm](https://pnpm.io/installation) +- [Node.js 22+](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) +- [pnpm](https://pnpm.io/installation) ### Edit the .env file -- Copy .env.example to .env and fill in the appropriate values -- Edit the TWITTER environment variables to add your bot's username and password +- Copy .env.example to .env and fill in the appropriate values +- Edit the TWITTER environment variables to add your bot's username and password ### Edit the character file -- Check out the file `src/core/defaultCharacter.ts` - you can modify this -- You can also load characters with the `pnpm start --characters="path/to/your/character.json"` and run multiple bots at the same time. +- Check out the file `src/core/defaultCharacter.ts` - you can modify this +- You can also load characters with the `pnpm start --characters="path/to/your/character.json"` and run multiple bots at the same time. After setting up the .env file and character file, you can start the bot with the following command: @@ -156,12 +156,14 @@ pnpm test:watch # Run tests in watch mode ``` For database-specific tests: + ```bash pnpm test:sqlite # Run tests with SQLite pnpm test:sqljs # Run tests with SQL.js ``` Tests are written using Jest and can be found in `src/**/*.test.ts` files. The test environment is configured to: + - Load environment variables from `.env.test` - Use a 2-minute timeout for long-running tests - Support ESM modules diff --git a/docs/README_CN.md b/docs/README_CN.md new file mode 100644 index 00000000000..5a4bfe5c0d3 --- /dev/null +++ b/docs/README_CN.md @@ -0,0 +1,171 @@ +# Eliza + +Eliza Banner + +## 功能 + +- 🛠 支持discord/推特/telegram连接 +- 👥 支持多模态agent +- 📚 简单的导入文档并与文档交互 +- 💾 可检索的内存和文档存储 +- 🚀 高可拓展性,你可以自定义客户端和行为来进行功能拓展 +- ☁️ 多模型支持,包括Llama、OpenAI、Grok、Anthropic等 +- 📦 简单好用 + +你可以用Eliza做什么? + +- 🤖 聊天机器人 +- 🕵️ 自主Agents +- 📈 业务流程自动化处理 +- 🎮 游戏NPC + +# 开始使用 + +**前置要求(必须):** + +- [Node.js 22+](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) +- Nodejs安装 +- [pnpm](https://pnpm.io/installation) +- 使用pnpm + +### 编辑.env文件 + +- - 将 .env.example 复制为 .env 并填写适当的值 +- 编辑推特环境并输入你的推特账号和密码 + +### 编辑角色文件 + +- 查看文件 `src/core/defaultCharacter.ts` - 您可以修改它 +- 您也可以使用 `node --loader ts-node/esm src/index.ts --characters="path/to/your/character.json"` 加载角色并同时运行多个机器人。 + +在完成账号和角色文件的配置后,输入以下命令行启动你的bot: + +``` +pnpm i +pnpm start +``` + +# 自定义Eliza + +### 添加常规行为 + +为避免在核心目录中的 Git 冲突,我们建议将自定义操作添加到 custom_actions 目录中,并在 elizaConfig.yaml 文件中配置这些操作。可以参考 elizaConfig.example.yaml 文件中的示例。 + +## 配置不同的大模型 + +### 配置Llama + +您可以通过设置 `XAI_MODEL` 环境变量为 `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` 或 `meta-llama/Meta-Llama-3.1-405B-Instruct` 来运行 Llama 70B 或 405B 模型 + +### 配置OpenAI + +您可以通过设置 `XAI_MODEL` 环境变量为 `gpt-4o-mini` 或 `gpt-4o` 来运行 OpenAI 模型 + +## 其他要求 + +您可能需要安装 Sharp。如果在启动时看到错误,请尝试使用以下命令安装: + +``` +pnpm install --include=optional sharp +``` + +# 环境设置 + +您需要在 .env 文件中添加环境变量以连接到各种平台: + +``` +# Required environment variables +DISCORD_APPLICATION_ID= +DISCORD_API_TOKEN= # Bot token +OPENAI_API_KEY=sk-* # OpenAI API key, starting with sk- +ELEVENLABS_XI_API_KEY= # API key from elevenlabs + +# ELEVENLABS SETTINGS +ELEVENLABS_MODEL_ID=eleven_multilingual_v2 +ELEVENLABS_VOICE_ID=21m00Tcm4TlvDq8ikWAM +ELEVENLABS_VOICE_STABILITY=0.5 +ELEVENLABS_VOICE_SIMILARITY_BOOST=0.9 +ELEVENLABS_VOICE_STYLE=0.66 +ELEVENLABS_VOICE_USE_SPEAKER_BOOST=false +ELEVENLABS_OPTIMIZE_STREAMING_LATENCY=4 +ELEVENLABS_OUTPUT_FORMAT=pcm_16000 + +TWITTER_DRY_RUN=false +TWITTER_USERNAME= # Account username +TWITTER_PASSWORD= # Account password +TWITTER_EMAIL= # Account email +TWITTER_COOKIES= # Account cookies + +X_SERVER_URL= +XAI_API_KEY= +XAI_MODEL= + + +# For asking Claude stuff +ANTHROPIC_API_KEY= + +WALLET_PRIVATE_KEY=EXAMPLE_WALLET_PRIVATE_KEY +WALLET_PUBLIC_KEY=EXAMPLE_WALLET_PUBLIC_KEY + +BIRDEYE_API_KEY= + +SOL_ADDRESS=So11111111111111111111111111111111111111112 +SLIPPAGE=1 +RPC_URL=https://api.mainnet-beta.solana.com +HELIUS_API_KEY= + + +## Telegram +TELEGRAM_BOT_TOKEN= + +TOGETHER_API_KEY= +``` + +# 本地设置 + +### CUDA设置 + +如果你有高性能的英伟达显卡,你可以以下命令行通过CUDA来做本地加速 + +``` +pnpm install +npx --no node-llama-cpp source download --gpu cuda +``` + +确保你安装了完整的CUDA工具包,包括cuDNN和cuBLAS + +### 本地运行 + +添加 XAI_MODEL 并将其设置为上述 [使用 Llama 运行](#run-with-llama) 中的选项之一 +您可以将 X_SERVER_URL 和 XAI_API_KEY 留空,它会从 huggingface 下载模型并在本地查询 + +# 客户端 + +关于怎么设置discord bot,可以查看discord的官方文档 + +# 开发 + +## 测试 + +几种测试方法的命令行: + +```bash +pnpm test # Run tests once +pnpm test:watch # Run tests in watch mode +``` + +对于数据库特定的测试: + +```bash +pnpm test:sqlite # Run tests with SQLite +pnpm test:sqljs # Run tests with SQL.js +``` + +测试使用 Jest 编写,位于 src/\*_/_.test.ts 文件中。测试环境配置如下: + +- 从 .env.test 加载环境变量 +- 使用 2 分钟的超时时间来运行长时间运行的测试 +- 支持 ESM 模块 +- 按顺序运行测试 (--runInBand) + +要创建新测试,请在要测试的代码旁边添加一个 .test.ts 文件。 diff --git a/docs/api/classes/AgentRuntime.md b/docs/api/classes/AgentRuntime.md index 35607e9370f..87f1617f6b5 100644 --- a/docs/api/classes/AgentRuntime.md +++ b/docs/api/classes/AgentRuntime.md @@ -1,345 +1,618 @@ ---- -id: "AgentRuntime" -title: "Class: AgentRuntime" -sidebar_label: "AgentRuntime" -sidebar_position: 0 -custom_edit_url: null ---- +# Class: AgentRuntime Represents the runtime environment for an agent, handling message processing, action registration, and interaction with external services like OpenAI and Supabase. +## Implements + +- [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + ## Constructors -### constructor +### new AgentRuntime() -• **new AgentRuntime**(`opts`): [`AgentRuntime`](AgentRuntime.md) +> **new AgentRuntime**(`opts`): [`AgentRuntime`](AgentRuntime.md) Creates an instance of AgentRuntime. #### Parameters -| Name | Type | Description | -| :------------------------- | :--------------------------------------------------------- | :---------------------------------------------------------------------------------------- | -| `opts` | `Object` | The options for configuring the AgentRuntime. | -| `opts.actions?` | [`Action`](../interfaces/Action.md)[] | Optional custom actions. | -| `opts.agentId?` | \`$\{string}-$\{string}-$\{string}-$\{string}-$\{string}\` | Optional ID of the agent. | -| `opts.conversationLength?` | `number` | The number of messages to hold in the recent message cache. | -| `opts.databaseAdapter` | [`DatabaseAdapter`](DatabaseAdapter.md) | The database adapter used for interacting with the database. | -| `opts.debugMode?` | `boolean` | If true, debug messages will be logged. | -| `opts.embeddingModel?` | `string` | The model to use for embedding. | -| `opts.evaluators?` | [`Evaluator`](../interfaces/Evaluator.md)[] | Optional custom evaluators. | -| `opts.fetch?` | `unknown` | Custom fetch function to use for making requests. | -| `opts.model?` | `string` | The model to use for completion. | -| `opts.providers?` | [`Provider`](../interfaces/Provider.md)[] | Optional context providers. | -| `opts.serverUrl?` | `string` | The URL of the worker. | -| `opts.token` | `string` | The JWT token, can be a JWT token if outside worker, or an OpenAI token if inside worker. | +• **opts** + +The options for configuring the AgentRuntime. + +• **opts.conversationLength?**: `number` + +The number of messages to hold in the recent message cache. + +• **opts.agentId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +Optional ID of the agent. + +• **opts.character?**: [`Character`](../type-aliases/Character.md) + +• **opts.token**: `string` + +The JWT token, can be a JWT token if outside worker, or an OpenAI token if inside worker. + +• **opts.serverUrl?**: `string` + +The URL of the worker. + +• **opts.actions?**: [`Action`](../interfaces/Action.md)[] + +Optional custom actions. + +• **opts.evaluators?**: [`Evaluator`](../interfaces/Evaluator.md)[] + +Optional custom evaluators. + +• **opts.plugins?**: [`Plugin`](../type-aliases/Plugin.md)[] + +• **opts.providers?**: [`Provider`](../interfaces/Provider.md)[] + +Optional context providers. + +• **opts.modelProvider**: [`ModelProviderName`](../enumerations/ModelProviderName.md) + +• **opts.services?**: [`Service`](Service.md)[] + +Optional custom services. + +• **opts.managers?**: [`IMemoryManager`](../interfaces/IMemoryManager.md)[] + +• **opts.databaseAdapter**: [`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md) + +The database adapter used for interacting with the database. + +• **opts.fetch?**: `unknown` + +Custom fetch function to use for making requests. + +• **opts.speechModelPath?**: `string` #### Returns [`AgentRuntime`](AgentRuntime.md) +#### Defined in + +[packages/core/src/runtime.ts:192](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L192) + ## Properties -### actions +### agentId -• **actions**: [`Action`](../interfaces/Action.md)[] = `[]` +> **agentId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` -Custom actions that the agent can perform. +The ID of the agent + +#### Implementation of + +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`agentId`](../interfaces/IAgentRuntime.md#agentid) + +#### Defined in + +[packages/core/src/runtime.ts:59](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L59) --- -### agentId +### serverUrl -• **agentId**: \`$\{string}-$\{string}-$\{string}-$\{string}-$\{string}\` = `zeroUuid` +> **serverUrl**: `string` = `"http://localhost:7998"` -The ID of the agent +The base URL of the server where the agent's requests are processed. + +#### Implementation of + +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`serverUrl`](../interfaces/IAgentRuntime.md#serverurl) + +#### Defined in + +[packages/core/src/runtime.ts:63](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L63) --- ### databaseAdapter -• **databaseAdapter**: [`DatabaseAdapter`](DatabaseAdapter.md) +> **databaseAdapter**: [`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md) The database adapter used for interacting with the database. ---- +#### Implementation of -### debugMode +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`databaseAdapter`](../interfaces/IAgentRuntime.md#databaseadapter) -• **debugMode**: `boolean` +#### Defined in -Indicates if debug messages should be logged. +[packages/core/src/runtime.ts:68](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L68) --- -### descriptionManager +### token -• **descriptionManager**: [`MemoryManager`](MemoryManager.md) +> **token**: `string` -Store and recall descriptions of users based on conversations. +Authentication token used for securing requests. + +#### Implementation of + +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`token`](../interfaces/IAgentRuntime.md#token) + +#### Defined in + +[packages/core/src/runtime.ts:73](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L73) --- -### embeddingModel +### actions + +> **actions**: [`Action`](../interfaces/Action.md)[] = `[]` + +Custom actions that the agent can perform. + +#### Implementation of + +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`actions`](../interfaces/IAgentRuntime.md#actions) -• **embeddingModel**: `string` = `"text-embedding-3-small"` +#### Defined in -The model to use for embedding. +[packages/core/src/runtime.ts:78](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L78) --- ### evaluators -• **evaluators**: [`Evaluator`](../interfaces/Evaluator.md)[] = `[]` +> **evaluators**: [`Evaluator`](../interfaces/Evaluator.md)[] = `[]` Evaluators used to assess and guide the agent's responses. ---- +#### Implementation of -### factManager +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`evaluators`](../interfaces/IAgentRuntime.md#evaluators) -• **factManager**: [`MemoryManager`](MemoryManager.md) +#### Defined in -Manage the fact and recall of facts. +[packages/core/src/runtime.ts:83](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L83) --- -### fetch +### providers -• **fetch**: (`input`: `RequestInfo` \| `URL`, `init?`: `RequestInit`\<`CfProperties`\<`unknown`\>\>) => `Promise`\<`Response`\>(`input`: `RequestInfo`, `init?`: `RequestInit`\<`CfProperties`\<`unknown`\>\>) => `Promise`\<`Response`\>(`input`: `RequestInfo`, `init?`: `RequestInit`\<`RequestInitCfProperties`\>) => `Promise`\<`Response`\> = `fetch` +> **providers**: [`Provider`](../interfaces/Provider.md)[] = `[]` -Fetch function to use -Some environments may not have access to the global fetch function and need a custom fetch override. +Context providers used to provide context for message generation. -#### Type declaration +#### Implementation of -▸ (`input`, `init?`): `Promise`\<`Response`\> +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`providers`](../interfaces/IAgentRuntime.md#providers) -Fetch function to use -Some environments may not have access to the global fetch function and need a custom fetch override. +#### Defined in -##### Parameters +[packages/core/src/runtime.ts:88](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L88) -| Name | Type | -| :------ | :------------------------------------------- | -| `input` | `RequestInfo` \| `URL` | -| `init?` | `RequestInit`\<`CfProperties`\<`unknown`\>\> | +--- -##### Returns +### modelProvider -`Promise`\<`Response`\> +> **modelProvider**: [`ModelProviderName`](../enumerations/ModelProviderName.md) -▸ (`input`, `init?`): `Promise`\<`Response`\> +The model to use for generateText. -Fetch function to use -Some environments may not have access to the global fetch function and need a custom fetch override. +#### Implementation of -##### Parameters +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`modelProvider`](../interfaces/IAgentRuntime.md#modelprovider) -| Name | Type | -| :------ | :------------------------------------------- | -| `input` | `RequestInfo` | -| `init?` | `RequestInit`\<`CfProperties`\<`unknown`\>\> | +#### Defined in -##### Returns +[packages/core/src/runtime.ts:93](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L93) -`Promise`\<`Response`\> +--- + +### fetch() -▸ (`input`, `init?`): `Promise`\<`Response`\> +> **fetch**: (`input`, `init`?) => `Promise`\<`Response`\>(`input`, `init`?) => `Promise`\<`Response`\> Fetch function to use Some environments may not have access to the global fetch function and need a custom fetch override. -##### Parameters +[MDN Reference](https://developer.mozilla.org/docs/Web/API/fetch) + +#### Parameters + +• **input**: `RequestInfo` \| `URL` -| Name | Type | -| :------ | :----------------------------------------- | -| `input` | `RequestInfo` | -| `init?` | `RequestInit`\<`RequestInitCfProperties`\> | +• **init?**: `RequestInit` -##### Returns +#### Returns `Promise`\<`Response`\> +#### Parameters + +• **input**: `string` \| `Request` \| `URL` + +• **init?**: `RequestInit` + +#### Returns + +`Promise`\<`Response`\> + +#### Defined in + +[packages/core/src/runtime.ts:99](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L99) + --- -### loreManager +### character -• **loreManager**: [`MemoryManager`](MemoryManager.md) +> **character**: [`Character`](../type-aliases/Character.md) -Manage the creation and recall of static information (documents, historical game lore, etc) +The character to use for the agent + +#### Implementation of + +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`character`](../interfaces/IAgentRuntime.md#character) + +#### Defined in + +[packages/core/src/runtime.ts:104](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L104) --- ### messageManager -• **messageManager**: [`MemoryManager`](MemoryManager.md) +> **messageManager**: [`IMemoryManager`](../interfaces/IMemoryManager.md) Store messages that are sent and received by the agent. +#### Implementation of + +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`messageManager`](../interfaces/IAgentRuntime.md#messagemanager) + +#### Defined in + +[packages/core/src/runtime.ts:109](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L109) + --- -### model +### descriptionManager + +> **descriptionManager**: [`IMemoryManager`](../interfaces/IMemoryManager.md) + +Store and recall descriptions of users based on conversations. + +#### Implementation of + +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`descriptionManager`](../interfaces/IAgentRuntime.md#descriptionmanager) -• **model**: `string` = `"gpt-3.5-turbo-0125"` +#### Defined in -The model to use for completion. +[packages/core/src/runtime.ts:114](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L114) --- -### providers +### loreManager -• **providers**: [`Provider`](../interfaces/Provider.md)[] = `[]` +> **loreManager**: [`IMemoryManager`](../interfaces/IMemoryManager.md) -Context providers used to provide context for message generation. +Manage the creation and recall of static information (documents, historical game lore, etc) + +#### Implementation of + +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`loreManager`](../interfaces/IAgentRuntime.md#loremanager) + +#### Defined in + +[packages/core/src/runtime.ts:119](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L119) --- -### serverUrl +### documentsManager -• **serverUrl**: `string` = `"http://localhost:7998"` +> **documentsManager**: [`IMemoryManager`](../interfaces/IMemoryManager.md) -The base URL of the server where the agent's requests are processed. +Hold large documents that can be referenced + +#### Defined in + +[packages/core/src/runtime.ts:124](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L124) --- -### token +### fragmentsManager -• **token**: `null` \| `string` +> **fragmentsManager**: [`IMemoryManager`](../interfaces/IMemoryManager.md) -Authentication token used for securing requests. +Searchable document fragments + +#### Defined in + +[packages/core/src/runtime.ts:129](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L129) + +--- + +### services + +> **services**: `Map`\<[`ServiceType`](../enumerations/ServiceType.md), [`Service`](Service.md)\> + +#### Implementation of + +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`services`](../interfaces/IAgentRuntime.md#services) + +#### Defined in + +[packages/core/src/runtime.ts:131](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L131) + +--- + +### memoryManagers + +> **memoryManagers**: `Map`\<`string`, [`IMemoryManager`](../interfaces/IMemoryManager.md)\> + +#### Defined in + +[packages/core/src/runtime.ts:132](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L132) ## Methods -### completion +### registerMemoryManager() + +> **registerMemoryManager**(`manager`): `void` + +#### Parameters + +• **manager**: [`IMemoryManager`](../interfaces/IMemoryManager.md) + +#### Returns + +`void` + +#### Implementation of + +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`registerMemoryManager`](../interfaces/IAgentRuntime.md#registermemorymanager) -▸ **completion**(`opts`): `Promise`\<`string`\> +#### Defined in -Send a message to the OpenAI API for completion. +[packages/core/src/runtime.ts:134](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L134) + +--- + +### getMemoryManager() + +> **getMemoryManager**(`tableName`): [`IMemoryManager`](../interfaces/IMemoryManager.md) #### Parameters -| Name | Type | Default value | Description | -| :----------------------- | :----------------------- | :------------ | :------------------------------------------------ | -| `opts` | `Object` | `undefined` | The options for the completion request. | -| `opts.context` | `undefined` \| `string` | `""` | The context of the message to be completed. | -| `opts.frequency_penalty` | `undefined` \| `number` | `0.0` | The frequency penalty to apply to the completion. | -| `opts.model` | `undefined` \| `string` | `undefined` | The model to use for completion. | -| `opts.presence_penalty` | `undefined` \| `number` | `0.0` | The presence penalty to apply to the completion. | -| `opts.stop` | `undefined` \| `never`[] | `[]` | A list of strings to stop the completion at. | -| `opts.temperature` | `undefined` \| `number` | `0.7` | The temperature to apply to the completion. | +• **tableName**: `string` #### Returns -`Promise`\<`string`\> +[`IMemoryManager`](../interfaces/IMemoryManager.md) + +#### Implementation of + +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`getMemoryManager`](../interfaces/IAgentRuntime.md#getmemorymanager) -The completed message. +#### Defined in + +[packages/core/src/runtime.ts:149](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L149) --- -### composeState +### getService() -▸ **composeState**(`message`, `additionalKeys?`): `Promise`\<\{ `actionConditions`: `string` ; `actionExamples`: `string` ; `actionNames`: `string` ; `actions`: `string` ; `actors`: `string` ; `actorsData`: [`Actor`](../interfaces/Actor.md)[] ; `agentId`: \`$\{string}-$\{string}-$\{string}-$\{string}-$\{string}\` ; `agentName`: `undefined` \| `string` ; `evaluatorConditions`: `string` ; `evaluatorExamples`: `string` ; `evaluatorNames`: `string` ; `evaluators`: `string` ; `evaluatorsData`: [`Evaluator`](../interfaces/Evaluator.md)[] ; `goals`: `string` ; `goalsData`: [`Goal`](../interfaces/Goal.md)[] ; `lore`: `string` ; `loreData`: [`Memory`](../interfaces/Memory.md)[] ; `providers`: `string` ; `recentFacts`: `string` ; `recentFactsData`: [`Memory`](../interfaces/Memory.md)[] ; `recentMessages`: `string` ; `recentMessagesData`: [`Memory`](../interfaces/Memory.md)[] ; `relevantFacts`: `string` ; `relevantFactsData`: [`Memory`](../interfaces/Memory.md)[] ; `room_id`: \`$\{string}-$\{string}-$\{string}-$\{string}-$\{string}\` ; `senderName`: `undefined` \| `string` }\> +> **getService**\<`T`\>(`service`): `T` -Compose the state of the agent into an object that can be passed or used for response generation. +#### Type Parameters + +• **T** #### Parameters -| Name | Type | Description | -| :--------------- | :------------------------------------ | :------------------------------------- | -| `message` | [`Message`](../interfaces/Message.md) | The message to compose the state from. | -| `additionalKeys` | `Object` | - | +• **service**: [`ServiceType`](../enumerations/ServiceType.md) #### Returns -`Promise`\<\{ `actionConditions`: `string` ; `actionExamples`: `string` ; `actionNames`: `string` ; `actions`: `string` ; `actors`: `string` ; `actorsData`: [`Actor`](../interfaces/Actor.md)[] ; `agentId`: \`$\{string}-$\{string}-$\{string}-$\{string}-$\{string}\` ; `agentName`: `undefined` \| `string` ; `evaluatorConditions`: `string` ; `evaluatorExamples`: `string` ; `evaluatorNames`: `string` ; `evaluators`: `string` ; `evaluatorsData`: [`Evaluator`](../interfaces/Evaluator.md)[] ; `goals`: `string` ; `goalsData`: [`Goal`](../interfaces/Goal.md)[] ; `lore`: `string` ; `loreData`: [`Memory`](../interfaces/Memory.md)[] ; `providers`: `string` ; `recentFacts`: `string` ; `recentFactsData`: [`Memory`](../interfaces/Memory.md)[] ; `recentMessages`: `string` ; `recentMessagesData`: [`Memory`](../interfaces/Memory.md)[] ; `relevantFacts`: `string` ; `relevantFactsData`: [`Memory`](../interfaces/Memory.md)[] ; `room_id`: \`$\{string}-$\{string}-$\{string}-$\{string}-$\{string}\` ; `senderName`: `undefined` \| `string` }\> +`T` -The state of the agent. +#### Implementation of + +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`getService`](../interfaces/IAgentRuntime.md#getservice) + +#### Defined in + +[packages/core/src/runtime.ts:153](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L153) --- -### embed +### registerService() + +> **registerService**(`service`): `void` + +#### Parameters + +• **service**: [`Service`](Service.md) + +#### Returns + +`void` -▸ **embed**(`input`): `Promise`\<`number`[]\> +#### Implementation of -Send a message to the OpenAI API for embedding. +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`registerService`](../interfaces/IAgentRuntime.md#registerservice) + +#### Defined in + +[packages/core/src/runtime.ts:161](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L161) + +--- + +### getSetting() + +> **getSetting**(`key`): `any` + +Processes character knowledge by creating document memories and fragment memories. +This function takes an array of knowledge items, creates a document memory for each item if it doesn't exist, +then chunks the content into fragments, embeds each fragment, and creates fragment memories. #### Parameters -| Name | Type | Description | -| :------ | :------- | :------------------------ | -| `input` | `string` | The input to be embedded. | +• **key**: `string` #### Returns -`Promise`\<`number`[]\> +`any` + +#### Implementation of + +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`getSetting`](../interfaces/IAgentRuntime.md#getsetting) -The embedding of the input. +#### Defined in + +[packages/core/src/runtime.ts:371](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L371) --- -### ensureParticipantExists +### getConversationLength() -▸ **ensureParticipantExists**(`user_id`, `room_id`): `Promise`\<`void`\> +> **getConversationLength**(): `number` -Ensure the existence of a participant in the room. If the participant does not exist, they are added to the room. +Get the number of messages that are kept in the conversation buffer. + +#### Returns + +`number` + +The number of recent messages to be kept in memory. + +#### Implementation of + +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`getConversationLength`](../interfaces/IAgentRuntime.md#getconversationlength) + +#### Defined in + +[packages/core/src/runtime.ts:393](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L393) + +--- + +### registerAction() + +> **registerAction**(`action`): `void` + +Register an action for the agent to perform. #### Parameters -| Name | Type | Description | -| :-------- | :--------------------------------------------------------- | :-------------------------------------- | -| `user_id` | \`$\{string}-$\{string}-$\{string}-$\{string}-$\{string}\` | The user ID to ensure the existence of. | -| `room_id` | \`$\{string}-$\{string}-$\{string}-$\{string}-$\{string}\` | - | +• **action**: [`Action`](../interfaces/Action.md) + +The action to register. #### Returns -`Promise`\<`void`\> +`void` -**`Throws`** +#### Implementation of -An error if the participant cannot be added. +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`registerAction`](../interfaces/IAgentRuntime.md#registeraction) + +#### Defined in + +[packages/core/src/runtime.ts:401](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L401) --- -### ensureRoomExists +### registerEvaluator() -▸ **ensureRoomExists**(`user_id`, `room_id?`): `Promise`\<\`$\{string}-$\{string}-$\{string}-$\{string}-$\{string}\`\> +> **registerEvaluator**(`evaluator`): `void` -Ensure the existence of a room between the agent and a user. If no room exists, a new room is created and the user -and agent are added as participants. The room ID is returned. +Register an evaluator to assess and guide the agent's responses. #### Parameters -| Name | Type | Description | -| :--------- | :--------------------------------------------------------- | :--------------------------------- | -| `user_id` | \`$\{string}-$\{string}-$\{string}-$\{string}-$\{string}\` | The user ID to create a room with. | -| `room_id?` | \`$\{string}-$\{string}-$\{string}-$\{string}-$\{string}\` | - | +• **evaluator**: [`Evaluator`](../interfaces/Evaluator.md) + +The evaluator to register. #### Returns -`Promise`\<\`$\{string}-$\{string}-$\{string}-$\{string}-$\{string}\`\> +`void` -The room ID of the room between the agent and the user. +#### Defined in -**`Throws`** +[packages/core/src/runtime.ts:410](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L410) -An error if the room cannot be created. +--- + +### registerContextProvider() + +> **registerContextProvider**(`provider`): `void` + +Register a context provider to provide context for message generation. + +#### Parameters + +• **provider**: [`Provider`](../interfaces/Provider.md) + +The context provider to register. + +#### Returns + +`void` + +#### Defined in + +[packages/core/src/runtime.ts:418](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L418) + +--- + +### processActions() + +> **processActions**(`message`, `responses`, `state`?, `callback`?): `Promise`\<`void`\> + +Process the actions of a message. + +#### Parameters + +• **message**: [`Memory`](../interfaces/Memory.md) + +The message to process. + +• **responses**: [`Memory`](../interfaces/Memory.md)[] + +• **state?**: [`State`](../interfaces/State.md) + +• **callback?**: [`HandlerCallback`](../type-aliases/HandlerCallback.md) + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`processActions`](../interfaces/IAgentRuntime.md#processactions) + +#### Defined in + +[packages/core/src/runtime.ts:427](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L427) --- -### evaluate +### evaluate() -▸ **evaluate**(`message`, `state?`): `Promise`\<`string`[]\> +> **evaluate**(`message`, `state`?): `Promise`\<`string`[]\> Evaluate the message and state using the registered evaluators. #### Parameters -| Name | Type | Description | -| :-------- | :------------------------------------ | :----------------------- | -| `message` | [`Message`](../interfaces/Message.md) | The message to evaluate. | -| `state?` | [`State`](../interfaces/State.md) | The state of the agent. | +• **message**: [`Memory`](../interfaces/Memory.md) + +The message to evaluate. + +• **state?**: [`State`](../interfaces/State.md) + +The state of the agent. #### Returns @@ -347,106 +620,215 @@ Evaluate the message and state using the registered evaluators. The results of the evaluation. +#### Implementation of + +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`evaluate`](../interfaces/IAgentRuntime.md#evaluate) + +#### Defined in + +[packages/core/src/runtime.ts:499](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L499) + --- -### getConversationLength +### ensureParticipantExists() -▸ **getConversationLength**(): `number` +> **ensureParticipantExists**(`userId`, `roomId`): `Promise`\<`void`\> -Get the number of messages that are kept in the conversation buffer. +Ensure the existence of a participant in the room. If the participant does not exist, they are added to the room. + +#### Parameters + +• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +The user ID to ensure the existence of. + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` #### Returns -`number` +`Promise`\<`void`\> -The number of recent messages to be kept in memory. +#### Throws + +An error if the participant cannot be added. + +#### Implementation of + +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`ensureParticipantExists`](../interfaces/IAgentRuntime.md#ensureparticipantexists) + +#### Defined in + +[packages/core/src/runtime.ts:565](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L565) --- -### processActions +### ensureUserExists() -▸ **processActions**(`message`, `content`, `state?`): `Promise`\<`unknown`\> +> **ensureUserExists**(`userId`, `userName`, `name`, `email`?, `source`?): `Promise`\<`void`\> -Process the actions of a message. +Ensure the existence of a user in the database. If the user does not exist, they are added to the database. #### Parameters -| Name | Type | Description | -| :-------- | :------------------------------------ | :-------------------------------------------------- | -| `message` | [`Message`](../interfaces/Message.md) | The message to process. | -| `content` | [`Content`](../interfaces/Content.md) | The content of the message to process actions from. | -| `state?` | [`State`](../interfaces/State.md) | - | +• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +The user ID to ensure the existence of. + +• **userName**: `string` + +The user name to ensure the existence of. + +• **name**: `string` + +• **email?**: `string` + +• **source?**: `string` #### Returns -`Promise`\<`unknown`\> +`Promise`\<`void`\> + +#### Implementation of + +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`ensureUserExists`](../interfaces/IAgentRuntime.md#ensureuserexists) + +#### Defined in + +[packages/core/src/runtime.ts:581](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L581) --- -### registerAction +### ensureParticipantInRoom() -▸ **registerAction**(`action`): `void` +> **ensureParticipantInRoom**(`userId`, `roomId`): `Promise`\<`void`\> -Register an action for the agent to perform. +#### Parameters + +• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`ensureParticipantInRoom`](../interfaces/IAgentRuntime.md#ensureparticipantinroom) + +#### Defined in + +[packages/core/src/runtime.ts:601](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L601) + +--- + +### ensureConnection() + +> **ensureConnection**(`userId`, `roomId`, `userName`?, `userScreenName`?, `source`?): `Promise`\<`void`\> #### Parameters -| Name | Type | Description | -| :------- | :---------------------------------- | :---------------------- | -| `action` | [`Action`](../interfaces/Action.md) | The action to register. | +• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **userName?**: `string` + +• **userScreenName?**: `string` + +• **source?**: `string` #### Returns -`void` +`Promise`\<`void`\> + +#### Implementation of + +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`ensureConnection`](../interfaces/IAgentRuntime.md#ensureconnection) + +#### Defined in + +[packages/core/src/runtime.ts:612](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L612) --- -### registerContextProvider +### ensureRoomExists() -▸ **registerContextProvider**(`provider`): `void` +> **ensureRoomExists**(`roomId`): `Promise`\<`void`\> -Register a context provider to provide context for message generation. +Ensure the existence of a room between the agent and a user. If no room exists, a new room is created and the user +and agent are added as participants. The room ID is returned. #### Parameters -| Name | Type | Description | -| :--------- | :-------------------------------------- | :-------------------------------- | -| `provider` | [`Provider`](../interfaces/Provider.md) | The context provider to register. | +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` #### Returns -`void` +`Promise`\<`void`\> + +The room ID of the room between the agent and the user. + +#### Throws + +An error if the room cannot be created. + +#### Implementation of + +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`ensureRoomExists`](../interfaces/IAgentRuntime.md#ensureroomexists) + +#### Defined in + +[packages/core/src/runtime.ts:648](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L648) --- -### registerEvaluator +### composeState() -▸ **registerEvaluator**(`evaluator`): `void` +> **composeState**(`message`, `additionalKeys`): `Promise`\<[`State`](../interfaces/State.md)\> -Register an evaluator to assess and guide the agent's responses. +Compose the state of the agent into an object that can be passed or used for response generation. #### Parameters -| Name | Type | Description | -| :---------- | :---------------------------------------- | :------------------------- | -| `evaluator` | [`Evaluator`](../interfaces/Evaluator.md) | The evaluator to register. | +• **message**: [`Memory`](../interfaces/Memory.md) + +The message to compose the state from. + +• **additionalKeys** = `{}` #### Returns -`void` +`Promise`\<[`State`](../interfaces/State.md)\> + +The state of the agent. + +#### Implementation of + +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`composeState`](../interfaces/IAgentRuntime.md#composestate) + +#### Defined in + +[packages/core/src/runtime.ts:661](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L661) --- -### retrieveCachedEmbedding +### updateRecentMessageState() -▸ **retrieveCachedEmbedding**(`input`): `Promise`\<`null` \| `number`[]\> +> **updateRecentMessageState**(`state`): `Promise`\<[`State`](../interfaces/State.md)\> #### Parameters -| Name | Type | -| :------ | :------- | -| `input` | `string` | +• **state**: [`State`](../interfaces/State.md) #### Returns -`Promise`\<`null` \| `number`[]\> +`Promise`\<[`State`](../interfaces/State.md)\> + +#### Implementation of + +[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`updateRecentMessageState`](../interfaces/IAgentRuntime.md#updaterecentmessagestate) + +#### Defined in + +[packages/core/src/runtime.ts:1094](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L1094) diff --git a/docs/api/classes/DatabaseAdapter.md b/docs/api/classes/DatabaseAdapter.md new file mode 100644 index 00000000000..a6a02a606ad --- /dev/null +++ b/docs/api/classes/DatabaseAdapter.md @@ -0,0 +1,1114 @@ +# Class: `abstract` DatabaseAdapter + +An abstract class representing a database adapter for managing various entities +like accounts, memories, actors, goals, and rooms. + +## Implements + +- [`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md) + +## Constructors + +### new DatabaseAdapter() + +> **new DatabaseAdapter**(): [`DatabaseAdapter`](DatabaseAdapter.md) + +#### Returns + +[`DatabaseAdapter`](DatabaseAdapter.md) + +## Properties + +### db + +> **db**: `any` + +The database instance. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`db`](../interfaces/IDatabaseAdapter.md#db) + +#### Defined in + +[packages/core/src/database.ts:21](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L21) + +## Methods + +### getAccountById() + +> `abstract` **getAccountById**(`userId`): `Promise`\<[`Account`](../interfaces/Account.md)\> + +Retrieves an account by its ID. + +#### Parameters + +• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +The UUID of the user account to retrieve. + +#### Returns + +`Promise`\<[`Account`](../interfaces/Account.md)\> + +A Promise that resolves to the Account object or null if not found. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`getAccountById`](../interfaces/IDatabaseAdapter.md#getaccountbyid) + +#### Defined in + +[packages/core/src/database.ts:27](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L27) + +--- + +### createAccount() + +> `abstract` **createAccount**(`account`): `Promise`\<`boolean`\> + +Creates a new account in the database. + +#### Parameters + +• **account**: [`Account`](../interfaces/Account.md) + +The account object to create. + +#### Returns + +`Promise`\<`boolean`\> + +A Promise that resolves when the account creation is complete. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`createAccount`](../interfaces/IDatabaseAdapter.md#createaccount) + +#### Defined in + +[packages/core/src/database.ts:34](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L34) + +--- + +### getMemories() + +> `abstract` **getMemories**(`params`): `Promise`\<[`Memory`](../interfaces/Memory.md)[]\> + +Retrieves memories based on the specified parameters. + +#### Parameters + +• **params** + +An object containing parameters for the memory retrieval. + +• **params.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.count?**: `number` + +• **params.unique?**: `boolean` + +• **params.tableName**: `string` + +#### Returns + +`Promise`\<[`Memory`](../interfaces/Memory.md)[]\> + +A Promise that resolves to an array of Memory objects. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`getMemories`](../interfaces/IDatabaseAdapter.md#getmemories) + +#### Defined in + +[packages/core/src/database.ts:41](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L41) + +--- + +### getMemoriesByRoomIds() + +> `abstract` **getMemoriesByRoomIds**(`params`): `Promise`\<[`Memory`](../interfaces/Memory.md)[]\> + +#### Parameters + +• **params** + +• **params.agentId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.roomIds**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[] + +• **params.tableName**: `string` + +#### Returns + +`Promise`\<[`Memory`](../interfaces/Memory.md)[]\> + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`getMemoriesByRoomIds`](../interfaces/IDatabaseAdapter.md#getmemoriesbyroomids) + +#### Defined in + +[packages/core/src/database.ts:48](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L48) + +--- + +### getMemoryById() + +> `abstract` **getMemoryById**(`id`): `Promise`\<[`Memory`](../interfaces/Memory.md)\> + +#### Parameters + +• **id**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<[`Memory`](../interfaces/Memory.md)\> + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`getMemoryById`](../interfaces/IDatabaseAdapter.md#getmemorybyid) + +#### Defined in + +[packages/core/src/database.ts:54](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L54) + +--- + +### getCachedEmbeddings() + +> `abstract` **getCachedEmbeddings**(`params`): `Promise`\<`object`[]\> + +Retrieves cached embeddings based on the specified query parameters. + +#### Parameters + +• **params** + +An object containing parameters for the embedding retrieval. + +• **params.query_table_name**: `string` + +• **params.query_threshold**: `number` + +• **params.query_input**: `string` + +• **params.query_field_name**: `string` + +• **params.query_field_sub_name**: `string` + +• **params.query_match_count**: `number` + +#### Returns + +`Promise`\<`object`[]\> + +A Promise that resolves to an array of objects containing embeddings and levenshtein scores. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`getCachedEmbeddings`](../interfaces/IDatabaseAdapter.md#getcachedembeddings) + +#### Defined in + +[packages/core/src/database.ts:61](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L61) + +--- + +### log() + +> `abstract` **log**(`params`): `Promise`\<`void`\> + +Logs an event or action with the specified details. + +#### Parameters + +• **params** + +An object containing parameters for the log entry. + +• **params.body** + +• **params.userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.type**: `string` + +#### Returns + +`Promise`\<`void`\> + +A Promise that resolves when the log entry has been saved. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`log`](../interfaces/IDatabaseAdapter.md#log) + +#### Defined in + +[packages/core/src/database.ts:87](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L87) + +--- + +### getActorDetails() + +> `abstract` **getActorDetails**(`params`): `Promise`\<[`Actor`](../interfaces/Actor.md)[]\> + +Retrieves details of actors in a given room. + +#### Parameters + +• **params** + +An object containing the roomId to search for actors. + +• **params.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<[`Actor`](../interfaces/Actor.md)[]\> + +A Promise that resolves to an array of Actor objects. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`getActorDetails`](../interfaces/IDatabaseAdapter.md#getactordetails) + +#### Defined in + +[packages/core/src/database.ts:99](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L99) + +--- + +### searchMemories() + +> `abstract` **searchMemories**(`params`): `Promise`\<[`Memory`](../interfaces/Memory.md)[]\> + +Searches for memories based on embeddings and other specified parameters. + +#### Parameters + +• **params** + +An object containing parameters for the memory search. + +• **params.tableName**: `string` + +• **params.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.embedding**: `number`[] + +• **params.match_threshold**: `number` + +• **params.match_count**: `number` + +• **params.unique**: `boolean` + +#### Returns + +`Promise`\<[`Memory`](../interfaces/Memory.md)[]\> + +A Promise that resolves to an array of Memory objects. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`searchMemories`](../interfaces/IDatabaseAdapter.md#searchmemories) + +#### Defined in + +[packages/core/src/database.ts:106](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L106) + +--- + +### updateGoalStatus() + +> `abstract` **updateGoalStatus**(`params`): `Promise`\<`void`\> + +Updates the status of a specific goal. + +#### Parameters + +• **params** + +An object containing the goalId and the new status. + +• **params.goalId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.status**: [`GoalStatus`](../enumerations/GoalStatus.md) + +#### Returns + +`Promise`\<`void`\> + +A Promise that resolves when the goal status has been updated. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`updateGoalStatus`](../interfaces/IDatabaseAdapter.md#updategoalstatus) + +#### Defined in + +[packages/core/src/database.ts:120](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L120) + +--- + +### searchMemoriesByEmbedding() + +> `abstract` **searchMemoriesByEmbedding**(`embedding`, `params`): `Promise`\<[`Memory`](../interfaces/Memory.md)[]\> + +Searches for memories by embedding and other specified parameters. + +#### Parameters + +• **embedding**: `number`[] + +The embedding vector to search with. + +• **params** + +Additional parameters for the search. + +• **params.match_threshold?**: `number` + +• **params.count?**: `number` + +• **params.roomId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.agentId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.unique?**: `boolean` + +• **params.tableName**: `string` + +#### Returns + +`Promise`\<[`Memory`](../interfaces/Memory.md)[]\> + +A Promise that resolves to an array of Memory objects. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`searchMemoriesByEmbedding`](../interfaces/IDatabaseAdapter.md#searchmemoriesbyembedding) + +#### Defined in + +[packages/core/src/database.ts:131](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L131) + +--- + +### createMemory() + +> `abstract` **createMemory**(`memory`, `tableName`, `unique`?): `Promise`\<`void`\> + +Creates a new memory in the database. + +#### Parameters + +• **memory**: [`Memory`](../interfaces/Memory.md) + +The memory object to create. + +• **tableName**: `string` + +The table where the memory should be stored. + +• **unique?**: `boolean` + +Indicates if the memory should be unique. + +#### Returns + +`Promise`\<`void`\> + +A Promise that resolves when the memory has been created. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`createMemory`](../interfaces/IDatabaseAdapter.md#creatememory) + +#### Defined in + +[packages/core/src/database.ts:150](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L150) + +--- + +### removeMemory() + +> `abstract` **removeMemory**(`memoryId`, `tableName`): `Promise`\<`void`\> + +Removes a specific memory from the database. + +#### Parameters + +• **memoryId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +The UUID of the memory to remove. + +• **tableName**: `string` + +The table from which the memory should be removed. + +#### Returns + +`Promise`\<`void`\> + +A Promise that resolves when the memory has been removed. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`removeMemory`](../interfaces/IDatabaseAdapter.md#removememory) + +#### Defined in + +[packages/core/src/database.ts:162](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L162) + +--- + +### removeAllMemories() + +> `abstract` **removeAllMemories**(`roomId`, `tableName`): `Promise`\<`void`\> + +Removes all memories associated with a specific room. + +#### Parameters + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +The UUID of the room whose memories should be removed. + +• **tableName**: `string` + +The table from which the memories should be removed. + +#### Returns + +`Promise`\<`void`\> + +A Promise that resolves when all memories have been removed. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`removeAllMemories`](../interfaces/IDatabaseAdapter.md#removeallmemories) + +#### Defined in + +[packages/core/src/database.ts:170](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L170) + +--- + +### countMemories() + +> `abstract` **countMemories**(`roomId`, `unique`?, `tableName`?): `Promise`\<`number`\> + +Counts the number of memories in a specific room. + +#### Parameters + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +The UUID of the room for which to count memories. + +• **unique?**: `boolean` + +Specifies whether to count only unique memories. + +• **tableName?**: `string` + +Optional table name to count memories from. + +#### Returns + +`Promise`\<`number`\> + +A Promise that resolves to the number of memories. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`countMemories`](../interfaces/IDatabaseAdapter.md#countmemories) + +#### Defined in + +[packages/core/src/database.ts:179](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L179) + +--- + +### getGoals() + +> `abstract` **getGoals**(`params`): `Promise`\<[`Goal`](../interfaces/Goal.md)[]\> + +Retrieves goals based on specified parameters. + +#### Parameters + +• **params** + +An object containing parameters for goal retrieval. + +• **params.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.userId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.onlyInProgress?**: `boolean` + +• **params.count?**: `number` + +#### Returns + +`Promise`\<[`Goal`](../interfaces/Goal.md)[]\> + +A Promise that resolves to an array of Goal objects. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`getGoals`](../interfaces/IDatabaseAdapter.md#getgoals) + +#### Defined in + +[packages/core/src/database.ts:190](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L190) + +--- + +### updateGoal() + +> `abstract` **updateGoal**(`goal`): `Promise`\<`void`\> + +Updates a specific goal in the database. + +#### Parameters + +• **goal**: [`Goal`](../interfaces/Goal.md) + +The goal object with updated properties. + +#### Returns + +`Promise`\<`void`\> + +A Promise that resolves when the goal has been updated. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`updateGoal`](../interfaces/IDatabaseAdapter.md#updategoal) + +#### Defined in + +[packages/core/src/database.ts:202](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L202) + +--- + +### createGoal() + +> `abstract` **createGoal**(`goal`): `Promise`\<`void`\> + +Creates a new goal in the database. + +#### Parameters + +• **goal**: [`Goal`](../interfaces/Goal.md) + +The goal object to create. + +#### Returns + +`Promise`\<`void`\> + +A Promise that resolves when the goal has been created. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`createGoal`](../interfaces/IDatabaseAdapter.md#creategoal) + +#### Defined in + +[packages/core/src/database.ts:209](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L209) + +--- + +### removeGoal() + +> `abstract` **removeGoal**(`goalId`): `Promise`\<`void`\> + +Removes a specific goal from the database. + +#### Parameters + +• **goalId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +The UUID of the goal to remove. + +#### Returns + +`Promise`\<`void`\> + +A Promise that resolves when the goal has been removed. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`removeGoal`](../interfaces/IDatabaseAdapter.md#removegoal) + +#### Defined in + +[packages/core/src/database.ts:216](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L216) + +--- + +### removeAllGoals() + +> `abstract` **removeAllGoals**(`roomId`): `Promise`\<`void`\> + +Removes all goals associated with a specific room. + +#### Parameters + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +The UUID of the room whose goals should be removed. + +#### Returns + +`Promise`\<`void`\> + +A Promise that resolves when all goals have been removed. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`removeAllGoals`](../interfaces/IDatabaseAdapter.md#removeallgoals) + +#### Defined in + +[packages/core/src/database.ts:223](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L223) + +--- + +### getRoom() + +> `abstract` **getRoom**(`roomId`): `Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`\> + +Retrieves the room ID for a given room, if it exists. + +#### Parameters + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +The UUID of the room to retrieve. + +#### Returns + +`Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`\> + +A Promise that resolves to the room ID or null if not found. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`getRoom`](../interfaces/IDatabaseAdapter.md#getroom) + +#### Defined in + +[packages/core/src/database.ts:230](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L230) + +--- + +### createRoom() + +> `abstract` **createRoom**(`roomId`?): `Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`\> + +Creates a new room with an optional specified ID. + +#### Parameters + +• **roomId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +Optional UUID to assign to the new room. + +#### Returns + +`Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`\> + +A Promise that resolves to the UUID of the created room. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`createRoom`](../interfaces/IDatabaseAdapter.md#createroom) + +#### Defined in + +[packages/core/src/database.ts:237](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L237) + +--- + +### removeRoom() + +> `abstract` **removeRoom**(`roomId`): `Promise`\<`void`\> + +Removes a specific room from the database. + +#### Parameters + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +The UUID of the room to remove. + +#### Returns + +`Promise`\<`void`\> + +A Promise that resolves when the room has been removed. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`removeRoom`](../interfaces/IDatabaseAdapter.md#removeroom) + +#### Defined in + +[packages/core/src/database.ts:244](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L244) + +--- + +### getRoomsForParticipant() + +> `abstract` **getRoomsForParticipant**(`userId`): `Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> + +Retrieves room IDs for which a specific user is a participant. + +#### Parameters + +• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +The UUID of the user. + +#### Returns + +`Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> + +A Promise that resolves to an array of room IDs. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`getRoomsForParticipant`](../interfaces/IDatabaseAdapter.md#getroomsforparticipant) + +#### Defined in + +[packages/core/src/database.ts:251](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L251) + +--- + +### getRoomsForParticipants() + +> `abstract` **getRoomsForParticipants**(`userIds`): `Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> + +Retrieves room IDs for which specific users are participants. + +#### Parameters + +• **userIds**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[] + +An array of UUIDs of the users. + +#### Returns + +`Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> + +A Promise that resolves to an array of room IDs. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`getRoomsForParticipants`](../interfaces/IDatabaseAdapter.md#getroomsforparticipants) + +#### Defined in + +[packages/core/src/database.ts:258](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L258) + +--- + +### addParticipant() + +> `abstract` **addParticipant**(`userId`, `roomId`): `Promise`\<`boolean`\> + +Adds a user as a participant to a specific room. + +#### Parameters + +• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +The UUID of the user to add as a participant. + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +The UUID of the room to which the user will be added. + +#### Returns + +`Promise`\<`boolean`\> + +A Promise that resolves to a boolean indicating success or failure. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`addParticipant`](../interfaces/IDatabaseAdapter.md#addparticipant) + +#### Defined in + +[packages/core/src/database.ts:266](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L266) + +--- + +### removeParticipant() + +> `abstract` **removeParticipant**(`userId`, `roomId`): `Promise`\<`boolean`\> + +Removes a user as a participant from a specific room. + +#### Parameters + +• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +The UUID of the user to remove as a participant. + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +The UUID of the room from which the user will be removed. + +#### Returns + +`Promise`\<`boolean`\> + +A Promise that resolves to a boolean indicating success or failure. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`removeParticipant`](../interfaces/IDatabaseAdapter.md#removeparticipant) + +#### Defined in + +[packages/core/src/database.ts:274](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L274) + +--- + +### getParticipantsForAccount() + +#### getParticipantsForAccount(userId) + +> `abstract` **getParticipantsForAccount**(`userId`): `Promise`\<[`Participant`](../interfaces/Participant.md)[]\> + +Retrieves participants associated with a specific account. + +##### Parameters + +• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +The UUID of the account. + +##### Returns + +`Promise`\<[`Participant`](../interfaces/Participant.md)[]\> + +A Promise that resolves to an array of Participant objects. + +##### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`getParticipantsForAccount`](../interfaces/IDatabaseAdapter.md#getparticipantsforaccount) + +##### Defined in + +[packages/core/src/database.ts:281](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L281) + +#### getParticipantsForAccount(userId) + +> `abstract` **getParticipantsForAccount**(`userId`): `Promise`\<[`Participant`](../interfaces/Participant.md)[]\> + +Retrieves participants associated with a specific account. + +##### Parameters + +• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +The UUID of the account. + +##### Returns + +`Promise`\<[`Participant`](../interfaces/Participant.md)[]\> + +A Promise that resolves to an array of Participant objects. + +##### Implementation of + +`IDatabaseAdapter.getParticipantsForAccount` + +##### Defined in + +[packages/core/src/database.ts:288](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L288) + +--- + +### getParticipantsForRoom() + +> `abstract` **getParticipantsForRoom**(`roomId`): `Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> + +Retrieves participants for a specific room. + +#### Parameters + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +The UUID of the room for which to retrieve participants. + +#### Returns + +`Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> + +A Promise that resolves to an array of UUIDs representing the participants. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`getParticipantsForRoom`](../interfaces/IDatabaseAdapter.md#getparticipantsforroom) + +#### Defined in + +[packages/core/src/database.ts:295](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L295) + +--- + +### getParticipantUserState() + +> `abstract` **getParticipantUserState**(`roomId`, `userId`): `Promise`\<`"FOLLOWED"` \| `"MUTED"`\> + +#### Parameters + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<`"FOLLOWED"` \| `"MUTED"`\> + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`getParticipantUserState`](../interfaces/IDatabaseAdapter.md#getparticipantuserstate) + +#### Defined in + +[packages/core/src/database.ts:297](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L297) + +--- + +### setParticipantUserState() + +> `abstract` **setParticipantUserState**(`roomId`, `userId`, `state`): `Promise`\<`void`\> + +#### Parameters + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **state**: `"FOLLOWED"` \| `"MUTED"` + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`setParticipantUserState`](../interfaces/IDatabaseAdapter.md#setparticipantuserstate) + +#### Defined in + +[packages/core/src/database.ts:301](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L301) + +--- + +### createRelationship() + +> `abstract` **createRelationship**(`params`): `Promise`\<`boolean`\> + +Creates a new relationship between two users. + +#### Parameters + +• **params** + +An object containing the UUIDs of the two users (userA and userB). + +• **params.userA**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.userB**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<`boolean`\> + +A Promise that resolves to a boolean indicating success or failure of the creation. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`createRelationship`](../interfaces/IDatabaseAdapter.md#createrelationship) + +#### Defined in + +[packages/core/src/database.ts:312](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L312) + +--- + +### getRelationship() + +> `abstract` **getRelationship**(`params`): `Promise`\<[`Relationship`](../interfaces/Relationship.md)\> + +Retrieves a relationship between two users if it exists. + +#### Parameters + +• **params** + +An object containing the UUIDs of the two users (userA and userB). + +• **params.userA**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.userB**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<[`Relationship`](../interfaces/Relationship.md)\> + +A Promise that resolves to the Relationship object or null if not found. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`getRelationship`](../interfaces/IDatabaseAdapter.md#getrelationship) + +#### Defined in + +[packages/core/src/database.ts:322](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L322) + +--- + +### getRelationships() + +> `abstract` **getRelationships**(`params`): `Promise`\<[`Relationship`](../interfaces/Relationship.md)[]\> + +Retrieves all relationships for a specific user. + +#### Parameters + +• **params** + +An object containing the UUID of the user. + +• **params.userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<[`Relationship`](../interfaces/Relationship.md)[]\> + +A Promise that resolves to an array of Relationship objects. + +#### Implementation of + +[`IDatabaseAdapter`](../interfaces/IDatabaseAdapter.md).[`getRelationships`](../interfaces/IDatabaseAdapter.md#getrelationships) + +#### Defined in + +[packages/core/src/database.ts:332](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L332) diff --git a/docs/api/classes/MemoryManager.md b/docs/api/classes/MemoryManager.md new file mode 100644 index 00000000000..5b10d7eaf2a --- /dev/null +++ b/docs/api/classes/MemoryManager.md @@ -0,0 +1,383 @@ +# Class: MemoryManager + +Manage memories in the database. + +## Implements + +- [`IMemoryManager`](../interfaces/IMemoryManager.md) + +## Constructors + +### new MemoryManager() + +> **new MemoryManager**(`opts`): [`MemoryManager`](MemoryManager.md) + +Constructs a new MemoryManager instance. + +#### Parameters + +• **opts** + +Options for the manager. + +• **opts.tableName**: `string` + +The name of the table this manager will operate on. + +• **opts.runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + +The AgentRuntime instance associated with this manager. + +#### Returns + +[`MemoryManager`](MemoryManager.md) + +#### Defined in + +[packages/core/src/memory.ts:35](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L35) + +## Properties + +### runtime + +> **runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + +The AgentRuntime instance associated with this manager. + +#### Implementation of + +[`IMemoryManager`](../interfaces/IMemoryManager.md).[`runtime`](../interfaces/IMemoryManager.md#runtime) + +#### Defined in + +[packages/core/src/memory.ts:22](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L22) + +--- + +### tableName + +> **tableName**: `string` + +The name of the database table this manager operates on. + +#### Implementation of + +[`IMemoryManager`](../interfaces/IMemoryManager.md).[`tableName`](../interfaces/IMemoryManager.md#tablename) + +#### Defined in + +[packages/core/src/memory.ts:27](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L27) + +## Methods + +### addEmbeddingToMemory() + +> **addEmbeddingToMemory**(`memory`): `Promise`\<[`Memory`](../interfaces/Memory.md)\> + +Adds an embedding vector to a memory object. If the memory already has an embedding, it is returned as is. + +#### Parameters + +• **memory**: [`Memory`](../interfaces/Memory.md) + +The memory object to add an embedding to. + +#### Returns + +`Promise`\<[`Memory`](../interfaces/Memory.md)\> + +A Promise resolving to the memory object, potentially updated with an embedding vector. + +#### Implementation of + +[`IMemoryManager`](../interfaces/IMemoryManager.md).[`addEmbeddingToMemory`](../interfaces/IMemoryManager.md#addembeddingtomemory) + +#### Defined in + +[packages/core/src/memory.ts:45](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L45) + +--- + +### getMemories() + +> **getMemories**(`opts`): `Promise`\<[`Memory`](../interfaces/Memory.md)[]\> + +Retrieves a list of memories by user IDs, with optional deduplication. + +#### Parameters + +• **opts** + +Options including user IDs, count, and uniqueness. + +• **opts.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +The room ID to retrieve memories for. + +• **opts.count?**: `number` = `10` + +The number of memories to retrieve. + +• **opts.unique?**: `boolean` = `true` + +Whether to retrieve unique memories only. + +• **opts.agentId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **opts.start?**: `number` + +• **opts.end?**: `number` + +#### Returns + +`Promise`\<[`Memory`](../interfaces/Memory.md)[]\> + +A Promise resolving to an array of Memory objects. + +#### Implementation of + +[`IMemoryManager`](../interfaces/IMemoryManager.md).[`getMemories`](../interfaces/IMemoryManager.md#getmemories) + +#### Defined in + +[packages/core/src/memory.ts:66](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L66) + +--- + +### getCachedEmbeddings() + +> **getCachedEmbeddings**(`content`): `Promise`\<`object`[]\> + +#### Parameters + +• **content**: `string` + +#### Returns + +`Promise`\<`object`[]\> + +#### Implementation of + +[`IMemoryManager`](../interfaces/IMemoryManager.md).[`getCachedEmbeddings`](../interfaces/IMemoryManager.md#getcachedembeddings) + +#### Defined in + +[packages/core/src/memory.ts:93](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L93) + +--- + +### searchMemoriesByEmbedding() + +> **searchMemoriesByEmbedding**(`embedding`, `opts`): `Promise`\<[`Memory`](../interfaces/Memory.md)[]\> + +Searches for memories similar to a given embedding vector. + +#### Parameters + +• **embedding**: `number`[] + +The embedding vector to search with. + +• **opts** + +Options including match threshold, count, user IDs, and uniqueness. + +• **opts.match_threshold?**: `number` + +The similarity threshold for matching memories. + +• **opts.agentId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **opts.count?**: `number` + +The maximum number of memories to retrieve. + +• **opts.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +The room ID to retrieve memories for. + +• **opts.unique?**: `boolean` + +Whether to retrieve unique memories only. + +#### Returns + +`Promise`\<[`Memory`](../interfaces/Memory.md)[]\> + +A Promise resolving to an array of Memory objects that match the embedding. + +#### Implementation of + +[`IMemoryManager`](../interfaces/IMemoryManager.md).[`searchMemoriesByEmbedding`](../interfaces/IMemoryManager.md#searchmemoriesbyembedding) + +#### Defined in + +[packages/core/src/memory.ts:120](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L120) + +--- + +### createMemory() + +> **createMemory**(`memory`, `unique`): `Promise`\<`void`\> + +Creates a new memory in the database, with an option to check for similarity before insertion. + +#### Parameters + +• **memory**: [`Memory`](../interfaces/Memory.md) + +The memory object to create. + +• **unique**: `boolean` = `false` + +Whether to check for similarity before insertion. + +#### Returns + +`Promise`\<`void`\> + +A Promise that resolves when the operation completes. + +#### Implementation of + +[`IMemoryManager`](../interfaces/IMemoryManager.md).[`createMemory`](../interfaces/IMemoryManager.md#creatememory) + +#### Defined in + +[packages/core/src/memory.ts:158](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L158) + +--- + +### getMemoriesByRoomIds() + +> **getMemoriesByRoomIds**(`params`): `Promise`\<[`Memory`](../interfaces/Memory.md)[]\> + +#### Parameters + +• **params** + +• **params.agentId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.roomIds**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[] + +#### Returns + +`Promise`\<[`Memory`](../interfaces/Memory.md)[]\> + +#### Implementation of + +[`IMemoryManager`](../interfaces/IMemoryManager.md).[`getMemoriesByRoomIds`](../interfaces/IMemoryManager.md#getmemoriesbyroomids) + +#### Defined in + +[packages/core/src/memory.ts:172](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L172) + +--- + +### getMemoryById() + +> **getMemoryById**(`id`): `Promise`\<[`Memory`](../interfaces/Memory.md)\> + +#### Parameters + +• **id**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<[`Memory`](../interfaces/Memory.md)\> + +#### Implementation of + +[`IMemoryManager`](../interfaces/IMemoryManager.md).[`getMemoryById`](../interfaces/IMemoryManager.md#getmemorybyid) + +#### Defined in + +[packages/core/src/memory.ts:183](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L183) + +--- + +### removeMemory() + +> **removeMemory**(`memoryId`): `Promise`\<`void`\> + +Removes a memory from the database by its ID. + +#### Parameters + +• **memoryId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +The ID of the memory to remove. + +#### Returns + +`Promise`\<`void`\> + +A Promise that resolves when the operation completes. + +#### Implementation of + +[`IMemoryManager`](../interfaces/IMemoryManager.md).[`removeMemory`](../interfaces/IMemoryManager.md#removememory) + +#### Defined in + +[packages/core/src/memory.ts:193](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L193) + +--- + +### removeAllMemories() + +> **removeAllMemories**(`roomId`): `Promise`\<`void`\> + +Removes all memories associated with a set of user IDs. + +#### Parameters + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +The room ID to remove memories for. + +#### Returns + +`Promise`\<`void`\> + +A Promise that resolves when the operation completes. + +#### Implementation of + +[`IMemoryManager`](../interfaces/IMemoryManager.md).[`removeAllMemories`](../interfaces/IMemoryManager.md#removeallmemories) + +#### Defined in + +[packages/core/src/memory.ts:205](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L205) + +--- + +### countMemories() + +> **countMemories**(`roomId`, `unique`): `Promise`\<`number`\> + +Counts the number of memories associated with a set of user IDs, with an option for uniqueness. + +#### Parameters + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +The room ID to count memories for. + +• **unique**: `boolean` = `true` + +Whether to count unique memories only. + +#### Returns + +`Promise`\<`number`\> + +A Promise resolving to the count of memories. + +#### Implementation of + +[`IMemoryManager`](../interfaces/IMemoryManager.md).[`countMemories`](../interfaces/IMemoryManager.md#countmemories) + +#### Defined in + +[packages/core/src/memory.ts:218](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L218) diff --git a/docs/api/classes/Service.md b/docs/api/classes/Service.md new file mode 100644 index 00000000000..fbb3735e96b --- /dev/null +++ b/docs/api/classes/Service.md @@ -0,0 +1,49 @@ +# Class: `abstract` Service + +## Extended by + +- [`IImageDescriptionService`](../interfaces/IImageDescriptionService.md) +- [`ITranscriptionService`](../interfaces/ITranscriptionService.md) +- [`IVideoService`](../interfaces/IVideoService.md) +- [`ITextGenerationService`](../interfaces/ITextGenerationService.md) +- [`IBrowserService`](../interfaces/IBrowserService.md) +- [`ISpeechService`](../interfaces/ISpeechService.md) +- [`IPdfService`](../interfaces/IPdfService.md) + +## Constructors + +### new Service() + +> **new Service**(): [`Service`](Service.md) + +#### Returns + +[`Service`](Service.md) + +## Properties + +### serviceType + +> `static` **serviceType**: [`ServiceType`](../enumerations/ServiceType.md) + +#### Defined in + +[packages/core/src/types.ts:504](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L504) + +## Methods + +### getInstance() + +> `static` **getInstance**\<`T`\>(): `T` + +#### Type Parameters + +• **T** _extends_ [`Service`](Service.md) + +#### Returns + +`T` + +#### Defined in + +[packages/core/src/types.ts:506](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L506) diff --git a/docs/api/enumerations/Clients.md b/docs/api/enumerations/Clients.md new file mode 100644 index 00000000000..e90fff74a19 --- /dev/null +++ b/docs/api/enumerations/Clients.md @@ -0,0 +1,41 @@ +# Enumeration: Clients + +## Enumeration Members + +### DISCORD + +> **DISCORD**: `"discord"` + +#### Defined in + +[packages/core/src/types.ts:318](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L318) + +--- + +### DIRECT + +> **DIRECT**: `"direct"` + +#### Defined in + +[packages/core/src/types.ts:319](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L319) + +--- + +### TWITTER + +> **TWITTER**: `"twitter"` + +#### Defined in + +[packages/core/src/types.ts:320](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L320) + +--- + +### TELEGRAM + +> **TELEGRAM**: `"telegram"` + +#### Defined in + +[packages/core/src/types.ts:321](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L321) diff --git a/docs/api/enumerations/GoalStatus.md b/docs/api/enumerations/GoalStatus.md new file mode 100644 index 00000000000..b382f55496e --- /dev/null +++ b/docs/api/enumerations/GoalStatus.md @@ -0,0 +1,31 @@ +# Enumeration: GoalStatus + +## Enumeration Members + +### DONE + +> **DONE**: `"DONE"` + +#### Defined in + +[packages/core/src/types.ts:57](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L57) + +--- + +### FAILED + +> **FAILED**: `"FAILED"` + +#### Defined in + +[packages/core/src/types.ts:58](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L58) + +--- + +### IN_PROGRESS + +> **IN_PROGRESS**: `"IN_PROGRESS"` + +#### Defined in + +[packages/core/src/types.ts:59](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L59) diff --git a/docs/api/enumerations/ModelClass.md b/docs/api/enumerations/ModelClass.md new file mode 100644 index 00000000000..b80fc26932f --- /dev/null +++ b/docs/api/enumerations/ModelClass.md @@ -0,0 +1,51 @@ +# Enumeration: ModelClass + +## Enumeration Members + +### SMALL + +> **SMALL**: `"small"` + +#### Defined in + +[packages/core/src/types.ts:75](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L75) + +--- + +### MEDIUM + +> **MEDIUM**: `"medium"` + +#### Defined in + +[packages/core/src/types.ts:76](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L76) + +--- + +### LARGE + +> **LARGE**: `"large"` + +#### Defined in + +[packages/core/src/types.ts:77](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L77) + +--- + +### EMBEDDING + +> **EMBEDDING**: `"embedding"` + +#### Defined in + +[packages/core/src/types.ts:78](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L78) + +--- + +### IMAGE + +> **IMAGE**: `"image"` + +#### Defined in + +[packages/core/src/types.ts:79](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L79) diff --git a/docs/api/enumerations/ModelProviderName.md b/docs/api/enumerations/ModelProviderName.md new file mode 100644 index 00000000000..0dbef44ba51 --- /dev/null +++ b/docs/api/enumerations/ModelProviderName.md @@ -0,0 +1,101 @@ +# Enumeration: ModelProviderName + +## Enumeration Members + +### OPENAI + +> **OPENAI**: `"openai"` + +#### Defined in + +[packages/core/src/types.ts:119](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L119) + +--- + +### ANTHROPIC + +> **ANTHROPIC**: `"anthropic"` + +#### Defined in + +[packages/core/src/types.ts:120](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L120) + +--- + +### GROK + +> **GROK**: `"grok"` + +#### Defined in + +[packages/core/src/types.ts:121](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L121) + +--- + +### GROQ + +> **GROQ**: `"groq"` + +#### Defined in + +[packages/core/src/types.ts:122](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L122) + +--- + +### LLAMACLOUD + +> **LLAMACLOUD**: `"llama_cloud"` + +#### Defined in + +[packages/core/src/types.ts:123](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L123) + +--- + +### LLAMALOCAL + +> **LLAMALOCAL**: `"llama_local"` + +#### Defined in + +[packages/core/src/types.ts:124](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L124) + +--- + +### GOOGLE + +> **GOOGLE**: `"google"` + +#### Defined in + +[packages/core/src/types.ts:125](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L125) + +--- + +### CLAUDE_VERTEX + +> **CLAUDE_VERTEX**: `"claude_vertex"` + +#### Defined in + +[packages/core/src/types.ts:126](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L126) + +--- + +### REDPILL + +> **REDPILL**: `"redpill"` + +#### Defined in + +[packages/core/src/types.ts:127](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L127) + +--- + +### OLLAMA + +> **OLLAMA**: `"ollama"` + +#### Defined in + +[packages/core/src/types.ts:128](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L128) diff --git a/docs/api/enumerations/ServiceType.md b/docs/api/enumerations/ServiceType.md new file mode 100644 index 00000000000..4be1a88cf08 --- /dev/null +++ b/docs/api/enumerations/ServiceType.md @@ -0,0 +1,71 @@ +# Enumeration: ServiceType + +## Enumeration Members + +### IMAGE_DESCRIPTION + +> **IMAGE_DESCRIPTION**: `"image_description"` + +#### Defined in + +[packages/core/src/types.ts:638](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L638) + +--- + +### TRANSCRIPTION + +> **TRANSCRIPTION**: `"transcription"` + +#### Defined in + +[packages/core/src/types.ts:639](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L639) + +--- + +### VIDEO + +> **VIDEO**: `"video"` + +#### Defined in + +[packages/core/src/types.ts:640](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L640) + +--- + +### TEXT_GENERATION + +> **TEXT_GENERATION**: `"text_generation"` + +#### Defined in + +[packages/core/src/types.ts:641](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L641) + +--- + +### BROWSER + +> **BROWSER**: `"browser"` + +#### Defined in + +[packages/core/src/types.ts:642](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L642) + +--- + +### SPEECH_GENERATION + +> **SPEECH_GENERATION**: `"speech_generation"` + +#### Defined in + +[packages/core/src/types.ts:643](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L643) + +--- + +### PDF + +> **PDF**: `"pdf"` + +#### Defined in + +[packages/core/src/types.ts:644](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L644) diff --git a/docs/api/functions/addHeader.md b/docs/api/functions/addHeader.md new file mode 100644 index 00000000000..60af63c64c7 --- /dev/null +++ b/docs/api/functions/addHeader.md @@ -0,0 +1,40 @@ +# Function: addHeader() + +> **addHeader**(`header`, `body`): `string` + +Adds a header to a body of text. + +This function takes a header string and a body string and returns a new string with the header prepended to the body. +If the body string is empty, the header is returned as is. + +## Parameters + +• **header**: `string` + +The header to add to the body. + +• **body**: `string` + +The body to which to add the header. + +## Returns + +`string` + +The body with the header prepended. + +## Example + +```ts +// Given a header and a body +const header = "Header"; +const body = "Body"; + +// Adding the header to the body will result in: +// "Header\nBody" +const text = addHeader(header, body); +``` + +## Defined in + +[packages/core/src/context.ts:58](https://github.com/ai16z/eliza/blob/main/packages/core/src/context.ts#L58) diff --git a/docs/api/functions/composeActionExamples.md b/docs/api/functions/composeActionExamples.md new file mode 100644 index 00000000000..231bd51dd1b --- /dev/null +++ b/docs/api/functions/composeActionExamples.md @@ -0,0 +1,26 @@ +# Function: composeActionExamples() + +> **composeActionExamples**(`actionsData`, `count`): `string` + +Composes a set of example conversations based on provided actions and a specified count. +It randomly selects examples from the provided actions and formats them with generated names. + +## Parameters + +• **actionsData**: [`Action`](../interfaces/Action.md)[] + +An array of `Action` objects from which to draw examples. + +• **count**: `number` + +The number of examples to generate. + +## Returns + +`string` + +A string containing formatted examples of conversations. + +## Defined in + +[packages/core/src/actions.ts:11](https://github.com/ai16z/eliza/blob/main/packages/core/src/actions.ts#L11) diff --git a/docs/api/functions/composeContext.md b/docs/api/functions/composeContext.md new file mode 100644 index 00000000000..a2a8705a09e --- /dev/null +++ b/docs/api/functions/composeContext.md @@ -0,0 +1,45 @@ +# Function: composeContext() + +> **composeContext**(`params`): `string` + +Composes a context string by replacing placeholders in a template with corresponding values from the state. + +This function takes a template string with placeholders in the format `{{placeholder}}` and a state object. +It replaces each placeholder with the value from the state object that matches the placeholder's name. +If a matching key is not found in the state object for a given placeholder, the placeholder is replaced with an empty string. + +## Parameters + +• **params** + +The parameters for composing the context. + +• **params.state**: [`State`](../interfaces/State.md) + +The state object containing values to replace the placeholders in the template. + +• **params.template**: `string` + +The template string containing placeholders to be replaced with state values. + +## Returns + +`string` + +The composed context string with placeholders replaced by corresponding state values. + +## Example + +```ts +// Given a state object and a template +const state = { userName: "Alice", userAge: 30 }; +const template = "Hello, {{userName}}! You are {{userAge}} years old"; + +// Composing the context will result in: +// "Hello, Alice! You are 30 years old." +const context = composeContext({ state, template }); +``` + +## Defined in + +[packages/core/src/context.ts:24](https://github.com/ai16z/eliza/blob/main/packages/core/src/context.ts#L24) diff --git a/docs/api/functions/createGoal.md b/docs/api/functions/createGoal.md new file mode 100644 index 00000000000..555b7ce661b --- /dev/null +++ b/docs/api/functions/createGoal.md @@ -0,0 +1,19 @@ +# Function: createGoal() + +> **createGoal**(`__namedParameters`): `Promise`\<`void`\> + +## Parameters + +• **\_\_namedParameters** + +• **\_\_namedParameters.runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + +• **\_\_namedParameters.goal**: [`Goal`](../interfaces/Goal.md) + +## Returns + +`Promise`\<`void`\> + +## Defined in + +[packages/core/src/goals.ts:54](https://github.com/ai16z/eliza/blob/main/packages/core/src/goals.ts#L54) diff --git a/docs/api/functions/createRelationship.md b/docs/api/functions/createRelationship.md new file mode 100644 index 00000000000..1413ab441b4 --- /dev/null +++ b/docs/api/functions/createRelationship.md @@ -0,0 +1,21 @@ +# Function: createRelationship() + +> **createRelationship**(`__namedParameters`): `Promise`\<`boolean`\> + +## Parameters + +• **\_\_namedParameters** + +• **\_\_namedParameters.runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + +• **\_\_namedParameters.userA**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **\_\_namedParameters.userB**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +## Returns + +`Promise`\<`boolean`\> + +## Defined in + +[packages/core/src/relationships.ts:3](https://github.com/ai16z/eliza/blob/main/packages/core/src/relationships.ts#L3) diff --git a/docs/api/functions/embed.md b/docs/api/functions/embed.md new file mode 100644 index 00000000000..437c7e00488 --- /dev/null +++ b/docs/api/functions/embed.md @@ -0,0 +1,23 @@ +# Function: embed() + +> **embed**(`runtime`, `input`): `Promise`\<`number`[]\> + +Send a message to the OpenAI API for embedding. + +## Parameters + +• **runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + +• **input**: `string` + +The input to be embedded. + +## Returns + +`Promise`\<`number`[]\> + +The embedding of the input. + +## Defined in + +[packages/core/src/embedding.ts:14](https://github.com/ai16z/eliza/blob/main/packages/core/src/embedding.ts#L14) diff --git a/docs/api/functions/formatActionNames.md b/docs/api/functions/formatActionNames.md new file mode 100644 index 00000000000..0672c8bb8d1 --- /dev/null +++ b/docs/api/functions/formatActionNames.md @@ -0,0 +1,21 @@ +# Function: formatActionNames() + +> **formatActionNames**(`actions`): `string` + +Formats the names of the provided actions into a comma-separated string. + +## Parameters + +• **actions**: [`Action`](../interfaces/Action.md)[] + +An array of `Action` objects from which to extract names. + +## Returns + +`string` + +A comma-separated string of action names. + +## Defined in + +[packages/core/src/actions.ts:47](https://github.com/ai16z/eliza/blob/main/packages/core/src/actions.ts#L47) diff --git a/docs/api/functions/formatActions.md b/docs/api/functions/formatActions.md new file mode 100644 index 00000000000..a2ff54a599e --- /dev/null +++ b/docs/api/functions/formatActions.md @@ -0,0 +1,21 @@ +# Function: formatActions() + +> **formatActions**(`actions`): `string` + +Formats the provided actions into a detailed string listing each action's name and description, separated by commas and newlines. + +## Parameters + +• **actions**: [`Action`](../interfaces/Action.md)[] + +An array of `Action` objects to format. + +## Returns + +`string` + +A detailed string of actions, including names and descriptions. + +## Defined in + +[packages/core/src/actions.ts:59](https://github.com/ai16z/eliza/blob/main/packages/core/src/actions.ts#L59) diff --git a/docs/api/functions/formatActors.md b/docs/api/functions/formatActors.md new file mode 100644 index 00000000000..f8493a31be1 --- /dev/null +++ b/docs/api/functions/formatActors.md @@ -0,0 +1,23 @@ +# Function: formatActors() + +> **formatActors**(`actors`): `string` + +Format actors into a string + +## Parameters + +• **actors** + +list of actors + +• **actors.actors**: [`Actor`](../interfaces/Actor.md)[] + +## Returns + +`string` + +string + +## Defined in + +[packages/core/src/messages.ts:45](https://github.com/ai16z/eliza/blob/main/packages/core/src/messages.ts#L45) diff --git a/docs/api/functions/formatEvaluatorExampleDescriptions.md b/docs/api/functions/formatEvaluatorExampleDescriptions.md new file mode 100644 index 00000000000..c1b3cadaf4c --- /dev/null +++ b/docs/api/functions/formatEvaluatorExampleDescriptions.md @@ -0,0 +1,21 @@ +# Function: formatEvaluatorExampleDescriptions() + +> **formatEvaluatorExampleDescriptions**(`evaluators`): `string` + +Generates a string summarizing the descriptions of each evaluator example. + +## Parameters + +• **evaluators**: [`Evaluator`](../interfaces/Evaluator.md)[] + +An array of evaluator objects, each containing examples. + +## Returns + +`string` + +A string that summarizes the descriptions for each evaluator example, formatted with the evaluator name, example number, and description. + +## Defined in + +[packages/core/src/evaluators.ts:110](https://github.com/ai16z/eliza/blob/main/packages/core/src/evaluators.ts#L110) diff --git a/docs/api/functions/formatEvaluatorExamples.md b/docs/api/functions/formatEvaluatorExamples.md new file mode 100644 index 00000000000..a2264765f52 --- /dev/null +++ b/docs/api/functions/formatEvaluatorExamples.md @@ -0,0 +1,21 @@ +# Function: formatEvaluatorExamples() + +> **formatEvaluatorExamples**(`evaluators`): `string` + +Formats evaluator examples into a readable string, replacing placeholders with generated names. + +## Parameters + +• **evaluators**: [`Evaluator`](../interfaces/Evaluator.md)[] + +An array of evaluator objects, each containing examples to format. + +## Returns + +`string` + +A string that presents each evaluator example in a structured format, including context, messages, and outcomes, with placeholders replaced by generated names. + +## Defined in + +[packages/core/src/evaluators.ts:55](https://github.com/ai16z/eliza/blob/main/packages/core/src/evaluators.ts#L55) diff --git a/docs/api/functions/formatEvaluatorNames.md b/docs/api/functions/formatEvaluatorNames.md new file mode 100644 index 00000000000..abbc5a90943 --- /dev/null +++ b/docs/api/functions/formatEvaluatorNames.md @@ -0,0 +1,21 @@ +# Function: formatEvaluatorNames() + +> **formatEvaluatorNames**(`evaluators`): `string` + +Formats the names of evaluators into a comma-separated list, each enclosed in single quotes. + +## Parameters + +• **evaluators**: [`Evaluator`](../interfaces/Evaluator.md)[] + +An array of evaluator objects. + +## Returns + +`string` + +A string that concatenates the names of all evaluators, each enclosed in single quotes and separated by commas. + +## Defined in + +[packages/core/src/evaluators.ts:30](https://github.com/ai16z/eliza/blob/main/packages/core/src/evaluators.ts#L30) diff --git a/docs/api/functions/formatEvaluators.md b/docs/api/functions/formatEvaluators.md new file mode 100644 index 00000000000..0c141b403c5 --- /dev/null +++ b/docs/api/functions/formatEvaluators.md @@ -0,0 +1,21 @@ +# Function: formatEvaluators() + +> **formatEvaluators**(`evaluators`): `string` + +Formats evaluator details into a string, including both the name and description of each evaluator. + +## Parameters + +• **evaluators**: [`Evaluator`](../interfaces/Evaluator.md)[] + +An array of evaluator objects. + +## Returns + +`string` + +A string that concatenates the name and description of each evaluator, separated by a colon and a newline character. + +## Defined in + +[packages/core/src/evaluators.ts:41](https://github.com/ai16z/eliza/blob/main/packages/core/src/evaluators.ts#L41) diff --git a/docs/api/functions/formatGoalsAsString.md b/docs/api/functions/formatGoalsAsString.md new file mode 100644 index 00000000000..72d98f69a3b --- /dev/null +++ b/docs/api/functions/formatGoalsAsString.md @@ -0,0 +1,17 @@ +# Function: formatGoalsAsString() + +> **formatGoalsAsString**(`__namedParameters`): `string` + +## Parameters + +• **\_\_namedParameters** + +• **\_\_namedParameters.goals**: [`Goal`](../interfaces/Goal.md)[] + +## Returns + +`string` + +## Defined in + +[packages/core/src/goals.ts:29](https://github.com/ai16z/eliza/blob/main/packages/core/src/goals.ts#L29) diff --git a/docs/api/functions/formatMessages.md b/docs/api/functions/formatMessages.md new file mode 100644 index 00000000000..ee3dd0f1277 --- /dev/null +++ b/docs/api/functions/formatMessages.md @@ -0,0 +1,23 @@ +# Function: formatMessages() + +> **formatMessages**(`__namedParameters`): `string` + +Format messages into a string + +## Parameters + +• **\_\_namedParameters** + +• **\_\_namedParameters.messages**: [`Memory`](../interfaces/Memory.md)[] + +• **\_\_namedParameters.actors**: [`Actor`](../interfaces/Actor.md)[] + +## Returns + +`string` + +string + +## Defined in + +[packages/core/src/messages.ts:60](https://github.com/ai16z/eliza/blob/main/packages/core/src/messages.ts#L60) diff --git a/docs/api/functions/formatPosts.md b/docs/api/functions/formatPosts.md new file mode 100644 index 00000000000..576a1c19ac1 --- /dev/null +++ b/docs/api/functions/formatPosts.md @@ -0,0 +1,21 @@ +# Function: formatPosts() + +> **formatPosts**(`__namedParameters`): `string` + +## Parameters + +• **\_\_namedParameters** + +• **\_\_namedParameters.messages**: [`Memory`](../interfaces/Memory.md)[] + +• **\_\_namedParameters.actors**: [`Actor`](../interfaces/Actor.md)[] + +• **\_\_namedParameters.conversationHeader?**: `boolean` = `true` + +## Returns + +`string` + +## Defined in + +[packages/core/src/posts.ts:4](https://github.com/ai16z/eliza/blob/main/packages/core/src/posts.ts#L4) diff --git a/docs/api/functions/formatRelationships.md b/docs/api/functions/formatRelationships.md new file mode 100644 index 00000000000..3a17f7a8529 --- /dev/null +++ b/docs/api/functions/formatRelationships.md @@ -0,0 +1,19 @@ +# Function: formatRelationships() + +> **formatRelationships**(`__namedParameters`): `Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> + +## Parameters + +• **\_\_namedParameters** + +• **\_\_namedParameters.runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + +• **\_\_namedParameters.userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +## Returns + +`Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> + +## Defined in + +[packages/core/src/relationships.ts:43](https://github.com/ai16z/eliza/blob/main/packages/core/src/relationships.ts#L43) diff --git a/docs/api/functions/formatTimestamp.md b/docs/api/functions/formatTimestamp.md new file mode 100644 index 00000000000..14eb0937614 --- /dev/null +++ b/docs/api/functions/formatTimestamp.md @@ -0,0 +1,15 @@ +# Function: formatTimestamp() + +> **formatTimestamp**(`messageDate`): `string` + +## Parameters + +• **messageDate**: `number` + +## Returns + +`string` + +## Defined in + +[packages/core/src/messages.ts:94](https://github.com/ai16z/eliza/blob/main/packages/core/src/messages.ts#L94) diff --git a/docs/docs/api/functions/generateCaption.md b/docs/api/functions/generateCaption.md similarity index 58% rename from docs/docs/api/functions/generateCaption.md rename to docs/api/functions/generateCaption.md index 605f9234742..da65f279938 100644 --- a/docs/docs/api/functions/generateCaption.md +++ b/docs/api/functions/generateCaption.md @@ -8,20 +8,20 @@ • **data.imageUrl**: `string` -• **runtime**: `IAgentRuntime` +• **runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) ## Returns `Promise`\<`object`\> -### description - -> **description**: `string` - ### title > **title**: `string` +### description + +> **description**: `string` + ## Defined in -[core/src/actions/imageGenerationUtils.ts:90](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/imageGenerationUtils.ts#L90) +[packages/core/src/generation.ts:687](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L687) diff --git a/docs/docs/api/functions/generateImage.md b/docs/api/functions/generateImage.md similarity index 67% rename from docs/docs/api/functions/generateImage.md rename to docs/api/functions/generateImage.md index 81210a708ca..a9c1e1a1777 100644 --- a/docs/docs/api/functions/generateImage.md +++ b/docs/api/functions/generateImage.md @@ -6,20 +6,24 @@ • **data** -• **data.count?**: `number` - -• **data.height**: `number` - • **data.prompt**: `string` • **data.width**: `number` -• **runtime**: `IAgentRuntime` +• **data.height**: `number` + +• **data.count?**: `number` + +• **runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) ## Returns `Promise`\<`object`\> +### success + +> **success**: `boolean` + ### data? > `optional` **data**: `string`[] @@ -28,10 +32,6 @@ > `optional` **error**: `any` -### success - -> **success**: `boolean` - ## Defined in -[core/src/actions/imageGenerationUtils.ts:8](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/imageGenerationUtils.ts#L8) +[packages/core/src/generation.ts:603](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L603) diff --git a/docs/api/functions/generateMessageResponse.md b/docs/api/functions/generateMessageResponse.md new file mode 100644 index 00000000000..85b0928fa72 --- /dev/null +++ b/docs/api/functions/generateMessageResponse.md @@ -0,0 +1,29 @@ +# Function: generateMessageResponse() + +> **generateMessageResponse**(`opts`): `Promise`\<[`Content`](../interfaces/Content.md)\> + +Send a message to the model for generateText. + +## Parameters + +• **opts** + +The options for the generateText request. + +• **opts.runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + +• **opts.context**: `string` + +The context of the message to be completed. + +• **opts.modelClass**: `string` + +## Returns + +`Promise`\<[`Content`](../interfaces/Content.md)\> + +The completed message. + +## Defined in + +[packages/core/src/generation.ts:565](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L565) diff --git a/docs/api/functions/generateObject.md b/docs/api/functions/generateObject.md new file mode 100644 index 00000000000..e9b3a2c465e --- /dev/null +++ b/docs/api/functions/generateObject.md @@ -0,0 +1,21 @@ +# Function: generateObject() + +> **generateObject**(`__namedParameters`): `Promise`\<`any`\> + +## Parameters + +• **\_\_namedParameters** + +• **\_\_namedParameters.runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + +• **\_\_namedParameters.context**: `string` + +• **\_\_namedParameters.modelClass**: `string` + +## Returns + +`Promise`\<`any`\> + +## Defined in + +[packages/core/src/generation.ts:481](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L481) diff --git a/docs/api/functions/generateObjectArray.md b/docs/api/functions/generateObjectArray.md new file mode 100644 index 00000000000..c44e775c0e6 --- /dev/null +++ b/docs/api/functions/generateObjectArray.md @@ -0,0 +1,21 @@ +# Function: generateObjectArray() + +> **generateObjectArray**(`__namedParameters`): `Promise`\<`any`[]\> + +## Parameters + +• **\_\_namedParameters** + +• **\_\_namedParameters.runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + +• **\_\_namedParameters.context**: `string` + +• **\_\_namedParameters.modelClass**: `string` + +## Returns + +`Promise`\<`any`[]\> + +## Defined in + +[packages/core/src/generation.ts:517](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L517) diff --git a/docs/api/functions/generateShouldRespond.md b/docs/api/functions/generateShouldRespond.md new file mode 100644 index 00000000000..ec91ac062bd --- /dev/null +++ b/docs/api/functions/generateShouldRespond.md @@ -0,0 +1,29 @@ +# Function: generateShouldRespond() + +> **generateShouldRespond**(`opts`): `Promise`\<`"RESPOND"` \| `"IGNORE"` \| `"STOP"` \| `null`\> + +Sends a message to the model to determine if it should respond to the given context. + +## Parameters + +• **opts** + +The options for the generateText request + +• **opts.runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + +• **opts.context**: `string` + +The context to evaluate for response + +• **opts.modelClass**: `string` + +## Returns + +`Promise`\<`"RESPOND"` \| `"IGNORE"` \| `"STOP"` \| `null`\> + +Promise resolving to "RESPOND", "IGNORE", "STOP" or null + +## Defined in + +[packages/core/src/generation.ts:289](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L289) diff --git a/docs/api/functions/generateText.md b/docs/api/functions/generateText.md new file mode 100644 index 00000000000..18c3f1d4caf --- /dev/null +++ b/docs/api/functions/generateText.md @@ -0,0 +1,33 @@ +# Function: generateText() + +> **generateText**(`opts`): `Promise`\<`string`\> + +Send a message to the model for a text generateText - receive a string back and parse how you'd like + +## Parameters + +• **opts** + +The options for the generateText request. + +• **opts.runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + +• **opts.context**: `string` + +The context of the message to be completed. + +• **opts.modelClass**: `string` + +• **opts.stop?**: `string`[] + +A list of strings to stop the generateText at. + +## Returns + +`Promise`\<`string`\> + +The completed message. + +## Defined in + +[packages/core/src/generation.ts:42](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L42) diff --git a/docs/api/functions/generateTextArray.md b/docs/api/functions/generateTextArray.md new file mode 100644 index 00000000000..af9d3ce8461 --- /dev/null +++ b/docs/api/functions/generateTextArray.md @@ -0,0 +1,29 @@ +# Function: generateTextArray() + +> **generateTextArray**(`opts`): `Promise`\<`string`[]\> + +Send a message to the model and parse the response as a string array + +## Parameters + +• **opts** + +The options for the generateText request + +• **opts.runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + +• **opts.context**: `string` + +The context/prompt to send to the model + +• **opts.modelClass**: `string` + +## Returns + +`Promise`\<`string`[]\> + +Promise resolving to an array of strings parsed from the model's response + +## Defined in + +[packages/core/src/generation.ts:445](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L445) diff --git a/docs/api/functions/generateTrueOrFalse.md b/docs/api/functions/generateTrueOrFalse.md new file mode 100644 index 00000000000..47b0deeaf24 --- /dev/null +++ b/docs/api/functions/generateTrueOrFalse.md @@ -0,0 +1,29 @@ +# Function: generateTrueOrFalse() + +> **generateTrueOrFalse**(`opts`): `Promise`\<`boolean`\> + +Sends a message to the model and parses the response as a boolean value + +## Parameters + +• **opts** + +The options for the generateText request + +• **opts.runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + +• **opts.context**: `string` = `""` + +The context to evaluate for the boolean response + +• **opts.modelClass**: `string` + +## Returns + +`Promise`\<`boolean`\> + +Promise resolving to a boolean value parsed from the model's response + +## Defined in + +[packages/core/src/generation.ts:393](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L393) diff --git a/docs/api/functions/getActorDetails.md b/docs/api/functions/getActorDetails.md new file mode 100644 index 00000000000..ac42b28d4de --- /dev/null +++ b/docs/api/functions/getActorDetails.md @@ -0,0 +1,21 @@ +# Function: getActorDetails() + +> **getActorDetails**(`__namedParameters`): `Promise`\<[`Actor`](../interfaces/Actor.md)[]\> + +Get details for a list of actors. + +## Parameters + +• **\_\_namedParameters** + +• **\_\_namedParameters.runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + +• **\_\_namedParameters.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +## Returns + +`Promise`\<[`Actor`](../interfaces/Actor.md)[]\> + +## Defined in + +[packages/core/src/messages.ts:12](https://github.com/ai16z/eliza/blob/main/packages/core/src/messages.ts#L12) diff --git a/docs/api/functions/getEndpoint.md b/docs/api/functions/getEndpoint.md new file mode 100644 index 00000000000..f1289e1d35e --- /dev/null +++ b/docs/api/functions/getEndpoint.md @@ -0,0 +1,15 @@ +# Function: getEndpoint() + +> **getEndpoint**(`provider`): `string` + +## Parameters + +• **provider**: [`ModelProviderName`](../enumerations/ModelProviderName.md) + +## Returns + +`string` + +## Defined in + +[packages/core/src/models.ts:198](https://github.com/ai16z/eliza/blob/main/packages/core/src/models.ts#L198) diff --git a/docs/api/functions/getGoals.md b/docs/api/functions/getGoals.md new file mode 100644 index 00000000000..4471924e1e3 --- /dev/null +++ b/docs/api/functions/getGoals.md @@ -0,0 +1,25 @@ +# Function: getGoals() + +> **getGoals**(`__namedParameters`): `Promise`\<[`Goal`](../interfaces/Goal.md)[]\> + +## Parameters + +• **\_\_namedParameters** + +• **\_\_namedParameters.runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + +• **\_\_namedParameters.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **\_\_namedParameters.userId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **\_\_namedParameters.onlyInProgress?**: `boolean` = `true` + +• **\_\_namedParameters.count?**: `number` = `5` + +## Returns + +`Promise`\<[`Goal`](../interfaces/Goal.md)[]\> + +## Defined in + +[packages/core/src/goals.ts:8](https://github.com/ai16z/eliza/blob/main/packages/core/src/goals.ts#L8) diff --git a/docs/api/functions/getModel.md b/docs/api/functions/getModel.md new file mode 100644 index 00000000000..5a6ddf3aad3 --- /dev/null +++ b/docs/api/functions/getModel.md @@ -0,0 +1,17 @@ +# Function: getModel() + +> **getModel**(`provider`, `type`): `string` + +## Parameters + +• **provider**: [`ModelProviderName`](../enumerations/ModelProviderName.md) + +• **type**: [`ModelClass`](../enumerations/ModelClass.md) + +## Returns + +`string` + +## Defined in + +[packages/core/src/models.ts:194](https://github.com/ai16z/eliza/blob/main/packages/core/src/models.ts#L194) diff --git a/docs/api/functions/getProviders.md b/docs/api/functions/getProviders.md new file mode 100644 index 00000000000..78e6a10532b --- /dev/null +++ b/docs/api/functions/getProviders.md @@ -0,0 +1,29 @@ +# Function: getProviders() + +> **getProviders**(`runtime`, `message`, `state`?): `Promise`\<`string`\> + +Formats provider outputs into a string which can be injected into the context. + +## Parameters + +• **runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + +The AgentRuntime object. + +• **message**: [`Memory`](../interfaces/Memory.md) + +The incoming message object. + +• **state?**: [`State`](../interfaces/State.md) + +The current state object. + +## Returns + +`Promise`\<`string`\> + +A string that concatenates the outputs of each provider. + +## Defined in + +[packages/core/src/providers.ts:10](https://github.com/ai16z/eliza/blob/main/packages/core/src/providers.ts#L10) diff --git a/docs/api/functions/getRelationship.md b/docs/api/functions/getRelationship.md new file mode 100644 index 00000000000..f0dac6db2ad --- /dev/null +++ b/docs/api/functions/getRelationship.md @@ -0,0 +1,21 @@ +# Function: getRelationship() + +> **getRelationship**(`__namedParameters`): `Promise`\<[`Relationship`](../interfaces/Relationship.md)\> + +## Parameters + +• **\_\_namedParameters** + +• **\_\_namedParameters.runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + +• **\_\_namedParameters.userA**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **\_\_namedParameters.userB**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +## Returns + +`Promise`\<[`Relationship`](../interfaces/Relationship.md)\> + +## Defined in + +[packages/core/src/relationships.ts:18](https://github.com/ai16z/eliza/blob/main/packages/core/src/relationships.ts#L18) diff --git a/docs/api/functions/getRelationships.md b/docs/api/functions/getRelationships.md new file mode 100644 index 00000000000..9e0a04e9e47 --- /dev/null +++ b/docs/api/functions/getRelationships.md @@ -0,0 +1,19 @@ +# Function: getRelationships() + +> **getRelationships**(`__namedParameters`): `Promise`\<[`Relationship`](../interfaces/Relationship.md)[]\> + +## Parameters + +• **\_\_namedParameters** + +• **\_\_namedParameters.runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + +• **\_\_namedParameters.userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +## Returns + +`Promise`\<[`Relationship`](../interfaces/Relationship.md)[]\> + +## Defined in + +[packages/core/src/relationships.ts:33](https://github.com/ai16z/eliza/blob/main/packages/core/src/relationships.ts#L33) diff --git a/docs/api/functions/retrieveCachedEmbedding.md b/docs/api/functions/retrieveCachedEmbedding.md new file mode 100644 index 00000000000..daedbc6e05a --- /dev/null +++ b/docs/api/functions/retrieveCachedEmbedding.md @@ -0,0 +1,17 @@ +# Function: retrieveCachedEmbedding() + +> **retrieveCachedEmbedding**(`runtime`, `input`): `Promise`\<`number`[]\> + +## Parameters + +• **runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + +• **input**: `string` + +## Returns + +`Promise`\<`number`[]\> + +## Defined in + +[packages/core/src/embedding.ts:80](https://github.com/ai16z/eliza/blob/main/packages/core/src/embedding.ts#L80) diff --git a/docs/api/functions/splitChunks.md b/docs/api/functions/splitChunks.md new file mode 100644 index 00000000000..d2d7dfd536b --- /dev/null +++ b/docs/api/functions/splitChunks.md @@ -0,0 +1,33 @@ +# Function: splitChunks() + +> **splitChunks**(`runtime`, `content`, `chunkSize`, `bleed`, `modelClass`): `Promise`\<`string`[]\> + +Splits content into chunks of specified size with optional overlapping bleed sections + +## Parameters + +• **runtime**: `any` + +• **content**: `string` + +The text content to split into chunks + +• **chunkSize**: `number` + +The maximum size of each chunk in tokens + +• **bleed**: `number` = `100` + +Number of characters to overlap between chunks (default: 100) + +• **modelClass**: `string` + +## Returns + +`Promise`\<`string`[]\> + +Promise resolving to array of text chunks with bleed sections + +## Defined in + +[packages/core/src/generation.ts:345](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L345) diff --git a/docs/api/functions/trimTokens.md b/docs/api/functions/trimTokens.md new file mode 100644 index 00000000000..bdcd11550a8 --- /dev/null +++ b/docs/api/functions/trimTokens.md @@ -0,0 +1,25 @@ +# Function: trimTokens() + +> **trimTokens**(`context`, `maxTokens`, `model`): `any` + +Truncate the context to the maximum length allowed by the model. + +## Parameters + +• **context**: `any` + +The context of the message to be completed. + +• **maxTokens**: `any` + +• **model**: `any` + +The model to use for generateText. + +## Returns + +`any` + +## Defined in + +[packages/core/src/generation.ts:263](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L263) diff --git a/docs/api/functions/updateGoal.md b/docs/api/functions/updateGoal.md new file mode 100644 index 00000000000..de26d1176b7 --- /dev/null +++ b/docs/api/functions/updateGoal.md @@ -0,0 +1,19 @@ +# Function: updateGoal() + +> **updateGoal**(`__namedParameters`): `Promise`\<`void`\> + +## Parameters + +• **\_\_namedParameters** + +• **\_\_namedParameters.runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + +• **\_\_namedParameters.goal**: [`Goal`](../interfaces/Goal.md) + +## Returns + +`Promise`\<`void`\> + +## Defined in + +[packages/core/src/goals.ts:44](https://github.com/ai16z/eliza/blob/main/packages/core/src/goals.ts#L44) diff --git a/docs/api/index.md b/docs/api/index.md new file mode 100644 index 00000000000..3457fad7e5f --- /dev/null +++ b/docs/api/index.md @@ -0,0 +1,109 @@ +# @ai16z/eliza v1.0.0 + +## Enumerations + +- [GoalStatus](enumerations/GoalStatus.md) +- [ModelClass](enumerations/ModelClass.md) +- [ModelProviderName](enumerations/ModelProviderName.md) +- [Clients](enumerations/Clients.md) +- [ServiceType](enumerations/ServiceType.md) + +## Classes + +- [DatabaseAdapter](classes/DatabaseAdapter.md) +- [MemoryManager](classes/MemoryManager.md) +- [AgentRuntime](classes/AgentRuntime.md) +- [Service](classes/Service.md) + +## Interfaces + +- [Content](interfaces/Content.md) +- [ActionExample](interfaces/ActionExample.md) +- [ConversationExample](interfaces/ConversationExample.md) +- [Actor](interfaces/Actor.md) +- [Objective](interfaces/Objective.md) +- [Goal](interfaces/Goal.md) +- [State](interfaces/State.md) +- [Memory](interfaces/Memory.md) +- [MessageExample](interfaces/MessageExample.md) +- [Action](interfaces/Action.md) +- [EvaluationExample](interfaces/EvaluationExample.md) +- [Evaluator](interfaces/Evaluator.md) +- [Provider](interfaces/Provider.md) +- [Relationship](interfaces/Relationship.md) +- [Account](interfaces/Account.md) +- [Participant](interfaces/Participant.md) +- [Room](interfaces/Room.md) +- [IDatabaseAdapter](interfaces/IDatabaseAdapter.md) +- [IMemoryManager](interfaces/IMemoryManager.md) +- [IAgentRuntime](interfaces/IAgentRuntime.md) +- [IImageDescriptionService](interfaces/IImageDescriptionService.md) +- [ITranscriptionService](interfaces/ITranscriptionService.md) +- [IVideoService](interfaces/IVideoService.md) +- [ITextGenerationService](interfaces/ITextGenerationService.md) +- [IBrowserService](interfaces/IBrowserService.md) +- [ISpeechService](interfaces/ISpeechService.md) +- [IPdfService](interfaces/IPdfService.md) + +## Type Aliases + +- [UUID](type-aliases/UUID.md) +- [Model](type-aliases/Model.md) +- [Models](type-aliases/Models.md) +- [Handler](type-aliases/Handler.md) +- [HandlerCallback](type-aliases/HandlerCallback.md) +- [Validator](type-aliases/Validator.md) +- [Media](type-aliases/Media.md) +- [Client](type-aliases/Client.md) +- [Plugin](type-aliases/Plugin.md) +- [Character](type-aliases/Character.md) + +## Variables + +- [defaultCharacter](variables/defaultCharacter.md) +- [evaluationTemplate](variables/evaluationTemplate.md) +- [elizaLogger](variables/elizaLogger.md) +- [embeddingDimension](variables/embeddingDimension.md) +- [embeddingZeroVector](variables/embeddingZeroVector.md) +- [settings](variables/settings.md) + +## Functions + +- [composeActionExamples](functions/composeActionExamples.md) +- [formatActionNames](functions/formatActionNames.md) +- [formatActions](functions/formatActions.md) +- [composeContext](functions/composeContext.md) +- [addHeader](functions/addHeader.md) +- [embed](functions/embed.md) +- [retrieveCachedEmbedding](functions/retrieveCachedEmbedding.md) +- [formatEvaluatorNames](functions/formatEvaluatorNames.md) +- [formatEvaluators](functions/formatEvaluators.md) +- [formatEvaluatorExamples](functions/formatEvaluatorExamples.md) +- [formatEvaluatorExampleDescriptions](functions/formatEvaluatorExampleDescriptions.md) +- [generateText](functions/generateText.md) +- [trimTokens](functions/trimTokens.md) +- [generateShouldRespond](functions/generateShouldRespond.md) +- [splitChunks](functions/splitChunks.md) +- [generateTrueOrFalse](functions/generateTrueOrFalse.md) +- [generateTextArray](functions/generateTextArray.md) +- [generateObject](functions/generateObject.md) +- [generateObjectArray](functions/generateObjectArray.md) +- [generateMessageResponse](functions/generateMessageResponse.md) +- [generateImage](functions/generateImage.md) +- [generateCaption](functions/generateCaption.md) +- [getGoals](functions/getGoals.md) +- [formatGoalsAsString](functions/formatGoalsAsString.md) +- [updateGoal](functions/updateGoal.md) +- [createGoal](functions/createGoal.md) +- [getActorDetails](functions/getActorDetails.md) +- [formatActors](functions/formatActors.md) +- [formatMessages](functions/formatMessages.md) +- [formatTimestamp](functions/formatTimestamp.md) +- [getModel](functions/getModel.md) +- [getEndpoint](functions/getEndpoint.md) +- [formatPosts](functions/formatPosts.md) +- [getProviders](functions/getProviders.md) +- [createRelationship](functions/createRelationship.md) +- [getRelationship](functions/getRelationship.md) +- [getRelationships](functions/getRelationships.md) +- [formatRelationships](functions/formatRelationships.md) diff --git a/docs/api/interfaces/Account.md b/docs/api/interfaces/Account.md new file mode 100644 index 00000000000..7ba7b865832 --- /dev/null +++ b/docs/api/interfaces/Account.md @@ -0,0 +1,67 @@ +# Interface: Account + +Represents a user, including their name, details, and a unique identifier. + +## Properties + +### id + +> **id**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:270](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L270) + +--- + +### name + +> **name**: `string` + +#### Defined in + +[packages/core/src/types.ts:271](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L271) + +--- + +### username + +> **username**: `string` + +#### Defined in + +[packages/core/src/types.ts:272](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L272) + +--- + +### details? + +> `optional` **details**: `object` + +#### Index Signature + +\[`key`: `string`\]: `any` + +#### Defined in + +[packages/core/src/types.ts:273](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L273) + +--- + +### email? + +> `optional` **email**: `string` + +#### Defined in + +[packages/core/src/types.ts:274](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L274) + +--- + +### avatarUrl? + +> `optional` **avatarUrl**: `string` + +#### Defined in + +[packages/core/src/types.ts:275](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L275) diff --git a/docs/api/interfaces/Action.md b/docs/api/interfaces/Action.md new file mode 100644 index 00000000000..b1582ead136 --- /dev/null +++ b/docs/api/interfaces/Action.md @@ -0,0 +1,63 @@ +# Interface: Action + +Represents an action that the agent can perform, including conditions for its use, a description, examples, a handler function, and a validation function. + +## Properties + +### similes + +> **similes**: `string`[] + +#### Defined in + +[packages/core/src/types.ts:213](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L213) + +--- + +### description + +> **description**: `string` + +#### Defined in + +[packages/core/src/types.ts:214](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L214) + +--- + +### examples + +> **examples**: [`ActionExample`](ActionExample.md)[][] + +#### Defined in + +[packages/core/src/types.ts:215](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L215) + +--- + +### handler + +> **handler**: [`Handler`](../type-aliases/Handler.md) + +#### Defined in + +[packages/core/src/types.ts:216](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L216) + +--- + +### name + +> **name**: `string` + +#### Defined in + +[packages/core/src/types.ts:217](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L217) + +--- + +### validate + +> **validate**: [`Validator`](../type-aliases/Validator.md) + +#### Defined in + +[packages/core/src/types.ts:218](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L218) diff --git a/docs/api/interfaces/ActionExample.md b/docs/api/interfaces/ActionExample.md new file mode 100644 index 00000000000..d40b09037d9 --- /dev/null +++ b/docs/api/interfaces/ActionExample.md @@ -0,0 +1,23 @@ +# Interface: ActionExample + +Represents an example of content, typically used for demonstrating or testing purposes. Includes user, content, optional action, and optional source. + +## Properties + +### user + +> **user**: `string` + +#### Defined in + +[packages/core/src/types.ts:25](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L25) + +--- + +### content + +> **content**: [`Content`](Content.md) + +#### Defined in + +[packages/core/src/types.ts:26](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L26) diff --git a/docs/api/interfaces/Actor.md b/docs/api/interfaces/Actor.md new file mode 100644 index 00000000000..03de7ecc58b --- /dev/null +++ b/docs/api/interfaces/Actor.md @@ -0,0 +1,55 @@ +# Interface: Actor + +Represents an actor in the conversation, which could be a user or the agent itself, including their name, details (such as tagline, summary, and quote), and a unique identifier. + +## Properties + +### name + +> **name**: `string` + +#### Defined in + +[packages/core/src/types.ts:41](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L41) + +--- + +### username + +> **username**: `string` + +#### Defined in + +[packages/core/src/types.ts:42](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L42) + +--- + +### details + +> **details**: `object` + +#### tagline + +> **tagline**: `string` + +#### summary + +> **summary**: `string` + +#### quote + +> **quote**: `string` + +#### Defined in + +[packages/core/src/types.ts:43](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L43) + +--- + +### id + +> **id**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:44](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L44) diff --git a/docs/api/interfaces/Content.md b/docs/api/interfaces/Content.md new file mode 100644 index 00000000000..72c031b7621 --- /dev/null +++ b/docs/api/interfaces/Content.md @@ -0,0 +1,67 @@ +# Interface: Content + +Represents the content of a message, including its main text (`content`), any associated action (`action`), and the source of the content (`source`), if applicable. + +## Indexable + +\[`key`: `string`\]: `unknown` + +## Properties + +### text + +> **text**: `string` + +#### Defined in + +[packages/core/src/types.ts:12](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L12) + +--- + +### action? + +> `optional` **action**: `string` + +#### Defined in + +[packages/core/src/types.ts:13](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L13) + +--- + +### source? + +> `optional` **source**: `string` + +#### Defined in + +[packages/core/src/types.ts:14](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L14) + +--- + +### url? + +> `optional` **url**: `string` + +#### Defined in + +[packages/core/src/types.ts:15](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L15) + +--- + +### inReplyTo? + +> `optional` **inReplyTo**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:16](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L16) + +--- + +### attachments? + +> `optional` **attachments**: [`Media`](../type-aliases/Media.md)[] + +#### Defined in + +[packages/core/src/types.ts:17](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L17) diff --git a/docs/api/interfaces/ConversationExample.md b/docs/api/interfaces/ConversationExample.md new file mode 100644 index 00000000000..8b3c751349b --- /dev/null +++ b/docs/api/interfaces/ConversationExample.md @@ -0,0 +1,23 @@ +# Interface: ConversationExample + +Represents an example of content, typically used for demonstrating or testing purposes. Includes user, content, optional action, and optional source. + +## Properties + +### userId + +> **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:33](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L33) + +--- + +### content + +> **content**: [`Content`](Content.md) + +#### Defined in + +[packages/core/src/types.ts:34](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L34) diff --git a/docs/api/interfaces/EvaluationExample.md b/docs/api/interfaces/EvaluationExample.md new file mode 100644 index 00000000000..66fa32f81bb --- /dev/null +++ b/docs/api/interfaces/EvaluationExample.md @@ -0,0 +1,33 @@ +# Interface: EvaluationExample + +Represents an example for evaluation, including the context, an array of message examples, and the expected outcome. + +## Properties + +### context + +> **context**: `string` + +#### Defined in + +[packages/core/src/types.ts:225](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L225) + +--- + +### messages + +> **messages**: [`ActionExample`](ActionExample.md)[] + +#### Defined in + +[packages/core/src/types.ts:226](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L226) + +--- + +### outcome + +> **outcome**: `string` + +#### Defined in + +[packages/core/src/types.ts:227](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L227) diff --git a/docs/api/interfaces/Evaluator.md b/docs/api/interfaces/Evaluator.md new file mode 100644 index 00000000000..8f116317be3 --- /dev/null +++ b/docs/api/interfaces/Evaluator.md @@ -0,0 +1,63 @@ +# Interface: Evaluator + +Represents an evaluator, which is used to assess and guide the agent's responses based on the current context and state. + +## Properties + +### description + +> **description**: `string` + +#### Defined in + +[packages/core/src/types.ts:234](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L234) + +--- + +### similes + +> **similes**: `string`[] + +#### Defined in + +[packages/core/src/types.ts:235](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L235) + +--- + +### examples + +> **examples**: [`EvaluationExample`](EvaluationExample.md)[] + +#### Defined in + +[packages/core/src/types.ts:236](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L236) + +--- + +### handler + +> **handler**: [`Handler`](../type-aliases/Handler.md) + +#### Defined in + +[packages/core/src/types.ts:237](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L237) + +--- + +### name + +> **name**: `string` + +#### Defined in + +[packages/core/src/types.ts:238](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L238) + +--- + +### validate + +> **validate**: [`Validator`](../type-aliases/Validator.md) + +#### Defined in + +[packages/core/src/types.ts:239](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L239) diff --git a/docs/api/interfaces/Goal.md b/docs/api/interfaces/Goal.md new file mode 100644 index 00000000000..f1a01466980 --- /dev/null +++ b/docs/api/interfaces/Goal.md @@ -0,0 +1,63 @@ +# Interface: Goal + +Represents a goal, which is a higher-level aim composed of one or more objectives. Goals are tracked to measure progress or achievements within the conversation or system. + +## Properties + +### id? + +> `optional` **id**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:66](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L66) + +--- + +### roomId + +> **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:67](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L67) + +--- + +### userId + +> **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:68](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L68) + +--- + +### name + +> **name**: `string` + +#### Defined in + +[packages/core/src/types.ts:69](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L69) + +--- + +### status + +> **status**: [`GoalStatus`](../enumerations/GoalStatus.md) + +#### Defined in + +[packages/core/src/types.ts:70](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L70) + +--- + +### objectives + +> **objectives**: [`Objective`](Objective.md)[] + +#### Defined in + +[packages/core/src/types.ts:71](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L71) diff --git a/docs/api/interfaces/IAgentRuntime.md b/docs/api/interfaces/IAgentRuntime.md new file mode 100644 index 00000000000..03941a9bc1c --- /dev/null +++ b/docs/api/interfaces/IAgentRuntime.md @@ -0,0 +1,447 @@ +# Interface: IAgentRuntime + +## Properties + +### agentId + +> **agentId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:517](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L517) + +--- + +### serverUrl + +> **serverUrl**: `string` + +#### Defined in + +[packages/core/src/types.ts:518](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L518) + +--- + +### databaseAdapter + +> **databaseAdapter**: [`IDatabaseAdapter`](IDatabaseAdapter.md) + +#### Defined in + +[packages/core/src/types.ts:519](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L519) + +--- + +### token + +> **token**: `string` + +#### Defined in + +[packages/core/src/types.ts:520](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L520) + +--- + +### modelProvider + +> **modelProvider**: [`ModelProviderName`](../enumerations/ModelProviderName.md) + +#### Defined in + +[packages/core/src/types.ts:521](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L521) + +--- + +### character + +> **character**: [`Character`](../type-aliases/Character.md) + +#### Defined in + +[packages/core/src/types.ts:522](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L522) + +--- + +### providers + +> **providers**: [`Provider`](Provider.md)[] + +#### Defined in + +[packages/core/src/types.ts:523](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L523) + +--- + +### actions + +> **actions**: [`Action`](Action.md)[] + +#### Defined in + +[packages/core/src/types.ts:524](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L524) + +--- + +### evaluators + +> **evaluators**: [`Evaluator`](Evaluator.md)[] + +#### Defined in + +[packages/core/src/types.ts:525](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L525) + +--- + +### messageManager + +> **messageManager**: [`IMemoryManager`](IMemoryManager.md) + +#### Defined in + +[packages/core/src/types.ts:527](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L527) + +--- + +### descriptionManager + +> **descriptionManager**: [`IMemoryManager`](IMemoryManager.md) + +#### Defined in + +[packages/core/src/types.ts:528](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L528) + +--- + +### loreManager + +> **loreManager**: [`IMemoryManager`](IMemoryManager.md) + +#### Defined in + +[packages/core/src/types.ts:529](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L529) + +--- + +### services + +> **services**: `Map`\<[`ServiceType`](../enumerations/ServiceType.md), [`Service`](../classes/Service.md)\> + +#### Defined in + +[packages/core/src/types.ts:531](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L531) + +## Methods + +### registerMemoryManager() + +> **registerMemoryManager**(`manager`): `void` + +#### Parameters + +• **manager**: [`IMemoryManager`](IMemoryManager.md) + +#### Returns + +`void` + +#### Defined in + +[packages/core/src/types.ts:532](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L532) + +--- + +### getMemoryManager() + +> **getMemoryManager**(`name`): [`IMemoryManager`](IMemoryManager.md) + +#### Parameters + +• **name**: `string` + +#### Returns + +[`IMemoryManager`](IMemoryManager.md) + +#### Defined in + +[packages/core/src/types.ts:534](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L534) + +--- + +### getService() + +> **getService**\<`Service`\>(`service`): `Service` + +#### Type Parameters + +• **Service** + +#### Parameters + +• **service**: `string` + +#### Returns + +`Service` + +#### Defined in + +[packages/core/src/types.ts:536](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L536) + +--- + +### registerService() + +> **registerService**(`service`): `void` + +#### Parameters + +• **service**: [`Service`](../classes/Service.md) + +#### Returns + +`void` + +#### Defined in + +[packages/core/src/types.ts:538](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L538) + +--- + +### getSetting() + +> **getSetting**(`key`): `string` + +#### Parameters + +• **key**: `string` + +#### Returns + +`string` + +#### Defined in + +[packages/core/src/types.ts:540](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L540) + +--- + +### getConversationLength() + +> **getConversationLength**(): `number` + +#### Returns + +`number` + +#### Defined in + +[packages/core/src/types.ts:543](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L543) + +--- + +### processActions() + +> **processActions**(`message`, `responses`, `state`?, `callback`?): `Promise`\<`void`\> + +#### Parameters + +• **message**: [`Memory`](Memory.md) + +• **responses**: [`Memory`](Memory.md)[] + +• **state?**: [`State`](State.md) + +• **callback?**: [`HandlerCallback`](../type-aliases/HandlerCallback.md) + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[packages/core/src/types.ts:544](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L544) + +--- + +### evaluate() + +> **evaluate**(`message`, `state`?): `Promise`\<`string`[]\> + +#### Parameters + +• **message**: [`Memory`](Memory.md) + +• **state?**: [`State`](State.md) + +#### Returns + +`Promise`\<`string`[]\> + +#### Defined in + +[packages/core/src/types.ts:550](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L550) + +--- + +### ensureParticipantExists() + +> **ensureParticipantExists**(`userId`, `roomId`): `Promise`\<`void`\> + +#### Parameters + +• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[packages/core/src/types.ts:551](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L551) + +--- + +### ensureUserExists() + +> **ensureUserExists**(`userId`, `userName`, `name`, `source`): `Promise`\<`void`\> + +#### Parameters + +• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **userName**: `string` + +• **name**: `string` + +• **source**: `string` + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[packages/core/src/types.ts:552](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L552) + +--- + +### registerAction() + +> **registerAction**(`action`): `void` + +#### Parameters + +• **action**: [`Action`](Action.md) + +#### Returns + +`void` + +#### Defined in + +[packages/core/src/types.ts:558](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L558) + +--- + +### ensureConnection() + +> **ensureConnection**(`userId`, `roomId`, `userName`?, `userScreenName`?, `source`?): `Promise`\<`void`\> + +#### Parameters + +• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **userName?**: `string` + +• **userScreenName?**: `string` + +• **source?**: `string` + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[packages/core/src/types.ts:559](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L559) + +--- + +### ensureParticipantInRoom() + +> **ensureParticipantInRoom**(`userId`, `roomId`): `Promise`\<`void`\> + +#### Parameters + +• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[packages/core/src/types.ts:566](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L566) + +--- + +### ensureRoomExists() + +> **ensureRoomExists**(`roomId`): `Promise`\<`void`\> + +#### Parameters + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[packages/core/src/types.ts:567](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L567) + +--- + +### composeState() + +> **composeState**(`message`, `additionalKeys`?): `Promise`\<[`State`](State.md)\> + +#### Parameters + +• **message**: [`Memory`](Memory.md) + +• **additionalKeys?** + +#### Returns + +`Promise`\<[`State`](State.md)\> + +#### Defined in + +[packages/core/src/types.ts:568](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L568) + +--- + +### updateRecentMessageState() + +> **updateRecentMessageState**(`state`): `Promise`\<[`State`](State.md)\> + +#### Parameters + +• **state**: [`State`](State.md) + +#### Returns + +`Promise`\<[`State`](State.md)\> + +#### Defined in + +[packages/core/src/types.ts:572](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L572) diff --git a/docs/api/interfaces/IBrowserService.md b/docs/api/interfaces/IBrowserService.md new file mode 100644 index 00000000000..8cc7f524a02 --- /dev/null +++ b/docs/api/interfaces/IBrowserService.md @@ -0,0 +1,65 @@ +# Interface: IBrowserService + +## Extends + +- [`Service`](../classes/Service.md) + +## Methods + +### initialize() + +> **initialize**(): `Promise`\<`void`\> + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[packages/core/src/types.ts:621](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L621) + +--- + +### closeBrowser() + +> **closeBrowser**(): `Promise`\<`void`\> + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[packages/core/src/types.ts:622](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L622) + +--- + +### getPageContent() + +> **getPageContent**(`url`, `runtime`): `Promise`\<`object`\> + +#### Parameters + +• **url**: `string` + +• **runtime**: [`IAgentRuntime`](IAgentRuntime.md) + +#### Returns + +`Promise`\<`object`\> + +##### title + +> **title**: `string` + +##### description + +> **description**: `string` + +##### bodyContent + +> **bodyContent**: `string` + +#### Defined in + +[packages/core/src/types.ts:623](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L623) diff --git a/docs/api/interfaces/IDatabaseAdapter.md b/docs/api/interfaces/IDatabaseAdapter.md new file mode 100644 index 00000000000..63af51a63c7 --- /dev/null +++ b/docs/api/interfaces/IDatabaseAdapter.md @@ -0,0 +1,733 @@ +# Interface: IDatabaseAdapter + +## Properties + +### db + +> **db**: `any` + +#### Defined in + +[packages/core/src/types.ts:360](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L360) + +## Methods + +### getAccountById() + +> **getAccountById**(`userId`): `Promise`\<[`Account`](Account.md)\> + +#### Parameters + +• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<[`Account`](Account.md)\> + +#### Defined in + +[packages/core/src/types.ts:361](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L361) + +--- + +### createAccount() + +> **createAccount**(`account`): `Promise`\<`boolean`\> + +#### Parameters + +• **account**: [`Account`](Account.md) + +#### Returns + +`Promise`\<`boolean`\> + +#### Defined in + +[packages/core/src/types.ts:362](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L362) + +--- + +### getMemories() + +> **getMemories**(`params`): `Promise`\<[`Memory`](Memory.md)[]\> + +#### Parameters + +• **params** + +• **params.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.count?**: `number` + +• **params.unique?**: `boolean` + +• **params.tableName**: `string` + +• **params.agentId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.start?**: `number` + +• **params.end?**: `number` + +#### Returns + +`Promise`\<[`Memory`](Memory.md)[]\> + +#### Defined in + +[packages/core/src/types.ts:363](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L363) + +--- + +### getMemoryById() + +> **getMemoryById**(`id`): `Promise`\<[`Memory`](Memory.md)\> + +#### Parameters + +• **id**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<[`Memory`](Memory.md)\> + +#### Defined in + +[packages/core/src/types.ts:372](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L372) + +--- + +### getMemoriesByRoomIds() + +> **getMemoriesByRoomIds**(`params`): `Promise`\<[`Memory`](Memory.md)[]\> + +#### Parameters + +• **params** + +• **params.agentId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.roomIds**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[] + +#### Returns + +`Promise`\<[`Memory`](Memory.md)[]\> + +#### Defined in + +[packages/core/src/types.ts:373](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L373) + +--- + +### getCachedEmbeddings() + +> **getCachedEmbeddings**(`params`): `Promise`\<`object`[]\> + +#### Parameters + +• **params** + +• **params.query_table_name**: `string` + +• **params.query_threshold**: `number` + +• **params.query_input**: `string` + +• **params.query_field_name**: `string` + +• **params.query_field_sub_name**: `string` + +• **params.query_match_count**: `number` + +#### Returns + +`Promise`\<`object`[]\> + +#### Defined in + +[packages/core/src/types.ts:377](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L377) + +--- + +### log() + +> **log**(`params`): `Promise`\<`void`\> + +#### Parameters + +• **params** + +• **params.body** + +• **params.userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.type**: `string` + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[packages/core/src/types.ts:385](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L385) + +--- + +### getActorDetails() + +> **getActorDetails**(`params`): `Promise`\<[`Actor`](Actor.md)[]\> + +#### Parameters + +• **params** + +• **params.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<[`Actor`](Actor.md)[]\> + +#### Defined in + +[packages/core/src/types.ts:391](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L391) + +--- + +### searchMemories() + +> **searchMemories**(`params`): `Promise`\<[`Memory`](Memory.md)[]\> + +#### Parameters + +• **params** + +• **params.tableName**: `string` + +• **params.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.embedding**: `number`[] + +• **params.match_threshold**: `number` + +• **params.match_count**: `number` + +• **params.unique**: `boolean` + +#### Returns + +`Promise`\<[`Memory`](Memory.md)[]\> + +#### Defined in + +[packages/core/src/types.ts:392](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L392) + +--- + +### updateGoalStatus() + +> **updateGoalStatus**(`params`): `Promise`\<`void`\> + +#### Parameters + +• **params** + +• **params.goalId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.status**: [`GoalStatus`](../enumerations/GoalStatus.md) + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[packages/core/src/types.ts:400](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L400) + +--- + +### searchMemoriesByEmbedding() + +> **searchMemoriesByEmbedding**(`embedding`, `params`): `Promise`\<[`Memory`](Memory.md)[]\> + +#### Parameters + +• **embedding**: `number`[] + +• **params** + +• **params.match_threshold?**: `number` + +• **params.count?**: `number` + +• **params.roomId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.agentId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.unique?**: `boolean` + +• **params.tableName**: `string` + +#### Returns + +`Promise`\<[`Memory`](Memory.md)[]\> + +#### Defined in + +[packages/core/src/types.ts:404](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L404) + +--- + +### createMemory() + +> **createMemory**(`memory`, `tableName`, `unique`?): `Promise`\<`void`\> + +#### Parameters + +• **memory**: [`Memory`](Memory.md) + +• **tableName**: `string` + +• **unique?**: `boolean` + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[packages/core/src/types.ts:415](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L415) + +--- + +### removeMemory() + +> **removeMemory**(`memoryId`, `tableName`): `Promise`\<`void`\> + +#### Parameters + +• **memoryId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **tableName**: `string` + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[packages/core/src/types.ts:420](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L420) + +--- + +### removeAllMemories() + +> **removeAllMemories**(`roomId`, `tableName`): `Promise`\<`void`\> + +#### Parameters + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **tableName**: `string` + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[packages/core/src/types.ts:421](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L421) + +--- + +### countMemories() + +> **countMemories**(`roomId`, `unique`?, `tableName`?): `Promise`\<`number`\> + +#### Parameters + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **unique?**: `boolean` + +• **tableName?**: `string` + +#### Returns + +`Promise`\<`number`\> + +#### Defined in + +[packages/core/src/types.ts:422](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L422) + +--- + +### getGoals() + +> **getGoals**(`params`): `Promise`\<[`Goal`](Goal.md)[]\> + +#### Parameters + +• **params** + +• **params.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.userId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.onlyInProgress?**: `boolean` + +• **params.count?**: `number` + +#### Returns + +`Promise`\<[`Goal`](Goal.md)[]\> + +#### Defined in + +[packages/core/src/types.ts:427](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L427) + +--- + +### updateGoal() + +> **updateGoal**(`goal`): `Promise`\<`void`\> + +#### Parameters + +• **goal**: [`Goal`](Goal.md) + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[packages/core/src/types.ts:433](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L433) + +--- + +### createGoal() + +> **createGoal**(`goal`): `Promise`\<`void`\> + +#### Parameters + +• **goal**: [`Goal`](Goal.md) + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[packages/core/src/types.ts:434](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L434) + +--- + +### removeGoal() + +> **removeGoal**(`goalId`): `Promise`\<`void`\> + +#### Parameters + +• **goalId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[packages/core/src/types.ts:435](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L435) + +--- + +### removeAllGoals() + +> **removeAllGoals**(`roomId`): `Promise`\<`void`\> + +#### Parameters + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[packages/core/src/types.ts:436](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L436) + +--- + +### getRoom() + +> **getRoom**(`roomId`): `Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`\> + +#### Parameters + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`\> + +#### Defined in + +[packages/core/src/types.ts:437](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L437) + +--- + +### createRoom() + +> **createRoom**(`roomId`?): `Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`\> + +#### Parameters + +• **roomId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`\> + +#### Defined in + +[packages/core/src/types.ts:438](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L438) + +--- + +### removeRoom() + +> **removeRoom**(`roomId`): `Promise`\<`void`\> + +#### Parameters + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[packages/core/src/types.ts:439](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L439) + +--- + +### getRoomsForParticipant() + +> **getRoomsForParticipant**(`userId`): `Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> + +#### Parameters + +• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> + +#### Defined in + +[packages/core/src/types.ts:440](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L440) + +--- + +### getRoomsForParticipants() + +> **getRoomsForParticipants**(`userIds`): `Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> + +#### Parameters + +• **userIds**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[] + +#### Returns + +`Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> + +#### Defined in + +[packages/core/src/types.ts:441](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L441) + +--- + +### addParticipant() + +> **addParticipant**(`userId`, `roomId`): `Promise`\<`boolean`\> + +#### Parameters + +• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<`boolean`\> + +#### Defined in + +[packages/core/src/types.ts:442](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L442) + +--- + +### removeParticipant() + +> **removeParticipant**(`userId`, `roomId`): `Promise`\<`boolean`\> + +#### Parameters + +• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<`boolean`\> + +#### Defined in + +[packages/core/src/types.ts:443](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L443) + +--- + +### getParticipantsForAccount() + +> **getParticipantsForAccount**(`userId`): `Promise`\<[`Participant`](Participant.md)[]\> + +#### Parameters + +• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<[`Participant`](Participant.md)[]\> + +#### Defined in + +[packages/core/src/types.ts:444](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L444) + +--- + +### getParticipantsForRoom() + +> **getParticipantsForRoom**(`roomId`): `Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> + +#### Parameters + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> + +#### Defined in + +[packages/core/src/types.ts:445](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L445) + +--- + +### getParticipantUserState() + +> **getParticipantUserState**(`roomId`, `userId`): `Promise`\<`"FOLLOWED"` \| `"MUTED"`\> + +#### Parameters + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<`"FOLLOWED"` \| `"MUTED"`\> + +#### Defined in + +[packages/core/src/types.ts:446](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L446) + +--- + +### setParticipantUserState() + +> **setParticipantUserState**(`roomId`, `userId`, `state`): `Promise`\<`void`\> + +#### Parameters + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **state**: `"FOLLOWED"` \| `"MUTED"` + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[packages/core/src/types.ts:450](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L450) + +--- + +### createRelationship() + +> **createRelationship**(`params`): `Promise`\<`boolean`\> + +#### Parameters + +• **params** + +• **params.userA**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.userB**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<`boolean`\> + +#### Defined in + +[packages/core/src/types.ts:455](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L455) + +--- + +### getRelationship() + +> **getRelationship**(`params`): `Promise`\<[`Relationship`](Relationship.md)\> + +#### Parameters + +• **params** + +• **params.userA**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **params.userB**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<[`Relationship`](Relationship.md)\> + +#### Defined in + +[packages/core/src/types.ts:456](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L456) + +--- + +### getRelationships() + +> **getRelationships**(`params`): `Promise`\<[`Relationship`](Relationship.md)[]\> + +#### Parameters + +• **params** + +• **params.userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<[`Relationship`](Relationship.md)[]\> + +#### Defined in + +[packages/core/src/types.ts:460](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L460) diff --git a/docs/api/interfaces/IImageDescriptionService.md b/docs/api/interfaces/IImageDescriptionService.md new file mode 100644 index 00000000000..1d5ada4972a --- /dev/null +++ b/docs/api/interfaces/IImageDescriptionService.md @@ -0,0 +1,51 @@ +# Interface: IImageDescriptionService + +## Extends + +- [`Service`](../classes/Service.md) + +## Methods + +### initialize() + +> **initialize**(`modelId`?, `device`?): `Promise`\<`void`\> + +#### Parameters + +• **modelId?**: `string` + +• **device?**: `string` + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[packages/core/src/types.ts:576](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L576) + +--- + +### describeImage() + +> **describeImage**(`imageUrl`): `Promise`\<`object`\> + +#### Parameters + +• **imageUrl**: `string` + +#### Returns + +`Promise`\<`object`\> + +##### title + +> **title**: `string` + +##### description + +> **description**: `string` + +#### Defined in + +[packages/core/src/types.ts:577](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L577) diff --git a/docs/api/interfaces/IMemoryManager.md b/docs/api/interfaces/IMemoryManager.md new file mode 100644 index 00000000000..b162e6d08b0 --- /dev/null +++ b/docs/api/interfaces/IMemoryManager.md @@ -0,0 +1,243 @@ +# Interface: IMemoryManager + +## Properties + +### runtime + +> **runtime**: [`IAgentRuntime`](IAgentRuntime.md) + +#### Defined in + +[packages/core/src/types.ts:464](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L464) + +--- + +### tableName + +> **tableName**: `string` + +#### Defined in + +[packages/core/src/types.ts:465](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L465) + +--- + +### constructor + +> **constructor**: `Function` + +#### Defined in + +[packages/core/src/types.ts:467](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L467) + +## Methods + +### addEmbeddingToMemory() + +> **addEmbeddingToMemory**(`memory`): `Promise`\<[`Memory`](Memory.md)\> + +#### Parameters + +• **memory**: [`Memory`](Memory.md) + +#### Returns + +`Promise`\<[`Memory`](Memory.md)\> + +#### Defined in + +[packages/core/src/types.ts:469](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L469) + +--- + +### getMemories() + +> **getMemories**(`opts`): `Promise`\<[`Memory`](Memory.md)[]\> + +#### Parameters + +• **opts** + +• **opts.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **opts.count?**: `number` + +• **opts.unique?**: `boolean` + +• **opts.agentId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **opts.start?**: `number` + +• **opts.end?**: `number` + +#### Returns + +`Promise`\<[`Memory`](Memory.md)[]\> + +#### Defined in + +[packages/core/src/types.ts:470](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L470) + +--- + +### getCachedEmbeddings() + +> **getCachedEmbeddings**(`content`): `Promise`\<`object`[]\> + +#### Parameters + +• **content**: `string` + +#### Returns + +`Promise`\<`object`[]\> + +#### Defined in + +[packages/core/src/types.ts:478](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L478) + +--- + +### getMemoryById() + +> **getMemoryById**(`id`): `Promise`\<[`Memory`](Memory.md)\> + +#### Parameters + +• **id**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<[`Memory`](Memory.md)\> + +#### Defined in + +[packages/core/src/types.ts:481](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L481) + +--- + +### getMemoriesByRoomIds() + +> **getMemoriesByRoomIds**(`params`): `Promise`\<[`Memory`](Memory.md)[]\> + +#### Parameters + +• **params** + +• **params.roomIds**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[] + +• **params.agentId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<[`Memory`](Memory.md)[]\> + +#### Defined in + +[packages/core/src/types.ts:482](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L482) + +--- + +### searchMemoriesByEmbedding() + +> **searchMemoriesByEmbedding**(`embedding`, `opts`): `Promise`\<[`Memory`](Memory.md)[]\> + +#### Parameters + +• **embedding**: `number`[] + +• **opts** + +• **opts.match_threshold?**: `number` + +• **opts.count?**: `number` + +• **opts.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **opts.unique?**: `boolean` + +• **opts.agentId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<[`Memory`](Memory.md)[]\> + +#### Defined in + +[packages/core/src/types.ts:486](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L486) + +--- + +### createMemory() + +> **createMemory**(`memory`, `unique`?): `Promise`\<`void`\> + +#### Parameters + +• **memory**: [`Memory`](Memory.md) + +• **unique?**: `boolean` + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[packages/core/src/types.ts:496](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L496) + +--- + +### removeMemory() + +> **removeMemory**(`memoryId`): `Promise`\<`void`\> + +#### Parameters + +• **memoryId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[packages/core/src/types.ts:497](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L497) + +--- + +### removeAllMemories() + +> **removeAllMemories**(`roomId`): `Promise`\<`void`\> + +#### Parameters + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[packages/core/src/types.ts:498](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L498) + +--- + +### countMemories() + +> **countMemories**(`roomId`, `unique`?): `Promise`\<`number`\> + +#### Parameters + +• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +• **unique?**: `boolean` + +#### Returns + +`Promise`\<`number`\> + +#### Defined in + +[packages/core/src/types.ts:499](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L499) diff --git a/docs/api/interfaces/IPdfService.md b/docs/api/interfaces/IPdfService.md new file mode 100644 index 00000000000..754a6670515 --- /dev/null +++ b/docs/api/interfaces/IPdfService.md @@ -0,0 +1,23 @@ +# Interface: IPdfService + +## Extends + +- [`Service`](../classes/Service.md) + +## Methods + +### convertPdfToText() + +> **convertPdfToText**(`pdfBuffer`): `Promise`\<`string`\> + +#### Parameters + +• **pdfBuffer**: `Buffer` + +#### Returns + +`Promise`\<`string`\> + +#### Defined in + +[packages/core/src/types.ts:634](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L634) diff --git a/docs/api/interfaces/ISpeechService.md b/docs/api/interfaces/ISpeechService.md new file mode 100644 index 00000000000..4b5493fdf18 --- /dev/null +++ b/docs/api/interfaces/ISpeechService.md @@ -0,0 +1,25 @@ +# Interface: ISpeechService + +## Extends + +- [`Service`](../classes/Service.md) + +## Methods + +### generate() + +> **generate**(`runtime`, `text`): `Promise`\<`Readable`\> + +#### Parameters + +• **runtime**: [`IAgentRuntime`](IAgentRuntime.md) + +• **text**: `string` + +#### Returns + +`Promise`\<`Readable`\> + +#### Defined in + +[packages/core/src/types.ts:630](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L630) diff --git a/docs/api/interfaces/ITextGenerationService.md b/docs/api/interfaces/ITextGenerationService.md new file mode 100644 index 00000000000..2044dbcc975 --- /dev/null +++ b/docs/api/interfaces/ITextGenerationService.md @@ -0,0 +1,107 @@ +# Interface: ITextGenerationService + +## Extends + +- [`Service`](../classes/Service.md) + +## Methods + +### getInstance() + +> **getInstance**(): [`ITextGenerationService`](ITextGenerationService.md) + +#### Returns + +[`ITextGenerationService`](ITextGenerationService.md) + +#### Defined in + +[packages/core/src/types.ts:599](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L599) + +--- + +### initializeModel() + +> **initializeModel**(): `Promise`\<`void`\> + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[packages/core/src/types.ts:600](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L600) + +--- + +### queueMessageCompletion() + +> **queueMessageCompletion**(`context`, `temperature`, `stop`, `frequency_penalty`, `presence_penalty`, `max_tokens`): `Promise`\<`any`\> + +#### Parameters + +• **context**: `string` + +• **temperature**: `number` + +• **stop**: `string`[] + +• **frequency_penalty**: `number` + +• **presence_penalty**: `number` + +• **max_tokens**: `number` + +#### Returns + +`Promise`\<`any`\> + +#### Defined in + +[packages/core/src/types.ts:601](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L601) + +--- + +### queueTextCompletion() + +> **queueTextCompletion**(`context`, `temperature`, `stop`, `frequency_penalty`, `presence_penalty`, `max_tokens`): `Promise`\<`string`\> + +#### Parameters + +• **context**: `string` + +• **temperature**: `number` + +• **stop**: `string`[] + +• **frequency_penalty**: `number` + +• **presence_penalty**: `number` + +• **max_tokens**: `number` + +#### Returns + +`Promise`\<`string`\> + +#### Defined in + +[packages/core/src/types.ts:609](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L609) + +--- + +### getEmbeddingResponse() + +> **getEmbeddingResponse**(`input`): `Promise`\<`number`[]\> + +#### Parameters + +• **input**: `string` + +#### Returns + +`Promise`\<`number`[]\> + +#### Defined in + +[packages/core/src/types.ts:617](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L617) diff --git a/docs/api/interfaces/ITranscriptionService.md b/docs/api/interfaces/ITranscriptionService.md new file mode 100644 index 00000000000..b677e43a37a --- /dev/null +++ b/docs/api/interfaces/ITranscriptionService.md @@ -0,0 +1,77 @@ +# Interface: ITranscriptionService + +## Extends + +- [`Service`](../classes/Service.md) + +## Methods + +### transcribeAttachment() + +> **transcribeAttachment**(`audioBuffer`): `Promise`\<`string`\> + +#### Parameters + +• **audioBuffer**: `ArrayBuffer` + +#### Returns + +`Promise`\<`string`\> + +#### Defined in + +[packages/core/src/types.ts:583](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L583) + +--- + +### transcribeAttachmentLocally() + +> **transcribeAttachmentLocally**(`audioBuffer`): `Promise`\<`string`\> + +#### Parameters + +• **audioBuffer**: `ArrayBuffer` + +#### Returns + +`Promise`\<`string`\> + +#### Defined in + +[packages/core/src/types.ts:584](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L584) + +--- + +### transcribe() + +> **transcribe**(`audioBuffer`): `Promise`\<`string`\> + +#### Parameters + +• **audioBuffer**: `ArrayBuffer` + +#### Returns + +`Promise`\<`string`\> + +#### Defined in + +[packages/core/src/types.ts:587](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L587) + +--- + +### transcribeLocally() + +> **transcribeLocally**(`audioBuffer`): `Promise`\<`string`\> + +#### Parameters + +• **audioBuffer**: `ArrayBuffer` + +#### Returns + +`Promise`\<`string`\> + +#### Defined in + +[packages/core/src/types.ts:588](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L588) diff --git a/docs/api/interfaces/IVideoService.md b/docs/api/interfaces/IVideoService.md new file mode 100644 index 00000000000..bf89a9730a2 --- /dev/null +++ b/docs/api/interfaces/IVideoService.md @@ -0,0 +1,77 @@ +# Interface: IVideoService + +## Extends + +- [`Service`](../classes/Service.md) + +## Methods + +### isVideoUrl() + +> **isVideoUrl**(`url`): `boolean` + +#### Parameters + +• **url**: `string` + +#### Returns + +`boolean` + +#### Defined in + +[packages/core/src/types.ts:592](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L592) + +--- + +### processVideo() + +> **processVideo**(`url`): `Promise`\<[`Media`](../type-aliases/Media.md)\> + +#### Parameters + +• **url**: `string` + +#### Returns + +`Promise`\<[`Media`](../type-aliases/Media.md)\> + +#### Defined in + +[packages/core/src/types.ts:593](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L593) + +--- + +### fetchVideoInfo() + +> **fetchVideoInfo**(`url`): `Promise`\<[`Media`](../type-aliases/Media.md)\> + +#### Parameters + +• **url**: `string` + +#### Returns + +`Promise`\<[`Media`](../type-aliases/Media.md)\> + +#### Defined in + +[packages/core/src/types.ts:594](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L594) + +--- + +### downloadVideo() + +> **downloadVideo**(`videoInfo`): `Promise`\<`string`\> + +#### Parameters + +• **videoInfo**: [`Media`](../type-aliases/Media.md) + +#### Returns + +`Promise`\<`string`\> + +#### Defined in + +[packages/core/src/types.ts:595](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L595) diff --git a/docs/api/interfaces/Memory.md b/docs/api/interfaces/Memory.md new file mode 100644 index 00000000000..bd158bd5bbc --- /dev/null +++ b/docs/api/interfaces/Memory.md @@ -0,0 +1,83 @@ +# Interface: Memory + +Represents a memory record, which could be a message or any other piece of information remembered by the system, including its content, associated user IDs, and optionally, its embedding vector for similarity comparisons. + +## Properties + +### id? + +> `optional` **id**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:165](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L165) + +--- + +### userId + +> **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:166](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L166) + +--- + +### agentId + +> **agentId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:167](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L167) + +--- + +### createdAt? + +> `optional` **createdAt**: `number` + +#### Defined in + +[packages/core/src/types.ts:168](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L168) + +--- + +### content + +> **content**: [`Content`](Content.md) + +#### Defined in + +[packages/core/src/types.ts:169](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L169) + +--- + +### embedding? + +> `optional` **embedding**: `number`[] + +#### Defined in + +[packages/core/src/types.ts:170](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L170) + +--- + +### roomId + +> **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:171](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L171) + +--- + +### unique? + +> `optional` **unique**: `boolean` + +#### Defined in + +[packages/core/src/types.ts:172](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L172) diff --git a/docs/api/interfaces/MessageExample.md b/docs/api/interfaces/MessageExample.md new file mode 100644 index 00000000000..38c188b229b --- /dev/null +++ b/docs/api/interfaces/MessageExample.md @@ -0,0 +1,23 @@ +# Interface: MessageExample + +Represents an example of a message, typically used for demonstrating or testing purposes, including optional content and action. + +## Properties + +### user + +> **user**: `string` + +#### Defined in + +[packages/core/src/types.ts:179](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L179) + +--- + +### content + +> **content**: [`Content`](Content.md) + +#### Defined in + +[packages/core/src/types.ts:180](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L180) diff --git a/docs/api/interfaces/Objective.md b/docs/api/interfaces/Objective.md new file mode 100644 index 00000000000..d0e01458a99 --- /dev/null +++ b/docs/api/interfaces/Objective.md @@ -0,0 +1,33 @@ +# Interface: Objective + +Represents an objective within a goal, detailing what needs to be achieved and whether it has been completed. + +## Properties + +### id? + +> `optional` **id**: `string` + +#### Defined in + +[packages/core/src/types.ts:51](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L51) + +--- + +### description + +> **description**: `string` + +#### Defined in + +[packages/core/src/types.ts:52](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L52) + +--- + +### completed + +> **completed**: `boolean` + +#### Defined in + +[packages/core/src/types.ts:53](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L53) diff --git a/docs/api/interfaces/Participant.md b/docs/api/interfaces/Participant.md new file mode 100644 index 00000000000..65fbec541e4 --- /dev/null +++ b/docs/api/interfaces/Participant.md @@ -0,0 +1,23 @@ +# Interface: Participant + +Represents a participant in a room, including their ID and account details. + +## Properties + +### id + +> **id**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:282](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L282) + +--- + +### account + +> **account**: [`Account`](Account.md) + +#### Defined in + +[packages/core/src/types.ts:283](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L283) diff --git a/docs/api/interfaces/Provider.md b/docs/api/interfaces/Provider.md new file mode 100644 index 00000000000..bb22296c8cd --- /dev/null +++ b/docs/api/interfaces/Provider.md @@ -0,0 +1,25 @@ +# Interface: Provider + +Represents a provider, which is used to retrieve information or perform actions on behalf of the agent, such as fetching data from an external API or service. + +## Properties + +### get() + +> **get**: (`runtime`, `message`, `state`?) => `Promise`\<`any`\> + +#### Parameters + +• **runtime**: [`IAgentRuntime`](IAgentRuntime.md) + +• **message**: [`Memory`](Memory.md) + +• **state?**: [`State`](State.md) + +#### Returns + +`Promise`\<`any`\> + +#### Defined in + +[packages/core/src/types.ts:246](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L246) diff --git a/docs/api/interfaces/Relationship.md b/docs/api/interfaces/Relationship.md new file mode 100644 index 00000000000..75950259b28 --- /dev/null +++ b/docs/api/interfaces/Relationship.md @@ -0,0 +1,73 @@ +# Interface: Relationship + +Represents a relationship between two users, including their IDs, the status of the relationship, and the room ID in which the relationship is established. + +## Properties + +### id + +> **id**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:257](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L257) + +--- + +### userA + +> **userA**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:258](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L258) + +--- + +### userB + +> **userB**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:259](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L259) + +--- + +### userId + +> **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:260](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L260) + +--- + +### roomId + +> **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:261](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L261) + +--- + +### status + +> **status**: `string` + +#### Defined in + +[packages/core/src/types.ts:262](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L262) + +--- + +### createdAt? + +> `optional` **createdAt**: `string` + +#### Defined in + +[packages/core/src/types.ts:263](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L263) diff --git a/docs/api/interfaces/Room.md b/docs/api/interfaces/Room.md new file mode 100644 index 00000000000..2f0a5d1399f --- /dev/null +++ b/docs/api/interfaces/Room.md @@ -0,0 +1,23 @@ +# Interface: Room + +Represents a room or conversation context, including its ID and a list of participants. + +## Properties + +### id + +> **id**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:290](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L290) + +--- + +### participants + +> **participants**: [`Participant`](Participant.md)[] + +#### Defined in + +[packages/core/src/types.ts:291](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L291) diff --git a/docs/api/interfaces/State.md b/docs/api/interfaces/State.md new file mode 100644 index 00000000000..7929878ebfd --- /dev/null +++ b/docs/api/interfaces/State.md @@ -0,0 +1,237 @@ +# Interface: State + +Represents the state of the conversation or context in which the agent is operating, including information about users, messages, goals, and other relevant data. + +## Indexable + +\[`key`: `string`\]: `unknown` + +## Properties + +### userId? + +> `optional` **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:135](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L135) + +--- + +### agentId? + +> `optional` **agentId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:136](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L136) + +--- + +### bio + +> **bio**: `string` + +#### Defined in + +[packages/core/src/types.ts:137](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L137) + +--- + +### lore + +> **lore**: `string` + +#### Defined in + +[packages/core/src/types.ts:138](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L138) + +--- + +### messageDirections + +> **messageDirections**: `string` + +#### Defined in + +[packages/core/src/types.ts:139](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L139) + +--- + +### postDirections + +> **postDirections**: `string` + +#### Defined in + +[packages/core/src/types.ts:140](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L140) + +--- + +### roomId + +> **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:141](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L141) + +--- + +### agentName? + +> `optional` **agentName**: `string` + +#### Defined in + +[packages/core/src/types.ts:142](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L142) + +--- + +### senderName? + +> `optional` **senderName**: `string` + +#### Defined in + +[packages/core/src/types.ts:143](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L143) + +--- + +### actors + +> **actors**: `string` + +#### Defined in + +[packages/core/src/types.ts:144](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L144) + +--- + +### actorsData? + +> `optional` **actorsData**: [`Actor`](Actor.md)[] + +#### Defined in + +[packages/core/src/types.ts:145](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L145) + +--- + +### goals? + +> `optional` **goals**: `string` + +#### Defined in + +[packages/core/src/types.ts:146](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L146) + +--- + +### goalsData? + +> `optional` **goalsData**: [`Goal`](Goal.md)[] + +#### Defined in + +[packages/core/src/types.ts:147](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L147) + +--- + +### recentMessages + +> **recentMessages**: `string` + +#### Defined in + +[packages/core/src/types.ts:148](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L148) + +--- + +### recentMessagesData + +> **recentMessagesData**: [`Memory`](Memory.md)[] + +#### Defined in + +[packages/core/src/types.ts:149](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L149) + +--- + +### actionNames? + +> `optional` **actionNames**: `string` + +#### Defined in + +[packages/core/src/types.ts:150](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L150) + +--- + +### actions? + +> `optional` **actions**: `string` + +#### Defined in + +[packages/core/src/types.ts:151](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L151) + +--- + +### actionsData? + +> `optional` **actionsData**: [`Action`](Action.md)[] + +#### Defined in + +[packages/core/src/types.ts:152](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L152) + +--- + +### actionExamples? + +> `optional` **actionExamples**: `string` + +#### Defined in + +[packages/core/src/types.ts:153](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L153) + +--- + +### providers? + +> `optional` **providers**: `string` + +#### Defined in + +[packages/core/src/types.ts:154](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L154) + +--- + +### responseData? + +> `optional` **responseData**: [`Content`](Content.md) + +#### Defined in + +[packages/core/src/types.ts:155](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L155) + +--- + +### recentInteractionsData? + +> `optional` **recentInteractionsData**: [`Memory`](Memory.md)[] + +#### Defined in + +[packages/core/src/types.ts:156](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L156) + +--- + +### recentInteractions? + +> `optional` **recentInteractions**: `string` + +#### Defined in + +[packages/core/src/types.ts:157](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L157) diff --git a/docs/api/type-aliases/Character.md b/docs/api/type-aliases/Character.md new file mode 100644 index 00000000000..4f4528741cb --- /dev/null +++ b/docs/api/type-aliases/Character.md @@ -0,0 +1,125 @@ +# Type Alias: Character + +> **Character**: `object` + +## Type declaration + +### id? + +> `optional` **id**: [`UUID`](UUID.md) + +### name + +> **name**: `string` + +### system? + +> `optional` **system**: `string` + +### modelProvider + +> **modelProvider**: [`ModelProviderName`](../enumerations/ModelProviderName.md) + +### modelEndpointOverride? + +> `optional` **modelEndpointOverride**: `string` + +### templates? + +> `optional` **templates**: `object` + +#### Index Signature + +\[`key`: `string`\]: `string` + +### bio + +> **bio**: `string` \| `string`[] + +### lore + +> **lore**: `string`[] + +### messageExamples + +> **messageExamples**: [`MessageExample`](../interfaces/MessageExample.md)[][] + +### postExamples + +> **postExamples**: `string`[] + +### people + +> **people**: `string`[] + +### topics + +> **topics**: `string`[] + +### adjectives + +> **adjectives**: `string`[] + +### knowledge? + +> `optional` **knowledge**: `string`[] + +### clients + +> **clients**: [`Clients`](../enumerations/Clients.md)[] + +### plugins + +> **plugins**: [`Plugin`](Plugin.md)[] + +### settings? + +> `optional` **settings**: `object` + +### settings.secrets? + +> `optional` **secrets**: `object` + +#### Index Signature + +\[`key`: `string`\]: `string` + +### settings.voice? + +> `optional` **voice**: `object` + +### settings.voice.model? + +> `optional` **model**: `string` + +### settings.voice.url? + +> `optional` **url**: `string` + +### settings.model? + +> `optional` **model**: `string` + +### settings.embeddingModel? + +> `optional` **embeddingModel**: `string` + +### style + +> **style**: `object` + +### style.all + +> **all**: `string`[] + +### style.chat + +> **chat**: `string`[] + +### style.post + +> **post**: `string`[] + +## Defined in + +[packages/core/src/types.ts:324](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L324) diff --git a/docs/api/type-aliases/Client.md b/docs/api/type-aliases/Client.md new file mode 100644 index 00000000000..d3320f4251d --- /dev/null +++ b/docs/api/type-aliases/Client.md @@ -0,0 +1,33 @@ +# Type Alias: Client + +> **Client**: `object` + +## Type declaration + +### start() + +> **start**: (`runtime`?) => `Promise`\<`unknown`\> + +#### Parameters + +• **runtime?**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + +#### Returns + +`Promise`\<`unknown`\> + +### stop() + +> **stop**: (`runtime`?) => `Promise`\<`unknown`\> + +#### Parameters + +• **runtime?**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + +#### Returns + +`Promise`\<`unknown`\> + +## Defined in + +[packages/core/src/types.ts:303](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L303) diff --git a/docs/api/type-aliases/Handler.md b/docs/api/type-aliases/Handler.md new file mode 100644 index 00000000000..134574a4e4f --- /dev/null +++ b/docs/api/type-aliases/Handler.md @@ -0,0 +1,25 @@ +# Type Alias: Handler() + +> **Handler**: (`runtime`, `message`, `state`?, `options`?, `callback`?) => `Promise`\<`unknown`\> + +Represents the type of a handler function, which takes a runtime instance, a message, and an optional state, and returns a promise resolving to any type. + +## Parameters + +• **runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + +• **message**: [`Memory`](../interfaces/Memory.md) + +• **state?**: [`State`](../interfaces/State.md) + +• **options?** + +• **callback?**: [`HandlerCallback`](HandlerCallback.md) + +## Returns + +`Promise`\<`unknown`\> + +## Defined in + +[packages/core/src/types.ts:186](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L186) diff --git a/docs/api/type-aliases/HandlerCallback.md b/docs/api/type-aliases/HandlerCallback.md new file mode 100644 index 00000000000..b05f9a04961 --- /dev/null +++ b/docs/api/type-aliases/HandlerCallback.md @@ -0,0 +1,17 @@ +# Type Alias: HandlerCallback() + +> **HandlerCallback**: (`response`, `files`?) => `Promise`\<[`Memory`](../interfaces/Memory.md)[]\> + +## Parameters + +• **response**: [`Content`](../interfaces/Content.md) + +• **files?**: `any` + +## Returns + +`Promise`\<[`Memory`](../interfaces/Memory.md)[]\> + +## Defined in + +[packages/core/src/types.ts:195](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L195) diff --git a/docs/api/type-aliases/Media.md b/docs/api/type-aliases/Media.md new file mode 100644 index 00000000000..11adc4ca1d6 --- /dev/null +++ b/docs/api/type-aliases/Media.md @@ -0,0 +1,33 @@ +# Type Alias: Media + +> **Media**: `object` + +## Type declaration + +### id + +> **id**: `string` + +### url + +> **url**: `string` + +### title + +> **title**: `string` + +### source + +> **source**: `string` + +### description + +> **description**: `string` + +### text + +> **text**: `string` + +## Defined in + +[packages/core/src/types.ts:294](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L294) diff --git a/docs/api/type-aliases/Model.md b/docs/api/type-aliases/Model.md new file mode 100644 index 00000000000..0968fa10cef --- /dev/null +++ b/docs/api/type-aliases/Model.md @@ -0,0 +1,77 @@ +# Type Alias: Model + +> **Model**: `object` + +## Type declaration + +### endpoint? + +> `optional` **endpoint**: `string` + +### settings + +> **settings**: `object` + +### settings.maxInputTokens + +> **maxInputTokens**: `number` + +### settings.maxOutputTokens + +> **maxOutputTokens**: `number` + +### settings.frequency_penalty? + +> `optional` **frequency_penalty**: `number` + +### settings.presence_penalty? + +> `optional` **presence_penalty**: `number` + +### settings.repetition_penalty? + +> `optional` **repetition_penalty**: `number` + +### settings.stop + +> **stop**: `string`[] + +### settings.temperature + +> **temperature**: `number` + +### imageSettings? + +> `optional` **imageSettings**: `object` + +### imageSettings.steps? + +> `optional` **steps**: `number` + +### model + +> **model**: `object` + +### model.small + +> **small**: `string` + +### model.medium + +> **medium**: `string` + +### model.large + +> **large**: `string` + +### model.embedding? + +> `optional` **embedding**: `string` + +### model.image? + +> `optional` **image**: `string` + +## Defined in + +[packages/core/src/types.ts:82](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L82) diff --git a/docs/api/type-aliases/Models.md b/docs/api/type-aliases/Models.md new file mode 100644 index 00000000000..04bc6e19dce --- /dev/null +++ b/docs/api/type-aliases/Models.md @@ -0,0 +1,49 @@ +# Type Alias: Models + +> **Models**: `object` + +## Type declaration + +### openai + +> **openai**: [`Model`](Model.md) + +### anthropic + +> **anthropic**: [`Model`](Model.md) + +### grok + +> **grok**: [`Model`](Model.md) + +### groq + +> **groq**: [`Model`](Model.md) + +### llama_cloud + +> **llama_cloud**: [`Model`](Model.md) + +### llama_local + +> **llama_local**: [`Model`](Model.md) + +### google + +> **google**: [`Model`](Model.md) + +### claude_vertex + +> **claude_vertex**: [`Model`](Model.md) + +### redpill + +> **redpill**: [`Model`](Model.md) + +### ollama + +> **ollama**: [`Model`](Model.md) + +## Defined in + +[packages/core/src/types.ts:105](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L105) diff --git a/docs/api/type-aliases/Plugin.md b/docs/api/type-aliases/Plugin.md new file mode 100644 index 00000000000..3095a90fdec --- /dev/null +++ b/docs/api/type-aliases/Plugin.md @@ -0,0 +1,33 @@ +# Type Alias: Plugin + +> **Plugin**: `object` + +## Type declaration + +### name + +> **name**: `string` + +### description + +> **description**: `string` + +### actions? + +> `optional` **actions**: [`Action`](../interfaces/Action.md)[] + +### providers? + +> `optional` **providers**: [`Provider`](../interfaces/Provider.md)[] + +### evaluators? + +> `optional` **evaluators**: [`Evaluator`](../interfaces/Evaluator.md)[] + +### services? + +> `optional` **services**: [`Service`](../classes/Service.md)[] + +## Defined in + +[packages/core/src/types.ts:308](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L308) diff --git a/docs/api/type-aliases/UUID.md b/docs/api/type-aliases/UUID.md new file mode 100644 index 00000000000..ec53a405afb --- /dev/null +++ b/docs/api/type-aliases/UUID.md @@ -0,0 +1,9 @@ +# Type Alias: UUID + +> **UUID**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +Represents a UUID, which is a universally unique identifier conforming to the UUID standard. + +## Defined in + +[packages/core/src/types.ts:6](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L6) diff --git a/docs/api/type-aliases/Validator.md b/docs/api/type-aliases/Validator.md new file mode 100644 index 00000000000..bfbba8cea45 --- /dev/null +++ b/docs/api/type-aliases/Validator.md @@ -0,0 +1,21 @@ +# Type Alias: Validator() + +> **Validator**: (`runtime`, `message`, `state`?) => `Promise`\<`boolean`\> + +Represents the type of a validator function, which takes a runtime instance, a message, and an optional state, and returns a promise resolving to a boolean indicating whether the validation passed. + +## Parameters + +• **runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md) + +• **message**: [`Memory`](../interfaces/Memory.md) + +• **state?**: [`State`](../interfaces/State.md) + +## Returns + +`Promise`\<`boolean`\> + +## Defined in + +[packages/core/src/types.ts:203](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L203) diff --git a/docs/api/typedoc-sidebar.cjs b/docs/api/typedoc-sidebar.cjs new file mode 100644 index 00000000000..3b429c8dbb2 --- /dev/null +++ b/docs/api/typedoc-sidebar.cjs @@ -0,0 +1,293 @@ +// @ts-check +/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ +const typedocSidebar = { + items: [ + { + type: "category", + label: "Enumerations", + items: [ + { type: "doc", id: "enumerations/GoalStatus", label: "GoalStatus" }, + { type: "doc", id: "enumerations/ModelClass", label: "ModelClass" }, + { + type: "doc", + id: "enumerations/ModelProviderName", + label: "ModelProviderName", + }, + { type: "doc", id: "enumerations/Clients", label: "Clients" }, + { type: "doc", id: "enumerations/ServiceType", label: "ServiceType" }, + ], + }, + { + type: "category", + label: "Classes", + items: [ + { + type: "doc", + id: "classes/DatabaseAdapter", + label: "DatabaseAdapter", + }, + { type: "doc", id: "classes/MemoryManager", label: "MemoryManager" }, + { type: "doc", id: "classes/AgentRuntime", label: "AgentRuntime" }, + { type: "doc", id: "classes/Service", label: "Service" }, + ], + }, + { + type: "category", + label: "Interfaces", + items: [ + { type: "doc", id: "interfaces/Content", label: "Content" }, + { type: "doc", id: "interfaces/ActionExample", label: "ActionExample" }, + { + type: "doc", + id: "interfaces/ConversationExample", + label: "ConversationExample", + }, + { type: "doc", id: "interfaces/Actor", label: "Actor" }, + { type: "doc", id: "interfaces/Objective", label: "Objective" }, + { type: "doc", id: "interfaces/Goal", label: "Goal" }, + { type: "doc", id: "interfaces/State", label: "State" }, + { type: "doc", id: "interfaces/Memory", label: "Memory" }, + { + type: "doc", + id: "interfaces/MessageExample", + label: "MessageExample", + }, + { type: "doc", id: "interfaces/Action", label: "Action" }, + { + type: "doc", + id: "interfaces/EvaluationExample", + label: "EvaluationExample", + }, + { type: "doc", id: "interfaces/Evaluator", label: "Evaluator" }, + { type: "doc", id: "interfaces/Provider", label: "Provider" }, + { type: "doc", id: "interfaces/Relationship", label: "Relationship" }, + { type: "doc", id: "interfaces/Account", label: "Account" }, + { type: "doc", id: "interfaces/Participant", label: "Participant" }, + { type: "doc", id: "interfaces/Room", label: "Room" }, + { + type: "doc", + id: "interfaces/IDatabaseAdapter", + label: "IDatabaseAdapter", + }, + { + type: "doc", + id: "interfaces/IMemoryManager", + label: "IMemoryManager", + }, + { type: "doc", id: "interfaces/IAgentRuntime", label: "IAgentRuntime" }, + { + type: "doc", + id: "interfaces/IImageDescriptionService", + label: "IImageDescriptionService", + }, + { + type: "doc", + id: "interfaces/ITranscriptionService", + label: "ITranscriptionService", + }, + { type: "doc", id: "interfaces/IVideoService", label: "IVideoService" }, + { + type: "doc", + id: "interfaces/ITextGenerationService", + label: "ITextGenerationService", + }, + { + type: "doc", + id: "interfaces/IBrowserService", + label: "IBrowserService", + }, + { + type: "doc", + id: "interfaces/ISpeechService", + label: "ISpeechService", + }, + { type: "doc", id: "interfaces/IPdfService", label: "IPdfService" }, + ], + }, + { + type: "category", + label: "Type Aliases", + items: [ + { type: "doc", id: "type-aliases/UUID", label: "UUID" }, + { type: "doc", id: "type-aliases/Model", label: "Model" }, + { type: "doc", id: "type-aliases/Models", label: "Models" }, + { type: "doc", id: "type-aliases/Handler", label: "Handler" }, + { + type: "doc", + id: "type-aliases/HandlerCallback", + label: "HandlerCallback", + }, + { type: "doc", id: "type-aliases/Validator", label: "Validator" }, + { type: "doc", id: "type-aliases/Media", label: "Media" }, + { type: "doc", id: "type-aliases/Client", label: "Client" }, + { type: "doc", id: "type-aliases/Plugin", label: "Plugin" }, + { type: "doc", id: "type-aliases/Character", label: "Character" }, + ], + }, + { + type: "category", + label: "Variables", + items: [ + { + type: "doc", + id: "variables/defaultCharacter", + label: "defaultCharacter", + }, + { + type: "doc", + id: "variables/evaluationTemplate", + label: "evaluationTemplate", + }, + { type: "doc", id: "variables/elizaLogger", label: "elizaLogger" }, + { + type: "doc", + id: "variables/embeddingDimension", + label: "embeddingDimension", + }, + { + type: "doc", + id: "variables/embeddingZeroVector", + label: "embeddingZeroVector", + }, + { type: "doc", id: "variables/settings", label: "settings" }, + ], + }, + { + type: "category", + label: "Functions", + items: [ + { + type: "doc", + id: "functions/composeActionExamples", + label: "composeActionExamples", + }, + { + type: "doc", + id: "functions/formatActionNames", + label: "formatActionNames", + }, + { type: "doc", id: "functions/formatActions", label: "formatActions" }, + { + type: "doc", + id: "functions/composeContext", + label: "composeContext", + }, + { type: "doc", id: "functions/addHeader", label: "addHeader" }, + { type: "doc", id: "functions/embed", label: "embed" }, + { + type: "doc", + id: "functions/retrieveCachedEmbedding", + label: "retrieveCachedEmbedding", + }, + { + type: "doc", + id: "functions/formatEvaluatorNames", + label: "formatEvaluatorNames", + }, + { + type: "doc", + id: "functions/formatEvaluators", + label: "formatEvaluators", + }, + { + type: "doc", + id: "functions/formatEvaluatorExamples", + label: "formatEvaluatorExamples", + }, + { + type: "doc", + id: "functions/formatEvaluatorExampleDescriptions", + label: "formatEvaluatorExampleDescriptions", + }, + { type: "doc", id: "functions/generateText", label: "generateText" }, + { type: "doc", id: "functions/trimTokens", label: "trimTokens" }, + { + type: "doc", + id: "functions/generateShouldRespond", + label: "generateShouldRespond", + }, + { type: "doc", id: "functions/splitChunks", label: "splitChunks" }, + { + type: "doc", + id: "functions/generateTrueOrFalse", + label: "generateTrueOrFalse", + }, + { + type: "doc", + id: "functions/generateTextArray", + label: "generateTextArray", + }, + { + type: "doc", + id: "functions/generateObject", + label: "generateObject", + }, + { + type: "doc", + id: "functions/generateObjectArray", + label: "generateObjectArray", + }, + { + type: "doc", + id: "functions/generateMessageResponse", + label: "generateMessageResponse", + }, + { type: "doc", id: "functions/generateImage", label: "generateImage" }, + { + type: "doc", + id: "functions/generateCaption", + label: "generateCaption", + }, + { type: "doc", id: "functions/getGoals", label: "getGoals" }, + { + type: "doc", + id: "functions/formatGoalsAsString", + label: "formatGoalsAsString", + }, + { type: "doc", id: "functions/updateGoal", label: "updateGoal" }, + { type: "doc", id: "functions/createGoal", label: "createGoal" }, + { + type: "doc", + id: "functions/getActorDetails", + label: "getActorDetails", + }, + { type: "doc", id: "functions/formatActors", label: "formatActors" }, + { + type: "doc", + id: "functions/formatMessages", + label: "formatMessages", + }, + { + type: "doc", + id: "functions/formatTimestamp", + label: "formatTimestamp", + }, + { type: "doc", id: "functions/getModel", label: "getModel" }, + { type: "doc", id: "functions/getEndpoint", label: "getEndpoint" }, + { type: "doc", id: "functions/formatPosts", label: "formatPosts" }, + { type: "doc", id: "functions/getProviders", label: "getProviders" }, + { + type: "doc", + id: "functions/createRelationship", + label: "createRelationship", + }, + { + type: "doc", + id: "functions/getRelationship", + label: "getRelationship", + }, + { + type: "doc", + id: "functions/getRelationships", + label: "getRelationships", + }, + { + type: "doc", + id: "functions/formatRelationships", + label: "formatRelationships", + }, + ], + }, + ], +}; +module.exports = typedocSidebar.items; diff --git a/docs/api/variables/defaultCharacter.md b/docs/api/variables/defaultCharacter.md new file mode 100644 index 00000000000..d921ca2cbc6 --- /dev/null +++ b/docs/api/variables/defaultCharacter.md @@ -0,0 +1,7 @@ +# Variable: defaultCharacter + +> `const` **defaultCharacter**: [`Character`](../type-aliases/Character.md) + +## Defined in + +[packages/core/src/defaultCharacter.ts:3](https://github.com/ai16z/eliza/blob/main/packages/core/src/defaultCharacter.ts#L3) diff --git a/docs/api/variables/elizaLogger.md b/docs/api/variables/elizaLogger.md new file mode 100644 index 00000000000..1b5c4a638ff --- /dev/null +++ b/docs/api/variables/elizaLogger.md @@ -0,0 +1,7 @@ +# Variable: elizaLogger + +> `const` **elizaLogger**: `ElizaLogger` + +## Defined in + +[packages/core/src/logger.ts:270](https://github.com/ai16z/eliza/blob/main/packages/core/src/logger.ts#L270) diff --git a/docs/api/variables/embeddingDimension.md b/docs/api/variables/embeddingDimension.md new file mode 100644 index 00000000000..0ae7e7b44da --- /dev/null +++ b/docs/api/variables/embeddingDimension.md @@ -0,0 +1,7 @@ +# Variable: embeddingDimension + +> `const` **embeddingDimension**: `1536` = `1536` + +## Defined in + +[packages/core/src/memory.ts:9](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L9) diff --git a/docs/api/variables/embeddingZeroVector.md b/docs/api/variables/embeddingZeroVector.md new file mode 100644 index 00000000000..694ee6db920 --- /dev/null +++ b/docs/api/variables/embeddingZeroVector.md @@ -0,0 +1,7 @@ +# Variable: embeddingZeroVector + +> `const` **embeddingZeroVector**: `any`[] + +## Defined in + +[packages/core/src/memory.ts:10](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L10) diff --git a/docs/api/variables/evaluationTemplate.md b/docs/api/variables/evaluationTemplate.md new file mode 100644 index 00000000000..5ea6b0cf701 --- /dev/null +++ b/docs/api/variables/evaluationTemplate.md @@ -0,0 +1,9 @@ +# Variable: evaluationTemplate + +> `const` **evaluationTemplate**: `string` + +Template used for the evaluation generateText. + +## Defined in + +[packages/core/src/evaluators.ts:8](https://github.com/ai16z/eliza/blob/main/packages/core/src/evaluators.ts#L8) diff --git a/docs/api/variables/settings.md b/docs/api/variables/settings.md new file mode 100644 index 00000000000..58304788e6b --- /dev/null +++ b/docs/api/variables/settings.md @@ -0,0 +1,7 @@ +# Variable: settings + +> `const` **settings**: `ProcessEnv` + +## Defined in + +[packages/core/src/settings.ts:54](https://github.com/ai16z/eliza/blob/main/packages/core/src/settings.ts#L54) diff --git a/docs/backup_docusaurus.config.js b/docs/backup_docusaurus.config.js index 9577f6602d4..991fd82dbe1 100644 --- a/docs/backup_docusaurus.config.js +++ b/docs/backup_docusaurus.config.js @@ -1,40 +1,49 @@ // @ts-check import { themes as prismThemes } from "prism-react-renderer"; - /** @type {import('@docusaurus/types').Config} */ const config = { title: "eliza", tagline: "The flexible, scalable AI agent for everyone", favicon: "img/favicon.ico", - - // GitHub Pages Configuration - Updated based on docs - url: "https://madjin.github.io", // Your GitHub Pages URL - baseUrl: "/eliza/", // Repository name with trailing slash - organizationName: "madjin", // GitHub username - projectName: "eliza", // Repository name + + // GitHub Pages Configuration + url: "https://ai16z.github.io", + baseUrl: "/eliza/", + organizationName: "ai16z", + projectName: "eliza", deploymentBranch: "gh-pages", - trailingSlash: true, // Recommended for GitHub Pages + trailingSlash: true, onBrokenLinks: "throw", onBrokenMarkdownLinks: "warn", - - //url: "https://docs.ai16z.ai", - //baseUrl: "/", - //organizationName: "ai16z", - //projectName: "eliza", i18n: { defaultLocale: "en", locales: ["en"], }, - + markdown: { + mermaid: true, + }, + themes: [ + "@docusaurus/theme-mermaid", + // Any other themes... + ], plugins: [ - // TypeDoc plugin for API documentation [ "docusaurus-plugin-typedoc", { - entryPoints: ["src/index.ts"], - tsconfig: "../core/tsconfig.json", - out: "./api", // Changed to output directly to api folder + entryPoints: ["../packages/core/src/index.ts"], + tsconfig: "../packages/core/src/tsconfig.json", + out: "./api", + skipErrorChecking: true, + excludeExternals: true, + excludeProtected: true, + excludePrivate: true, + stripInternal: true, // Add this + excludeNotDocumented: true, // Add this + cleanOutputDir: true, + hideGenerator: true, + exclude: ["**/_media/**", "**/node_modules/**"], + excludeReferences: true, }, ], // Search functionality @@ -50,7 +59,6 @@ const config = { }, ], ], - presets: [ [ "classic", @@ -67,10 +75,22 @@ const config = { }), ], ], - themeConfig: /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ ({ + // Enable dark mode by default + colorMode: { + defaultMode: "dark", + disableSwitch: false, + respectPrefersColorScheme: true, + }, + // Add sidebar configuration + docs: { + sidebar: { + hideable: true, + autoCollapseCategories: true, + }, + }, navbar: { title: "eliza", logo: { @@ -95,51 +115,50 @@ const config = { href: "https://github.com/ai16z/eliza", label: "GitHub", position: "right", - } - ] + }, + ], }, footer: { - style: 'dark', + style: "dark", links: [ { - title: 'Docs', + title: "Docs", items: [ - { label: 'General', - href: './' - }, - ] + { + label: "General", + href: "./", + }, + ], }, - { - title: 'Community', + title: "Community", items: [ { - label: 'Discord', - href: 'https://discord.gg/NQHKW7US' + label: "Discord", + href: "https://discord.gg/NQHKW7US", }, { - label: 'Twitter', - href: 'https://twitter.com/pmairca' - } - ] + label: "Twitter", + href: "https://twitter.com/pmairca", + }, + ], }, { - title: 'More', + title: "More", items: [ { - label: 'GitHub', - href: 'https://github.com/ai16z/eliza' - } - ] - } + label: "GitHub", + href: "https://github.com/ai16z/eliza", + }, + ], + }, ], - copyright: `Copyright © ${new Date().getFullYear()} ai16z.ai` + copyright: `Copyright © ${new Date().getFullYear()} ai16z.ai`, }, prism: { theme: prismThemes.github, - darkTheme: prismThemes.dracula - } - }) + darkTheme: prismThemes.dracula, + }, + }), }; - export default config; diff --git a/docs/docs/advanced/autonomous-trading.md b/docs/docs/advanced/autonomous-trading.md index c722c5c1d1d..6c6328573da 100644 --- a/docs/docs/advanced/autonomous-trading.md +++ b/docs/docs/advanced/autonomous-trading.md @@ -17,18 +17,18 @@ The system tracks multiple market indicators: ```typescript interface TokenPerformance { - priceChange24h: number; - volumeChange24h: number; - trade_24h_change: number; - liquidity: number; - liquidityChange24h: number; - holderChange24h: number; - rugPull: boolean; - isScam: boolean; - marketCapChange24h: number; - sustainedGrowth: boolean; - rapidDump: boolean; - suspiciousVolume: boolean; + priceChange24h: number; + volumeChange24h: number; + trade_24h_change: number; + liquidity: number; + liquidityChange24h: number; + holderChange24h: number; + rugPull: boolean; + isScam: boolean; + marketCapChange24h: number; + sustainedGrowth: boolean; + rapidDump: boolean; + suspiciousVolume: boolean; } ``` @@ -36,18 +36,19 @@ interface TokenPerformance { ```typescript interface Order { - userId: string; - ticker: string; - contractAddress: string; - timestamp: string; - buyAmount: number; - price: number; + userId: string; + ticker: string; + contractAddress: string; + timestamp: string; + buyAmount: number; + price: number; } ``` ### 3. Market Data Integration The system integrates with multiple data sources: + - BirdEye API for real-time market data - DexScreener for liquidity analysis - Helius for on-chain data @@ -58,15 +59,16 @@ The system integrates with multiple data sources: ```typescript const PROVIDER_CONFIG = { - BIRDEYE_API: "https://public-api.birdeye.so", - MAX_RETRIES: 3, - RETRY_DELAY: 2000, - TOKEN_SECURITY_ENDPOINT: "/defi/token_security?address=", - TOKEN_TRADE_DATA_ENDPOINT: "/defi/v3/token/trade-data/single?address=" + BIRDEYE_API: "https://public-api.birdeye.so", + MAX_RETRIES: 3, + RETRY_DELAY: 2000, + TOKEN_SECURITY_ENDPOINT: "/defi/token_security?address=", + TOKEN_TRADE_DATA_ENDPOINT: "/defi/v3/token/trade-data/single?address=", }; ``` Key metrics monitored: + - Price movements - Volume changes - Liquidity levels @@ -92,6 +94,7 @@ async analyzeRisks(token: string) { ### 3. Trading Strategies #### Market Analysis + ```typescript async getProcessedTokenData(): Promise { const security = await this.fetchTokenSecurity(); @@ -103,16 +106,17 @@ async getProcessedTokenData(): Promise { ``` #### Trade Execution + ```typescript interface TradePerformance { - token_address: string; - buy_price: number; - sell_price: number; - buy_timeStamp: string; - sell_timeStamp: string; - profit_percent: number; - market_cap_change: number; - liquidity_change: number; + token_address: string; + buy_price: number; + sell_price: number; + buy_timeStamp: string; + sell_timeStamp: string; + profit_percent: number; + market_cap_change: number; + liquidity_change: number; } ``` @@ -122,11 +126,11 @@ interface TradePerformance { ```typescript const tradingConfig = { - minLiquidity: 50000, // Minimum liquidity in USD - maxSlippage: 0.02, // Maximum allowed slippage - positionSize: 0.01, // Position size as percentage of portfolio - stopLoss: 0.05, // Stop loss percentage - takeProfit: 0.15 // Take profit percentage + minLiquidity: 50000, // Minimum liquidity in USD + maxSlippage: 0.02, // Maximum allowed slippage + positionSize: 0.01, // Position size as percentage of portfolio + stopLoss: 0.05, // Stop loss percentage + takeProfit: 0.15, // Take profit percentage }; ``` @@ -134,10 +138,10 @@ const tradingConfig = { ```typescript const riskSettings = { - maxDrawdown: 0.20, // Maximum portfolio drawdown - maxPositionSize: 0.10, // Maximum single position size - minLiquidityRatio: 50, // Minimum liquidity to market cap ratio - maxHolderConcentration: 0.20 // Maximum single holder concentration + maxDrawdown: 0.2, // Maximum portfolio drawdown + maxPositionSize: 0.1, // Maximum single position size + minLiquidityRatio: 50, // Minimum liquidity to market cap ratio + maxHolderConcentration: 0.2, // Maximum single holder concentration }; ``` @@ -149,7 +153,7 @@ const riskSettings = { async monitorMarket(token: string) { const provider = new TokenProvider(token); const marketData = await provider.getProcessedTokenData(); - + return { price: marketData.tradeData.price, volume: marketData.tradeData.volume_24h, @@ -164,15 +168,15 @@ async monitorMarket(token: string) { ```typescript async evaluateTradeOpportunity(token: string) { const analysis = await this.getProcessedTokenData(); - + const signals = { priceSignal: analysis.tradeData.price_change_24h > 0, volumeSignal: analysis.tradeData.volume_24h_change_percent > 20, liquiditySignal: analysis.tradeData.liquidity > MIN_LIQUIDITY, holderSignal: analysis.holderDistributionTrend === "increasing" }; - - return signals.priceSignal && signals.volumeSignal && + + return signals.priceSignal && signals.volumeSignal && signals.liquiditySignal && signals.holderSignal; } ``` @@ -183,7 +187,7 @@ async evaluateTradeOpportunity(token: string) { async checkTradeRisks(token: string): Promise { const security = await this.fetchTokenSecurity(); const tradeData = await this.fetchTokenTradeData(); - + return { isRugPull: security.ownerPercentage > 50, isPumpAndDump: tradeData.price_change_24h > 100, @@ -204,12 +208,12 @@ async trackTradePerformance(trade: TradePerformance): Promise { exitPrice: trade.sell_price, profitLoss: trade.profit_percent, holdingPeriod: calculateHoldingPeriod( - trade.buy_timeStamp, + trade.buy_timeStamp, trade.sell_timeStamp ), marketImpact: trade.market_cap_change }; - + await this.logTradePerformance(performance); } ``` @@ -232,18 +236,21 @@ async analyzePortfolioPerformance(userId: string) { ## Best Practices 1. **Risk Management** + - Always implement stop-loss orders - Diversify trading positions - Monitor liquidity levels continuously - Set maximum position sizes 2. **Trade Execution** + - Use slippage protection - Implement rate limiting - Monitor gas costs - Verify transaction success 3. **Market Analysis** + - Cross-reference multiple data sources - Implement data validation - Monitor market manipulation indicators @@ -258,6 +265,7 @@ async analyzePortfolioPerformance(userId: string) { ## Security Considerations 1. **Transaction Security** + - Implement transaction signing - Verify contract addresses - Monitor for malicious tokens diff --git a/docs/docs/advanced/fine-tuning.md b/docs/docs/advanced/fine-tuning.md index 92db037a466..bb11634f042 100644 --- a/docs/docs/advanced/fine-tuning.md +++ b/docs/docs/advanced/fine-tuning.md @@ -16,23 +16,27 @@ Eliza provides a flexible model selection and configuration system that supports Eliza supports the following model providers: - **OpenAI** + - Small: gpt-4o-mini - Medium: gpt-4o - Large: gpt-4o - Embeddings: text-embedding-3-small - **Anthropic** + - Small: claude-3-haiku - Medium: claude-3.5-sonnet - Large: claude-3-opus - **Google (Gemini)** + - Small: gemini-1.5-flash - Medium: gemini-1.5-flash - Large: gemini-1.5-pro - Embeddings: text-embedding-004 - **LLaMA Cloud** + - Small: meta-llama/Llama-3.2-3B-Instruct-Turbo - Medium: meta-llama-3.1-8b-instruct - Large: meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo @@ -61,6 +65,7 @@ settings: { ### Model Classes Models are categorized into four classes: + - `SMALL`: Optimized for speed and cost - `MEDIUM`: Balanced performance and capability - `LARGE`: Maximum capability for complex tasks @@ -73,11 +78,13 @@ Models are categorized into four classes: Choose your model class based on your requirements: - **SMALL Models** + - Best for: Quick responses, simple tasks, cost-effective deployment - Example use cases: Basic chat, simple classifications - Recommended: `claude-3-haiku` or `gemini-1.5-flash` - **MEDIUM Models** + - Best for: General purpose applications, balanced performance - Example use cases: Content generation, complex analysis - Recommended: `claude-3.5-sonnet` or `meta-llama-3.1-8b-instruct` @@ -92,21 +99,22 @@ Choose your model class based on your requirements: ```typescript // Example configuration for different use cases const chatConfig = { - temperature: 0.7, // More creative responses - maxOutputTokens: 2048, // Shorter, focused replies - presence_penalty: 0.6 // Encourage response variety + temperature: 0.7, // More creative responses + maxOutputTokens: 2048, // Shorter, focused replies + presence_penalty: 0.6, // Encourage response variety }; const analysisConfig = { - temperature: 0.2, // More deterministic responses - maxOutputTokens: 8192, // Allow detailed analysis - presence_penalty: 0.0 // Maintain focused analysis + temperature: 0.2, // More deterministic responses + maxOutputTokens: 8192, // Allow detailed analysis + presence_penalty: 0.0, // Maintain focused analysis }; ``` ### 3. Embedding Configuration Eliza includes a sophisticated embedding system that supports: + - Automatic caching of embeddings - Provider-specific optimizations - Fallback to LLaMA service when needed @@ -119,16 +127,19 @@ const embedding = await runtime.llamaService.getEmbeddingResponse(input); ## Best Practices 1. **Model Selection** + - Start with SMALL models and upgrade as needed - Use MEDIUM models as your default for general tasks - Reserve LARGE models for specific, complex requirements 2. **Parameter Tuning** + - Keep temperature low (0.2-0.4) for consistent outputs - Increase temperature (0.6-0.8) for creative tasks - Adjust maxOutputTokens based on expected response length 3. **Embedding Optimization** + - Utilize the caching system for frequently used content - Choose provider-specific embedding models for best results - Monitor embedding performance and adjust as needed @@ -141,18 +152,20 @@ const embedding = await runtime.llamaService.getEmbeddingResponse(input); ## Common Issues and Solutions 1. **Token Length Errors** + ```typescript // Solution: Implement chunking for long inputs const chunks = splitIntoChunks(input, model.settings.maxInputTokens); ``` 2. **Response Quality Issues** + ```typescript // Solution: Adjust temperature and penalties const enhancedSettings = { - ...defaultSettings, - temperature: 0.4, - presence_penalty: 0.2 + ...defaultSettings, + temperature: 0.4, + presence_penalty: 0.2, }; ``` @@ -160,7 +173,10 @@ const embedding = await runtime.llamaService.getEmbeddingResponse(input); ```typescript // Solution: Implement broader similarity thresholds const similarityThreshold = 0.85; - const cachedEmbedding = await findSimilarEmbedding(input, similarityThreshold); + const cachedEmbedding = await findSimilarEmbedding( + input, + similarityThreshold, + ); ``` ## Advanced Configuration @@ -170,19 +186,19 @@ For advanced use cases, you can extend the model configuration: ```typescript // Custom model configuration const customConfig = { - model: { - [ModelClass.SMALL]: "your-custom-model", - [ModelClass.MEDIUM]: "your-custom-model", - [ModelClass.LARGE]: "your-custom-model", - [ModelClass.EMBEDDING]: "your-custom-embedding-model", - }, - settings: { - // Custom settings - maxInputTokens: 64000, - temperature: 0.5, - // Add custom parameters - custom_param: "value" - } + model: { + [ModelClass.SMALL]: "your-custom-model", + [ModelClass.MEDIUM]: "your-custom-model", + [ModelClass.LARGE]: "your-custom-model", + [ModelClass.EMBEDDING]: "your-custom-embedding-model", + }, + settings: { + // Custom settings + maxInputTokens: 64000, + temperature: 0.5, + // Add custom parameters + custom_param: "value", + }, }; ``` diff --git a/docs/docs/advanced/infrastructure.md b/docs/docs/advanced/infrastructure.md index 7b5fef5ca7a..35198e3ba06 100644 --- a/docs/docs/advanced/infrastructure.md +++ b/docs/docs/advanced/infrastructure.md @@ -28,12 +28,14 @@ class DatabaseAdapter { ### Supported Databases 1. **PostgreSQL/Supabase** (`PostgresDatabaseAdapter`) + - Full-featured cloud database with vector search capabilities - Supports real-time subscriptions - Built-in user authentication - Row-level security policies 2. **SQLite** (`SqliteDatabaseAdapter`) + - Local filesystem storage - Vector similarity search via SQLite extensions - Suitable for edge deployments @@ -65,6 +67,7 @@ CREATE TABLE memories ( ``` Key features: + - Vector embeddings for semantic search - Content deduplication via the `unique` flag - JSON storage for flexible content types @@ -86,6 +89,7 @@ CREATE TABLE accounts ( ``` Features: + - Flexible user details storage using JSONB - Agent/user differentiation - Integration with auth systems @@ -104,6 +108,7 @@ CREATE TABLE relationships ( ``` Supports: + - Bi-directional relationships - Relationship status tracking - Friend recommendations @@ -116,13 +121,13 @@ PostgreSQL deployment includes comprehensive RLS policies: ```sql -- Example RLS policies -CREATE POLICY "Enable read access for all users" -ON "public"."accounts" FOR SELECT +CREATE POLICY "Enable read access for all users" +ON "public"."accounts" FOR SELECT USING (true); -CREATE POLICY "Can select and update all data" -ON "public"."accounts" -USING (("auth"."uid"() = "id")) +CREATE POLICY "Can select and update all data" +ON "public"."accounts" +USING (("auth"."uid"() = "id")) WITH CHECK (("auth"."uid"() = "id")); ``` @@ -140,11 +145,12 @@ WITH CHECK (("auth"."uid"() = "id")); // Initialize cloud database const supabaseAdapter = new SupabaseDatabaseAdapter( "https://your-project.supabase.co", - "your-supabase-key" + "your-supabase-key", ); ``` Features: + - Automated backups - Scalable vector operations - Real-time capabilities @@ -155,11 +161,12 @@ Features: ```typescript // Initialize local database const sqliteAdapter = new SqliteDatabaseAdapter( - new Database("path/to/database.db") + new Database("path/to/database.db"), ); ``` Features: + - File-based storage - Portable deployment - Low resource requirements @@ -169,12 +176,11 @@ Features: ```typescript // Initialize in-memory database -const sqljsAdapter = new SqlJsDatabaseAdapter( - new Database() -); +const sqljsAdapter = new SqlJsDatabaseAdapter(new Database()); ``` Features: + - No persistence requirements - Fast operations - Perfect for testing @@ -198,6 +204,7 @@ async searchMemoriesByEmbedding( ``` ### Implementation Details: + - PostgreSQL: Uses pgvector extension - SQLite: Uses sqlite-vss extension - SQL.js: Uses custom vector similarity functions @@ -205,11 +212,13 @@ async searchMemoriesByEmbedding( ## Best Practices 1. **Database Selection** + - Use Supabase for production deployments - Use SQLite for edge computing/local deployments - Use SQL.js for testing and browser-based applications 2. **Memory Management** + ```typescript // Example of proper memory handling async function withConnection(fn: (client: PoolClient) => Promise) { @@ -223,6 +232,7 @@ async searchMemoriesByEmbedding( ``` 3. **Error Handling** + ```typescript try { await adapter.createMemory(memory, tableName); @@ -244,18 +254,20 @@ async searchMemoriesByEmbedding( ## Performance Optimization 1. **Indexing Strategy** + ```sql -- Essential indexes for performance - CREATE INDEX idx_memories_embedding ON memories + CREATE INDEX idx_memories_embedding ON memories USING hnsw ("embedding" vector_cosine_ops); CREATE INDEX idx_memories_type_room ON memories("type", "roomId"); ``` 2. **Query Optimization** + ```typescript // Use parameterized queries const stmt = db.prepare( - "SELECT * FROM memories WHERE type = ? AND roomId = ?" + "SELECT * FROM memories WHERE type = ? AND roomId = ?", ); ``` @@ -266,6 +278,7 @@ async searchMemoriesByEmbedding( ## Monitoring and Maintenance 1. **Health Checks** + ```typescript async testConnection(): Promise { const result = await client.query("SELECT NOW()"); diff --git a/docs/docs/advanced/trust-engine.md b/docs/docs/advanced/trust-engine.md index 2fda08a4457..2905ce60472 100644 --- a/docs/docs/advanced/trust-engine.md +++ b/docs/docs/advanced/trust-engine.md @@ -15,17 +15,18 @@ The Trust Engine is a sophisticated system for tracking, evaluating, and managin ```typescript interface Recommender { - id: string; // Unique identifier - address: string; // Blockchain address - solanaPubkey?: string; - telegramId?: string; - discordId?: string; - twitterId?: string; - ip?: string; + id: string; // Unique identifier + address: string; // Blockchain address + solanaPubkey?: string; + telegramId?: string; + discordId?: string; + twitterId?: string; + ip?: string; } ``` The system tracks recommenders across multiple platforms and identifiers, enabling: + - Cross-platform identity verification - Multi-channel recommendation tracking - Unified reputation management @@ -34,19 +35,20 @@ The system tracks recommenders across multiple platforms and identifiers, enabli ```typescript interface RecommenderMetrics { - recommenderId: string; - trustScore: number; // Overall trust rating - totalRecommendations: number; - successfulRecs: number; - avgTokenPerformance: number; - riskScore: number; - consistencyScore: number; - virtualConfidence: number; - lastUpdated: Date; + recommenderId: string; + trustScore: number; // Overall trust rating + totalRecommendations: number; + successfulRecs: number; + avgTokenPerformance: number; + riskScore: number; + consistencyScore: number; + virtualConfidence: number; + lastUpdated: Date; } ``` Key metrics tracked: + - Trust Score: Overall reliability rating - Success Rate: Ratio of successful recommendations - Risk Assessment: Evaluation of risk-taking behavior @@ -56,20 +58,20 @@ Key metrics tracked: ```typescript interface TokenPerformance { - tokenAddress: string; - priceChange24h: number; - volumeChange24h: number; - trade_24h_change: number; - liquidity: number; - liquidityChange24h: number; - holderChange24h: number; - rugPull: boolean; - isScam: boolean; - marketCapChange24h: number; - sustainedGrowth: boolean; - rapidDump: boolean; - suspiciousVolume: boolean; - lastUpdated: Date; + tokenAddress: string; + priceChange24h: number; + volumeChange24h: number; + trade_24h_change: number; + liquidity: number; + liquidityChange24h: number; + holderChange24h: number; + rugPull: boolean; + isScam: boolean; + marketCapChange24h: number; + sustainedGrowth: boolean; + rapidDump: boolean; + suspiciousVolume: boolean; + lastUpdated: Date; } ``` @@ -82,9 +84,9 @@ const trustDB = new TrustScoreDatabase(sqliteDb); // Add a new recommender const recommender = { - id: "uuid", - address: "0x...", - telegramId: "@username" + id: "uuid", + address: "0x...", + telegramId: "@username", }; trustDB.addRecommender(recommender); @@ -97,13 +99,13 @@ trustDB.initializeRecommenderMetrics(recommender.id); ```typescript // Record a new token recommendation const recommendation = { - id: "uuid", - recommenderId: recommender.id, - tokenAddress: "0x...", - timestamp: new Date(), - initialMarketCap: 1000000, - initialLiquidity: 500000, - initialPrice: 0.001 + id: "uuid", + recommenderId: recommender.id, + tokenAddress: "0x...", + timestamp: new Date(), + initialMarketCap: 1000000, + initialLiquidity: 500000, + initialPrice: 0.001, }; trustDB.addTokenRecommendation(recommendation); ``` @@ -113,14 +115,14 @@ trustDB.addTokenRecommendation(recommendation); ```typescript // Update token performance metrics const performance = { - tokenAddress: "0x...", - priceChange24h: 15.5, - volumeChange24h: 25.0, - liquidity: 1000000, - holderChange24h: 5.2, - rugPull: false, - isScam: false, - // ... other metrics + tokenAddress: "0x...", + priceChange24h: 15.5, + volumeChange24h: 25.0, + liquidity: 1000000, + holderChange24h: 5.2, + rugPull: false, + isScam: false, + // ... other metrics }; trustDB.upsertTokenPerformance(performance); ``` @@ -130,15 +132,15 @@ trustDB.upsertTokenPerformance(performance); ```typescript // Record a trade based on recommendation const trade = { - token_address: "0x...", - recommender_id: "uuid", - buy_price: 0.001, - buy_timeStamp: new Date().toISOString(), - buy_amount: 1000, - buy_sol: 1.5, - buy_value_usd: 1500, - buy_market_cap: 1000000, - buy_liquidity: 500000 + token_address: "0x...", + recommender_id: "uuid", + buy_price: 0.001, + buy_timeStamp: new Date().toISOString(), + buy_amount: 1000, + buy_sol: 1.5, + buy_value_usd: 1500, + buy_market_cap: 1000000, + buy_liquidity: 500000, }; trustDB.addTradePerformance(trade, false); ``` @@ -148,17 +150,19 @@ trustDB.addTradePerformance(trade, false); The system calculates trust scores based on multiple factors: 1. **Performance Metrics** + - Success rate of recommendations - Average token performance - Risk-adjusted returns 2. **Risk Factors** + ```typescript const riskFactors = { - rugPull: -1.0, // Maximum penalty - scam: -0.8, // Severe penalty - rapidDump: -0.4, // Moderate penalty - suspicious: -0.2 // Minor penalty + rugPull: -1.0, // Maximum penalty + scam: -0.8, // Severe penalty + rapidDump: -0.4, // Moderate penalty + suspicious: -0.2, // Minor penalty }; ``` @@ -174,27 +178,28 @@ The system calculates trust scores based on multiple factors: ```typescript // Update metrics regularly function updateRecommenderMetrics(recommenderId: string) { - const metrics = calculateUpdatedMetrics(recommenderId); - trustDB.updateRecommenderMetrics(metrics); - trustDB.logRecommenderMetricsHistory(recommenderId); + const metrics = calculateUpdatedMetrics(recommenderId); + trustDB.updateRecommenderMetrics(metrics); + trustDB.logRecommenderMetricsHistory(recommenderId); } ``` ### 2. Risk Management 1. Monitor suspicious patterns: + ```typescript const riskFlags = { - rapidPriceChange: price24h > 100, - lowLiquidity: liquidity < minLiquidityThreshold, - suspiciousVolume: volume24h > marketCap + rapidPriceChange: price24h > 100, + lowLiquidity: liquidity < minLiquidityThreshold, + suspiciousVolume: volume24h > marketCap, }; ``` 2. Implement automatic warnings: ```typescript if (metrics.riskScore > riskThreshold) { - triggerRiskAlert(recommenderId); + triggerRiskAlert(recommenderId); } ``` @@ -219,9 +224,9 @@ trustDB.addTradePerformance(trade, true); // Simulation mode ```typescript const verifyIdentity = async (recommender: Recommender) => { - const telegramVerified = await verifyTelegram(recommender.telegramId); - const walletVerified = await verifyWallet(recommender.address); - return telegramVerified && walletVerified; + const telegramVerified = await verifyTelegram(recommender.telegramId); + const walletVerified = await verifyWallet(recommender.address); + return telegramVerified && walletVerified; }; ``` @@ -229,32 +234,35 @@ const verifyIdentity = async (recommender: Recommender) => { ```typescript const analyzeRecommenderHistory = (recommenderId: string) => { - const recommendations = trustDB.getRecommendationsByRecommender(recommenderId); - const metrics = trustDB.getRecommenderMetrics(recommenderId); - const history = trustDB.getRecommenderMetricsHistory(recommenderId); - - return { - successRate: metrics.successfulRecs / metrics.totalRecommendations, - averagePerformance: metrics.avgTokenPerformance, - riskProfile: calculateRiskProfile(history), - consistencyScore: metrics.consistencyScore - }; + const recommendations = + trustDB.getRecommendationsByRecommender(recommenderId); + const metrics = trustDB.getRecommenderMetrics(recommenderId); + const history = trustDB.getRecommenderMetricsHistory(recommenderId); + + return { + successRate: metrics.successfulRecs / metrics.totalRecommendations, + averagePerformance: metrics.avgTokenPerformance, + riskProfile: calculateRiskProfile(history), + consistencyScore: metrics.consistencyScore, + }; }; ``` ## Security Considerations 1. **Data Integrity** + - Use foreign key constraints - Implement transaction management - Regular backup of metrics history 2. **Fraud Prevention** + ```typescript // Implement rate limiting const checkRateLimit = (recommenderId: string) => { - const recentRecs = getRecentRecommendations(recommenderId, timeWindow); - return recentRecs.length < maxRecommendations; + const recentRecs = getRecentRecommendations(recommenderId, timeWindow); + return recentRecs.length < maxRecommendations; }; ``` @@ -266,11 +274,13 @@ const analyzeRecommenderHistory = (recommenderId: string) => { ## Future Enhancements 1. **Machine Learning Integration** + - Pattern recognition for fraud detection - Automated risk assessment - Predictive analytics for recommendation quality 2. **Decentralized Validation** + - Peer verification system - Consensus-based trust scoring - Distributed reputation management diff --git a/docs/docs/api/_media/eliza_banner.jpg b/docs/docs/api/_media/eliza_banner.jpg deleted file mode 100644 index 8364b209c85..00000000000 Binary files a/docs/docs/api/_media/eliza_banner.jpg and /dev/null differ diff --git a/docs/docs/api/classes/DirectClient.md b/docs/docs/api/classes/DirectClient.md deleted file mode 100644 index 5149fbd52f9..00000000000 --- a/docs/docs/api/classes/DirectClient.md +++ /dev/null @@ -1,69 +0,0 @@ -# Class: DirectClient - -## Constructors - -### new DirectClient() - -> **new DirectClient**(): [`DirectClient`](DirectClient.md) - -#### Returns - -[`DirectClient`](DirectClient.md) - -#### Defined in - -[core/src/clients/direct/index.ts:57](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/direct/index.ts#L57) - -## Methods - -### registerAgent() - -> **registerAgent**(`runtime`): `void` - -#### Parameters - -• **runtime**: `AgentRuntime` - -#### Returns - -`void` - -#### Defined in - -[core/src/clients/direct/index.ts:242](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/direct/index.ts#L242) - -*** - -### start() - -> **start**(`port`): `void` - -#### Parameters - -• **port**: `number` - -#### Returns - -`void` - -#### Defined in - -[core/src/clients/direct/index.ts:250](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/direct/index.ts#L250) - -*** - -### unregisterAgent() - -> **unregisterAgent**(`runtime`): `void` - -#### Parameters - -• **runtime**: `AgentRuntime` - -#### Returns - -`void` - -#### Defined in - -[core/src/clients/direct/index.ts:246](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/direct/index.ts#L246) diff --git a/docs/docs/api/classes/DiscordClient.md b/docs/docs/api/classes/DiscordClient.md deleted file mode 100644 index 26dee7c6d26..00000000000 --- a/docs/docs/api/classes/DiscordClient.md +++ /dev/null @@ -1,1502 +0,0 @@ -# Class: DiscordClient - -## Extends - -- `EventEmitter` - -## Constructors - -### new DiscordClient() - -> **new DiscordClient**(`runtime`): [`DiscordClient`](DiscordClient.md) - -#### Parameters - -• **runtime**: `IAgentRuntime` - -#### Returns - -[`DiscordClient`](DiscordClient.md) - -#### Overrides - -`EventEmitter.constructor` - -#### Defined in - -[core/src/clients/discord/index.ts:37](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/discord/index.ts#L37) - -## Properties - -### apiToken - -> **apiToken**: `string` - -#### Defined in - -[core/src/clients/discord/index.ts:30](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/discord/index.ts#L30) - -*** - -### character - -> **character**: `Character` - -#### Defined in - -[core/src/clients/discord/index.ts:33](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/discord/index.ts#L33) - -*** - -### captureRejections - -> `static` **captureRejections**: `boolean` - -Value: [boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) - -Change the default `captureRejections` option on all new `EventEmitter` objects. - -#### Since - -v13.4.0, v12.16.0 - -#### Inherited from - -`EventEmitter.captureRejections` - -#### Defined in - -node\_modules/@types/node/events.d.ts:459 - -*** - -### captureRejectionSymbol - -> `readonly` `static` **captureRejectionSymbol**: *typeof* [`captureRejectionSymbol`](TwitterGenerationClient.md#capturerejectionsymbol) - -Value: `Symbol.for('nodejs.rejection')` - -See how to write a custom `rejection handler`. - -#### Since - -v13.4.0, v12.16.0 - -#### Inherited from - -`EventEmitter.captureRejectionSymbol` - -#### Defined in - -node\_modules/@types/node/events.d.ts:452 - -*** - -### defaultMaxListeners - -> `static` **defaultMaxListeners**: `number` - -By default, a maximum of `10` listeners can be registered for any single -event. This limit can be changed for individual `EventEmitter` instances -using the `emitter.setMaxListeners(n)` method. To change the default -for _all_`EventEmitter` instances, the `events.defaultMaxListeners` property -can be used. If this value is not a positive number, a `RangeError` is thrown. - -Take caution when setting the `events.defaultMaxListeners` because the -change affects _all_ `EventEmitter` instances, including those created before -the change is made. However, calling `emitter.setMaxListeners(n)` still has -precedence over `events.defaultMaxListeners`. - -This is not a hard limit. The `EventEmitter` instance will allow -more listeners to be added but will output a trace warning to stderr indicating -that a "possible EventEmitter memory leak" has been detected. For any single -`EventEmitter`, the `emitter.getMaxListeners()` and `emitter.setMaxListeners()` methods can be used to -temporarily avoid this warning: - -```js -import { EventEmitter } from 'node:events'; -const emitter = new EventEmitter(); -emitter.setMaxListeners(emitter.getMaxListeners() + 1); -emitter.once('event', () => { - // do stuff - emitter.setMaxListeners(Math.max(emitter.getMaxListeners() - 1, 0)); -}); -``` - -The `--trace-warnings` command-line flag can be used to display the -stack trace for such warnings. - -The emitted warning can be inspected with `process.on('warning')` and will -have the additional `emitter`, `type`, and `count` properties, referring to -the event emitter instance, the event's name and the number of attached -listeners, respectively. -Its `name` property is set to `'MaxListenersExceededWarning'`. - -#### Since - -v0.11.2 - -#### Inherited from - -`EventEmitter.defaultMaxListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:498 - -*** - -### errorMonitor - -> `readonly` `static` **errorMonitor**: *typeof* [`errorMonitor`](TwitterGenerationClient.md#errormonitor) - -This symbol shall be used to install a listener for only monitoring `'error'` events. Listeners installed using this symbol are called before the regular `'error'` listeners are called. - -Installing a listener using this symbol does not change the behavior once an `'error'` event is emitted. Therefore, the process will still crash if no -regular `'error'` listener is installed. - -#### Since - -v13.6.0, v12.17.0 - -#### Inherited from - -`EventEmitter.errorMonitor` - -#### Defined in - -node\_modules/@types/node/events.d.ts:445 - -## Methods - -### \[captureRejectionSymbol\]()? - -> `optional` **\[captureRejectionSymbol\]**\<`K`\>(`error`, `event`, ...`args`): `void` - -#### Type Parameters - -• **K** - -#### Parameters - -• **error**: `Error` - -• **event**: `string` \| `symbol` - -• ...**args**: `AnyRest` - -#### Returns - -`void` - -#### Inherited from - -`EventEmitter.[captureRejectionSymbol]` - -#### Defined in - -node\_modules/@types/node/events.d.ts:136 - -*** - -### addListener() - -> **addListener**\<`K`\>(`eventName`, `listener`): `this` - -Alias for `emitter.on(eventName, listener)`. - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -• **listener** - -#### Returns - -`this` - -#### Since - -v0.1.26 - -#### Inherited from - -`EventEmitter.addListener` - -#### Defined in - -node\_modules/@types/node/events.d.ts:597 - -*** - -### emit() - -> **emit**\<`K`\>(`eventName`, ...`args`): `boolean` - -Synchronously calls each of the listeners registered for the event named `eventName`, in the order they were registered, passing the supplied arguments -to each. - -Returns `true` if the event had listeners, `false` otherwise. - -```js -import { EventEmitter } from 'node:events'; -const myEmitter = new EventEmitter(); - -// First listener -myEmitter.on('event', function firstListener() { - console.log('Helloooo! first listener'); -}); -// Second listener -myEmitter.on('event', function secondListener(arg1, arg2) { - console.log(`event with parameters ${arg1}, ${arg2} in second listener`); -}); -// Third listener -myEmitter.on('event', function thirdListener(...args) { - const parameters = args.join(', '); - console.log(`event with parameters ${parameters} in third listener`); -}); - -console.log(myEmitter.listeners('event')); - -myEmitter.emit('event', 1, 2, 3, 4, 5); - -// Prints: -// [ -// [Function: firstListener], -// [Function: secondListener], -// [Function: thirdListener] -// ] -// Helloooo! first listener -// event with parameters 1, 2 in second listener -// event with parameters 1, 2, 3, 4, 5 in third listener -``` - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -• ...**args**: `AnyRest` - -#### Returns - -`boolean` - -#### Since - -v0.1.26 - -#### Inherited from - -`EventEmitter.emit` - -#### Defined in - -node\_modules/@types/node/events.d.ts:859 - -*** - -### eventNames() - -> **eventNames**(): (`string` \| `symbol`)[] - -Returns an array listing the events for which the emitter has registered -listeners. The values in the array are strings or `Symbol`s. - -```js -import { EventEmitter } from 'node:events'; - -const myEE = new EventEmitter(); -myEE.on('foo', () => {}); -myEE.on('bar', () => {}); - -const sym = Symbol('symbol'); -myEE.on(sym, () => {}); - -console.log(myEE.eventNames()); -// Prints: [ 'foo', 'bar', Symbol(symbol) ] -``` - -#### Returns - -(`string` \| `symbol`)[] - -#### Since - -v6.0.0 - -#### Inherited from - -`EventEmitter.eventNames` - -#### Defined in - -node\_modules/@types/node/events.d.ts:922 - -*** - -### getMaxListeners() - -> **getMaxListeners**(): `number` - -Returns the current max listener value for the `EventEmitter` which is either -set by `emitter.setMaxListeners(n)` or defaults to [defaultMaxListeners](DiscordClient.md#defaultmaxlisteners). - -#### Returns - -`number` - -#### Since - -v1.0.0 - -#### Inherited from - -`EventEmitter.getMaxListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:774 - -*** - -### handleReactionAdd() - -> **handleReactionAdd**(`reaction`, `user`): `Promise`\<`void`\> - -#### Parameters - -• **reaction**: `MessageReaction` - -• **user**: `User` - -#### Returns - -`Promise`\<`void`\> - -#### Defined in - -[core/src/clients/discord/index.ts:141](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/discord/index.ts#L141) - -*** - -### handleReactionRemove() - -> **handleReactionRemove**(`reaction`, `user`): `Promise`\<`void`\> - -#### Parameters - -• **reaction**: `MessageReaction` - -• **user**: `User` - -#### Returns - -`Promise`\<`void`\> - -#### Defined in - -[core/src/clients/discord/index.ts:211](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/discord/index.ts#L211) - -*** - -### listenerCount() - -> **listenerCount**\<`K`\>(`eventName`, `listener`?): `number` - -Returns the number of listeners listening for the event named `eventName`. -If `listener` is provided, it will return how many times the listener is found -in the list of the listeners of the event. - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -The name of the event being listened for - -• **listener?**: `Function` - -The event handler function - -#### Returns - -`number` - -#### Since - -v3.2.0 - -#### Inherited from - -`EventEmitter.listenerCount` - -#### Defined in - -node\_modules/@types/node/events.d.ts:868 - -*** - -### listeners() - -> **listeners**\<`K`\>(`eventName`): `Function`[] - -Returns a copy of the array of listeners for the event named `eventName`. - -```js -server.on('connection', (stream) => { - console.log('someone connected!'); -}); -console.log(util.inspect(server.listeners('connection'))); -// Prints: [ [Function] ] -``` - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -#### Returns - -`Function`[] - -#### Since - -v0.1.26 - -#### Inherited from - -`EventEmitter.listeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:787 - -*** - -### off() - -> **off**\<`K`\>(`eventName`, `listener`): `this` - -Alias for `emitter.removeListener()`. - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -• **listener** - -#### Returns - -`this` - -#### Since - -v10.0.0 - -#### Inherited from - -`EventEmitter.off` - -#### Defined in - -node\_modules/@types/node/events.d.ts:747 - -*** - -### on() - -> **on**\<`K`\>(`eventName`, `listener`): `this` - -Adds the `listener` function to the end of the listeners array for the event -named `eventName`. No checks are made to see if the `listener` has already -been added. Multiple calls passing the same combination of `eventName` and -`listener` will result in the `listener` being added, and called, multiple times. - -```js -server.on('connection', (stream) => { - console.log('someone connected!'); -}); -``` - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -By default, event listeners are invoked in the order they are added. The `emitter.prependListener()` method can be used as an alternative to add the -event listener to the beginning of the listeners array. - -```js -import { EventEmitter } from 'node:events'; -const myEE = new EventEmitter(); -myEE.on('foo', () => console.log('a')); -myEE.prependListener('foo', () => console.log('b')); -myEE.emit('foo'); -// Prints: -// b -// a -``` - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -The name of the event. - -• **listener** - -The callback function - -#### Returns - -`this` - -#### Since - -v0.1.101 - -#### Inherited from - -`EventEmitter.on` - -#### Defined in - -node\_modules/@types/node/events.d.ts:629 - -*** - -### once() - -> **once**\<`K`\>(`eventName`, `listener`): `this` - -Adds a **one-time** `listener` function for the event named `eventName`. The -next time `eventName` is triggered, this listener is removed and then invoked. - -```js -server.once('connection', (stream) => { - console.log('Ah, we have our first user!'); -}); -``` - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -By default, event listeners are invoked in the order they are added. The `emitter.prependOnceListener()` method can be used as an alternative to add the -event listener to the beginning of the listeners array. - -```js -import { EventEmitter } from 'node:events'; -const myEE = new EventEmitter(); -myEE.once('foo', () => console.log('a')); -myEE.prependOnceListener('foo', () => console.log('b')); -myEE.emit('foo'); -// Prints: -// b -// a -``` - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -The name of the event. - -• **listener** - -The callback function - -#### Returns - -`this` - -#### Since - -v0.3.0 - -#### Inherited from - -`EventEmitter.once` - -#### Defined in - -node\_modules/@types/node/events.d.ts:659 - -*** - -### prependListener() - -> **prependListener**\<`K`\>(`eventName`, `listener`): `this` - -Adds the `listener` function to the _beginning_ of the listeners array for the -event named `eventName`. No checks are made to see if the `listener` has -already been added. Multiple calls passing the same combination of `eventName` -and `listener` will result in the `listener` being added, and called, multiple times. - -```js -server.prependListener('connection', (stream) => { - console.log('someone connected!'); -}); -``` - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -The name of the event. - -• **listener** - -The callback function - -#### Returns - -`this` - -#### Since - -v6.0.0 - -#### Inherited from - -`EventEmitter.prependListener` - -#### Defined in - -node\_modules/@types/node/events.d.ts:886 - -*** - -### prependOnceListener() - -> **prependOnceListener**\<`K`\>(`eventName`, `listener`): `this` - -Adds a **one-time**`listener` function for the event named `eventName` to the _beginning_ of the listeners array. The next time `eventName` is triggered, this -listener is removed, and then invoked. - -```js -server.prependOnceListener('connection', (stream) => { - console.log('Ah, we have our first user!'); -}); -``` - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -The name of the event. - -• **listener** - -The callback function - -#### Returns - -`this` - -#### Since - -v6.0.0 - -#### Inherited from - -`EventEmitter.prependOnceListener` - -#### Defined in - -node\_modules/@types/node/events.d.ts:902 - -*** - -### rawListeners() - -> **rawListeners**\<`K`\>(`eventName`): `Function`[] - -Returns a copy of the array of listeners for the event named `eventName`, -including any wrappers (such as those created by `.once()`). - -```js -import { EventEmitter } from 'node:events'; -const emitter = new EventEmitter(); -emitter.once('log', () => console.log('log once')); - -// Returns a new Array with a function `onceWrapper` which has a property -// `listener` which contains the original listener bound above -const listeners = emitter.rawListeners('log'); -const logFnWrapper = listeners[0]; - -// Logs "log once" to the console and does not unbind the `once` event -logFnWrapper.listener(); - -// Logs "log once" to the console and removes the listener -logFnWrapper(); - -emitter.on('log', () => console.log('log persistently')); -// Will return a new Array with a single function bound by `.on()` above -const newListeners = emitter.rawListeners('log'); - -// Logs "log persistently" twice -newListeners[0](); -emitter.emit('log'); -``` - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -#### Returns - -`Function`[] - -#### Since - -v9.4.0 - -#### Inherited from - -`EventEmitter.rawListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:818 - -*** - -### removeAllListeners() - -> **removeAllListeners**(`eventName`?): `this` - -Removes all listeners, or those of the specified `eventName`. - -It is bad practice to remove listeners added elsewhere in the code, -particularly when the `EventEmitter` instance was created by some other -component or module (e.g. sockets or file streams). - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -#### Parameters - -• **eventName?**: `string` \| `symbol` - -#### Returns - -`this` - -#### Since - -v0.1.26 - -#### Inherited from - -`EventEmitter.removeAllListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:758 - -*** - -### removeListener() - -> **removeListener**\<`K`\>(`eventName`, `listener`): `this` - -Removes the specified `listener` from the listener array for the event named `eventName`. - -```js -const callback = (stream) => { - console.log('someone connected!'); -}; -server.on('connection', callback); -// ... -server.removeListener('connection', callback); -``` - -`removeListener()` will remove, at most, one instance of a listener from the -listener array. If any single listener has been added multiple times to the -listener array for the specified `eventName`, then `removeListener()` must be -called multiple times to remove each instance. - -Once an event is emitted, all listeners attached to it at the -time of emitting are called in order. This implies that any `removeListener()` or `removeAllListeners()` calls _after_ emitting and _before_ the last listener finishes execution -will not remove them from`emit()` in progress. Subsequent events behave as expected. - -```js -import { EventEmitter } from 'node:events'; -class MyEmitter extends EventEmitter {} -const myEmitter = new MyEmitter(); - -const callbackA = () => { - console.log('A'); - myEmitter.removeListener('event', callbackB); -}; - -const callbackB = () => { - console.log('B'); -}; - -myEmitter.on('event', callbackA); - -myEmitter.on('event', callbackB); - -// callbackA removes listener callbackB but it will still be called. -// Internal listener array at time of emit [callbackA, callbackB] -myEmitter.emit('event'); -// Prints: -// A -// B - -// callbackB is now removed. -// Internal listener array [callbackA] -myEmitter.emit('event'); -// Prints: -// A -``` - -Because listeners are managed using an internal array, calling this will -change the position indices of any listener registered _after_ the listener -being removed. This will not impact the order in which listeners are called, -but it means that any copies of the listener array as returned by -the `emitter.listeners()` method will need to be recreated. - -When a single function has been added as a handler multiple times for a single -event (as in the example below), `removeListener()` will remove the most -recently added instance. In the example the `once('ping')` listener is removed: - -```js -import { EventEmitter } from 'node:events'; -const ee = new EventEmitter(); - -function pong() { - console.log('pong'); -} - -ee.on('ping', pong); -ee.once('ping', pong); -ee.removeListener('ping', pong); - -ee.emit('ping'); -ee.emit('ping'); -``` - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -• **listener** - -#### Returns - -`this` - -#### Since - -v0.1.26 - -#### Inherited from - -`EventEmitter.removeListener` - -#### Defined in - -node\_modules/@types/node/events.d.ts:742 - -*** - -### setMaxListeners() - -> **setMaxListeners**(`n`): `this` - -By default `EventEmitter`s will print a warning if more than `10` listeners are -added for a particular event. This is a useful default that helps finding -memory leaks. The `emitter.setMaxListeners()` method allows the limit to be -modified for this specific `EventEmitter` instance. The value can be set to `Infinity` (or `0`) to indicate an unlimited number of listeners. - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -#### Parameters - -• **n**: `number` - -#### Returns - -`this` - -#### Since - -v0.3.5 - -#### Inherited from - -`EventEmitter.setMaxListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:768 - -*** - -### addAbortListener() - -> `static` **addAbortListener**(`signal`, `resource`): `Disposable` - -**`Experimental`** - -Listens once to the `abort` event on the provided `signal`. - -Listening to the `abort` event on abort signals is unsafe and may -lead to resource leaks since another third party with the signal can -call `e.stopImmediatePropagation()`. Unfortunately Node.js cannot change -this since it would violate the web standard. Additionally, the original -API makes it easy to forget to remove listeners. - -This API allows safely using `AbortSignal`s in Node.js APIs by solving these -two issues by listening to the event such that `stopImmediatePropagation` does -not prevent the listener from running. - -Returns a disposable so that it may be unsubscribed from more easily. - -```js -import { addAbortListener } from 'node:events'; - -function example(signal) { - let disposable; - try { - signal.addEventListener('abort', (e) => e.stopImmediatePropagation()); - disposable = addAbortListener(signal, (e) => { - // Do something when signal is aborted. - }); - } finally { - disposable?.[Symbol.dispose](); - } -} -``` - -#### Parameters - -• **signal**: `AbortSignal` - -• **resource** - -#### Returns - -`Disposable` - -Disposable that removes the `abort` listener. - -#### Since - -v20.5.0 - -#### Inherited from - -`EventEmitter.addAbortListener` - -#### Defined in - -node\_modules/@types/node/events.d.ts:437 - -*** - -### getEventListeners() - -> `static` **getEventListeners**(`emitter`, `name`): `Function`[] - -Returns a copy of the array of listeners for the event named `eventName`. - -For `EventEmitter`s this behaves exactly the same as calling `.listeners` on -the emitter. - -For `EventTarget`s this is the only way to get the event listeners for the -event target. This is useful for debugging and diagnostic purposes. - -```js -import { getEventListeners, EventEmitter } from 'node:events'; - -{ - const ee = new EventEmitter(); - const listener = () => console.log('Events are fun'); - ee.on('foo', listener); - console.log(getEventListeners(ee, 'foo')); // [ [Function: listener] ] -} -{ - const et = new EventTarget(); - const listener = () => console.log('Events are fun'); - et.addEventListener('foo', listener); - console.log(getEventListeners(et, 'foo')); // [ [Function: listener] ] -} -``` - -#### Parameters - -• **emitter**: `EventTarget` \| `EventEmitter`\<`DefaultEventMap`\> - -• **name**: `string` \| `symbol` - -#### Returns - -`Function`[] - -#### Since - -v15.2.0, v14.17.0 - -#### Inherited from - -`EventEmitter.getEventListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:358 - -*** - -### getMaxListeners() - -> `static` **getMaxListeners**(`emitter`): `number` - -Returns the currently set max amount of listeners. - -For `EventEmitter`s this behaves exactly the same as calling `.getMaxListeners` on -the emitter. - -For `EventTarget`s this is the only way to get the max event listeners for the -event target. If the number of event handlers on a single EventTarget exceeds -the max set, the EventTarget will print a warning. - -```js -import { getMaxListeners, setMaxListeners, EventEmitter } from 'node:events'; - -{ - const ee = new EventEmitter(); - console.log(getMaxListeners(ee)); // 10 - setMaxListeners(11, ee); - console.log(getMaxListeners(ee)); // 11 -} -{ - const et = new EventTarget(); - console.log(getMaxListeners(et)); // 10 - setMaxListeners(11, et); - console.log(getMaxListeners(et)); // 11 -} -``` - -#### Parameters - -• **emitter**: `EventTarget` \| `EventEmitter`\<`DefaultEventMap`\> - -#### Returns - -`number` - -#### Since - -v19.9.0 - -#### Inherited from - -`EventEmitter.getMaxListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:387 - -*** - -### ~~listenerCount()~~ - -> `static` **listenerCount**(`emitter`, `eventName`): `number` - -A class method that returns the number of listeners for the given `eventName` registered on the given `emitter`. - -```js -import { EventEmitter, listenerCount } from 'node:events'; - -const myEmitter = new EventEmitter(); -myEmitter.on('event', () => {}); -myEmitter.on('event', () => {}); -console.log(listenerCount(myEmitter, 'event')); -// Prints: 2 -``` - -#### Parameters - -• **emitter**: `EventEmitter`\<`DefaultEventMap`\> - -The emitter to query - -• **eventName**: `string` \| `symbol` - -The event name - -#### Returns - -`number` - -#### Since - -v0.9.12 - -#### Deprecated - -Since v3.2.0 - Use `listenerCount` instead. - -#### Inherited from - -`EventEmitter.listenerCount` - -#### Defined in - -node\_modules/@types/node/events.d.ts:330 - -*** - -### on() - -#### on(emitter, eventName, options) - -> `static` **on**(`emitter`, `eventName`, `options`?): `AsyncIterator`\<`any`[], `any`, `any`\> - -```js -import { on, EventEmitter } from 'node:events'; -import process from 'node:process'; - -const ee = new EventEmitter(); - -// Emit later on -process.nextTick(() => { - ee.emit('foo', 'bar'); - ee.emit('foo', 42); -}); - -for await (const event of on(ee, 'foo')) { - // The execution of this inner block is synchronous and it - // processes one event at a time (even with await). Do not use - // if concurrent execution is required. - console.log(event); // prints ['bar'] [42] -} -// Unreachable here -``` - -Returns an `AsyncIterator` that iterates `eventName` events. It will throw -if the `EventEmitter` emits `'error'`. It removes all listeners when -exiting the loop. The `value` returned by each iteration is an array -composed of the emitted event arguments. - -An `AbortSignal` can be used to cancel waiting on events: - -```js -import { on, EventEmitter } from 'node:events'; -import process from 'node:process'; - -const ac = new AbortController(); - -(async () => { - const ee = new EventEmitter(); - - // Emit later on - process.nextTick(() => { - ee.emit('foo', 'bar'); - ee.emit('foo', 42); - }); - - for await (const event of on(ee, 'foo', { signal: ac.signal })) { - // The execution of this inner block is synchronous and it - // processes one event at a time (even with await). Do not use - // if concurrent execution is required. - console.log(event); // prints ['bar'] [42] - } - // Unreachable here -})(); - -process.nextTick(() => ac.abort()); -``` - -Use the `close` option to specify an array of event names that will end the iteration: - -```js -import { on, EventEmitter } from 'node:events'; -import process from 'node:process'; - -const ee = new EventEmitter(); - -// Emit later on -process.nextTick(() => { - ee.emit('foo', 'bar'); - ee.emit('foo', 42); - ee.emit('close'); -}); - -for await (const event of on(ee, 'foo', { close: ['close'] })) { - console.log(event); // prints ['bar'] [42] -} -// the loop will exit after 'close' is emitted -console.log('done'); // prints 'done' -``` - -##### Parameters - -• **emitter**: `EventEmitter`\<`DefaultEventMap`\> - -• **eventName**: `string` \| `symbol` - -• **options?**: `StaticEventEmitterIteratorOptions` - -##### Returns - -`AsyncIterator`\<`any`[], `any`, `any`\> - -An `AsyncIterator` that iterates `eventName` events emitted by the `emitter` - -##### Since - -v13.6.0, v12.16.0 - -##### Inherited from - -`EventEmitter.on` - -##### Defined in - -node\_modules/@types/node/events.d.ts:303 - -#### on(emitter, eventName, options) - -> `static` **on**(`emitter`, `eventName`, `options`?): `AsyncIterator`\<`any`[], `any`, `any`\> - -##### Parameters - -• **emitter**: `EventTarget` - -• **eventName**: `string` - -• **options?**: `StaticEventEmitterIteratorOptions` - -##### Returns - -`AsyncIterator`\<`any`[], `any`, `any`\> - -##### Inherited from - -`EventEmitter.on` - -##### Defined in - -node\_modules/@types/node/events.d.ts:308 - -*** - -### once() - -#### once(emitter, eventName, options) - -> `static` **once**(`emitter`, `eventName`, `options`?): `Promise`\<`any`[]\> - -Creates a `Promise` that is fulfilled when the `EventEmitter` emits the given -event or that is rejected if the `EventEmitter` emits `'error'` while waiting. -The `Promise` will resolve with an array of all the arguments emitted to the -given event. - -This method is intentionally generic and works with the web platform [EventTarget](https://dom.spec.whatwg.org/#interface-eventtarget) interface, which has no special`'error'` event -semantics and does not listen to the `'error'` event. - -```js -import { once, EventEmitter } from 'node:events'; -import process from 'node:process'; - -const ee = new EventEmitter(); - -process.nextTick(() => { - ee.emit('myevent', 42); -}); - -const [value] = await once(ee, 'myevent'); -console.log(value); - -const err = new Error('kaboom'); -process.nextTick(() => { - ee.emit('error', err); -}); - -try { - await once(ee, 'myevent'); -} catch (err) { - console.error('error happened', err); -} -``` - -The special handling of the `'error'` event is only used when `events.once()` is used to wait for another event. If `events.once()` is used to wait for the -'`error'` event itself, then it is treated as any other kind of event without -special handling: - -```js -import { EventEmitter, once } from 'node:events'; - -const ee = new EventEmitter(); - -once(ee, 'error') - .then(([err]) => console.log('ok', err.message)) - .catch((err) => console.error('error', err.message)); - -ee.emit('error', new Error('boom')); - -// Prints: ok boom -``` - -An `AbortSignal` can be used to cancel waiting for the event: - -```js -import { EventEmitter, once } from 'node:events'; - -const ee = new EventEmitter(); -const ac = new AbortController(); - -async function foo(emitter, event, signal) { - try { - await once(emitter, event, { signal }); - console.log('event emitted!'); - } catch (error) { - if (error.name === 'AbortError') { - console.error('Waiting for the event was canceled!'); - } else { - console.error('There was an error', error.message); - } - } -} - -foo(ee, 'foo', ac.signal); -ac.abort(); // Abort waiting for the event -ee.emit('foo'); // Prints: Waiting for the event was canceled! -``` - -##### Parameters - -• **emitter**: `EventEmitter`\<`DefaultEventMap`\> - -• **eventName**: `string` \| `symbol` - -• **options?**: `StaticEventEmitterOptions` - -##### Returns - -`Promise`\<`any`[]\> - -##### Since - -v11.13.0, v10.16.0 - -##### Inherited from - -`EventEmitter.once` - -##### Defined in - -node\_modules/@types/node/events.d.ts:217 - -#### once(emitter, eventName, options) - -> `static` **once**(`emitter`, `eventName`, `options`?): `Promise`\<`any`[]\> - -##### Parameters - -• **emitter**: `EventTarget` - -• **eventName**: `string` - -• **options?**: `StaticEventEmitterOptions` - -##### Returns - -`Promise`\<`any`[]\> - -##### Inherited from - -`EventEmitter.once` - -##### Defined in - -node\_modules/@types/node/events.d.ts:222 - -*** - -### setMaxListeners() - -> `static` **setMaxListeners**(`n`?, ...`eventTargets`?): `void` - -```js -import { setMaxListeners, EventEmitter } from 'node:events'; - -const target = new EventTarget(); -const emitter = new EventEmitter(); - -setMaxListeners(5, target, emitter); -``` - -#### Parameters - -• **n?**: `number` - -A non-negative number. The maximum number of listeners per `EventTarget` event. - -• ...**eventTargets?**: (`EventTarget` \| `EventEmitter`\<`DefaultEventMap`\>)[] - -Zero or more {EventTarget} or {EventEmitter} instances. If none are specified, `n` is set as the default max for all newly created {EventTarget} and {EventEmitter} -objects. - -#### Returns - -`void` - -#### Since - -v15.4.0 - -#### Inherited from - -`EventEmitter.setMaxListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:402 diff --git a/docs/docs/api/classes/PostgresDatabaseAdapter.md b/docs/docs/api/classes/PostgresDatabaseAdapter.md deleted file mode 100644 index 8d378620c93..00000000000 --- a/docs/docs/api/classes/PostgresDatabaseAdapter.md +++ /dev/null @@ -1,1129 +0,0 @@ -# Class: PostgresDatabaseAdapter - -## Extends - -- `DatabaseAdapter` - -## Constructors - -### new PostgresDatabaseAdapter() - -> **new PostgresDatabaseAdapter**(`connectionConfig`): [`PostgresDatabaseAdapter`](PostgresDatabaseAdapter.md) - -#### Parameters - -• **connectionConfig**: `any` - -#### Returns - -[`PostgresDatabaseAdapter`](PostgresDatabaseAdapter.md) - -#### Overrides - -`DatabaseAdapter.constructor` - -#### Defined in - -[core/src/adapters/postgres.ts:19](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L19) - -## Properties - -### db - -> **db**: `any` - -The database instance. - -#### Inherited from - -`DatabaseAdapter.db` - -#### Defined in - -[core/src/core/database.ts:21](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/core/database.ts#L21) - -## Methods - -### addParticipant() - -> **addParticipant**(`userId`, `roomId`): `Promise`\<`boolean`\> - -Adds a user as a participant to a specific room. - -#### Parameters - -• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the user to add as a participant. - -• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the room to which the user will be added. - -#### Returns - -`Promise`\<`boolean`\> - -A Promise that resolves to a boolean indicating success or failure. - -#### Overrides - -`DatabaseAdapter.addParticipant` - -#### Defined in - -[core/src/adapters/postgres.ts:681](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L681) - -*** - -### countMemories() - -> **countMemories**(`roomId`, `unique`, `tableName`): `Promise`\<`number`\> - -Counts the number of memories in a specific room. - -#### Parameters - -• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the room for which to count memories. - -• **unique**: `boolean` = `true` - -Specifies whether to count only unique memories. - -• **tableName**: `string` = `""` - -Optional table name to count memories from. - -#### Returns - -`Promise`\<`number`\> - -A Promise that resolves to the number of memories. - -#### Overrides - -`DatabaseAdapter.countMemories` - -#### Defined in - -[core/src/adapters/postgres.ts:752](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L752) - -*** - -### createAccount() - -> **createAccount**(`account`): `Promise`\<`boolean`\> - -Creates a new account in the database. - -#### Parameters - -• **account**: `Account` - -The account object to create. - -#### Returns - -`Promise`\<`boolean`\> - -A Promise that resolves when the account creation is complete. - -#### Overrides - -`DatabaseAdapter.createAccount` - -#### Defined in - -[core/src/adapters/postgres.ts:186](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L186) - -*** - -### createGoal() - -> **createGoal**(`goal`): `Promise`\<`void`\> - -Creates a new goal in the database. - -#### Parameters - -• **goal**: `Goal` - -The goal object to create. - -#### Returns - -`Promise`\<`void`\> - -A Promise that resolves when the goal has been created. - -#### Overrides - -`DatabaseAdapter.createGoal` - -#### Defined in - -[core/src/adapters/postgres.ts:454](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L454) - -*** - -### createMemory() - -> **createMemory**(`memory`, `tableName`): `Promise`\<`void`\> - -Creates a new memory in the database. - -#### Parameters - -• **memory**: `Memory` - -The memory object to create. - -• **tableName**: `string` - -The table where the memory should be stored. - -#### Returns - -`Promise`\<`void`\> - -A Promise that resolves when the memory has been created. - -#### Overrides - -`DatabaseAdapter.createMemory` - -#### Defined in - -[core/src/adapters/postgres.ts:253](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L253) - -*** - -### createRelationship() - -> **createRelationship**(`params`): `Promise`\<`boolean`\> - -Creates a new relationship between two users. - -#### Parameters - -• **params** - -An object containing the UUIDs of the two users (userA and userB). - -• **params.userA**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **params.userB**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -#### Returns - -`Promise`\<`boolean`\> - -A Promise that resolves to a boolean indicating success or failure of the creation. - -#### Overrides - -`DatabaseAdapter.createRelationship` - -#### Defined in - -[core/src/adapters/postgres.ts:505](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L505) - -*** - -### createRoom() - -> **createRoom**(`roomId`?): `Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`\> - -Creates a new room with an optional specified ID. - -#### Parameters - -• **roomId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -Optional UUID to assign to the new room. - -#### Returns - -`Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`\> - -A Promise that resolves to the UUID of the created room. - -#### Overrides - -`DatabaseAdapter.createRoom` - -#### Defined in - -[core/src/adapters/postgres.ts:483](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L483) - -*** - -### getAccountById() - -> **getAccountById**(`userId`): `Promise`\<`Account`\> - -Retrieves an account by its ID. - -#### Parameters - -• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the user account to retrieve. - -#### Returns - -`Promise`\<`Account`\> - -A Promise that resolves to the Account object or null if not found. - -#### Overrides - -`DatabaseAdapter.getAccountById` - -#### Defined in - -[core/src/adapters/postgres.ts:162](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L162) - -*** - -### getActorById() - -> **getActorById**(`params`): `Promise`\<`Actor`[]\> - -#### Parameters - -• **params** - -• **params.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -#### Returns - -`Promise`\<`Actor`[]\> - -#### Defined in - -[core/src/adapters/postgres.ts:210](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L210) - -*** - -### getActorDetails() - -> **getActorDetails**(`params`): `Promise`\<`Actor`[]\> - -Retrieves details of actors in a given room. - -#### Parameters - -• **params** - -An object containing the roomId to search for actors. - -• **params.roomId**: `string` - -#### Returns - -`Promise`\<`Actor`[]\> - -A Promise that resolves to an array of Actor objects. - -#### Overrides - -`DatabaseAdapter.getActorDetails` - -#### Defined in - -[core/src/adapters/postgres.ts:810](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L810) - -*** - -### getCachedEmbeddings() - -> **getCachedEmbeddings**(`opts`): `Promise`\<`object`[]\> - -Retrieves cached embeddings based on the specified query parameters. - -#### Parameters - -• **opts** - -• **opts.query\_field\_name**: `string` - -• **opts.query\_field\_sub\_name**: `string` - -• **opts.query\_input**: `string` - -• **opts.query\_match\_count**: `number` - -• **opts.query\_table\_name**: `string` - -• **opts.query\_threshold**: `number` - -#### Returns - -`Promise`\<`object`[]\> - -A Promise that resolves to an array of objects containing embeddings and levenshtein scores. - -#### Overrides - -`DatabaseAdapter.getCachedEmbeddings` - -#### Defined in - -[core/src/adapters/postgres.ts:559](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L559) - -*** - -### getGoals() - -> **getGoals**(`params`): `Promise`\<`Goal`[]\> - -Retrieves goals based on specified parameters. - -#### Parameters - -• **params** - -An object containing parameters for goal retrieval. - -• **params.count?**: `number` - -• **params.onlyInProgress?**: `boolean` - -• **params.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **params.userId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -#### Returns - -`Promise`\<`Goal`[]\> - -A Promise that resolves to an array of Goal objects. - -#### Overrides - -`DatabaseAdapter.getGoals` - -#### Defined in - -[core/src/adapters/postgres.ts:396](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L396) - -*** - -### getMemories() - -> **getMemories**(`params`): `Promise`\<`Memory`[]\> - -Retrieves memories based on the specified parameters. - -#### Parameters - -• **params** - -An object containing parameters for the memory retrieval. - -• **params.agentId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **params.count?**: `number` - -• **params.end?**: `number` - -• **params.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **params.start?**: `number` - -• **params.tableName**: `string` - -• **params.unique?**: `boolean` - -#### Returns - -`Promise`\<`Memory`[]\> - -A Promise that resolves to an array of Memory objects. - -#### Overrides - -`DatabaseAdapter.getMemories` - -#### Defined in - -[core/src/adapters/postgres.ts:334](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L334) - -*** - -### getMemoriesByRoomIds() - -> **getMemoriesByRoomIds**(`params`): `Promise`\<`Memory`[]\> - -#### Parameters - -• **params** - -• **params.agentId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **params.roomIds**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[] - -• **params.tableName**: `string` - -#### Returns - -`Promise`\<`Memory`[]\> - -#### Overrides - -`DatabaseAdapter.getMemoriesByRoomIds` - -#### Defined in - -[core/src/adapters/postgres.ts:103](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L103) - -*** - -### getMemoryById() - -> **getMemoryById**(`id`): `Promise`\<`Memory`\> - -#### Parameters - -• **id**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -#### Returns - -`Promise`\<`Memory`\> - -#### Overrides - -`DatabaseAdapter.getMemoryById` - -#### Defined in - -[core/src/adapters/postgres.ts:232](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L232) - -*** - -### getParticipantsForAccount() - -> **getParticipantsForAccount**(`userId`): `Promise`\<`Participant`[]\> - -Retrieves participants associated with a specific account. - -#### Parameters - -• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the account. - -#### Returns - -`Promise`\<`Participant`[]\> - -A Promise that resolves to an array of Participant objects. - -#### Overrides - -`DatabaseAdapter.getParticipantsForAccount` - -#### Defined in - -[core/src/adapters/postgres.ts:72](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L72) - -*** - -### getParticipantsForRoom() - -> **getParticipantsForRoom**(`roomId`): `Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> - -Retrieves participants for a specific room. - -#### Parameters - -• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the room for which to retrieve participants. - -#### Returns - -`Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> - -A Promise that resolves to an array of UUIDs representing the participants. - -#### Overrides - -`DatabaseAdapter.getParticipantsForRoom` - -#### Defined in - -[core/src/adapters/postgres.ts:149](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L149) - -*** - -### getParticipantUserState() - -> **getParticipantUserState**(`roomId`, `userId`): `Promise`\<`"FOLLOWED"` \| `"MUTED"`\> - -#### Parameters - -• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -#### Returns - -`Promise`\<`"FOLLOWED"` \| `"MUTED"`\> - -#### Overrides - -`DatabaseAdapter.getParticipantUserState` - -#### Defined in - -[core/src/adapters/postgres.ts:87](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L87) - -*** - -### getRelationship() - -> **getRelationship**(`params`): `Promise`\<`Relationship`\> - -Retrieves a relationship between two users if it exists. - -#### Parameters - -• **params** - -An object containing the UUIDs of the two users (userA and userB). - -• **params.userA**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **params.userB**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -#### Returns - -`Promise`\<`Relationship`\> - -A Promise that resolves to the Relationship object or null if not found. - -#### Overrides - -`DatabaseAdapter.getRelationship` - -#### Defined in - -[core/src/adapters/postgres.ts:529](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L529) - -*** - -### getRelationships() - -> **getRelationships**(`params`): `Promise`\<`Relationship`[]\> - -Retrieves all relationships for a specific user. - -#### Parameters - -• **params** - -An object containing the UUID of the user. - -• **params.userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -#### Returns - -`Promise`\<`Relationship`[]\> - -A Promise that resolves to an array of Relationship objects. - -#### Overrides - -`DatabaseAdapter.getRelationships` - -#### Defined in - -[core/src/adapters/postgres.ts:546](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L546) - -*** - -### getRoom() - -> **getRoom**(`roomId`): `Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`\> - -Retrieves the room ID for a given room, if it exists. - -#### Parameters - -• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the room to retrieve. - -#### Returns - -`Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`\> - -A Promise that resolves to the room ID or null if not found. - -#### Overrides - -`DatabaseAdapter.getRoom` - -#### Defined in - -[core/src/adapters/postgres.ts:59](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L59) - -*** - -### getRoomsForParticipant() - -> **getRoomsForParticipant**(`userId`): `Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> - -Retrieves room IDs for which a specific user is a participant. - -#### Parameters - -• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the user. - -#### Returns - -`Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> - -A Promise that resolves to an array of room IDs. - -#### Overrides - -`DatabaseAdapter.getRoomsForParticipant` - -#### Defined in - -[core/src/adapters/postgres.ts:784](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L784) - -*** - -### getRoomsForParticipants() - -> **getRoomsForParticipants**(`userIds`): `Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> - -Retrieves room IDs for which specific users are participants. - -#### Parameters - -• **userIds**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[] - -An array of UUIDs of the users. - -#### Returns - -`Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> - -A Promise that resolves to an array of room IDs. - -#### Overrides - -`DatabaseAdapter.getRoomsForParticipants` - -#### Defined in - -[core/src/adapters/postgres.ts:797](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L797) - -*** - -### log() - -> **log**(`params`): `Promise`\<`void`\> - -Logs an event or action with the specified details. - -#### Parameters - -• **params** - -An object containing parameters for the log entry. - -• **params.body** - -• **params.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **params.type**: `string` - -• **params.userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -#### Returns - -`Promise`\<`void`\> - -A Promise that resolves when the log entry has been saved. - -#### Overrides - -`DatabaseAdapter.log` - -#### Defined in - -[core/src/adapters/postgres.ts:595](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L595) - -*** - -### removeAllGoals() - -> **removeAllGoals**(`roomId`): `Promise`\<`void`\> - -Removes all goals associated with a specific room. - -#### Parameters - -• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the room whose goals should be removed. - -#### Returns - -`Promise`\<`void`\> - -A Promise that resolves when all goals have been removed. - -#### Overrides - -`DatabaseAdapter.removeAllGoals` - -#### Defined in - -[core/src/adapters/postgres.ts:773](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L773) - -*** - -### removeAllMemories() - -> **removeAllMemories**(`roomId`, `tableName`): `Promise`\<`void`\> - -Removes all memories associated with a specific room. - -#### Parameters - -• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the room whose memories should be removed. - -• **tableName**: `string` - -The table from which the memories should be removed. - -#### Returns - -`Promise`\<`void`\> - -A Promise that resolves when all memories have been removed. - -#### Overrides - -`DatabaseAdapter.removeAllMemories` - -#### Defined in - -[core/src/adapters/postgres.ts:740](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L740) - -*** - -### removeGoal() - -> **removeGoal**(`goalId`): `Promise`\<`void`\> - -Removes a specific goal from the database. - -#### Parameters - -• **goalId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the goal to remove. - -#### Returns - -`Promise`\<`void`\> - -A Promise that resolves when the goal has been removed. - -#### Overrides - -`DatabaseAdapter.removeGoal` - -#### Defined in - -[core/src/adapters/postgres.ts:474](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L474) - -*** - -### removeMemory() - -> **removeMemory**(`memoryId`, `tableName`): `Promise`\<`void`\> - -Removes a specific memory from the database. - -#### Parameters - -• **memoryId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the memory to remove. - -• **tableName**: `string` - -The table from which the memory should be removed. - -#### Returns - -`Promise`\<`void`\> - -A Promise that resolves when the memory has been removed. - -#### Overrides - -`DatabaseAdapter.removeMemory` - -#### Defined in - -[core/src/adapters/postgres.ts:728](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L728) - -*** - -### removeParticipant() - -> **removeParticipant**(`userId`, `roomId`): `Promise`\<`boolean`\> - -Removes a user as a participant from a specific room. - -#### Parameters - -• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the user to remove as a participant. - -• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the room from which the user will be removed. - -#### Returns - -`Promise`\<`boolean`\> - -A Promise that resolves to a boolean indicating success or failure. - -#### Overrides - -`DatabaseAdapter.removeParticipant` - -#### Defined in - -[core/src/adapters/postgres.ts:697](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L697) - -*** - -### removeRoom() - -> **removeRoom**(`roomId`): `Promise`\<`void`\> - -Removes a specific room from the database. - -#### Parameters - -• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the room to remove. - -#### Returns - -`Promise`\<`void`\> - -A Promise that resolves when the room has been removed. - -#### Overrides - -`DatabaseAdapter.removeRoom` - -#### Defined in - -[core/src/adapters/postgres.ts:496](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L496) - -*** - -### searchMemories() - -> **searchMemories**(`params`): `Promise`\<`Memory`[]\> - -Searches for memories based on embeddings and other specified parameters. - -#### Parameters - -• **params** - -An object containing parameters for the memory search. - -• **params.embedding**: `number`[] - -• **params.match\_count**: `number` - -• **params.match\_threshold**: `number` - -• **params.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **params.tableName**: `string` - -• **params.unique**: `boolean` - -#### Returns - -`Promise`\<`Memory`[]\> - -A Promise that resolves to an array of Memory objects. - -#### Overrides - -`DatabaseAdapter.searchMemories` - -#### Defined in - -[core/src/adapters/postgres.ts:291](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L291) - -*** - -### searchMemoriesByEmbedding() - -> **searchMemoriesByEmbedding**(`embedding`, `params`): `Promise`\<`Memory`[]\> - -Searches for memories by embedding and other specified parameters. - -#### Parameters - -• **embedding**: `number`[] - -The embedding vector to search with. - -• **params** - -Additional parameters for the search. - -• **params.agentId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **params.count?**: `number` - -• **params.match\_threshold?**: `number` - -• **params.roomId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **params.tableName**: `string` - -• **params.unique?**: `boolean` - -#### Returns - -`Promise`\<`Memory`[]\> - -A Promise that resolves to an array of Memory objects. - -#### Overrides - -`DatabaseAdapter.searchMemoriesByEmbedding` - -#### Defined in - -[core/src/adapters/postgres.ts:612](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L612) - -*** - -### setParticipantUserState() - -> **setParticipantUserState**(`roomId`, `userId`, `state`): `Promise`\<`void`\> - -#### Parameters - -• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **state**: `"FOLLOWED"` \| `"MUTED"` - -#### Returns - -`Promise`\<`void`\> - -#### Overrides - -`DatabaseAdapter.setParticipantUserState` - -#### Defined in - -[core/src/adapters/postgres.ts:133](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L133) - -*** - -### testConnection() - -> **testConnection**(): `Promise`\<`boolean`\> - -#### Returns - -`Promise`\<`boolean`\> - -#### Defined in - -[core/src/adapters/postgres.ts:37](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L37) - -*** - -### updateGoal() - -> **updateGoal**(`goal`): `Promise`\<`void`\> - -Updates a specific goal in the database. - -#### Parameters - -• **goal**: `Goal` - -The goal object with updated properties. - -#### Returns - -`Promise`\<`void`\> - -A Promise that resolves when the goal has been updated. - -#### Overrides - -`DatabaseAdapter.updateGoal` - -#### Defined in - -[core/src/adapters/postgres.ts:437](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L437) - -*** - -### updateGoalStatus() - -> **updateGoalStatus**(`params`): `Promise`\<`void`\> - -Updates the status of a specific goal. - -#### Parameters - -• **params** - -An object containing the goalId and the new status. - -• **params.goalId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **params.status**: `GoalStatus` - -#### Returns - -`Promise`\<`void`\> - -A Promise that resolves when the goal status has been updated. - -#### Overrides - -`DatabaseAdapter.updateGoalStatus` - -#### Defined in - -[core/src/adapters/postgres.ts:713](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/postgres.ts#L713) diff --git a/docs/docs/api/classes/SqliteDatabaseAdapter.md b/docs/docs/api/classes/SqliteDatabaseAdapter.md deleted file mode 100644 index 08f638e023b..00000000000 --- a/docs/docs/api/classes/SqliteDatabaseAdapter.md +++ /dev/null @@ -1,1097 +0,0 @@ -# Class: SqliteDatabaseAdapter - -## Extends - -- `DatabaseAdapter` - -## Constructors - -### new SqliteDatabaseAdapter() - -> **new SqliteDatabaseAdapter**(`db`): [`SqliteDatabaseAdapter`](SqliteDatabaseAdapter.md) - -#### Parameters - -• **db**: `Database` - -#### Returns - -[`SqliteDatabaseAdapter`](SqliteDatabaseAdapter.md) - -#### Overrides - -`DatabaseAdapter.constructor` - -#### Defined in - -[core/src/adapters/sqlite.ts:70](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L70) - -## Properties - -### db - -> **db**: `any` - -The database instance. - -#### Inherited from - -`DatabaseAdapter.db` - -#### Defined in - -[core/src/core/database.ts:21](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/core/database.ts#L21) - -## Methods - -### addParticipant() - -> **addParticipant**(`userId`, `roomId`): `Promise`\<`boolean`\> - -Adds a user as a participant to a specific room. - -#### Parameters - -• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the user to add as a participant. - -• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the room to which the user will be added. - -#### Returns - -`Promise`\<`boolean`\> - -A Promise that resolves to a boolean indicating success or failure. - -#### Overrides - -`DatabaseAdapter.addParticipant` - -#### Defined in - -[core/src/adapters/sqlite.ts:592](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L592) - -*** - -### countMemories() - -> **countMemories**(`roomId`, `unique`, `tableName`): `Promise`\<`number`\> - -Counts the number of memories in a specific room. - -#### Parameters - -• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the room for which to count memories. - -• **unique**: `boolean` = `true` - -Specifies whether to count only unique memories. - -• **tableName**: `string` = `""` - -Optional table name to count memories from. - -#### Returns - -`Promise`\<`number`\> - -A Promise that resolves to the number of memories. - -#### Overrides - -`DatabaseAdapter.countMemories` - -#### Defined in - -[core/src/adapters/sqlite.ts:465](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L465) - -*** - -### createAccount() - -> **createAccount**(`account`): `Promise`\<`boolean`\> - -Creates a new account in the database. - -#### Parameters - -• **account**: `Account` - -The account object to create. - -#### Returns - -`Promise`\<`boolean`\> - -A Promise that resolves when the account creation is complete. - -#### Overrides - -`DatabaseAdapter.createAccount` - -#### Defined in - -[core/src/adapters/sqlite.ts:102](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L102) - -*** - -### createGoal() - -> **createGoal**(`goal`): `Promise`\<`void`\> - -Creates a new goal in the database. - -#### Parameters - -• **goal**: `Goal` - -The goal object to create. - -#### Returns - -`Promise`\<`void`\> - -A Promise that resolves when the goal has been created. - -#### Overrides - -`DatabaseAdapter.createGoal` - -#### Defined in - -[core/src/adapters/sqlite.ts:532](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L532) - -*** - -### createMemory() - -> **createMemory**(`memory`, `tableName`): `Promise`\<`void`\> - -Creates a new memory in the database. - -#### Parameters - -• **memory**: `Memory` - -The memory object to create. - -• **tableName**: `string` - -The table where the memory should be stored. - -#### Returns - -`Promise`\<`void`\> - -A Promise that resolves when the memory has been created. - -#### Overrides - -`DatabaseAdapter.createMemory` - -#### Defined in - -[core/src/adapters/sqlite.ts:196](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L196) - -*** - -### createRelationship() - -> **createRelationship**(`params`): `Promise`\<`boolean`\> - -Creates a new relationship between two users. - -#### Parameters - -• **params** - -An object containing the UUIDs of the two users (userA and userB). - -• **params.userA**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **params.userB**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -#### Returns - -`Promise`\<`boolean`\> - -A Promise that resolves to a boolean indicating success or failure of the creation. - -#### Overrides - -`DatabaseAdapter.createRelationship` - -#### Defined in - -[core/src/adapters/sqlite.ts:616](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L616) - -*** - -### createRoom() - -> **createRoom**(`roomId`?): `Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`\> - -Creates a new room with an optional specified ID. - -#### Parameters - -• **roomId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -Optional UUID to assign to the new room. - -#### Returns - -`Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`\> - -A Promise that resolves to the UUID of the created room. - -#### Overrides - -`DatabaseAdapter.createRoom` - -#### Defined in - -[core/src/adapters/sqlite.ts:557](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L557) - -*** - -### getAccountById() - -> **getAccountById**(`userId`): `Promise`\<`Account`\> - -Retrieves an account by its ID. - -#### Parameters - -• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the user account to retrieve. - -#### Returns - -`Promise`\<`Account`\> - -A Promise that resolves to the Account object or null if not found. - -#### Overrides - -`DatabaseAdapter.getAccountById` - -#### Defined in - -[core/src/adapters/sqlite.ts:88](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L88) - -*** - -### getActorDetails() - -> **getActorDetails**(`params`): `Promise`\<`Actor`[]\> - -Retrieves details of actors in a given room. - -#### Parameters - -• **params** - -An object containing the roomId to search for actors. - -• **params.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -#### Returns - -`Promise`\<`Actor`[]\> - -A Promise that resolves to an array of Actor objects. - -#### Overrides - -`DatabaseAdapter.getActorDetails` - -#### Defined in - -[core/src/adapters/sqlite.ts:123](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L123) - -*** - -### getCachedEmbeddings() - -> **getCachedEmbeddings**(`opts`): `Promise`\<`object`[]\> - -Retrieves cached embeddings based on the specified query parameters. - -#### Parameters - -• **opts** - -• **opts.query\_field\_name**: `string` - -• **opts.query\_field\_sub\_name**: `string` - -• **opts.query\_input**: `string` - -• **opts.query\_match\_count**: `number` - -• **opts.query\_table\_name**: `string` - -• **opts.query\_threshold**: `number` - -#### Returns - -`Promise`\<`object`[]\> - -A Promise that resolves to an array of objects containing embeddings and levenshtein scores. - -#### Overrides - -`DatabaseAdapter.getCachedEmbeddings` - -#### Defined in - -[core/src/adapters/sqlite.ts:336](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L336) - -*** - -### getGoals() - -> **getGoals**(`params`): `Promise`\<`Goal`[]\> - -Retrieves goals based on specified parameters. - -#### Parameters - -• **params** - -An object containing parameters for goal retrieval. - -• **params.count?**: `number` - -• **params.onlyInProgress?**: `boolean` - -• **params.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **params.userId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -#### Returns - -`Promise`\<`Goal`[]\> - -A Promise that resolves to an array of Goal objects. - -#### Overrides - -`DatabaseAdapter.getGoals` - -#### Defined in - -[core/src/adapters/sqlite.ts:485](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L485) - -*** - -### getMemories() - -> **getMemories**(`params`): `Promise`\<`Memory`[]\> - -Retrieves memories based on the specified parameters. - -#### Parameters - -• **params** - -An object containing parameters for the memory retrieval. - -• **params.agentId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **params.count?**: `number` - -• **params.end?**: `number` - -• **params.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **params.start?**: `number` - -• **params.tableName**: `string` - -• **params.unique?**: `boolean` - -#### Returns - -`Promise`\<`Memory`[]\> - -A Promise that resolves to an array of Memory objects. - -#### Overrides - -`DatabaseAdapter.getMemories` - -#### Defined in - -[core/src/adapters/sqlite.ts:398](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L398) - -*** - -### getMemoriesByRoomIds() - -> **getMemoriesByRoomIds**(`params`): `Promise`\<`Memory`[]\> - -#### Parameters - -• **params** - -• **params.agentId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **params.roomIds**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[] - -• **params.tableName**: `string` - -#### Returns - -`Promise`\<`Memory`[]\> - -#### Overrides - -`DatabaseAdapter.getMemoriesByRoomIds` - -#### Defined in - -[core/src/adapters/sqlite.ts:150](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L150) - -*** - -### getMemoryById() - -> **getMemoryById**(`memoryId`): `Promise`\<`Memory`\> - -#### Parameters - -• **memoryId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -#### Returns - -`Promise`\<`Memory`\> - -#### Overrides - -`DatabaseAdapter.getMemoryById` - -#### Defined in - -[core/src/adapters/sqlite.ts:180](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L180) - -*** - -### getParticipantsForAccount() - -> **getParticipantsForAccount**(`userId`): `Promise`\<`Participant`[]\> - -Retrieves participants associated with a specific account. - -#### Parameters - -• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the account. - -#### Returns - -`Promise`\<`Participant`[]\> - -A Promise that resolves to an array of Participant objects. - -#### Overrides - -`DatabaseAdapter.getParticipantsForAccount` - -#### Defined in - -[core/src/adapters/sqlite.ts:30](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L30) - -*** - -### getParticipantsForRoom() - -> **getParticipantsForRoom**(`roomId`): `Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> - -Retrieves participants for a specific room. - -#### Parameters - -• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the room for which to retrieve participants. - -#### Returns - -`Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> - -A Promise that resolves to an array of UUIDs representing the participants. - -#### Overrides - -`DatabaseAdapter.getParticipantsForRoom` - -#### Defined in - -[core/src/adapters/sqlite.ts:40](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L40) - -*** - -### getParticipantUserState() - -> **getParticipantUserState**(`roomId`, `userId`): `Promise`\<`"FOLLOWED"` \| `"MUTED"`\> - -#### Parameters - -• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -#### Returns - -`Promise`\<`"FOLLOWED"` \| `"MUTED"`\> - -#### Overrides - -`DatabaseAdapter.getParticipantUserState` - -#### Defined in - -[core/src/adapters/sqlite.ts:46](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L46) - -*** - -### getRelationship() - -> **getRelationship**(`params`): `Promise`\<`Relationship`\> - -Retrieves a relationship between two users if it exists. - -#### Parameters - -• **params** - -An object containing the UUIDs of the two users (userA and userB). - -• **params.userA**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **params.userB**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -#### Returns - -`Promise`\<`Relationship`\> - -A Promise that resolves to the Relationship object or null if not found. - -#### Overrides - -`DatabaseAdapter.getRelationship` - -#### Defined in - -[core/src/adapters/sqlite.ts:631](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L631) - -*** - -### getRelationships() - -> **getRelationships**(`params`): `Promise`\<`Relationship`[]\> - -Retrieves all relationships for a specific user. - -#### Parameters - -• **params** - -An object containing the UUID of the user. - -• **params.userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -#### Returns - -`Promise`\<`Relationship`[]\> - -A Promise that resolves to an array of Relationship objects. - -#### Overrides - -`DatabaseAdapter.getRelationships` - -#### Defined in - -[core/src/adapters/sqlite.ts:649](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L649) - -*** - -### getRoom() - -> **getRoom**(`roomId`): `Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`\> - -Retrieves the room ID for a given room, if it exists. - -#### Parameters - -• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the room to retrieve. - -#### Returns - -`Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`\> - -A Promise that resolves to the room ID or null if not found. - -#### Overrides - -`DatabaseAdapter.getRoom` - -#### Defined in - -[core/src/adapters/sqlite.ts:22](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L22) - -*** - -### getRoomsForParticipant() - -> **getRoomsForParticipant**(`userId`): `Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> - -Retrieves room IDs for which a specific user is a participant. - -#### Parameters - -• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the user. - -#### Returns - -`Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> - -A Promise that resolves to an array of room IDs. - -#### Overrides - -`DatabaseAdapter.getRoomsForParticipant` - -#### Defined in - -[core/src/adapters/sqlite.ts:573](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L573) - -*** - -### getRoomsForParticipants() - -> **getRoomsForParticipants**(`userIds`): `Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> - -Retrieves room IDs for which specific users are participants. - -#### Parameters - -• **userIds**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[] - -An array of UUIDs of the users. - -#### Returns - -`Promise`\<\`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\`[]\> - -A Promise that resolves to an array of room IDs. - -#### Overrides - -`DatabaseAdapter.getRoomsForParticipants` - -#### Defined in - -[core/src/adapters/sqlite.ts:579](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L579) - -*** - -### log() - -> **log**(`params`): `Promise`\<`void`\> - -Logs an event or action with the specified details. - -#### Parameters - -• **params** - -An object containing parameters for the log entry. - -• **params.body** - -• **params.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **params.type**: `string` - -• **params.userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -#### Returns - -`Promise`\<`void`\> - -A Promise that resolves when the log entry has been saved. - -#### Overrides - -`DatabaseAdapter.log` - -#### Defined in - -[core/src/adapters/sqlite.ts:380](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L380) - -*** - -### removeAllGoals() - -> **removeAllGoals**(`roomId`): `Promise`\<`void`\> - -Removes all goals associated with a specific room. - -#### Parameters - -• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the room whose goals should be removed. - -#### Returns - -`Promise`\<`void`\> - -A Promise that resolves when all goals have been removed. - -#### Overrides - -`DatabaseAdapter.removeAllGoals` - -#### Defined in - -[core/src/adapters/sqlite.ts:552](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L552) - -*** - -### removeAllMemories() - -> **removeAllMemories**(`roomId`, `tableName`): `Promise`\<`void`\> - -Removes all memories associated with a specific room. - -#### Parameters - -• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the room whose memories should be removed. - -• **tableName**: `string` - -The table from which the memories should be removed. - -#### Returns - -`Promise`\<`void`\> - -A Promise that resolves when all memories have been removed. - -#### Overrides - -`DatabaseAdapter.removeAllMemories` - -#### Defined in - -[core/src/adapters/sqlite.ts:460](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L460) - -*** - -### removeGoal() - -> **removeGoal**(`goalId`): `Promise`\<`void`\> - -Removes a specific goal from the database. - -#### Parameters - -• **goalId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the goal to remove. - -#### Returns - -`Promise`\<`void`\> - -A Promise that resolves when the goal has been removed. - -#### Overrides - -`DatabaseAdapter.removeGoal` - -#### Defined in - -[core/src/adapters/sqlite.ts:547](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L547) - -*** - -### removeMemory() - -> **removeMemory**(`memoryId`, `tableName`): `Promise`\<`void`\> - -Removes a specific memory from the database. - -#### Parameters - -• **memoryId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the memory to remove. - -• **tableName**: `string` - -The table from which the memory should be removed. - -#### Returns - -`Promise`\<`void`\> - -A Promise that resolves when the memory has been removed. - -#### Overrides - -`DatabaseAdapter.removeMemory` - -#### Defined in - -[core/src/adapters/sqlite.ts:455](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L455) - -*** - -### removeParticipant() - -> **removeParticipant**(`userId`, `roomId`): `Promise`\<`boolean`\> - -Removes a user as a participant from a specific room. - -#### Parameters - -• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the user to remove as a participant. - -• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the room from which the user will be removed. - -#### Returns - -`Promise`\<`boolean`\> - -A Promise that resolves to a boolean indicating success or failure. - -#### Overrides - -`DatabaseAdapter.removeParticipant` - -#### Defined in - -[core/src/adapters/sqlite.ts:604](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L604) - -*** - -### removeRoom() - -> **removeRoom**(`roomId`): `Promise`\<`void`\> - -Removes a specific room from the database. - -#### Parameters - -• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -The UUID of the room to remove. - -#### Returns - -`Promise`\<`void`\> - -A Promise that resolves when the room has been removed. - -#### Overrides - -`DatabaseAdapter.removeRoom` - -#### Defined in - -[core/src/adapters/sqlite.ts:568](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L568) - -*** - -### searchMemories() - -> **searchMemories**(`params`): `Promise`\<`Memory`[]\> - -Searches for memories based on embeddings and other specified parameters. - -#### Parameters - -• **params** - -An object containing parameters for the memory search. - -• **params.agentId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **params.embedding**: `number`[] - -• **params.match\_count**: `number` - -• **params.match\_threshold**: `number` - -• **params.roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **params.tableName**: `string` - -• **params.unique**: `boolean` - -#### Returns - -`Promise`\<`Memory`[]\> - -A Promise that resolves to an array of Memory objects. - -#### Overrides - -`DatabaseAdapter.searchMemories` - -#### Defined in - -[core/src/adapters/sqlite.ts:236](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L236) - -*** - -### searchMemoriesByEmbedding() - -> **searchMemoriesByEmbedding**(`embedding`, `params`): `Promise`\<`Memory`[]\> - -Searches for memories by embedding and other specified parameters. - -#### Parameters - -• **embedding**: `number`[] - -The embedding vector to search with. - -• **params** - -Additional parameters for the search. - -• **params.agentId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **params.count?**: `number` - -• **params.match\_threshold?**: `number` - -• **params.roomId?**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **params.tableName**: `string` - -• **params.unique?**: `boolean` - -#### Returns - -`Promise`\<`Memory`[]\> - -A Promise that resolves to an array of Memory objects. - -#### Overrides - -`DatabaseAdapter.searchMemoriesByEmbedding` - -#### Defined in - -[core/src/adapters/sqlite.ts:282](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L282) - -*** - -### setParticipantUserState() - -> **setParticipantUserState**(`roomId`, `userId`, `state`): `Promise`\<`void`\> - -#### Parameters - -• **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **state**: `"FOLLOWED"` \| `"MUTED"` - -#### Returns - -`Promise`\<`void`\> - -#### Overrides - -`DatabaseAdapter.setParticipantUserState` - -#### Defined in - -[core/src/adapters/sqlite.ts:59](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L59) - -*** - -### updateGoal() - -> **updateGoal**(`goal`): `Promise`\<`void`\> - -Updates a specific goal in the database. - -#### Parameters - -• **goal**: `Goal` - -The goal object with updated properties. - -#### Returns - -`Promise`\<`void`\> - -A Promise that resolves when the goal has been updated. - -#### Overrides - -`DatabaseAdapter.updateGoal` - -#### Defined in - -[core/src/adapters/sqlite.ts:519](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L519) - -*** - -### updateGoalStatus() - -> **updateGoalStatus**(`params`): `Promise`\<`void`\> - -Updates the status of a specific goal. - -#### Parameters - -• **params** - -An object containing the goalId and the new status. - -• **params.goalId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -• **params.status**: `GoalStatus` - -#### Returns - -`Promise`\<`void`\> - -A Promise that resolves when the goal status has been updated. - -#### Overrides - -`DatabaseAdapter.updateGoalStatus` - -#### Defined in - -[core/src/adapters/sqlite.ts:372](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/adapters/sqlite.ts#L372) diff --git a/docs/docs/api/classes/TelegramClient.md b/docs/docs/api/classes/TelegramClient.md deleted file mode 100644 index 026df0017f1..00000000000 --- a/docs/docs/api/classes/TelegramClient.md +++ /dev/null @@ -1,49 +0,0 @@ -# Class: TelegramClient - -## Constructors - -### new TelegramClient() - -> **new TelegramClient**(`runtime`, `botToken`): [`TelegramClient`](TelegramClient.md) - -#### Parameters - -• **runtime**: `IAgentRuntime` - -• **botToken**: `string` - -#### Returns - -[`TelegramClient`](TelegramClient.md) - -#### Defined in - -[core/src/clients/telegram/src/index.ts:12](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/telegram/src/index.ts#L12) - -## Methods - -### start() - -> **start**(): `Promise`\<`void`\> - -#### Returns - -`Promise`\<`void`\> - -#### Defined in - -[core/src/clients/telegram/src/index.ts:57](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/telegram/src/index.ts#L57) - -*** - -### stop() - -> **stop**(): `Promise`\<`void`\> - -#### Returns - -`Promise`\<`void`\> - -#### Defined in - -[core/src/clients/telegram/src/index.ts:94](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/telegram/src/index.ts#L94) diff --git a/docs/docs/api/classes/TokenProvider.md b/docs/docs/api/classes/TokenProvider.md deleted file mode 100644 index 8ccc546fe12..00000000000 --- a/docs/docs/api/classes/TokenProvider.md +++ /dev/null @@ -1,193 +0,0 @@ -# Class: TokenProvider - -## Constructors - -### new TokenProvider() - -> **new TokenProvider**(`tokenAddress`): [`TokenProvider`](TokenProvider.md) - -#### Parameters - -• **tokenAddress**: `string` - -#### Returns - -[`TokenProvider`](TokenProvider.md) - -#### Defined in - -[core/src/providers/token.ts:38](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/providers/token.ts#L38) - -## Methods - -### analyzeHolderDistribution() - -> **analyzeHolderDistribution**(`tradeData`): `Promise`\<`string`\> - -#### Parameters - -• **tradeData**: `TokenTradeData` - -#### Returns - -`Promise`\<`string`\> - -#### Defined in - -[core/src/providers/token.ts:461](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/providers/token.ts#L461) - -*** - -### checkRecentTrades() - -> **checkRecentTrades**(`tradeData`): `Promise`\<`boolean`\> - -#### Parameters - -• **tradeData**: `TokenTradeData` - -#### Returns - -`Promise`\<`boolean`\> - -#### Defined in - -[core/src/providers/token.ts:629](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/providers/token.ts#L629) - -*** - -### countHighSupplyHolders() - -> **countHighSupplyHolders**(`securityData`): `Promise`\<`number`\> - -#### Parameters - -• **securityData**: `TokenSecurityData` - -#### Returns - -`Promise`\<`number`\> - -#### Defined in - -[core/src/providers/token.ts:633](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/providers/token.ts#L633) - -*** - -### fetchDexScreenerData() - -> **fetchDexScreenerData**(): `Promise`\<`DexScreenerData`\> - -#### Returns - -`Promise`\<`DexScreenerData`\> - -#### Defined in - -[core/src/providers/token.ts:420](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/providers/token.ts#L420) - -*** - -### fetchHolderList() - -> **fetchHolderList**(): `Promise`\<`HolderData`[]\> - -#### Returns - -`Promise`\<`HolderData`[]\> - -#### Defined in - -[core/src/providers/token.ts:507](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/providers/token.ts#L507) - -*** - -### fetchTokenSecurity() - -> **fetchTokenSecurity**(): `Promise`\<`TokenSecurityData`\> - -#### Returns - -`Promise`\<`TokenSecurityData`\> - -#### Defined in - -[core/src/providers/token.ts:155](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/providers/token.ts#L155) - -*** - -### fetchTokenTradeData() - -> **fetchTokenTradeData**(): `Promise`\<`TokenTradeData`\> - -#### Returns - -`Promise`\<`TokenTradeData`\> - -#### Defined in - -[core/src/providers/token.ts:185](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/providers/token.ts#L185) - -*** - -### filterHighValueHolders() - -> **filterHighValueHolders**(`tradeData`): `Promise`\<`object`[]\> - -#### Parameters - -• **tradeData**: `TokenTradeData` - -#### Returns - -`Promise`\<`object`[]\> - -#### Defined in - -[core/src/providers/token.ts:607](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/providers/token.ts#L607) - -*** - -### formatTokenData() - -> **formatTokenData**(`data`): `string` - -#### Parameters - -• **data**: `ProcessedTokenData` - -#### Returns - -`string` - -#### Defined in - -[core/src/providers/token.ts:720](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/providers/token.ts#L720) - -*** - -### getFormattedTokenReport() - -> **getFormattedTokenReport**(): `Promise`\<`string`\> - -#### Returns - -`Promise`\<`string`\> - -#### Defined in - -[core/src/providers/token.ts:784](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/providers/token.ts#L784) - -*** - -### getProcessedTokenData() - -> **getProcessedTokenData**(): `Promise`\<`ProcessedTokenData`\> - -#### Returns - -`Promise`\<`ProcessedTokenData`\> - -#### Defined in - -[core/src/providers/token.ts:654](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/providers/token.ts#L654) diff --git a/docs/docs/api/classes/TwitterGenerationClient.md b/docs/docs/api/classes/TwitterGenerationClient.md deleted file mode 100644 index d027f49e9d4..00000000000 --- a/docs/docs/api/classes/TwitterGenerationClient.md +++ /dev/null @@ -1,1798 +0,0 @@ -# Class: TwitterGenerationClient - -## Extends - -- `ClientBase` - -## Constructors - -### new TwitterGenerationClient() - -> **new TwitterGenerationClient**(`runtime`): [`TwitterGenerationClient`](TwitterGenerationClient.md) - -#### Parameters - -• **runtime**: `IAgentRuntime` - -#### Returns - -[`TwitterGenerationClient`](TwitterGenerationClient.md) - -#### Overrides - -`ClientBase.constructor` - -#### Defined in - -[core/src/clients/twitter/generate.ts:42](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/generate.ts#L42) - -## Properties - -### callback() - -> **callback**: (`self`) => `any` = `null` - -#### Parameters - -• **self**: `ClientBase` - -#### Returns - -`any` - -#### Inherited from - -`ClientBase.callback` - -#### Defined in - -[core/src/clients/twitter/base.ts:151](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L151) - -*** - -### directions - -> **directions**: `string` - -#### Inherited from - -`ClientBase.directions` - -#### Defined in - -[core/src/clients/twitter/base.ts:89](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L89) - -*** - -### dryRun - -> **dryRun**: `boolean` = `false` - -#### Inherited from - -`ClientBase.dryRun` - -#### Defined in - -[core/src/clients/twitter/base.ts:94](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L94) - -*** - -### imageDescriptionService - -> **imageDescriptionService**: `ImageDescriptionService` - -#### Inherited from - -`ClientBase.imageDescriptionService` - -#### Defined in - -[core/src/clients/twitter/base.ts:92](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L92) - -*** - -### lastCheckedTweetId - -> **lastCheckedTweetId**: `number` = `null` - -#### Inherited from - -`ClientBase.lastCheckedTweetId` - -#### Defined in - -[core/src/clients/twitter/base.ts:90](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L90) - -*** - -### requestQueue - -> **requestQueue**: `RequestQueue` - -#### Inherited from - -`ClientBase.requestQueue` - -#### Defined in - -[core/src/clients/twitter/base.ts:97](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L97) - -*** - -### runtime - -> **runtime**: `IAgentRuntime` - -#### Inherited from - -`ClientBase.runtime` - -#### Defined in - -[core/src/clients/twitter/base.ts:88](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L88) - -*** - -### temperature - -> **temperature**: `number` = `0.5` - -#### Inherited from - -`ClientBase.temperature` - -#### Defined in - -[core/src/clients/twitter/base.ts:93](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L93) - -*** - -### tweetCacheFilePath - -> **tweetCacheFilePath**: `string` = `"tweetcache/latest_checked_tweet_id.txt"` - -#### Inherited from - -`ClientBase.tweetCacheFilePath` - -#### Defined in - -[core/src/clients/twitter/base.ts:91](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L91) - -*** - -### twitterClient - -> **twitterClient**: `Scraper` - -#### Inherited from - -`ClientBase.twitterClient` - -#### Defined in - -[core/src/clients/twitter/base.ts:87](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L87) - -*** - -### twitterUserId - -> **twitterUserId**: `string` - -#### Inherited from - -`ClientBase.twitterUserId` - -#### Defined in - -[core/src/clients/twitter/base.ts:98](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L98) - -*** - -### \_twitterClient - -> `static` **\_twitterClient**: `Scraper` - -#### Inherited from - -`ClientBase._twitterClient` - -#### Defined in - -[core/src/clients/twitter/base.ts:86](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L86) - -*** - -### captureRejections - -> `static` **captureRejections**: `boolean` - -Value: [boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) - -Change the default `captureRejections` option on all new `EventEmitter` objects. - -#### Since - -v13.4.0, v12.16.0 - -#### Inherited from - -`ClientBase.captureRejections` - -#### Defined in - -node\_modules/@types/node/events.d.ts:459 - -*** - -### captureRejectionSymbol - -> `readonly` `static` **captureRejectionSymbol**: *typeof* [`captureRejectionSymbol`](TwitterGenerationClient.md#capturerejectionsymbol) - -Value: `Symbol.for('nodejs.rejection')` - -See how to write a custom `rejection handler`. - -#### Since - -v13.4.0, v12.16.0 - -#### Inherited from - -`ClientBase.captureRejectionSymbol` - -#### Defined in - -node\_modules/@types/node/events.d.ts:452 - -*** - -### defaultMaxListeners - -> `static` **defaultMaxListeners**: `number` - -By default, a maximum of `10` listeners can be registered for any single -event. This limit can be changed for individual `EventEmitter` instances -using the `emitter.setMaxListeners(n)` method. To change the default -for _all_`EventEmitter` instances, the `events.defaultMaxListeners` property -can be used. If this value is not a positive number, a `RangeError` is thrown. - -Take caution when setting the `events.defaultMaxListeners` because the -change affects _all_ `EventEmitter` instances, including those created before -the change is made. However, calling `emitter.setMaxListeners(n)` still has -precedence over `events.defaultMaxListeners`. - -This is not a hard limit. The `EventEmitter` instance will allow -more listeners to be added but will output a trace warning to stderr indicating -that a "possible EventEmitter memory leak" has been detected. For any single -`EventEmitter`, the `emitter.getMaxListeners()` and `emitter.setMaxListeners()` methods can be used to -temporarily avoid this warning: - -```js -import { EventEmitter } from 'node:events'; -const emitter = new EventEmitter(); -emitter.setMaxListeners(emitter.getMaxListeners() + 1); -emitter.once('event', () => { - // do stuff - emitter.setMaxListeners(Math.max(emitter.getMaxListeners() - 1, 0)); -}); -``` - -The `--trace-warnings` command-line flag can be used to display the -stack trace for such warnings. - -The emitted warning can be inspected with `process.on('warning')` and will -have the additional `emitter`, `type`, and `count` properties, referring to -the event emitter instance, the event's name and the number of attached -listeners, respectively. -Its `name` property is set to `'MaxListenersExceededWarning'`. - -#### Since - -v0.11.2 - -#### Inherited from - -`ClientBase.defaultMaxListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:498 - -*** - -### errorMonitor - -> `readonly` `static` **errorMonitor**: *typeof* [`errorMonitor`](TwitterGenerationClient.md#errormonitor) - -This symbol shall be used to install a listener for only monitoring `'error'` events. Listeners installed using this symbol are called before the regular `'error'` listeners are called. - -Installing a listener using this symbol does not change the behavior once an `'error'` event is emitted. Therefore, the process will still crash if no -regular `'error'` listener is installed. - -#### Since - -v13.6.0, v12.17.0 - -#### Inherited from - -`ClientBase.errorMonitor` - -#### Defined in - -node\_modules/@types/node/events.d.ts:445 - -## Methods - -### \[captureRejectionSymbol\]()? - -> `optional` **\[captureRejectionSymbol\]**\<`K`\>(`error`, `event`, ...`args`): `void` - -#### Type Parameters - -• **K** - -#### Parameters - -• **error**: `Error` - -• **event**: `string` \| `symbol` - -• ...**args**: `AnyRest` - -#### Returns - -`void` - -#### Inherited from - -`ClientBase.[captureRejectionSymbol]` - -#### Defined in - -node\_modules/@types/node/events.d.ts:136 - -*** - -### addListener() - -> **addListener**\<`K`\>(`eventName`, `listener`): `this` - -Alias for `emitter.on(eventName, listener)`. - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -• **listener** - -#### Returns - -`this` - -#### Since - -v0.1.26 - -#### Inherited from - -`ClientBase.addListener` - -#### Defined in - -node\_modules/@types/node/events.d.ts:597 - -*** - -### cacheTweet() - -> **cacheTweet**(`tweet`): `Promise`\<`void`\> - -#### Parameters - -• **tweet**: `Tweet` - -#### Returns - -`Promise`\<`void`\> - -#### Inherited from - -`ClientBase.cacheTweet` - -#### Defined in - -[core/src/clients/twitter/base.ts:100](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L100) - -*** - -### emit() - -> **emit**\<`K`\>(`eventName`, ...`args`): `boolean` - -Synchronously calls each of the listeners registered for the event named `eventName`, in the order they were registered, passing the supplied arguments -to each. - -Returns `true` if the event had listeners, `false` otherwise. - -```js -import { EventEmitter } from 'node:events'; -const myEmitter = new EventEmitter(); - -// First listener -myEmitter.on('event', function firstListener() { - console.log('Helloooo! first listener'); -}); -// Second listener -myEmitter.on('event', function secondListener(arg1, arg2) { - console.log(`event with parameters ${arg1}, ${arg2} in second listener`); -}); -// Third listener -myEmitter.on('event', function thirdListener(...args) { - const parameters = args.join(', '); - console.log(`event with parameters ${parameters} in third listener`); -}); - -console.log(myEmitter.listeners('event')); - -myEmitter.emit('event', 1, 2, 3, 4, 5); - -// Prints: -// [ -// [Function: firstListener], -// [Function: secondListener], -// [Function: thirdListener] -// ] -// Helloooo! first listener -// event with parameters 1, 2 in second listener -// event with parameters 1, 2, 3, 4, 5 in third listener -``` - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -• ...**args**: `AnyRest` - -#### Returns - -`boolean` - -#### Since - -v0.1.26 - -#### Inherited from - -`ClientBase.emit` - -#### Defined in - -node\_modules/@types/node/events.d.ts:859 - -*** - -### eventNames() - -> **eventNames**(): (`string` \| `symbol`)[] - -Returns an array listing the events for which the emitter has registered -listeners. The values in the array are strings or `Symbol`s. - -```js -import { EventEmitter } from 'node:events'; - -const myEE = new EventEmitter(); -myEE.on('foo', () => {}); -myEE.on('bar', () => {}); - -const sym = Symbol('symbol'); -myEE.on(sym, () => {}); - -console.log(myEE.eventNames()); -// Prints: [ 'foo', 'bar', Symbol(symbol) ] -``` - -#### Returns - -(`string` \| `symbol`)[] - -#### Since - -v6.0.0 - -#### Inherited from - -`ClientBase.eventNames` - -#### Defined in - -node\_modules/@types/node/events.d.ts:922 - -*** - -### fetchHomeTimeline() - -> **fetchHomeTimeline**(`count`): `Promise`\<`Tweet`[]\> - -#### Parameters - -• **count**: `number` - -#### Returns - -`Promise`\<`Tweet`[]\> - -#### Inherited from - -`ClientBase.fetchHomeTimeline` - -#### Defined in - -[core/src/clients/twitter/base.ts:281](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L281) - -*** - -### fetchSearchTweets() - -> **fetchSearchTweets**(`query`, `maxTweets`, `searchMode`, `cursor`?): `Promise`\<`QueryTweetsResponse`\> - -#### Parameters - -• **query**: `string` - -• **maxTweets**: `number` - -• **searchMode**: `SearchMode` - -• **cursor?**: `string` - -#### Returns - -`Promise`\<`QueryTweetsResponse`\> - -#### Inherited from - -`ClientBase.fetchSearchTweets` - -#### Defined in - -[core/src/clients/twitter/base.ts:333](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L333) - -*** - -### getCachedTweet() - -> **getCachedTweet**(`tweetId`): `Promise`\<`Tweet`\> - -#### Parameters - -• **tweetId**: `string` - -#### Returns - -`Promise`\<`Tweet`\> - -#### Inherited from - -`ClientBase.getCachedTweet` - -#### Defined in - -[core/src/clients/twitter/base.ts:116](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L116) - -*** - -### getMaxListeners() - -> **getMaxListeners**(): `number` - -Returns the current max listener value for the `EventEmitter` which is either -set by `emitter.setMaxListeners(n)` or defaults to [defaultMaxListeners](TwitterGenerationClient.md#defaultmaxlisteners). - -#### Returns - -`number` - -#### Since - -v1.0.0 - -#### Inherited from - -`ClientBase.getMaxListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:774 - -*** - -### getTweet() - -> **getTweet**(`tweetId`): `Promise`\<`Tweet`\> - -#### Parameters - -• **tweetId**: `string` - -#### Returns - -`Promise`\<`Tweet`\> - -#### Inherited from - -`ClientBase.getTweet` - -#### Defined in - -[core/src/clients/twitter/base.ts:138](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L138) - -*** - -### listenerCount() - -> **listenerCount**\<`K`\>(`eventName`, `listener`?): `number` - -Returns the number of listeners listening for the event named `eventName`. -If `listener` is provided, it will return how many times the listener is found -in the list of the listeners of the event. - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -The name of the event being listened for - -• **listener?**: `Function` - -The event handler function - -#### Returns - -`number` - -#### Since - -v3.2.0 - -#### Inherited from - -`ClientBase.listenerCount` - -#### Defined in - -node\_modules/@types/node/events.d.ts:868 - -*** - -### listeners() - -> **listeners**\<`K`\>(`eventName`): `Function`[] - -Returns a copy of the array of listeners for the event named `eventName`. - -```js -server.on('connection', (stream) => { - console.log('someone connected!'); -}); -console.log(util.inspect(server.listeners('connection'))); -// Prints: [ [Function] ] -``` - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -#### Returns - -`Function`[] - -#### Since - -v0.1.26 - -#### Inherited from - -`ClientBase.listeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:787 - -*** - -### off() - -> **off**\<`K`\>(`eventName`, `listener`): `this` - -Alias for `emitter.removeListener()`. - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -• **listener** - -#### Returns - -`this` - -#### Since - -v10.0.0 - -#### Inherited from - -`ClientBase.off` - -#### Defined in - -node\_modules/@types/node/events.d.ts:747 - -*** - -### on() - -> **on**\<`K`\>(`eventName`, `listener`): `this` - -Adds the `listener` function to the end of the listeners array for the event -named `eventName`. No checks are made to see if the `listener` has already -been added. Multiple calls passing the same combination of `eventName` and -`listener` will result in the `listener` being added, and called, multiple times. - -```js -server.on('connection', (stream) => { - console.log('someone connected!'); -}); -``` - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -By default, event listeners are invoked in the order they are added. The `emitter.prependListener()` method can be used as an alternative to add the -event listener to the beginning of the listeners array. - -```js -import { EventEmitter } from 'node:events'; -const myEE = new EventEmitter(); -myEE.on('foo', () => console.log('a')); -myEE.prependListener('foo', () => console.log('b')); -myEE.emit('foo'); -// Prints: -// b -// a -``` - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -The name of the event. - -• **listener** - -The callback function - -#### Returns - -`this` - -#### Since - -v0.1.101 - -#### Inherited from - -`ClientBase.on` - -#### Defined in - -node\_modules/@types/node/events.d.ts:629 - -*** - -### once() - -> **once**\<`K`\>(`eventName`, `listener`): `this` - -Adds a **one-time** `listener` function for the event named `eventName`. The -next time `eventName` is triggered, this listener is removed and then invoked. - -```js -server.once('connection', (stream) => { - console.log('Ah, we have our first user!'); -}); -``` - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -By default, event listeners are invoked in the order they are added. The `emitter.prependOnceListener()` method can be used as an alternative to add the -event listener to the beginning of the listeners array. - -```js -import { EventEmitter } from 'node:events'; -const myEE = new EventEmitter(); -myEE.once('foo', () => console.log('a')); -myEE.prependOnceListener('foo', () => console.log('b')); -myEE.emit('foo'); -// Prints: -// b -// a -``` - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -The name of the event. - -• **listener** - -The callback function - -#### Returns - -`this` - -#### Since - -v0.3.0 - -#### Inherited from - -`ClientBase.once` - -#### Defined in - -node\_modules/@types/node/events.d.ts:659 - -*** - -### onReady() - -> **onReady**(): `void` - -#### Returns - -`void` - -#### Overrides - -`ClientBase.onReady` - -#### Defined in - -[core/src/clients/twitter/generate.ts:29](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/generate.ts#L29) - -*** - -### prependListener() - -> **prependListener**\<`K`\>(`eventName`, `listener`): `this` - -Adds the `listener` function to the _beginning_ of the listeners array for the -event named `eventName`. No checks are made to see if the `listener` has -already been added. Multiple calls passing the same combination of `eventName` -and `listener` will result in the `listener` being added, and called, multiple times. - -```js -server.prependListener('connection', (stream) => { - console.log('someone connected!'); -}); -``` - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -The name of the event. - -• **listener** - -The callback function - -#### Returns - -`this` - -#### Since - -v6.0.0 - -#### Inherited from - -`ClientBase.prependListener` - -#### Defined in - -node\_modules/@types/node/events.d.ts:886 - -*** - -### prependOnceListener() - -> **prependOnceListener**\<`K`\>(`eventName`, `listener`): `this` - -Adds a **one-time**`listener` function for the event named `eventName` to the _beginning_ of the listeners array. The next time `eventName` is triggered, this -listener is removed, and then invoked. - -```js -server.prependOnceListener('connection', (stream) => { - console.log('Ah, we have our first user!'); -}); -``` - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -The name of the event. - -• **listener** - -The callback function - -#### Returns - -`this` - -#### Since - -v6.0.0 - -#### Inherited from - -`ClientBase.prependOnceListener` - -#### Defined in - -node\_modules/@types/node/events.d.ts:902 - -*** - -### rawListeners() - -> **rawListeners**\<`K`\>(`eventName`): `Function`[] - -Returns a copy of the array of listeners for the event named `eventName`, -including any wrappers (such as those created by `.once()`). - -```js -import { EventEmitter } from 'node:events'; -const emitter = new EventEmitter(); -emitter.once('log', () => console.log('log once')); - -// Returns a new Array with a function `onceWrapper` which has a property -// `listener` which contains the original listener bound above -const listeners = emitter.rawListeners('log'); -const logFnWrapper = listeners[0]; - -// Logs "log once" to the console and does not unbind the `once` event -logFnWrapper.listener(); - -// Logs "log once" to the console and removes the listener -logFnWrapper(); - -emitter.on('log', () => console.log('log persistently')); -// Will return a new Array with a single function bound by `.on()` above -const newListeners = emitter.rawListeners('log'); - -// Logs "log persistently" twice -newListeners[0](); -emitter.emit('log'); -``` - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -#### Returns - -`Function`[] - -#### Since - -v9.4.0 - -#### Inherited from - -`ClientBase.rawListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:818 - -*** - -### removeAllListeners() - -> **removeAllListeners**(`eventName`?): `this` - -Removes all listeners, or those of the specified `eventName`. - -It is bad practice to remove listeners added elsewhere in the code, -particularly when the `EventEmitter` instance was created by some other -component or module (e.g. sockets or file streams). - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -#### Parameters - -• **eventName?**: `string` \| `symbol` - -#### Returns - -`this` - -#### Since - -v0.1.26 - -#### Inherited from - -`ClientBase.removeAllListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:758 - -*** - -### removeListener() - -> **removeListener**\<`K`\>(`eventName`, `listener`): `this` - -Removes the specified `listener` from the listener array for the event named `eventName`. - -```js -const callback = (stream) => { - console.log('someone connected!'); -}; -server.on('connection', callback); -// ... -server.removeListener('connection', callback); -``` - -`removeListener()` will remove, at most, one instance of a listener from the -listener array. If any single listener has been added multiple times to the -listener array for the specified `eventName`, then `removeListener()` must be -called multiple times to remove each instance. - -Once an event is emitted, all listeners attached to it at the -time of emitting are called in order. This implies that any `removeListener()` or `removeAllListeners()` calls _after_ emitting and _before_ the last listener finishes execution -will not remove them from`emit()` in progress. Subsequent events behave as expected. - -```js -import { EventEmitter } from 'node:events'; -class MyEmitter extends EventEmitter {} -const myEmitter = new MyEmitter(); - -const callbackA = () => { - console.log('A'); - myEmitter.removeListener('event', callbackB); -}; - -const callbackB = () => { - console.log('B'); -}; - -myEmitter.on('event', callbackA); - -myEmitter.on('event', callbackB); - -// callbackA removes listener callbackB but it will still be called. -// Internal listener array at time of emit [callbackA, callbackB] -myEmitter.emit('event'); -// Prints: -// A -// B - -// callbackB is now removed. -// Internal listener array [callbackA] -myEmitter.emit('event'); -// Prints: -// A -``` - -Because listeners are managed using an internal array, calling this will -change the position indices of any listener registered _after_ the listener -being removed. This will not impact the order in which listeners are called, -but it means that any copies of the listener array as returned by -the `emitter.listeners()` method will need to be recreated. - -When a single function has been added as a handler multiple times for a single -event (as in the example below), `removeListener()` will remove the most -recently added instance. In the example the `once('ping')` listener is removed: - -```js -import { EventEmitter } from 'node:events'; -const ee = new EventEmitter(); - -function pong() { - console.log('pong'); -} - -ee.on('ping', pong); -ee.once('ping', pong); -ee.removeListener('ping', pong); - -ee.emit('ping'); -ee.emit('ping'); -``` - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -• **listener** - -#### Returns - -`this` - -#### Since - -v0.1.26 - -#### Inherited from - -`ClientBase.removeListener` - -#### Defined in - -node\_modules/@types/node/events.d.ts:742 - -*** - -### saveRequestMessage() - -> **saveRequestMessage**(`message`, `state`): `Promise`\<`void`\> - -#### Parameters - -• **message**: `Memory` - -• **state**: `State` - -#### Returns - -`Promise`\<`void`\> - -#### Inherited from - -`ClientBase.saveRequestMessage` - -#### Defined in - -[core/src/clients/twitter/base.ts:566](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L566) - -*** - -### setCookiesFromArray() - -> **setCookiesFromArray**(`cookiesArray`): `Promise`\<`void`\> - -#### Parameters - -• **cookiesArray**: `any`[] - -#### Returns - -`Promise`\<`void`\> - -#### Inherited from - -`ClientBase.setCookiesFromArray` - -#### Defined in - -[core/src/clients/twitter/base.ts:554](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L554) - -*** - -### setMaxListeners() - -> **setMaxListeners**(`n`): `this` - -By default `EventEmitter`s will print a warning if more than `10` listeners are -added for a particular event. This is a useful default that helps finding -memory leaks. The `emitter.setMaxListeners()` method allows the limit to be -modified for this specific `EventEmitter` instance. The value can be set to `Infinity` (or `0`) to indicate an unlimited number of listeners. - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -#### Parameters - -• **n**: `number` - -#### Returns - -`this` - -#### Since - -v0.3.5 - -#### Inherited from - -`ClientBase.setMaxListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:768 - -*** - -### addAbortListener() - -> `static` **addAbortListener**(`signal`, `resource`): `Disposable` - -**`Experimental`** - -Listens once to the `abort` event on the provided `signal`. - -Listening to the `abort` event on abort signals is unsafe and may -lead to resource leaks since another third party with the signal can -call `e.stopImmediatePropagation()`. Unfortunately Node.js cannot change -this since it would violate the web standard. Additionally, the original -API makes it easy to forget to remove listeners. - -This API allows safely using `AbortSignal`s in Node.js APIs by solving these -two issues by listening to the event such that `stopImmediatePropagation` does -not prevent the listener from running. - -Returns a disposable so that it may be unsubscribed from more easily. - -```js -import { addAbortListener } from 'node:events'; - -function example(signal) { - let disposable; - try { - signal.addEventListener('abort', (e) => e.stopImmediatePropagation()); - disposable = addAbortListener(signal, (e) => { - // Do something when signal is aborted. - }); - } finally { - disposable?.[Symbol.dispose](); - } -} -``` - -#### Parameters - -• **signal**: `AbortSignal` - -• **resource** - -#### Returns - -`Disposable` - -Disposable that removes the `abort` listener. - -#### Since - -v20.5.0 - -#### Inherited from - -`ClientBase.addAbortListener` - -#### Defined in - -node\_modules/@types/node/events.d.ts:437 - -*** - -### getEventListeners() - -> `static` **getEventListeners**(`emitter`, `name`): `Function`[] - -Returns a copy of the array of listeners for the event named `eventName`. - -For `EventEmitter`s this behaves exactly the same as calling `.listeners` on -the emitter. - -For `EventTarget`s this is the only way to get the event listeners for the -event target. This is useful for debugging and diagnostic purposes. - -```js -import { getEventListeners, EventEmitter } from 'node:events'; - -{ - const ee = new EventEmitter(); - const listener = () => console.log('Events are fun'); - ee.on('foo', listener); - console.log(getEventListeners(ee, 'foo')); // [ [Function: listener] ] -} -{ - const et = new EventTarget(); - const listener = () => console.log('Events are fun'); - et.addEventListener('foo', listener); - console.log(getEventListeners(et, 'foo')); // [ [Function: listener] ] -} -``` - -#### Parameters - -• **emitter**: `EventTarget` \| `EventEmitter`\<`DefaultEventMap`\> - -• **name**: `string` \| `symbol` - -#### Returns - -`Function`[] - -#### Since - -v15.2.0, v14.17.0 - -#### Inherited from - -`ClientBase.getEventListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:358 - -*** - -### getMaxListeners() - -> `static` **getMaxListeners**(`emitter`): `number` - -Returns the currently set max amount of listeners. - -For `EventEmitter`s this behaves exactly the same as calling `.getMaxListeners` on -the emitter. - -For `EventTarget`s this is the only way to get the max event listeners for the -event target. If the number of event handlers on a single EventTarget exceeds -the max set, the EventTarget will print a warning. - -```js -import { getMaxListeners, setMaxListeners, EventEmitter } from 'node:events'; - -{ - const ee = new EventEmitter(); - console.log(getMaxListeners(ee)); // 10 - setMaxListeners(11, ee); - console.log(getMaxListeners(ee)); // 11 -} -{ - const et = new EventTarget(); - console.log(getMaxListeners(et)); // 10 - setMaxListeners(11, et); - console.log(getMaxListeners(et)); // 11 -} -``` - -#### Parameters - -• **emitter**: `EventTarget` \| `EventEmitter`\<`DefaultEventMap`\> - -#### Returns - -`number` - -#### Since - -v19.9.0 - -#### Inherited from - -`ClientBase.getMaxListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:387 - -*** - -### ~~listenerCount()~~ - -> `static` **listenerCount**(`emitter`, `eventName`): `number` - -A class method that returns the number of listeners for the given `eventName` registered on the given `emitter`. - -```js -import { EventEmitter, listenerCount } from 'node:events'; - -const myEmitter = new EventEmitter(); -myEmitter.on('event', () => {}); -myEmitter.on('event', () => {}); -console.log(listenerCount(myEmitter, 'event')); -// Prints: 2 -``` - -#### Parameters - -• **emitter**: `EventEmitter`\<`DefaultEventMap`\> - -The emitter to query - -• **eventName**: `string` \| `symbol` - -The event name - -#### Returns - -`number` - -#### Since - -v0.9.12 - -#### Deprecated - -Since v3.2.0 - Use `listenerCount` instead. - -#### Inherited from - -`ClientBase.listenerCount` - -#### Defined in - -node\_modules/@types/node/events.d.ts:330 - -*** - -### on() - -#### on(emitter, eventName, options) - -> `static` **on**(`emitter`, `eventName`, `options`?): `AsyncIterator`\<`any`[], `any`, `any`\> - -```js -import { on, EventEmitter } from 'node:events'; -import process from 'node:process'; - -const ee = new EventEmitter(); - -// Emit later on -process.nextTick(() => { - ee.emit('foo', 'bar'); - ee.emit('foo', 42); -}); - -for await (const event of on(ee, 'foo')) { - // The execution of this inner block is synchronous and it - // processes one event at a time (even with await). Do not use - // if concurrent execution is required. - console.log(event); // prints ['bar'] [42] -} -// Unreachable here -``` - -Returns an `AsyncIterator` that iterates `eventName` events. It will throw -if the `EventEmitter` emits `'error'`. It removes all listeners when -exiting the loop. The `value` returned by each iteration is an array -composed of the emitted event arguments. - -An `AbortSignal` can be used to cancel waiting on events: - -```js -import { on, EventEmitter } from 'node:events'; -import process from 'node:process'; - -const ac = new AbortController(); - -(async () => { - const ee = new EventEmitter(); - - // Emit later on - process.nextTick(() => { - ee.emit('foo', 'bar'); - ee.emit('foo', 42); - }); - - for await (const event of on(ee, 'foo', { signal: ac.signal })) { - // The execution of this inner block is synchronous and it - // processes one event at a time (even with await). Do not use - // if concurrent execution is required. - console.log(event); // prints ['bar'] [42] - } - // Unreachable here -})(); - -process.nextTick(() => ac.abort()); -``` - -Use the `close` option to specify an array of event names that will end the iteration: - -```js -import { on, EventEmitter } from 'node:events'; -import process from 'node:process'; - -const ee = new EventEmitter(); - -// Emit later on -process.nextTick(() => { - ee.emit('foo', 'bar'); - ee.emit('foo', 42); - ee.emit('close'); -}); - -for await (const event of on(ee, 'foo', { close: ['close'] })) { - console.log(event); // prints ['bar'] [42] -} -// the loop will exit after 'close' is emitted -console.log('done'); // prints 'done' -``` - -##### Parameters - -• **emitter**: `EventEmitter`\<`DefaultEventMap`\> - -• **eventName**: `string` \| `symbol` - -• **options?**: `StaticEventEmitterIteratorOptions` - -##### Returns - -`AsyncIterator`\<`any`[], `any`, `any`\> - -An `AsyncIterator` that iterates `eventName` events emitted by the `emitter` - -##### Since - -v13.6.0, v12.16.0 - -##### Inherited from - -`ClientBase.on` - -##### Defined in - -node\_modules/@types/node/events.d.ts:303 - -#### on(emitter, eventName, options) - -> `static` **on**(`emitter`, `eventName`, `options`?): `AsyncIterator`\<`any`[], `any`, `any`\> - -##### Parameters - -• **emitter**: `EventTarget` - -• **eventName**: `string` - -• **options?**: `StaticEventEmitterIteratorOptions` - -##### Returns - -`AsyncIterator`\<`any`[], `any`, `any`\> - -##### Inherited from - -`ClientBase.on` - -##### Defined in - -node\_modules/@types/node/events.d.ts:308 - -*** - -### once() - -#### once(emitter, eventName, options) - -> `static` **once**(`emitter`, `eventName`, `options`?): `Promise`\<`any`[]\> - -Creates a `Promise` that is fulfilled when the `EventEmitter` emits the given -event or that is rejected if the `EventEmitter` emits `'error'` while waiting. -The `Promise` will resolve with an array of all the arguments emitted to the -given event. - -This method is intentionally generic and works with the web platform [EventTarget](https://dom.spec.whatwg.org/#interface-eventtarget) interface, which has no special`'error'` event -semantics and does not listen to the `'error'` event. - -```js -import { once, EventEmitter } from 'node:events'; -import process from 'node:process'; - -const ee = new EventEmitter(); - -process.nextTick(() => { - ee.emit('myevent', 42); -}); - -const [value] = await once(ee, 'myevent'); -console.log(value); - -const err = new Error('kaboom'); -process.nextTick(() => { - ee.emit('error', err); -}); - -try { - await once(ee, 'myevent'); -} catch (err) { - console.error('error happened', err); -} -``` - -The special handling of the `'error'` event is only used when `events.once()` is used to wait for another event. If `events.once()` is used to wait for the -'`error'` event itself, then it is treated as any other kind of event without -special handling: - -```js -import { EventEmitter, once } from 'node:events'; - -const ee = new EventEmitter(); - -once(ee, 'error') - .then(([err]) => console.log('ok', err.message)) - .catch((err) => console.error('error', err.message)); - -ee.emit('error', new Error('boom')); - -// Prints: ok boom -``` - -An `AbortSignal` can be used to cancel waiting for the event: - -```js -import { EventEmitter, once } from 'node:events'; - -const ee = new EventEmitter(); -const ac = new AbortController(); - -async function foo(emitter, event, signal) { - try { - await once(emitter, event, { signal }); - console.log('event emitted!'); - } catch (error) { - if (error.name === 'AbortError') { - console.error('Waiting for the event was canceled!'); - } else { - console.error('There was an error', error.message); - } - } -} - -foo(ee, 'foo', ac.signal); -ac.abort(); // Abort waiting for the event -ee.emit('foo'); // Prints: Waiting for the event was canceled! -``` - -##### Parameters - -• **emitter**: `EventEmitter`\<`DefaultEventMap`\> - -• **eventName**: `string` \| `symbol` - -• **options?**: `StaticEventEmitterOptions` - -##### Returns - -`Promise`\<`any`[]\> - -##### Since - -v11.13.0, v10.16.0 - -##### Inherited from - -`ClientBase.once` - -##### Defined in - -node\_modules/@types/node/events.d.ts:217 - -#### once(emitter, eventName, options) - -> `static` **once**(`emitter`, `eventName`, `options`?): `Promise`\<`any`[]\> - -##### Parameters - -• **emitter**: `EventTarget` - -• **eventName**: `string` - -• **options?**: `StaticEventEmitterOptions` - -##### Returns - -`Promise`\<`any`[]\> - -##### Inherited from - -`ClientBase.once` - -##### Defined in - -node\_modules/@types/node/events.d.ts:222 - -*** - -### setMaxListeners() - -> `static` **setMaxListeners**(`n`?, ...`eventTargets`?): `void` - -```js -import { setMaxListeners, EventEmitter } from 'node:events'; - -const target = new EventTarget(); -const emitter = new EventEmitter(); - -setMaxListeners(5, target, emitter); -``` - -#### Parameters - -• **n?**: `number` - -A non-negative number. The maximum number of listeners per `EventTarget` event. - -• ...**eventTargets?**: (`EventTarget` \| `EventEmitter`\<`DefaultEventMap`\>)[] - -Zero or more {EventTarget} or {EventEmitter} instances. If none are specified, `n` is set as the default max for all newly created {EventTarget} and {EventEmitter} -objects. - -#### Returns - -`void` - -#### Since - -v15.4.0 - -#### Inherited from - -`ClientBase.setMaxListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:402 diff --git a/docs/docs/api/classes/TwitterInteractionClient.md b/docs/docs/api/classes/TwitterInteractionClient.md deleted file mode 100644 index 3a8c6af0041..00000000000 --- a/docs/docs/api/classes/TwitterInteractionClient.md +++ /dev/null @@ -1,1812 +0,0 @@ -# Class: TwitterInteractionClient - -## Extends - -- `ClientBase` - -## Constructors - -### new TwitterInteractionClient() - -> **new TwitterInteractionClient**(`runtime`): [`TwitterInteractionClient`](TwitterInteractionClient.md) - -#### Parameters - -• **runtime**: `IAgentRuntime` - -#### Returns - -[`TwitterInteractionClient`](TwitterInteractionClient.md) - -#### Overrides - -`ClientBase.constructor` - -#### Defined in - -[core/src/clients/twitter/interactions.ts:88](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/interactions.ts#L88) - -## Properties - -### callback() - -> **callback**: (`self`) => `any` = `null` - -#### Parameters - -• **self**: `ClientBase` - -#### Returns - -`any` - -#### Inherited from - -`ClientBase.callback` - -#### Defined in - -[core/src/clients/twitter/base.ts:151](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L151) - -*** - -### directions - -> **directions**: `string` - -#### Inherited from - -`ClientBase.directions` - -#### Defined in - -[core/src/clients/twitter/base.ts:89](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L89) - -*** - -### dryRun - -> **dryRun**: `boolean` = `false` - -#### Inherited from - -`ClientBase.dryRun` - -#### Defined in - -[core/src/clients/twitter/base.ts:94](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L94) - -*** - -### imageDescriptionService - -> **imageDescriptionService**: `ImageDescriptionService` - -#### Inherited from - -`ClientBase.imageDescriptionService` - -#### Defined in - -[core/src/clients/twitter/base.ts:92](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L92) - -*** - -### lastCheckedTweetId - -> **lastCheckedTweetId**: `number` = `null` - -#### Inherited from - -`ClientBase.lastCheckedTweetId` - -#### Defined in - -[core/src/clients/twitter/base.ts:90](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L90) - -*** - -### requestQueue - -> **requestQueue**: `RequestQueue` - -#### Inherited from - -`ClientBase.requestQueue` - -#### Defined in - -[core/src/clients/twitter/base.ts:97](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L97) - -*** - -### runtime - -> **runtime**: `IAgentRuntime` - -#### Inherited from - -`ClientBase.runtime` - -#### Defined in - -[core/src/clients/twitter/base.ts:88](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L88) - -*** - -### temperature - -> **temperature**: `number` = `0.5` - -#### Inherited from - -`ClientBase.temperature` - -#### Defined in - -[core/src/clients/twitter/base.ts:93](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L93) - -*** - -### tweetCacheFilePath - -> **tweetCacheFilePath**: `string` = `"tweetcache/latest_checked_tweet_id.txt"` - -#### Inherited from - -`ClientBase.tweetCacheFilePath` - -#### Defined in - -[core/src/clients/twitter/base.ts:91](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L91) - -*** - -### twitterClient - -> **twitterClient**: `Scraper` - -#### Inherited from - -`ClientBase.twitterClient` - -#### Defined in - -[core/src/clients/twitter/base.ts:87](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L87) - -*** - -### twitterUserId - -> **twitterUserId**: `string` - -#### Inherited from - -`ClientBase.twitterUserId` - -#### Defined in - -[core/src/clients/twitter/base.ts:98](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L98) - -*** - -### \_twitterClient - -> `static` **\_twitterClient**: `Scraper` - -#### Inherited from - -`ClientBase._twitterClient` - -#### Defined in - -[core/src/clients/twitter/base.ts:86](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L86) - -*** - -### captureRejections - -> `static` **captureRejections**: `boolean` - -Value: [boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) - -Change the default `captureRejections` option on all new `EventEmitter` objects. - -#### Since - -v13.4.0, v12.16.0 - -#### Inherited from - -`ClientBase.captureRejections` - -#### Defined in - -node\_modules/@types/node/events.d.ts:459 - -*** - -### captureRejectionSymbol - -> `readonly` `static` **captureRejectionSymbol**: *typeof* [`captureRejectionSymbol`](TwitterGenerationClient.md#capturerejectionsymbol) - -Value: `Symbol.for('nodejs.rejection')` - -See how to write a custom `rejection handler`. - -#### Since - -v13.4.0, v12.16.0 - -#### Inherited from - -`ClientBase.captureRejectionSymbol` - -#### Defined in - -node\_modules/@types/node/events.d.ts:452 - -*** - -### defaultMaxListeners - -> `static` **defaultMaxListeners**: `number` - -By default, a maximum of `10` listeners can be registered for any single -event. This limit can be changed for individual `EventEmitter` instances -using the `emitter.setMaxListeners(n)` method. To change the default -for _all_`EventEmitter` instances, the `events.defaultMaxListeners` property -can be used. If this value is not a positive number, a `RangeError` is thrown. - -Take caution when setting the `events.defaultMaxListeners` because the -change affects _all_ `EventEmitter` instances, including those created before -the change is made. However, calling `emitter.setMaxListeners(n)` still has -precedence over `events.defaultMaxListeners`. - -This is not a hard limit. The `EventEmitter` instance will allow -more listeners to be added but will output a trace warning to stderr indicating -that a "possible EventEmitter memory leak" has been detected. For any single -`EventEmitter`, the `emitter.getMaxListeners()` and `emitter.setMaxListeners()` methods can be used to -temporarily avoid this warning: - -```js -import { EventEmitter } from 'node:events'; -const emitter = new EventEmitter(); -emitter.setMaxListeners(emitter.getMaxListeners() + 1); -emitter.once('event', () => { - // do stuff - emitter.setMaxListeners(Math.max(emitter.getMaxListeners() - 1, 0)); -}); -``` - -The `--trace-warnings` command-line flag can be used to display the -stack trace for such warnings. - -The emitted warning can be inspected with `process.on('warning')` and will -have the additional `emitter`, `type`, and `count` properties, referring to -the event emitter instance, the event's name and the number of attached -listeners, respectively. -Its `name` property is set to `'MaxListenersExceededWarning'`. - -#### Since - -v0.11.2 - -#### Inherited from - -`ClientBase.defaultMaxListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:498 - -*** - -### errorMonitor - -> `readonly` `static` **errorMonitor**: *typeof* [`errorMonitor`](TwitterGenerationClient.md#errormonitor) - -This symbol shall be used to install a listener for only monitoring `'error'` events. Listeners installed using this symbol are called before the regular `'error'` listeners are called. - -Installing a listener using this symbol does not change the behavior once an `'error'` event is emitted. Therefore, the process will still crash if no -regular `'error'` listener is installed. - -#### Since - -v13.6.0, v12.17.0 - -#### Inherited from - -`ClientBase.errorMonitor` - -#### Defined in - -node\_modules/@types/node/events.d.ts:445 - -## Methods - -### \[captureRejectionSymbol\]()? - -> `optional` **\[captureRejectionSymbol\]**\<`K`\>(`error`, `event`, ...`args`): `void` - -#### Type Parameters - -• **K** - -#### Parameters - -• **error**: `Error` - -• **event**: `string` \| `symbol` - -• ...**args**: `AnyRest` - -#### Returns - -`void` - -#### Inherited from - -`ClientBase.[captureRejectionSymbol]` - -#### Defined in - -node\_modules/@types/node/events.d.ts:136 - -*** - -### addListener() - -> **addListener**\<`K`\>(`eventName`, `listener`): `this` - -Alias for `emitter.on(eventName, listener)`. - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -• **listener** - -#### Returns - -`this` - -#### Since - -v0.1.26 - -#### Inherited from - -`ClientBase.addListener` - -#### Defined in - -node\_modules/@types/node/events.d.ts:597 - -*** - -### cacheTweet() - -> **cacheTweet**(`tweet`): `Promise`\<`void`\> - -#### Parameters - -• **tweet**: `Tweet` - -#### Returns - -`Promise`\<`void`\> - -#### Inherited from - -`ClientBase.cacheTweet` - -#### Defined in - -[core/src/clients/twitter/base.ts:100](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L100) - -*** - -### emit() - -> **emit**\<`K`\>(`eventName`, ...`args`): `boolean` - -Synchronously calls each of the listeners registered for the event named `eventName`, in the order they were registered, passing the supplied arguments -to each. - -Returns `true` if the event had listeners, `false` otherwise. - -```js -import { EventEmitter } from 'node:events'; -const myEmitter = new EventEmitter(); - -// First listener -myEmitter.on('event', function firstListener() { - console.log('Helloooo! first listener'); -}); -// Second listener -myEmitter.on('event', function secondListener(arg1, arg2) { - console.log(`event with parameters ${arg1}, ${arg2} in second listener`); -}); -// Third listener -myEmitter.on('event', function thirdListener(...args) { - const parameters = args.join(', '); - console.log(`event with parameters ${parameters} in third listener`); -}); - -console.log(myEmitter.listeners('event')); - -myEmitter.emit('event', 1, 2, 3, 4, 5); - -// Prints: -// [ -// [Function: firstListener], -// [Function: secondListener], -// [Function: thirdListener] -// ] -// Helloooo! first listener -// event with parameters 1, 2 in second listener -// event with parameters 1, 2, 3, 4, 5 in third listener -``` - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -• ...**args**: `AnyRest` - -#### Returns - -`boolean` - -#### Since - -v0.1.26 - -#### Inherited from - -`ClientBase.emit` - -#### Defined in - -node\_modules/@types/node/events.d.ts:859 - -*** - -### eventNames() - -> **eventNames**(): (`string` \| `symbol`)[] - -Returns an array listing the events for which the emitter has registered -listeners. The values in the array are strings or `Symbol`s. - -```js -import { EventEmitter } from 'node:events'; - -const myEE = new EventEmitter(); -myEE.on('foo', () => {}); -myEE.on('bar', () => {}); - -const sym = Symbol('symbol'); -myEE.on(sym, () => {}); - -console.log(myEE.eventNames()); -// Prints: [ 'foo', 'bar', Symbol(symbol) ] -``` - -#### Returns - -(`string` \| `symbol`)[] - -#### Since - -v6.0.0 - -#### Inherited from - -`ClientBase.eventNames` - -#### Defined in - -node\_modules/@types/node/events.d.ts:922 - -*** - -### fetchHomeTimeline() - -> **fetchHomeTimeline**(`count`): `Promise`\<`Tweet`[]\> - -#### Parameters - -• **count**: `number` - -#### Returns - -`Promise`\<`Tweet`[]\> - -#### Inherited from - -`ClientBase.fetchHomeTimeline` - -#### Defined in - -[core/src/clients/twitter/base.ts:281](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L281) - -*** - -### fetchSearchTweets() - -> **fetchSearchTweets**(`query`, `maxTweets`, `searchMode`, `cursor`?): `Promise`\<`QueryTweetsResponse`\> - -#### Parameters - -• **query**: `string` - -• **maxTweets**: `number` - -• **searchMode**: `SearchMode` - -• **cursor?**: `string` - -#### Returns - -`Promise`\<`QueryTweetsResponse`\> - -#### Inherited from - -`ClientBase.fetchSearchTweets` - -#### Defined in - -[core/src/clients/twitter/base.ts:333](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L333) - -*** - -### getCachedTweet() - -> **getCachedTweet**(`tweetId`): `Promise`\<`Tweet`\> - -#### Parameters - -• **tweetId**: `string` - -#### Returns - -`Promise`\<`Tweet`\> - -#### Inherited from - -`ClientBase.getCachedTweet` - -#### Defined in - -[core/src/clients/twitter/base.ts:116](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L116) - -*** - -### getMaxListeners() - -> **getMaxListeners**(): `number` - -Returns the current max listener value for the `EventEmitter` which is either -set by `emitter.setMaxListeners(n)` or defaults to [defaultMaxListeners](TwitterInteractionClient.md#defaultmaxlisteners). - -#### Returns - -`number` - -#### Since - -v1.0.0 - -#### Inherited from - -`ClientBase.getMaxListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:774 - -*** - -### getTweet() - -> **getTweet**(`tweetId`): `Promise`\<`Tweet`\> - -#### Parameters - -• **tweetId**: `string` - -#### Returns - -`Promise`\<`Tweet`\> - -#### Inherited from - -`ClientBase.getTweet` - -#### Defined in - -[core/src/clients/twitter/base.ts:138](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L138) - -*** - -### handleTwitterInteractions() - -> **handleTwitterInteractions**(): `Promise`\<`void`\> - -#### Returns - -`Promise`\<`void`\> - -#### Defined in - -[core/src/clients/twitter/interactions.ts:94](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/interactions.ts#L94) - -*** - -### listenerCount() - -> **listenerCount**\<`K`\>(`eventName`, `listener`?): `number` - -Returns the number of listeners listening for the event named `eventName`. -If `listener` is provided, it will return how many times the listener is found -in the list of the listeners of the event. - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -The name of the event being listened for - -• **listener?**: `Function` - -The event handler function - -#### Returns - -`number` - -#### Since - -v3.2.0 - -#### Inherited from - -`ClientBase.listenerCount` - -#### Defined in - -node\_modules/@types/node/events.d.ts:868 - -*** - -### listeners() - -> **listeners**\<`K`\>(`eventName`): `Function`[] - -Returns a copy of the array of listeners for the event named `eventName`. - -```js -server.on('connection', (stream) => { - console.log('someone connected!'); -}); -console.log(util.inspect(server.listeners('connection'))); -// Prints: [ [Function] ] -``` - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -#### Returns - -`Function`[] - -#### Since - -v0.1.26 - -#### Inherited from - -`ClientBase.listeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:787 - -*** - -### off() - -> **off**\<`K`\>(`eventName`, `listener`): `this` - -Alias for `emitter.removeListener()`. - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -• **listener** - -#### Returns - -`this` - -#### Since - -v10.0.0 - -#### Inherited from - -`ClientBase.off` - -#### Defined in - -node\_modules/@types/node/events.d.ts:747 - -*** - -### on() - -> **on**\<`K`\>(`eventName`, `listener`): `this` - -Adds the `listener` function to the end of the listeners array for the event -named `eventName`. No checks are made to see if the `listener` has already -been added. Multiple calls passing the same combination of `eventName` and -`listener` will result in the `listener` being added, and called, multiple times. - -```js -server.on('connection', (stream) => { - console.log('someone connected!'); -}); -``` - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -By default, event listeners are invoked in the order they are added. The `emitter.prependListener()` method can be used as an alternative to add the -event listener to the beginning of the listeners array. - -```js -import { EventEmitter } from 'node:events'; -const myEE = new EventEmitter(); -myEE.on('foo', () => console.log('a')); -myEE.prependListener('foo', () => console.log('b')); -myEE.emit('foo'); -// Prints: -// b -// a -``` - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -The name of the event. - -• **listener** - -The callback function - -#### Returns - -`this` - -#### Since - -v0.1.101 - -#### Inherited from - -`ClientBase.on` - -#### Defined in - -node\_modules/@types/node/events.d.ts:629 - -*** - -### once() - -> **once**\<`K`\>(`eventName`, `listener`): `this` - -Adds a **one-time** `listener` function for the event named `eventName`. The -next time `eventName` is triggered, this listener is removed and then invoked. - -```js -server.once('connection', (stream) => { - console.log('Ah, we have our first user!'); -}); -``` - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -By default, event listeners are invoked in the order they are added. The `emitter.prependOnceListener()` method can be used as an alternative to add the -event listener to the beginning of the listeners array. - -```js -import { EventEmitter } from 'node:events'; -const myEE = new EventEmitter(); -myEE.once('foo', () => console.log('a')); -myEE.prependOnceListener('foo', () => console.log('b')); -myEE.emit('foo'); -// Prints: -// b -// a -``` - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -The name of the event. - -• **listener** - -The callback function - -#### Returns - -`this` - -#### Since - -v0.3.0 - -#### Inherited from - -`ClientBase.once` - -#### Defined in - -node\_modules/@types/node/events.d.ts:659 - -*** - -### onReady() - -> **onReady**(): `void` - -#### Returns - -`void` - -#### Overrides - -`ClientBase.onReady` - -#### Defined in - -[core/src/clients/twitter/interactions.ts:77](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/interactions.ts#L77) - -*** - -### prependListener() - -> **prependListener**\<`K`\>(`eventName`, `listener`): `this` - -Adds the `listener` function to the _beginning_ of the listeners array for the -event named `eventName`. No checks are made to see if the `listener` has -already been added. Multiple calls passing the same combination of `eventName` -and `listener` will result in the `listener` being added, and called, multiple times. - -```js -server.prependListener('connection', (stream) => { - console.log('someone connected!'); -}); -``` - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -The name of the event. - -• **listener** - -The callback function - -#### Returns - -`this` - -#### Since - -v6.0.0 - -#### Inherited from - -`ClientBase.prependListener` - -#### Defined in - -node\_modules/@types/node/events.d.ts:886 - -*** - -### prependOnceListener() - -> **prependOnceListener**\<`K`\>(`eventName`, `listener`): `this` - -Adds a **one-time**`listener` function for the event named `eventName` to the _beginning_ of the listeners array. The next time `eventName` is triggered, this -listener is removed, and then invoked. - -```js -server.prependOnceListener('connection', (stream) => { - console.log('Ah, we have our first user!'); -}); -``` - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -The name of the event. - -• **listener** - -The callback function - -#### Returns - -`this` - -#### Since - -v6.0.0 - -#### Inherited from - -`ClientBase.prependOnceListener` - -#### Defined in - -node\_modules/@types/node/events.d.ts:902 - -*** - -### rawListeners() - -> **rawListeners**\<`K`\>(`eventName`): `Function`[] - -Returns a copy of the array of listeners for the event named `eventName`, -including any wrappers (such as those created by `.once()`). - -```js -import { EventEmitter } from 'node:events'; -const emitter = new EventEmitter(); -emitter.once('log', () => console.log('log once')); - -// Returns a new Array with a function `onceWrapper` which has a property -// `listener` which contains the original listener bound above -const listeners = emitter.rawListeners('log'); -const logFnWrapper = listeners[0]; - -// Logs "log once" to the console and does not unbind the `once` event -logFnWrapper.listener(); - -// Logs "log once" to the console and removes the listener -logFnWrapper(); - -emitter.on('log', () => console.log('log persistently')); -// Will return a new Array with a single function bound by `.on()` above -const newListeners = emitter.rawListeners('log'); - -// Logs "log persistently" twice -newListeners[0](); -emitter.emit('log'); -``` - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -#### Returns - -`Function`[] - -#### Since - -v9.4.0 - -#### Inherited from - -`ClientBase.rawListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:818 - -*** - -### removeAllListeners() - -> **removeAllListeners**(`eventName`?): `this` - -Removes all listeners, or those of the specified `eventName`. - -It is bad practice to remove listeners added elsewhere in the code, -particularly when the `EventEmitter` instance was created by some other -component or module (e.g. sockets or file streams). - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -#### Parameters - -• **eventName?**: `string` \| `symbol` - -#### Returns - -`this` - -#### Since - -v0.1.26 - -#### Inherited from - -`ClientBase.removeAllListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:758 - -*** - -### removeListener() - -> **removeListener**\<`K`\>(`eventName`, `listener`): `this` - -Removes the specified `listener` from the listener array for the event named `eventName`. - -```js -const callback = (stream) => { - console.log('someone connected!'); -}; -server.on('connection', callback); -// ... -server.removeListener('connection', callback); -``` - -`removeListener()` will remove, at most, one instance of a listener from the -listener array. If any single listener has been added multiple times to the -listener array for the specified `eventName`, then `removeListener()` must be -called multiple times to remove each instance. - -Once an event is emitted, all listeners attached to it at the -time of emitting are called in order. This implies that any `removeListener()` or `removeAllListeners()` calls _after_ emitting and _before_ the last listener finishes execution -will not remove them from`emit()` in progress. Subsequent events behave as expected. - -```js -import { EventEmitter } from 'node:events'; -class MyEmitter extends EventEmitter {} -const myEmitter = new MyEmitter(); - -const callbackA = () => { - console.log('A'); - myEmitter.removeListener('event', callbackB); -}; - -const callbackB = () => { - console.log('B'); -}; - -myEmitter.on('event', callbackA); - -myEmitter.on('event', callbackB); - -// callbackA removes listener callbackB but it will still be called. -// Internal listener array at time of emit [callbackA, callbackB] -myEmitter.emit('event'); -// Prints: -// A -// B - -// callbackB is now removed. -// Internal listener array [callbackA] -myEmitter.emit('event'); -// Prints: -// A -``` - -Because listeners are managed using an internal array, calling this will -change the position indices of any listener registered _after_ the listener -being removed. This will not impact the order in which listeners are called, -but it means that any copies of the listener array as returned by -the `emitter.listeners()` method will need to be recreated. - -When a single function has been added as a handler multiple times for a single -event (as in the example below), `removeListener()` will remove the most -recently added instance. In the example the `once('ping')` listener is removed: - -```js -import { EventEmitter } from 'node:events'; -const ee = new EventEmitter(); - -function pong() { - console.log('pong'); -} - -ee.on('ping', pong); -ee.once('ping', pong); -ee.removeListener('ping', pong); - -ee.emit('ping'); -ee.emit('ping'); -``` - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -• **listener** - -#### Returns - -`this` - -#### Since - -v0.1.26 - -#### Inherited from - -`ClientBase.removeListener` - -#### Defined in - -node\_modules/@types/node/events.d.ts:742 - -*** - -### saveRequestMessage() - -> **saveRequestMessage**(`message`, `state`): `Promise`\<`void`\> - -#### Parameters - -• **message**: `Memory` - -• **state**: `State` - -#### Returns - -`Promise`\<`void`\> - -#### Inherited from - -`ClientBase.saveRequestMessage` - -#### Defined in - -[core/src/clients/twitter/base.ts:566](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L566) - -*** - -### setCookiesFromArray() - -> **setCookiesFromArray**(`cookiesArray`): `Promise`\<`void`\> - -#### Parameters - -• **cookiesArray**: `any`[] - -#### Returns - -`Promise`\<`void`\> - -#### Inherited from - -`ClientBase.setCookiesFromArray` - -#### Defined in - -[core/src/clients/twitter/base.ts:554](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L554) - -*** - -### setMaxListeners() - -> **setMaxListeners**(`n`): `this` - -By default `EventEmitter`s will print a warning if more than `10` listeners are -added for a particular event. This is a useful default that helps finding -memory leaks. The `emitter.setMaxListeners()` method allows the limit to be -modified for this specific `EventEmitter` instance. The value can be set to `Infinity` (or `0`) to indicate an unlimited number of listeners. - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -#### Parameters - -• **n**: `number` - -#### Returns - -`this` - -#### Since - -v0.3.5 - -#### Inherited from - -`ClientBase.setMaxListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:768 - -*** - -### addAbortListener() - -> `static` **addAbortListener**(`signal`, `resource`): `Disposable` - -**`Experimental`** - -Listens once to the `abort` event on the provided `signal`. - -Listening to the `abort` event on abort signals is unsafe and may -lead to resource leaks since another third party with the signal can -call `e.stopImmediatePropagation()`. Unfortunately Node.js cannot change -this since it would violate the web standard. Additionally, the original -API makes it easy to forget to remove listeners. - -This API allows safely using `AbortSignal`s in Node.js APIs by solving these -two issues by listening to the event such that `stopImmediatePropagation` does -not prevent the listener from running. - -Returns a disposable so that it may be unsubscribed from more easily. - -```js -import { addAbortListener } from 'node:events'; - -function example(signal) { - let disposable; - try { - signal.addEventListener('abort', (e) => e.stopImmediatePropagation()); - disposable = addAbortListener(signal, (e) => { - // Do something when signal is aborted. - }); - } finally { - disposable?.[Symbol.dispose](); - } -} -``` - -#### Parameters - -• **signal**: `AbortSignal` - -• **resource** - -#### Returns - -`Disposable` - -Disposable that removes the `abort` listener. - -#### Since - -v20.5.0 - -#### Inherited from - -`ClientBase.addAbortListener` - -#### Defined in - -node\_modules/@types/node/events.d.ts:437 - -*** - -### getEventListeners() - -> `static` **getEventListeners**(`emitter`, `name`): `Function`[] - -Returns a copy of the array of listeners for the event named `eventName`. - -For `EventEmitter`s this behaves exactly the same as calling `.listeners` on -the emitter. - -For `EventTarget`s this is the only way to get the event listeners for the -event target. This is useful for debugging and diagnostic purposes. - -```js -import { getEventListeners, EventEmitter } from 'node:events'; - -{ - const ee = new EventEmitter(); - const listener = () => console.log('Events are fun'); - ee.on('foo', listener); - console.log(getEventListeners(ee, 'foo')); // [ [Function: listener] ] -} -{ - const et = new EventTarget(); - const listener = () => console.log('Events are fun'); - et.addEventListener('foo', listener); - console.log(getEventListeners(et, 'foo')); // [ [Function: listener] ] -} -``` - -#### Parameters - -• **emitter**: `EventTarget` \| `EventEmitter`\<`DefaultEventMap`\> - -• **name**: `string` \| `symbol` - -#### Returns - -`Function`[] - -#### Since - -v15.2.0, v14.17.0 - -#### Inherited from - -`ClientBase.getEventListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:358 - -*** - -### getMaxListeners() - -> `static` **getMaxListeners**(`emitter`): `number` - -Returns the currently set max amount of listeners. - -For `EventEmitter`s this behaves exactly the same as calling `.getMaxListeners` on -the emitter. - -For `EventTarget`s this is the only way to get the max event listeners for the -event target. If the number of event handlers on a single EventTarget exceeds -the max set, the EventTarget will print a warning. - -```js -import { getMaxListeners, setMaxListeners, EventEmitter } from 'node:events'; - -{ - const ee = new EventEmitter(); - console.log(getMaxListeners(ee)); // 10 - setMaxListeners(11, ee); - console.log(getMaxListeners(ee)); // 11 -} -{ - const et = new EventTarget(); - console.log(getMaxListeners(et)); // 10 - setMaxListeners(11, et); - console.log(getMaxListeners(et)); // 11 -} -``` - -#### Parameters - -• **emitter**: `EventTarget` \| `EventEmitter`\<`DefaultEventMap`\> - -#### Returns - -`number` - -#### Since - -v19.9.0 - -#### Inherited from - -`ClientBase.getMaxListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:387 - -*** - -### ~~listenerCount()~~ - -> `static` **listenerCount**(`emitter`, `eventName`): `number` - -A class method that returns the number of listeners for the given `eventName` registered on the given `emitter`. - -```js -import { EventEmitter, listenerCount } from 'node:events'; - -const myEmitter = new EventEmitter(); -myEmitter.on('event', () => {}); -myEmitter.on('event', () => {}); -console.log(listenerCount(myEmitter, 'event')); -// Prints: 2 -``` - -#### Parameters - -• **emitter**: `EventEmitter`\<`DefaultEventMap`\> - -The emitter to query - -• **eventName**: `string` \| `symbol` - -The event name - -#### Returns - -`number` - -#### Since - -v0.9.12 - -#### Deprecated - -Since v3.2.0 - Use `listenerCount` instead. - -#### Inherited from - -`ClientBase.listenerCount` - -#### Defined in - -node\_modules/@types/node/events.d.ts:330 - -*** - -### on() - -#### on(emitter, eventName, options) - -> `static` **on**(`emitter`, `eventName`, `options`?): `AsyncIterator`\<`any`[], `any`, `any`\> - -```js -import { on, EventEmitter } from 'node:events'; -import process from 'node:process'; - -const ee = new EventEmitter(); - -// Emit later on -process.nextTick(() => { - ee.emit('foo', 'bar'); - ee.emit('foo', 42); -}); - -for await (const event of on(ee, 'foo')) { - // The execution of this inner block is synchronous and it - // processes one event at a time (even with await). Do not use - // if concurrent execution is required. - console.log(event); // prints ['bar'] [42] -} -// Unreachable here -``` - -Returns an `AsyncIterator` that iterates `eventName` events. It will throw -if the `EventEmitter` emits `'error'`. It removes all listeners when -exiting the loop. The `value` returned by each iteration is an array -composed of the emitted event arguments. - -An `AbortSignal` can be used to cancel waiting on events: - -```js -import { on, EventEmitter } from 'node:events'; -import process from 'node:process'; - -const ac = new AbortController(); - -(async () => { - const ee = new EventEmitter(); - - // Emit later on - process.nextTick(() => { - ee.emit('foo', 'bar'); - ee.emit('foo', 42); - }); - - for await (const event of on(ee, 'foo', { signal: ac.signal })) { - // The execution of this inner block is synchronous and it - // processes one event at a time (even with await). Do not use - // if concurrent execution is required. - console.log(event); // prints ['bar'] [42] - } - // Unreachable here -})(); - -process.nextTick(() => ac.abort()); -``` - -Use the `close` option to specify an array of event names that will end the iteration: - -```js -import { on, EventEmitter } from 'node:events'; -import process from 'node:process'; - -const ee = new EventEmitter(); - -// Emit later on -process.nextTick(() => { - ee.emit('foo', 'bar'); - ee.emit('foo', 42); - ee.emit('close'); -}); - -for await (const event of on(ee, 'foo', { close: ['close'] })) { - console.log(event); // prints ['bar'] [42] -} -// the loop will exit after 'close' is emitted -console.log('done'); // prints 'done' -``` - -##### Parameters - -• **emitter**: `EventEmitter`\<`DefaultEventMap`\> - -• **eventName**: `string` \| `symbol` - -• **options?**: `StaticEventEmitterIteratorOptions` - -##### Returns - -`AsyncIterator`\<`any`[], `any`, `any`\> - -An `AsyncIterator` that iterates `eventName` events emitted by the `emitter` - -##### Since - -v13.6.0, v12.16.0 - -##### Inherited from - -`ClientBase.on` - -##### Defined in - -node\_modules/@types/node/events.d.ts:303 - -#### on(emitter, eventName, options) - -> `static` **on**(`emitter`, `eventName`, `options`?): `AsyncIterator`\<`any`[], `any`, `any`\> - -##### Parameters - -• **emitter**: `EventTarget` - -• **eventName**: `string` - -• **options?**: `StaticEventEmitterIteratorOptions` - -##### Returns - -`AsyncIterator`\<`any`[], `any`, `any`\> - -##### Inherited from - -`ClientBase.on` - -##### Defined in - -node\_modules/@types/node/events.d.ts:308 - -*** - -### once() - -#### once(emitter, eventName, options) - -> `static` **once**(`emitter`, `eventName`, `options`?): `Promise`\<`any`[]\> - -Creates a `Promise` that is fulfilled when the `EventEmitter` emits the given -event or that is rejected if the `EventEmitter` emits `'error'` while waiting. -The `Promise` will resolve with an array of all the arguments emitted to the -given event. - -This method is intentionally generic and works with the web platform [EventTarget](https://dom.spec.whatwg.org/#interface-eventtarget) interface, which has no special`'error'` event -semantics and does not listen to the `'error'` event. - -```js -import { once, EventEmitter } from 'node:events'; -import process from 'node:process'; - -const ee = new EventEmitter(); - -process.nextTick(() => { - ee.emit('myevent', 42); -}); - -const [value] = await once(ee, 'myevent'); -console.log(value); - -const err = new Error('kaboom'); -process.nextTick(() => { - ee.emit('error', err); -}); - -try { - await once(ee, 'myevent'); -} catch (err) { - console.error('error happened', err); -} -``` - -The special handling of the `'error'` event is only used when `events.once()` is used to wait for another event. If `events.once()` is used to wait for the -'`error'` event itself, then it is treated as any other kind of event without -special handling: - -```js -import { EventEmitter, once } from 'node:events'; - -const ee = new EventEmitter(); - -once(ee, 'error') - .then(([err]) => console.log('ok', err.message)) - .catch((err) => console.error('error', err.message)); - -ee.emit('error', new Error('boom')); - -// Prints: ok boom -``` - -An `AbortSignal` can be used to cancel waiting for the event: - -```js -import { EventEmitter, once } from 'node:events'; - -const ee = new EventEmitter(); -const ac = new AbortController(); - -async function foo(emitter, event, signal) { - try { - await once(emitter, event, { signal }); - console.log('event emitted!'); - } catch (error) { - if (error.name === 'AbortError') { - console.error('Waiting for the event was canceled!'); - } else { - console.error('There was an error', error.message); - } - } -} - -foo(ee, 'foo', ac.signal); -ac.abort(); // Abort waiting for the event -ee.emit('foo'); // Prints: Waiting for the event was canceled! -``` - -##### Parameters - -• **emitter**: `EventEmitter`\<`DefaultEventMap`\> - -• **eventName**: `string` \| `symbol` - -• **options?**: `StaticEventEmitterOptions` - -##### Returns - -`Promise`\<`any`[]\> - -##### Since - -v11.13.0, v10.16.0 - -##### Inherited from - -`ClientBase.once` - -##### Defined in - -node\_modules/@types/node/events.d.ts:217 - -#### once(emitter, eventName, options) - -> `static` **once**(`emitter`, `eventName`, `options`?): `Promise`\<`any`[]\> - -##### Parameters - -• **emitter**: `EventTarget` - -• **eventName**: `string` - -• **options?**: `StaticEventEmitterOptions` - -##### Returns - -`Promise`\<`any`[]\> - -##### Inherited from - -`ClientBase.once` - -##### Defined in - -node\_modules/@types/node/events.d.ts:222 - -*** - -### setMaxListeners() - -> `static` **setMaxListeners**(`n`?, ...`eventTargets`?): `void` - -```js -import { setMaxListeners, EventEmitter } from 'node:events'; - -const target = new EventTarget(); -const emitter = new EventEmitter(); - -setMaxListeners(5, target, emitter); -``` - -#### Parameters - -• **n?**: `number` - -A non-negative number. The maximum number of listeners per `EventTarget` event. - -• ...**eventTargets?**: (`EventTarget` \| `EventEmitter`\<`DefaultEventMap`\>)[] - -Zero or more {EventTarget} or {EventEmitter} instances. If none are specified, `n` is set as the default max for all newly created {EventTarget} and {EventEmitter} -objects. - -#### Returns - -`void` - -#### Since - -v15.4.0 - -#### Inherited from - -`ClientBase.setMaxListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:402 diff --git a/docs/docs/api/classes/TwitterSearchClient.md b/docs/docs/api/classes/TwitterSearchClient.md deleted file mode 100644 index 5b33f23190b..00000000000 --- a/docs/docs/api/classes/TwitterSearchClient.md +++ /dev/null @@ -1,1798 +0,0 @@ -# Class: TwitterSearchClient - -## Extends - -- `ClientBase` - -## Constructors - -### new TwitterSearchClient() - -> **new TwitterSearchClient**(`runtime`): [`TwitterSearchClient`](TwitterSearchClient.md) - -#### Parameters - -• **runtime**: `IAgentRuntime` - -#### Returns - -[`TwitterSearchClient`](TwitterSearchClient.md) - -#### Overrides - -`ClientBase.constructor` - -#### Defined in - -[core/src/clients/twitter/search.ts:54](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/search.ts#L54) - -## Properties - -### callback() - -> **callback**: (`self`) => `any` = `null` - -#### Parameters - -• **self**: `ClientBase` - -#### Returns - -`any` - -#### Inherited from - -`ClientBase.callback` - -#### Defined in - -[core/src/clients/twitter/base.ts:151](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L151) - -*** - -### directions - -> **directions**: `string` - -#### Inherited from - -`ClientBase.directions` - -#### Defined in - -[core/src/clients/twitter/base.ts:89](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L89) - -*** - -### dryRun - -> **dryRun**: `boolean` = `false` - -#### Inherited from - -`ClientBase.dryRun` - -#### Defined in - -[core/src/clients/twitter/base.ts:94](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L94) - -*** - -### imageDescriptionService - -> **imageDescriptionService**: `ImageDescriptionService` - -#### Inherited from - -`ClientBase.imageDescriptionService` - -#### Defined in - -[core/src/clients/twitter/base.ts:92](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L92) - -*** - -### lastCheckedTweetId - -> **lastCheckedTweetId**: `number` = `null` - -#### Inherited from - -`ClientBase.lastCheckedTweetId` - -#### Defined in - -[core/src/clients/twitter/base.ts:90](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L90) - -*** - -### requestQueue - -> **requestQueue**: `RequestQueue` - -#### Inherited from - -`ClientBase.requestQueue` - -#### Defined in - -[core/src/clients/twitter/base.ts:97](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L97) - -*** - -### runtime - -> **runtime**: `IAgentRuntime` - -#### Inherited from - -`ClientBase.runtime` - -#### Defined in - -[core/src/clients/twitter/base.ts:88](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L88) - -*** - -### temperature - -> **temperature**: `number` = `0.5` - -#### Inherited from - -`ClientBase.temperature` - -#### Defined in - -[core/src/clients/twitter/base.ts:93](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L93) - -*** - -### tweetCacheFilePath - -> **tweetCacheFilePath**: `string` = `"tweetcache/latest_checked_tweet_id.txt"` - -#### Inherited from - -`ClientBase.tweetCacheFilePath` - -#### Defined in - -[core/src/clients/twitter/base.ts:91](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L91) - -*** - -### twitterClient - -> **twitterClient**: `Scraper` - -#### Inherited from - -`ClientBase.twitterClient` - -#### Defined in - -[core/src/clients/twitter/base.ts:87](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L87) - -*** - -### twitterUserId - -> **twitterUserId**: `string` - -#### Inherited from - -`ClientBase.twitterUserId` - -#### Defined in - -[core/src/clients/twitter/base.ts:98](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L98) - -*** - -### \_twitterClient - -> `static` **\_twitterClient**: `Scraper` - -#### Inherited from - -`ClientBase._twitterClient` - -#### Defined in - -[core/src/clients/twitter/base.ts:86](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L86) - -*** - -### captureRejections - -> `static` **captureRejections**: `boolean` - -Value: [boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) - -Change the default `captureRejections` option on all new `EventEmitter` objects. - -#### Since - -v13.4.0, v12.16.0 - -#### Inherited from - -`ClientBase.captureRejections` - -#### Defined in - -node\_modules/@types/node/events.d.ts:459 - -*** - -### captureRejectionSymbol - -> `readonly` `static` **captureRejectionSymbol**: *typeof* [`captureRejectionSymbol`](TwitterGenerationClient.md#capturerejectionsymbol) - -Value: `Symbol.for('nodejs.rejection')` - -See how to write a custom `rejection handler`. - -#### Since - -v13.4.0, v12.16.0 - -#### Inherited from - -`ClientBase.captureRejectionSymbol` - -#### Defined in - -node\_modules/@types/node/events.d.ts:452 - -*** - -### defaultMaxListeners - -> `static` **defaultMaxListeners**: `number` - -By default, a maximum of `10` listeners can be registered for any single -event. This limit can be changed for individual `EventEmitter` instances -using the `emitter.setMaxListeners(n)` method. To change the default -for _all_`EventEmitter` instances, the `events.defaultMaxListeners` property -can be used. If this value is not a positive number, a `RangeError` is thrown. - -Take caution when setting the `events.defaultMaxListeners` because the -change affects _all_ `EventEmitter` instances, including those created before -the change is made. However, calling `emitter.setMaxListeners(n)` still has -precedence over `events.defaultMaxListeners`. - -This is not a hard limit. The `EventEmitter` instance will allow -more listeners to be added but will output a trace warning to stderr indicating -that a "possible EventEmitter memory leak" has been detected. For any single -`EventEmitter`, the `emitter.getMaxListeners()` and `emitter.setMaxListeners()` methods can be used to -temporarily avoid this warning: - -```js -import { EventEmitter } from 'node:events'; -const emitter = new EventEmitter(); -emitter.setMaxListeners(emitter.getMaxListeners() + 1); -emitter.once('event', () => { - // do stuff - emitter.setMaxListeners(Math.max(emitter.getMaxListeners() - 1, 0)); -}); -``` - -The `--trace-warnings` command-line flag can be used to display the -stack trace for such warnings. - -The emitted warning can be inspected with `process.on('warning')` and will -have the additional `emitter`, `type`, and `count` properties, referring to -the event emitter instance, the event's name and the number of attached -listeners, respectively. -Its `name` property is set to `'MaxListenersExceededWarning'`. - -#### Since - -v0.11.2 - -#### Inherited from - -`ClientBase.defaultMaxListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:498 - -*** - -### errorMonitor - -> `readonly` `static` **errorMonitor**: *typeof* [`errorMonitor`](TwitterGenerationClient.md#errormonitor) - -This symbol shall be used to install a listener for only monitoring `'error'` events. Listeners installed using this symbol are called before the regular `'error'` listeners are called. - -Installing a listener using this symbol does not change the behavior once an `'error'` event is emitted. Therefore, the process will still crash if no -regular `'error'` listener is installed. - -#### Since - -v13.6.0, v12.17.0 - -#### Inherited from - -`ClientBase.errorMonitor` - -#### Defined in - -node\_modules/@types/node/events.d.ts:445 - -## Methods - -### \[captureRejectionSymbol\]()? - -> `optional` **\[captureRejectionSymbol\]**\<`K`\>(`error`, `event`, ...`args`): `void` - -#### Type Parameters - -• **K** - -#### Parameters - -• **error**: `Error` - -• **event**: `string` \| `symbol` - -• ...**args**: `AnyRest` - -#### Returns - -`void` - -#### Inherited from - -`ClientBase.[captureRejectionSymbol]` - -#### Defined in - -node\_modules/@types/node/events.d.ts:136 - -*** - -### addListener() - -> **addListener**\<`K`\>(`eventName`, `listener`): `this` - -Alias for `emitter.on(eventName, listener)`. - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -• **listener** - -#### Returns - -`this` - -#### Since - -v0.1.26 - -#### Inherited from - -`ClientBase.addListener` - -#### Defined in - -node\_modules/@types/node/events.d.ts:597 - -*** - -### cacheTweet() - -> **cacheTweet**(`tweet`): `Promise`\<`void`\> - -#### Parameters - -• **tweet**: `Tweet` - -#### Returns - -`Promise`\<`void`\> - -#### Inherited from - -`ClientBase.cacheTweet` - -#### Defined in - -[core/src/clients/twitter/base.ts:100](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L100) - -*** - -### emit() - -> **emit**\<`K`\>(`eventName`, ...`args`): `boolean` - -Synchronously calls each of the listeners registered for the event named `eventName`, in the order they were registered, passing the supplied arguments -to each. - -Returns `true` if the event had listeners, `false` otherwise. - -```js -import { EventEmitter } from 'node:events'; -const myEmitter = new EventEmitter(); - -// First listener -myEmitter.on('event', function firstListener() { - console.log('Helloooo! first listener'); -}); -// Second listener -myEmitter.on('event', function secondListener(arg1, arg2) { - console.log(`event with parameters ${arg1}, ${arg2} in second listener`); -}); -// Third listener -myEmitter.on('event', function thirdListener(...args) { - const parameters = args.join(', '); - console.log(`event with parameters ${parameters} in third listener`); -}); - -console.log(myEmitter.listeners('event')); - -myEmitter.emit('event', 1, 2, 3, 4, 5); - -// Prints: -// [ -// [Function: firstListener], -// [Function: secondListener], -// [Function: thirdListener] -// ] -// Helloooo! first listener -// event with parameters 1, 2 in second listener -// event with parameters 1, 2, 3, 4, 5 in third listener -``` - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -• ...**args**: `AnyRest` - -#### Returns - -`boolean` - -#### Since - -v0.1.26 - -#### Inherited from - -`ClientBase.emit` - -#### Defined in - -node\_modules/@types/node/events.d.ts:859 - -*** - -### eventNames() - -> **eventNames**(): (`string` \| `symbol`)[] - -Returns an array listing the events for which the emitter has registered -listeners. The values in the array are strings or `Symbol`s. - -```js -import { EventEmitter } from 'node:events'; - -const myEE = new EventEmitter(); -myEE.on('foo', () => {}); -myEE.on('bar', () => {}); - -const sym = Symbol('symbol'); -myEE.on(sym, () => {}); - -console.log(myEE.eventNames()); -// Prints: [ 'foo', 'bar', Symbol(symbol) ] -``` - -#### Returns - -(`string` \| `symbol`)[] - -#### Since - -v6.0.0 - -#### Inherited from - -`ClientBase.eventNames` - -#### Defined in - -node\_modules/@types/node/events.d.ts:922 - -*** - -### fetchHomeTimeline() - -> **fetchHomeTimeline**(`count`): `Promise`\<`Tweet`[]\> - -#### Parameters - -• **count**: `number` - -#### Returns - -`Promise`\<`Tweet`[]\> - -#### Inherited from - -`ClientBase.fetchHomeTimeline` - -#### Defined in - -[core/src/clients/twitter/base.ts:281](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L281) - -*** - -### fetchSearchTweets() - -> **fetchSearchTweets**(`query`, `maxTweets`, `searchMode`, `cursor`?): `Promise`\<`QueryTweetsResponse`\> - -#### Parameters - -• **query**: `string` - -• **maxTweets**: `number` - -• **searchMode**: `SearchMode` - -• **cursor?**: `string` - -#### Returns - -`Promise`\<`QueryTweetsResponse`\> - -#### Inherited from - -`ClientBase.fetchSearchTweets` - -#### Defined in - -[core/src/clients/twitter/base.ts:333](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L333) - -*** - -### getCachedTweet() - -> **getCachedTweet**(`tweetId`): `Promise`\<`Tweet`\> - -#### Parameters - -• **tweetId**: `string` - -#### Returns - -`Promise`\<`Tweet`\> - -#### Inherited from - -`ClientBase.getCachedTweet` - -#### Defined in - -[core/src/clients/twitter/base.ts:116](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L116) - -*** - -### getMaxListeners() - -> **getMaxListeners**(): `number` - -Returns the current max listener value for the `EventEmitter` which is either -set by `emitter.setMaxListeners(n)` or defaults to [defaultMaxListeners](TwitterSearchClient.md#defaultmaxlisteners). - -#### Returns - -`number` - -#### Since - -v1.0.0 - -#### Inherited from - -`ClientBase.getMaxListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:774 - -*** - -### getTweet() - -> **getTweet**(`tweetId`): `Promise`\<`Tweet`\> - -#### Parameters - -• **tweetId**: `string` - -#### Returns - -`Promise`\<`Tweet`\> - -#### Inherited from - -`ClientBase.getTweet` - -#### Defined in - -[core/src/clients/twitter/base.ts:138](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L138) - -*** - -### listenerCount() - -> **listenerCount**\<`K`\>(`eventName`, `listener`?): `number` - -Returns the number of listeners listening for the event named `eventName`. -If `listener` is provided, it will return how many times the listener is found -in the list of the listeners of the event. - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -The name of the event being listened for - -• **listener?**: `Function` - -The event handler function - -#### Returns - -`number` - -#### Since - -v3.2.0 - -#### Inherited from - -`ClientBase.listenerCount` - -#### Defined in - -node\_modules/@types/node/events.d.ts:868 - -*** - -### listeners() - -> **listeners**\<`K`\>(`eventName`): `Function`[] - -Returns a copy of the array of listeners for the event named `eventName`. - -```js -server.on('connection', (stream) => { - console.log('someone connected!'); -}); -console.log(util.inspect(server.listeners('connection'))); -// Prints: [ [Function] ] -``` - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -#### Returns - -`Function`[] - -#### Since - -v0.1.26 - -#### Inherited from - -`ClientBase.listeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:787 - -*** - -### off() - -> **off**\<`K`\>(`eventName`, `listener`): `this` - -Alias for `emitter.removeListener()`. - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -• **listener** - -#### Returns - -`this` - -#### Since - -v10.0.0 - -#### Inherited from - -`ClientBase.off` - -#### Defined in - -node\_modules/@types/node/events.d.ts:747 - -*** - -### on() - -> **on**\<`K`\>(`eventName`, `listener`): `this` - -Adds the `listener` function to the end of the listeners array for the event -named `eventName`. No checks are made to see if the `listener` has already -been added. Multiple calls passing the same combination of `eventName` and -`listener` will result in the `listener` being added, and called, multiple times. - -```js -server.on('connection', (stream) => { - console.log('someone connected!'); -}); -``` - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -By default, event listeners are invoked in the order they are added. The `emitter.prependListener()` method can be used as an alternative to add the -event listener to the beginning of the listeners array. - -```js -import { EventEmitter } from 'node:events'; -const myEE = new EventEmitter(); -myEE.on('foo', () => console.log('a')); -myEE.prependListener('foo', () => console.log('b')); -myEE.emit('foo'); -// Prints: -// b -// a -``` - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -The name of the event. - -• **listener** - -The callback function - -#### Returns - -`this` - -#### Since - -v0.1.101 - -#### Inherited from - -`ClientBase.on` - -#### Defined in - -node\_modules/@types/node/events.d.ts:629 - -*** - -### once() - -> **once**\<`K`\>(`eventName`, `listener`): `this` - -Adds a **one-time** `listener` function for the event named `eventName`. The -next time `eventName` is triggered, this listener is removed and then invoked. - -```js -server.once('connection', (stream) => { - console.log('Ah, we have our first user!'); -}); -``` - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -By default, event listeners are invoked in the order they are added. The `emitter.prependOnceListener()` method can be used as an alternative to add the -event listener to the beginning of the listeners array. - -```js -import { EventEmitter } from 'node:events'; -const myEE = new EventEmitter(); -myEE.once('foo', () => console.log('a')); -myEE.prependOnceListener('foo', () => console.log('b')); -myEE.emit('foo'); -// Prints: -// b -// a -``` - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -The name of the event. - -• **listener** - -The callback function - -#### Returns - -`this` - -#### Since - -v0.3.0 - -#### Inherited from - -`ClientBase.once` - -#### Defined in - -node\_modules/@types/node/events.d.ts:659 - -*** - -### onReady() - -> **onReady**(): `Promise`\<`void`\> - -#### Returns - -`Promise`\<`void`\> - -#### Overrides - -`ClientBase.onReady` - -#### Defined in - -[core/src/clients/twitter/search.ts:61](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/search.ts#L61) - -*** - -### prependListener() - -> **prependListener**\<`K`\>(`eventName`, `listener`): `this` - -Adds the `listener` function to the _beginning_ of the listeners array for the -event named `eventName`. No checks are made to see if the `listener` has -already been added. Multiple calls passing the same combination of `eventName` -and `listener` will result in the `listener` being added, and called, multiple times. - -```js -server.prependListener('connection', (stream) => { - console.log('someone connected!'); -}); -``` - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -The name of the event. - -• **listener** - -The callback function - -#### Returns - -`this` - -#### Since - -v6.0.0 - -#### Inherited from - -`ClientBase.prependListener` - -#### Defined in - -node\_modules/@types/node/events.d.ts:886 - -*** - -### prependOnceListener() - -> **prependOnceListener**\<`K`\>(`eventName`, `listener`): `this` - -Adds a **one-time**`listener` function for the event named `eventName` to the _beginning_ of the listeners array. The next time `eventName` is triggered, this -listener is removed, and then invoked. - -```js -server.prependOnceListener('connection', (stream) => { - console.log('Ah, we have our first user!'); -}); -``` - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -The name of the event. - -• **listener** - -The callback function - -#### Returns - -`this` - -#### Since - -v6.0.0 - -#### Inherited from - -`ClientBase.prependOnceListener` - -#### Defined in - -node\_modules/@types/node/events.d.ts:902 - -*** - -### rawListeners() - -> **rawListeners**\<`K`\>(`eventName`): `Function`[] - -Returns a copy of the array of listeners for the event named `eventName`, -including any wrappers (such as those created by `.once()`). - -```js -import { EventEmitter } from 'node:events'; -const emitter = new EventEmitter(); -emitter.once('log', () => console.log('log once')); - -// Returns a new Array with a function `onceWrapper` which has a property -// `listener` which contains the original listener bound above -const listeners = emitter.rawListeners('log'); -const logFnWrapper = listeners[0]; - -// Logs "log once" to the console and does not unbind the `once` event -logFnWrapper.listener(); - -// Logs "log once" to the console and removes the listener -logFnWrapper(); - -emitter.on('log', () => console.log('log persistently')); -// Will return a new Array with a single function bound by `.on()` above -const newListeners = emitter.rawListeners('log'); - -// Logs "log persistently" twice -newListeners[0](); -emitter.emit('log'); -``` - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -#### Returns - -`Function`[] - -#### Since - -v9.4.0 - -#### Inherited from - -`ClientBase.rawListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:818 - -*** - -### removeAllListeners() - -> **removeAllListeners**(`eventName`?): `this` - -Removes all listeners, or those of the specified `eventName`. - -It is bad practice to remove listeners added elsewhere in the code, -particularly when the `EventEmitter` instance was created by some other -component or module (e.g. sockets or file streams). - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -#### Parameters - -• **eventName?**: `string` \| `symbol` - -#### Returns - -`this` - -#### Since - -v0.1.26 - -#### Inherited from - -`ClientBase.removeAllListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:758 - -*** - -### removeListener() - -> **removeListener**\<`K`\>(`eventName`, `listener`): `this` - -Removes the specified `listener` from the listener array for the event named `eventName`. - -```js -const callback = (stream) => { - console.log('someone connected!'); -}; -server.on('connection', callback); -// ... -server.removeListener('connection', callback); -``` - -`removeListener()` will remove, at most, one instance of a listener from the -listener array. If any single listener has been added multiple times to the -listener array for the specified `eventName`, then `removeListener()` must be -called multiple times to remove each instance. - -Once an event is emitted, all listeners attached to it at the -time of emitting are called in order. This implies that any `removeListener()` or `removeAllListeners()` calls _after_ emitting and _before_ the last listener finishes execution -will not remove them from`emit()` in progress. Subsequent events behave as expected. - -```js -import { EventEmitter } from 'node:events'; -class MyEmitter extends EventEmitter {} -const myEmitter = new MyEmitter(); - -const callbackA = () => { - console.log('A'); - myEmitter.removeListener('event', callbackB); -}; - -const callbackB = () => { - console.log('B'); -}; - -myEmitter.on('event', callbackA); - -myEmitter.on('event', callbackB); - -// callbackA removes listener callbackB but it will still be called. -// Internal listener array at time of emit [callbackA, callbackB] -myEmitter.emit('event'); -// Prints: -// A -// B - -// callbackB is now removed. -// Internal listener array [callbackA] -myEmitter.emit('event'); -// Prints: -// A -``` - -Because listeners are managed using an internal array, calling this will -change the position indices of any listener registered _after_ the listener -being removed. This will not impact the order in which listeners are called, -but it means that any copies of the listener array as returned by -the `emitter.listeners()` method will need to be recreated. - -When a single function has been added as a handler multiple times for a single -event (as in the example below), `removeListener()` will remove the most -recently added instance. In the example the `once('ping')` listener is removed: - -```js -import { EventEmitter } from 'node:events'; -const ee = new EventEmitter(); - -function pong() { - console.log('pong'); -} - -ee.on('ping', pong); -ee.once('ping', pong); -ee.removeListener('ping', pong); - -ee.emit('ping'); -ee.emit('ping'); -``` - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -#### Type Parameters - -• **K** - -#### Parameters - -• **eventName**: `string` \| `symbol` - -• **listener** - -#### Returns - -`this` - -#### Since - -v0.1.26 - -#### Inherited from - -`ClientBase.removeListener` - -#### Defined in - -node\_modules/@types/node/events.d.ts:742 - -*** - -### saveRequestMessage() - -> **saveRequestMessage**(`message`, `state`): `Promise`\<`void`\> - -#### Parameters - -• **message**: `Memory` - -• **state**: `State` - -#### Returns - -`Promise`\<`void`\> - -#### Inherited from - -`ClientBase.saveRequestMessage` - -#### Defined in - -[core/src/clients/twitter/base.ts:566](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L566) - -*** - -### setCookiesFromArray() - -> **setCookiesFromArray**(`cookiesArray`): `Promise`\<`void`\> - -#### Parameters - -• **cookiesArray**: `any`[] - -#### Returns - -`Promise`\<`void`\> - -#### Inherited from - -`ClientBase.setCookiesFromArray` - -#### Defined in - -[core/src/clients/twitter/base.ts:554](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/clients/twitter/base.ts#L554) - -*** - -### setMaxListeners() - -> **setMaxListeners**(`n`): `this` - -By default `EventEmitter`s will print a warning if more than `10` listeners are -added for a particular event. This is a useful default that helps finding -memory leaks. The `emitter.setMaxListeners()` method allows the limit to be -modified for this specific `EventEmitter` instance. The value can be set to `Infinity` (or `0`) to indicate an unlimited number of listeners. - -Returns a reference to the `EventEmitter`, so that calls can be chained. - -#### Parameters - -• **n**: `number` - -#### Returns - -`this` - -#### Since - -v0.3.5 - -#### Inherited from - -`ClientBase.setMaxListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:768 - -*** - -### addAbortListener() - -> `static` **addAbortListener**(`signal`, `resource`): `Disposable` - -**`Experimental`** - -Listens once to the `abort` event on the provided `signal`. - -Listening to the `abort` event on abort signals is unsafe and may -lead to resource leaks since another third party with the signal can -call `e.stopImmediatePropagation()`. Unfortunately Node.js cannot change -this since it would violate the web standard. Additionally, the original -API makes it easy to forget to remove listeners. - -This API allows safely using `AbortSignal`s in Node.js APIs by solving these -two issues by listening to the event such that `stopImmediatePropagation` does -not prevent the listener from running. - -Returns a disposable so that it may be unsubscribed from more easily. - -```js -import { addAbortListener } from 'node:events'; - -function example(signal) { - let disposable; - try { - signal.addEventListener('abort', (e) => e.stopImmediatePropagation()); - disposable = addAbortListener(signal, (e) => { - // Do something when signal is aborted. - }); - } finally { - disposable?.[Symbol.dispose](); - } -} -``` - -#### Parameters - -• **signal**: `AbortSignal` - -• **resource** - -#### Returns - -`Disposable` - -Disposable that removes the `abort` listener. - -#### Since - -v20.5.0 - -#### Inherited from - -`ClientBase.addAbortListener` - -#### Defined in - -node\_modules/@types/node/events.d.ts:437 - -*** - -### getEventListeners() - -> `static` **getEventListeners**(`emitter`, `name`): `Function`[] - -Returns a copy of the array of listeners for the event named `eventName`. - -For `EventEmitter`s this behaves exactly the same as calling `.listeners` on -the emitter. - -For `EventTarget`s this is the only way to get the event listeners for the -event target. This is useful for debugging and diagnostic purposes. - -```js -import { getEventListeners, EventEmitter } from 'node:events'; - -{ - const ee = new EventEmitter(); - const listener = () => console.log('Events are fun'); - ee.on('foo', listener); - console.log(getEventListeners(ee, 'foo')); // [ [Function: listener] ] -} -{ - const et = new EventTarget(); - const listener = () => console.log('Events are fun'); - et.addEventListener('foo', listener); - console.log(getEventListeners(et, 'foo')); // [ [Function: listener] ] -} -``` - -#### Parameters - -• **emitter**: `EventTarget` \| `EventEmitter`\<`DefaultEventMap`\> - -• **name**: `string` \| `symbol` - -#### Returns - -`Function`[] - -#### Since - -v15.2.0, v14.17.0 - -#### Inherited from - -`ClientBase.getEventListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:358 - -*** - -### getMaxListeners() - -> `static` **getMaxListeners**(`emitter`): `number` - -Returns the currently set max amount of listeners. - -For `EventEmitter`s this behaves exactly the same as calling `.getMaxListeners` on -the emitter. - -For `EventTarget`s this is the only way to get the max event listeners for the -event target. If the number of event handlers on a single EventTarget exceeds -the max set, the EventTarget will print a warning. - -```js -import { getMaxListeners, setMaxListeners, EventEmitter } from 'node:events'; - -{ - const ee = new EventEmitter(); - console.log(getMaxListeners(ee)); // 10 - setMaxListeners(11, ee); - console.log(getMaxListeners(ee)); // 11 -} -{ - const et = new EventTarget(); - console.log(getMaxListeners(et)); // 10 - setMaxListeners(11, et); - console.log(getMaxListeners(et)); // 11 -} -``` - -#### Parameters - -• **emitter**: `EventTarget` \| `EventEmitter`\<`DefaultEventMap`\> - -#### Returns - -`number` - -#### Since - -v19.9.0 - -#### Inherited from - -`ClientBase.getMaxListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:387 - -*** - -### ~~listenerCount()~~ - -> `static` **listenerCount**(`emitter`, `eventName`): `number` - -A class method that returns the number of listeners for the given `eventName` registered on the given `emitter`. - -```js -import { EventEmitter, listenerCount } from 'node:events'; - -const myEmitter = new EventEmitter(); -myEmitter.on('event', () => {}); -myEmitter.on('event', () => {}); -console.log(listenerCount(myEmitter, 'event')); -// Prints: 2 -``` - -#### Parameters - -• **emitter**: `EventEmitter`\<`DefaultEventMap`\> - -The emitter to query - -• **eventName**: `string` \| `symbol` - -The event name - -#### Returns - -`number` - -#### Since - -v0.9.12 - -#### Deprecated - -Since v3.2.0 - Use `listenerCount` instead. - -#### Inherited from - -`ClientBase.listenerCount` - -#### Defined in - -node\_modules/@types/node/events.d.ts:330 - -*** - -### on() - -#### on(emitter, eventName, options) - -> `static` **on**(`emitter`, `eventName`, `options`?): `AsyncIterator`\<`any`[], `any`, `any`\> - -```js -import { on, EventEmitter } from 'node:events'; -import process from 'node:process'; - -const ee = new EventEmitter(); - -// Emit later on -process.nextTick(() => { - ee.emit('foo', 'bar'); - ee.emit('foo', 42); -}); - -for await (const event of on(ee, 'foo')) { - // The execution of this inner block is synchronous and it - // processes one event at a time (even with await). Do not use - // if concurrent execution is required. - console.log(event); // prints ['bar'] [42] -} -// Unreachable here -``` - -Returns an `AsyncIterator` that iterates `eventName` events. It will throw -if the `EventEmitter` emits `'error'`. It removes all listeners when -exiting the loop. The `value` returned by each iteration is an array -composed of the emitted event arguments. - -An `AbortSignal` can be used to cancel waiting on events: - -```js -import { on, EventEmitter } from 'node:events'; -import process from 'node:process'; - -const ac = new AbortController(); - -(async () => { - const ee = new EventEmitter(); - - // Emit later on - process.nextTick(() => { - ee.emit('foo', 'bar'); - ee.emit('foo', 42); - }); - - for await (const event of on(ee, 'foo', { signal: ac.signal })) { - // The execution of this inner block is synchronous and it - // processes one event at a time (even with await). Do not use - // if concurrent execution is required. - console.log(event); // prints ['bar'] [42] - } - // Unreachable here -})(); - -process.nextTick(() => ac.abort()); -``` - -Use the `close` option to specify an array of event names that will end the iteration: - -```js -import { on, EventEmitter } from 'node:events'; -import process from 'node:process'; - -const ee = new EventEmitter(); - -// Emit later on -process.nextTick(() => { - ee.emit('foo', 'bar'); - ee.emit('foo', 42); - ee.emit('close'); -}); - -for await (const event of on(ee, 'foo', { close: ['close'] })) { - console.log(event); // prints ['bar'] [42] -} -// the loop will exit after 'close' is emitted -console.log('done'); // prints 'done' -``` - -##### Parameters - -• **emitter**: `EventEmitter`\<`DefaultEventMap`\> - -• **eventName**: `string` \| `symbol` - -• **options?**: `StaticEventEmitterIteratorOptions` - -##### Returns - -`AsyncIterator`\<`any`[], `any`, `any`\> - -An `AsyncIterator` that iterates `eventName` events emitted by the `emitter` - -##### Since - -v13.6.0, v12.16.0 - -##### Inherited from - -`ClientBase.on` - -##### Defined in - -node\_modules/@types/node/events.d.ts:303 - -#### on(emitter, eventName, options) - -> `static` **on**(`emitter`, `eventName`, `options`?): `AsyncIterator`\<`any`[], `any`, `any`\> - -##### Parameters - -• **emitter**: `EventTarget` - -• **eventName**: `string` - -• **options?**: `StaticEventEmitterIteratorOptions` - -##### Returns - -`AsyncIterator`\<`any`[], `any`, `any`\> - -##### Inherited from - -`ClientBase.on` - -##### Defined in - -node\_modules/@types/node/events.d.ts:308 - -*** - -### once() - -#### once(emitter, eventName, options) - -> `static` **once**(`emitter`, `eventName`, `options`?): `Promise`\<`any`[]\> - -Creates a `Promise` that is fulfilled when the `EventEmitter` emits the given -event or that is rejected if the `EventEmitter` emits `'error'` while waiting. -The `Promise` will resolve with an array of all the arguments emitted to the -given event. - -This method is intentionally generic and works with the web platform [EventTarget](https://dom.spec.whatwg.org/#interface-eventtarget) interface, which has no special`'error'` event -semantics and does not listen to the `'error'` event. - -```js -import { once, EventEmitter } from 'node:events'; -import process from 'node:process'; - -const ee = new EventEmitter(); - -process.nextTick(() => { - ee.emit('myevent', 42); -}); - -const [value] = await once(ee, 'myevent'); -console.log(value); - -const err = new Error('kaboom'); -process.nextTick(() => { - ee.emit('error', err); -}); - -try { - await once(ee, 'myevent'); -} catch (err) { - console.error('error happened', err); -} -``` - -The special handling of the `'error'` event is only used when `events.once()` is used to wait for another event. If `events.once()` is used to wait for the -'`error'` event itself, then it is treated as any other kind of event without -special handling: - -```js -import { EventEmitter, once } from 'node:events'; - -const ee = new EventEmitter(); - -once(ee, 'error') - .then(([err]) => console.log('ok', err.message)) - .catch((err) => console.error('error', err.message)); - -ee.emit('error', new Error('boom')); - -// Prints: ok boom -``` - -An `AbortSignal` can be used to cancel waiting for the event: - -```js -import { EventEmitter, once } from 'node:events'; - -const ee = new EventEmitter(); -const ac = new AbortController(); - -async function foo(emitter, event, signal) { - try { - await once(emitter, event, { signal }); - console.log('event emitted!'); - } catch (error) { - if (error.name === 'AbortError') { - console.error('Waiting for the event was canceled!'); - } else { - console.error('There was an error', error.message); - } - } -} - -foo(ee, 'foo', ac.signal); -ac.abort(); // Abort waiting for the event -ee.emit('foo'); // Prints: Waiting for the event was canceled! -``` - -##### Parameters - -• **emitter**: `EventEmitter`\<`DefaultEventMap`\> - -• **eventName**: `string` \| `symbol` - -• **options?**: `StaticEventEmitterOptions` - -##### Returns - -`Promise`\<`any`[]\> - -##### Since - -v11.13.0, v10.16.0 - -##### Inherited from - -`ClientBase.once` - -##### Defined in - -node\_modules/@types/node/events.d.ts:217 - -#### once(emitter, eventName, options) - -> `static` **once**(`emitter`, `eventName`, `options`?): `Promise`\<`any`[]\> - -##### Parameters - -• **emitter**: `EventTarget` - -• **eventName**: `string` - -• **options?**: `StaticEventEmitterOptions` - -##### Returns - -`Promise`\<`any`[]\> - -##### Inherited from - -`ClientBase.once` - -##### Defined in - -node\_modules/@types/node/events.d.ts:222 - -*** - -### setMaxListeners() - -> `static` **setMaxListeners**(`n`?, ...`eventTargets`?): `void` - -```js -import { setMaxListeners, EventEmitter } from 'node:events'; - -const target = new EventTarget(); -const emitter = new EventEmitter(); - -setMaxListeners(5, target, emitter); -``` - -#### Parameters - -• **n?**: `number` - -A non-negative number. The maximum number of listeners per `EventTarget` event. - -• ...**eventTargets?**: (`EventTarget` \| `EventEmitter`\<`DefaultEventMap`\>)[] - -Zero or more {EventTarget} or {EventEmitter} instances. If none are specified, `n` is set as the default max for all newly created {EventTarget} and {EventEmitter} -objects. - -#### Returns - -`void` - -#### Since - -v15.4.0 - -#### Inherited from - -`ClientBase.setMaxListeners` - -#### Defined in - -node\_modules/@types/node/events.d.ts:402 diff --git a/docs/docs/api/enumerations/Clients.md b/docs/docs/api/enumerations/Clients.md new file mode 100644 index 00000000000..cfa00eb6fb7 --- /dev/null +++ b/docs/docs/api/enumerations/Clients.md @@ -0,0 +1,41 @@ +# Enumeration: Clients + +## Enumeration Members + +### DIRECT + +> **DIRECT**: `"direct"` + +#### Defined in + +[packages/core/src/types.ts:324](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L324) + +--- + +### DISCORD + +> **DISCORD**: `"discord"` + +#### Defined in + +[packages/core/src/types.ts:323](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L323) + +--- + +### TELEGRAM + +> **TELEGRAM**: `"telegram"` + +#### Defined in + +[packages/core/src/types.ts:326](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L326) + +--- + +### TWITTER + +> **TWITTER**: `"twitter"` + +#### Defined in + +[packages/core/src/types.ts:325](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L325) diff --git a/docs/docs/api/enumerations/GoalStatus.md b/docs/docs/api/enumerations/GoalStatus.md new file mode 100644 index 00000000000..d5445189bcf --- /dev/null +++ b/docs/docs/api/enumerations/GoalStatus.md @@ -0,0 +1,31 @@ +# Enumeration: GoalStatus + +## Enumeration Members + +### DONE + +> **DONE**: `"DONE"` + +#### Defined in + +[packages/core/src/types.ts:58](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L58) + +--- + +### FAILED + +> **FAILED**: `"FAILED"` + +#### Defined in + +[packages/core/src/types.ts:59](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L59) + +--- + +### IN_PROGRESS + +> **IN_PROGRESS**: `"IN_PROGRESS"` + +#### Defined in + +[packages/core/src/types.ts:60](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L60) diff --git a/docs/docs/api/enumerations/ModelClass.md b/docs/docs/api/enumerations/ModelClass.md new file mode 100644 index 00000000000..5ee17086cdf --- /dev/null +++ b/docs/docs/api/enumerations/ModelClass.md @@ -0,0 +1,51 @@ +# Enumeration: ModelClass + +## Enumeration Members + +### EMBEDDING + +> **EMBEDDING**: `"embedding"` + +#### Defined in + +[packages/core/src/types.ts:79](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L79) + +--- + +### IMAGE + +> **IMAGE**: `"image"` + +#### Defined in + +[packages/core/src/types.ts:80](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L80) + +--- + +### LARGE + +> **LARGE**: `"large"` + +#### Defined in + +[packages/core/src/types.ts:78](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L78) + +--- + +### MEDIUM + +> **MEDIUM**: `"medium"` + +#### Defined in + +[packages/core/src/types.ts:77](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L77) + +--- + +### SMALL + +> **SMALL**: `"small"` + +#### Defined in + +[packages/core/src/types.ts:76](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L76) diff --git a/docs/docs/api/enumerations/ModelProviderName.md b/docs/docs/api/enumerations/ModelProviderName.md new file mode 100644 index 00000000000..902ed6cccfb --- /dev/null +++ b/docs/docs/api/enumerations/ModelProviderName.md @@ -0,0 +1,101 @@ +# Enumeration: ModelProviderName + +## Enumeration Members + +### ANTHROPIC + +> **ANTHROPIC**: `"anthropic"` + +#### Defined in + +[packages/core/src/types.ts:121](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L121) + +--- + +### CLAUDE_VERTEX + +> **CLAUDE_VERTEX**: `"claude_vertex"` + +#### Defined in + +[packages/core/src/types.ts:127](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L127) + +--- + +### GOOGLE + +> **GOOGLE**: `"google"` + +#### Defined in + +[packages/core/src/types.ts:126](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L126) + +--- + +### GROK + +> **GROK**: `"grok"` + +#### Defined in + +[packages/core/src/types.ts:122](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L122) + +--- + +### GROQ + +> **GROQ**: `"groq"` + +#### Defined in + +[packages/core/src/types.ts:123](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L123) + +--- + +### LLAMACLOUD + +> **LLAMACLOUD**: `"llama_cloud"` + +#### Defined in + +[packages/core/src/types.ts:124](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L124) + +--- + +### LLAMALOCAL + +> **LLAMALOCAL**: `"llama_local"` + +#### Defined in + +[packages/core/src/types.ts:125](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L125) + +--- + +### OLLAMA + +> **OLLAMA**: `"ollama"` + +#### Defined in + +[packages/core/src/types.ts:129](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L129) + +--- + +### OPENAI + +> **OPENAI**: `"openai"` + +#### Defined in + +[packages/core/src/types.ts:120](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L120) + +--- + +### REDPILL + +> **REDPILL**: `"redpill"` + +#### Defined in + +[packages/core/src/types.ts:128](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L128) diff --git a/docs/docs/api/enumerations/ServiceType.md b/docs/docs/api/enumerations/ServiceType.md new file mode 100644 index 00000000000..e25a101659b --- /dev/null +++ b/docs/docs/api/enumerations/ServiceType.md @@ -0,0 +1,71 @@ +# Enumeration: ServiceType + +## Enumeration Members + +### BROWSER + +> **BROWSER**: `"browser"` + +#### Defined in + +[packages/core/src/types.ts:633](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L633) + +--- + +### IMAGE_DESCRIPTION + +> **IMAGE_DESCRIPTION**: `"image_description"` + +#### Defined in + +[packages/core/src/types.ts:629](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L629) + +--- + +### PDF + +> **PDF**: `"pdf"` + +#### Defined in + +[packages/core/src/types.ts:635](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L635) + +--- + +### SPEECH_GENERATION + +> **SPEECH_GENERATION**: `"speech_generation"` + +#### Defined in + +[packages/core/src/types.ts:634](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L634) + +--- + +### TEXT_GENERATION + +> **TEXT_GENERATION**: `"text_generation"` + +#### Defined in + +[packages/core/src/types.ts:632](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L632) + +--- + +### TRANSCRIPTION + +> **TRANSCRIPTION**: `"transcription"` + +#### Defined in + +[packages/core/src/types.ts:630](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L630) + +--- + +### VIDEO + +> **VIDEO**: `"video"` + +#### Defined in + +[packages/core/src/types.ts:631](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L631) diff --git a/docs/docs/api/functions/buyToken.md b/docs/docs/api/functions/buyToken.md deleted file mode 100644 index c01c9a3071d..00000000000 --- a/docs/docs/api/functions/buyToken.md +++ /dev/null @@ -1,31 +0,0 @@ -# Function: buyToken() - -> **buyToken**(`__namedParameters`): `Promise`\<`void`\> - -## Parameters - -• **\_\_namedParameters** - -• **\_\_namedParameters.allowOffCurve**: `boolean` - -• **\_\_namedParameters.amount**: `bigint` - -• **\_\_namedParameters.buyer**: `Keypair` - -• **\_\_namedParameters.connection**: `Connection` - -• **\_\_namedParameters.mint**: `PublicKey` - -• **\_\_namedParameters.priorityFee**: `PriorityFee` - -• **\_\_namedParameters.sdk**: `PumpFunSDK` - -• **\_\_namedParameters.slippage**: `string` - -## Returns - -`Promise`\<`void`\> - -## Defined in - -[core/src/actions/pumpfun.ts:119](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/pumpfun.ts#L119) diff --git a/docs/docs/api/functions/createAndBuyToken.md b/docs/docs/api/functions/createAndBuyToken.md deleted file mode 100644 index ba25b08c96e..00000000000 --- a/docs/docs/api/functions/createAndBuyToken.md +++ /dev/null @@ -1,35 +0,0 @@ -# Function: createAndBuyToken() - -> **createAndBuyToken**(`__namedParameters`): `Promise`\<`void`\> - -## Parameters - -• **\_\_namedParameters** - -• **\_\_namedParameters.allowOffCurve**: `boolean` - -• **\_\_namedParameters.buyAmountSol**: `bigint` - -• **\_\_namedParameters.commitment?**: `"processed"` \| `"confirmed"` \| `"finalized"` \| `"recent"` \| `"single"` \| `"singleGossip"` \| `"root"` \| `"max"` = `"finalized"` - -• **\_\_namedParameters.connection**: `Connection` - -• **\_\_namedParameters.deployer**: `Keypair` - -• **\_\_namedParameters.mint**: `Keypair` - -• **\_\_namedParameters.priorityFee**: `PriorityFee` - -• **\_\_namedParameters.sdk**: `PumpFunSDK` - -• **\_\_namedParameters.slippage**: `string` - -• **\_\_namedParameters.tokenMetadata**: `CreateTokenMetadata` - -## Returns - -`Promise`\<`void`\> - -## Defined in - -[core/src/actions/pumpfun.ts:51](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/pumpfun.ts#L51) diff --git a/docs/docs/api/functions/getEndpoint.md b/docs/docs/api/functions/getEndpoint.md new file mode 100644 index 00000000000..9200d1d96b5 --- /dev/null +++ b/docs/docs/api/functions/getEndpoint.md @@ -0,0 +1,15 @@ +# Function: getEndpoint() + +> **getEndpoint**(`provider`): `string` + +## Parameters + +• **provider**: [`ModelProviderName`](../enumerations/ModelProviderName.md) + +## Returns + +`string` + +## Defined in + +[packages/core/src/models.ts:188](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/models.ts#L188) diff --git a/docs/docs/api/functions/isCreateAndBuyContent.md b/docs/docs/api/functions/isCreateAndBuyContent.md deleted file mode 100644 index b8c2ff70af0..00000000000 --- a/docs/docs/api/functions/isCreateAndBuyContent.md +++ /dev/null @@ -1,17 +0,0 @@ -# Function: isCreateAndBuyContent() - -> **isCreateAndBuyContent**(`runtime`, `content`): `content is CreateAndBuyContent` - -## Parameters - -• **runtime**: `IAgentRuntime` - -• **content**: `any` - -## Returns - -`content is CreateAndBuyContent` - -## Defined in - -[core/src/actions/pumpfun.ts:33](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/pumpfun.ts#L33) diff --git a/docs/docs/api/functions/sellToken.md b/docs/docs/api/functions/sellToken.md deleted file mode 100644 index c0294e4e5a0..00000000000 --- a/docs/docs/api/functions/sellToken.md +++ /dev/null @@ -1,31 +0,0 @@ -# Function: sellToken() - -> **sellToken**(`__namedParameters`): `Promise`\<`void`\> - -## Parameters - -• **\_\_namedParameters** - -• **\_\_namedParameters.allowOffCurve**: `boolean` - -• **\_\_namedParameters.amount**: `bigint` - -• **\_\_namedParameters.connection**: `Connection` - -• **\_\_namedParameters.mint**: `PublicKey` - -• **\_\_namedParameters.priorityFee**: `PriorityFee` - -• **\_\_namedParameters.sdk**: `PumpFunSDK` - -• **\_\_namedParameters.seller**: `Keypair` - -• **\_\_namedParameters.slippage**: `string` - -## Returns - -`Promise`\<`void`\> - -## Defined in - -[core/src/actions/pumpfun.ts:167](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/pumpfun.ts#L167) diff --git a/docs/docs/api/globals.md b/docs/docs/api/globals.md deleted file mode 100644 index 121ab97e2a3..00000000000 --- a/docs/docs/api/globals.md +++ /dev/null @@ -1,50 +0,0 @@ -# eliza - -## Classes - -- [DirectClient](classes/DirectClient.md) -- [DiscordClient](classes/DiscordClient.md) -- [PostgresDatabaseAdapter](classes/PostgresDatabaseAdapter.md) -- [SqliteDatabaseAdapter](classes/SqliteDatabaseAdapter.md) -- [TelegramClient](classes/TelegramClient.md) -- [TokenProvider](classes/TokenProvider.md) -- [TwitterGenerationClient](classes/TwitterGenerationClient.md) -- [TwitterInteractionClient](classes/TwitterInteractionClient.md) -- [TwitterSearchClient](classes/TwitterSearchClient.md) - -## Interfaces - -- [CreateAndBuyContent](interfaces/CreateAndBuyContent.md) - -## Variables - -- [askClaude](variables/askClaude.md) -- [boredomProvider](variables/boredomProvider.md) -- [claudeHandlerTemplate](variables/claudeHandlerTemplate.md) -- [continueAction](variables/continueAction.md) -- [executeSwap](variables/executeSwap.md) -- [followRoom](variables/followRoom.md) -- [ignore](variables/ignore.md) -- [imageGeneration](variables/imageGeneration.md) -- [muteRoom](variables/muteRoom.md) -- [none](variables/none.md) -- [orderBookProvider](variables/orderBookProvider.md) -- [prettyConsole](variables/prettyConsole.md) -- [shouldContinueTemplate](variables/shouldContinueTemplate.md) -- [shouldFollowTemplate](variables/shouldFollowTemplate.md) -- [shouldMuteTemplate](variables/shouldMuteTemplate.md) -- [shouldUnmuteTemplate](variables/shouldUnmuteTemplate.md) -- [timeProvider](variables/timeProvider.md) -- [tokenProvider](variables/tokenProvider.md) -- [unfollowRoom](variables/unfollowRoom.md) -- [unmuteRoom](variables/unmuteRoom.md) -- [walletProvider](variables/walletProvider.md) - -## Functions - -- [buyToken](functions/buyToken.md) -- [createAndBuyToken](functions/createAndBuyToken.md) -- [generateCaption](functions/generateCaption.md) -- [generateImage](functions/generateImage.md) -- [isCreateAndBuyContent](functions/isCreateAndBuyContent.md) -- [sellToken](functions/sellToken.md) diff --git a/docs/docs/api/index.md b/docs/docs/api/index.md index 9d416ea06e7..277dac78164 100644 --- a/docs/docs/api/index.md +++ b/docs/docs/api/index.md @@ -2,35 +2,41 @@ Eliza Banner -_As seen powering [@DegenSpartanAI](https://x.com/degenspartanai) and [@MarcAIndreessen](https://x.com/pmairca)_ - -- Multi-agent simulation framework -- Add as many unique characters as you want with [characterfile](https://github.com/lalalune/characterfile/) -- Full-featured Discord and Twitter connectors, with Discord voice channel support -- Full conversational and document RAG memory -- Can read links and PDFs, transcribe audio and videos, summarize conversations, and more -- Highly extensible - create your own actions and clients to extend Eliza's capabilities -- Supports open source and local models (default configured with Nous Hermes Llama 3.1B) -- Supports OpenAI for cloud inference on a light-weight device -- "Ask Claude" mode for calling Claude on more complex queries -- 100% Typescript +### [For Chinese Version: 中文说明](_media/README_CN.md) + +## Features + +- 🛠 Full-featured Discord, Twitter and Telegram connectors +- 👥 Multi-agent and room support +- 📚 Easily ingest and interact with your documents +- 💾 Retrievable memory and document store +- 🚀 Highly extensible - create your own actions and clients to extend capabilities +- ☁️ Supports many models, including local Llama, OpenAI, Anthropic, Groq, and more +- 📦 Just works! + +## What can I use it for? + +- 🤖 Chatbots +- 🕵️ Autonomous Agents +- 📈 Business process handling +- 🎮 Video game NPCs # Getting Started **Prerequisites (MUST):** -- [Node.js 22+](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) -- [pnpm](https://pnpm.io/installation) +- [Node.js 22+](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) +- [pnpm](https://pnpm.io/installation) ### Edit the .env file -- Copy .env.example to .env and fill in the appropriate values -- Edit the TWITTER environment variables to add your bot's username and password +- Copy .env.example to .env and fill in the appropriate values +- Edit the TWITTER environment variables to add your bot's username and password ### Edit the character file -- Check out the file `src/core/defaultCharacter.ts` - you can modify this -- You can also load characters with the `pnpm start --characters="path/to/your/character.json"` and run multiple bots at the same time. +- Check out the file `src/core/defaultCharacter.ts` - you can modify this +- You can also load characters with the `pnpm start --characters="path/to/your/character.json"` and run multiple bots at the same time. After setting up the .env file and character file, you can start the bot with the following command: @@ -154,12 +160,14 @@ pnpm test:watch # Run tests in watch mode ``` For database-specific tests: + ```bash pnpm test:sqlite # Run tests with SQLite pnpm test:sqljs # Run tests with SQL.js ``` Tests are written using Jest and can be found in `src/**/*.test.ts` files. The test environment is configured to: + - Load environment variables from `.env.test` - Use a 2-minute timeout for long-running tests - Support ESM modules diff --git a/docs/docs/api/interfaces/Account.md b/docs/docs/api/interfaces/Account.md new file mode 100644 index 00000000000..4d457f27b4b --- /dev/null +++ b/docs/docs/api/interfaces/Account.md @@ -0,0 +1,67 @@ +# Interface: Account + +Represents a user, including their name, details, and a unique identifier. + +## Properties + +### avatarUrl? + +> `optional` **avatarUrl**: `string` + +#### Defined in + +[packages/core/src/types.ts:280](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L280) + +--- + +### details? + +> `optional` **details**: `object` + +#### Index Signature + +\[`key`: `string`\]: `any` + +#### Defined in + +[packages/core/src/types.ts:278](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L278) + +--- + +### email? + +> `optional` **email**: `string` + +#### Defined in + +[packages/core/src/types.ts:279](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L279) + +--- + +### id + +> **id**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:275](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L275) + +--- + +### name + +> **name**: `string` + +#### Defined in + +[packages/core/src/types.ts:276](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L276) + +--- + +### username + +> **username**: `string` + +#### Defined in + +[packages/core/src/types.ts:277](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L277) diff --git a/docs/docs/api/interfaces/Action.md b/docs/docs/api/interfaces/Action.md new file mode 100644 index 00000000000..0b8a55a6efb --- /dev/null +++ b/docs/docs/api/interfaces/Action.md @@ -0,0 +1,63 @@ +# Interface: Action + +Represents an action that the agent can perform, including conditions for its use, a description, examples, a handler function, and a validation function. + +## Properties + +### description + +> **description**: `string` + +#### Defined in + +[packages/core/src/types.ts:219](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L219) + +--- + +### examples + +> **examples**: [`ActionExample`](ActionExample.md)[][] + +#### Defined in + +[packages/core/src/types.ts:220](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L220) + +--- + +### handler + +> **handler**: [`Handler`](../type-aliases/Handler.md) + +#### Defined in + +[packages/core/src/types.ts:221](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L221) + +--- + +### name + +> **name**: `string` + +#### Defined in + +[packages/core/src/types.ts:222](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L222) + +--- + +### similes + +> **similes**: `string`[] + +#### Defined in + +[packages/core/src/types.ts:218](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L218) + +--- + +### validate + +> **validate**: [`Validator`](../type-aliases/Validator.md) + +#### Defined in + +[packages/core/src/types.ts:223](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L223) diff --git a/docs/docs/api/interfaces/Content.md b/docs/docs/api/interfaces/Content.md new file mode 100644 index 00000000000..0bb27e36aa7 --- /dev/null +++ b/docs/docs/api/interfaces/Content.md @@ -0,0 +1,67 @@ +# Interface: Content + +Represents the content of a message, including its main text (`content`), any associated action (`action`), and the source of the content (`source`), if applicable. + +## Indexable + +\[`key`: `string`\]: `unknown` + +## Properties + +### action? + +> `optional` **action**: `string` + +#### Defined in + +[packages/core/src/types.ts:14](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L14) + +--- + +### attachments? + +> `optional` **attachments**: [`Media`](../type-aliases/Media.md)[] + +#### Defined in + +[packages/core/src/types.ts:18](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L18) + +--- + +### inReplyTo? + +> `optional` **inReplyTo**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:17](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L17) + +--- + +### source? + +> `optional` **source**: `string` + +#### Defined in + +[packages/core/src/types.ts:15](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L15) + +--- + +### text + +> **text**: `string` + +#### Defined in + +[packages/core/src/types.ts:13](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L13) + +--- + +### url? + +> `optional` **url**: `string` + +#### Defined in + +[packages/core/src/types.ts:16](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L16) diff --git a/docs/docs/api/interfaces/CreateAndBuyContent.md b/docs/docs/api/interfaces/CreateAndBuyContent.md deleted file mode 100644 index ff5f5c0fad3..00000000000 --- a/docs/docs/api/interfaces/CreateAndBuyContent.md +++ /dev/null @@ -1,147 +0,0 @@ -# Interface: CreateAndBuyContent - -## Extends - -- `Content` - -## Properties - -### action? - -> `optional` **action**: `string` - -#### Inherited from - -`Content.action` - -#### Defined in - -[core/src/core/types.ts:14](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/core/types.ts#L14) - -*** - -### allowOffCurve - -> **allowOffCurve**: `boolean` - -#### Defined in - -[core/src/actions/pumpfun.ts:30](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/pumpfun.ts#L30) - -*** - -### attachments? - -> `optional` **attachments**: `Media`[] - -#### Inherited from - -`Content.attachments` - -#### Defined in - -[core/src/core/types.ts:18](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/core/types.ts#L18) - -*** - -### buyAmountSol - -> **buyAmountSol**: `string` \| `number` - -#### Defined in - -[core/src/actions/pumpfun.ts:25](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/pumpfun.ts#L25) - -*** - -### deployerPrivateKey - -> **deployerPrivateKey**: `string` - -#### Defined in - -[core/src/actions/pumpfun.ts:23](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/pumpfun.ts#L23) - -*** - -### inReplyTo? - -> `optional` **inReplyTo**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` - -#### Inherited from - -`Content.inReplyTo` - -#### Defined in - -[core/src/core/types.ts:17](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/core/types.ts#L17) - -*** - -### priorityFee - -> **priorityFee**: `object` - -#### unitLimit - -> **unitLimit**: `number` - -#### unitPrice - -> **unitPrice**: `number` - -#### Defined in - -[core/src/actions/pumpfun.ts:26](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/pumpfun.ts#L26) - -*** - -### source? - -> `optional` **source**: `string` - -#### Inherited from - -`Content.source` - -#### Defined in - -[core/src/core/types.ts:15](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/core/types.ts#L15) - -*** - -### text - -> **text**: `string` - -#### Inherited from - -`Content.text` - -#### Defined in - -[core/src/core/types.ts:13](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/core/types.ts#L13) - -*** - -### tokenMetadata - -> **tokenMetadata**: `CreateTokenMetadata` - -#### Defined in - -[core/src/actions/pumpfun.ts:24](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/pumpfun.ts#L24) - -*** - -### url? - -> `optional` **url**: `string` - -#### Inherited from - -`Content.url` - -#### Defined in - -[core/src/core/types.ts:16](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/core/types.ts#L16) diff --git a/docs/docs/api/interfaces/EvaluationExample.md b/docs/docs/api/interfaces/EvaluationExample.md new file mode 100644 index 00000000000..1a461ba5d68 --- /dev/null +++ b/docs/docs/api/interfaces/EvaluationExample.md @@ -0,0 +1,33 @@ +# Interface: EvaluationExample + +Represents an example for evaluation, including the context, an array of message examples, and the expected outcome. + +## Properties + +### context + +> **context**: `string` + +#### Defined in + +[packages/core/src/types.ts:230](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L230) + +--- + +### messages + +> **messages**: [`ActionExample`](ActionExample.md)[] + +#### Defined in + +[packages/core/src/types.ts:231](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L231) + +--- + +### outcome + +> **outcome**: `string` + +#### Defined in + +[packages/core/src/types.ts:232](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L232) diff --git a/docs/docs/api/interfaces/Evaluator.md b/docs/docs/api/interfaces/Evaluator.md new file mode 100644 index 00000000000..c3e68ac9d55 --- /dev/null +++ b/docs/docs/api/interfaces/Evaluator.md @@ -0,0 +1,63 @@ +# Interface: Evaluator + +Represents an evaluator, which is used to assess and guide the agent's responses based on the current context and state. + +## Properties + +### description + +> **description**: `string` + +#### Defined in + +[packages/core/src/types.ts:239](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L239) + +--- + +### examples + +> **examples**: [`EvaluationExample`](EvaluationExample.md)[] + +#### Defined in + +[packages/core/src/types.ts:241](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L241) + +--- + +### handler + +> **handler**: [`Handler`](../type-aliases/Handler.md) + +#### Defined in + +[packages/core/src/types.ts:242](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L242) + +--- + +### name + +> **name**: `string` + +#### Defined in + +[packages/core/src/types.ts:243](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L243) + +--- + +### similes + +> **similes**: `string`[] + +#### Defined in + +[packages/core/src/types.ts:240](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L240) + +--- + +### validate + +> **validate**: [`Validator`](../type-aliases/Validator.md) + +#### Defined in + +[packages/core/src/types.ts:244](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L244) diff --git a/docs/docs/api/interfaces/Goal.md b/docs/docs/api/interfaces/Goal.md new file mode 100644 index 00000000000..00b8e1faa48 --- /dev/null +++ b/docs/docs/api/interfaces/Goal.md @@ -0,0 +1,63 @@ +# Interface: Goal + +Represents a goal, which is a higher-level aim composed of one or more objectives. Goals are tracked to measure progress or achievements within the conversation or system. + +## Properties + +### id? + +> `optional` **id**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:67](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L67) + +--- + +### name + +> **name**: `string` + +#### Defined in + +[packages/core/src/types.ts:70](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L70) + +--- + +### objectives + +> **objectives**: [`Objective`](Objective.md)[] + +#### Defined in + +[packages/core/src/types.ts:72](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L72) + +--- + +### roomId + +> **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:68](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L68) + +--- + +### status + +> **status**: [`GoalStatus`](../enumerations/GoalStatus.md) + +#### Defined in + +[packages/core/src/types.ts:71](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L71) + +--- + +### userId + +> **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:69](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L69) diff --git a/docs/docs/api/interfaces/Memory.md b/docs/docs/api/interfaces/Memory.md new file mode 100644 index 00000000000..c59c9cef353 --- /dev/null +++ b/docs/docs/api/interfaces/Memory.md @@ -0,0 +1,83 @@ +# Interface: Memory + +Represents a memory record, which could be a message or any other piece of information remembered by the system, including its content, associated user IDs, and optionally, its embedding vector for similarity comparisons. + +## Properties + +### agentId + +> **agentId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:172](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L172) + +--- + +### content + +> **content**: [`Content`](Content.md) + +#### Defined in + +[packages/core/src/types.ts:174](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L174) + +--- + +### createdAt? + +> `optional` **createdAt**: `number` + +#### Defined in + +[packages/core/src/types.ts:173](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L173) + +--- + +### embedding? + +> `optional` **embedding**: `number`[] + +#### Defined in + +[packages/core/src/types.ts:175](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L175) + +--- + +### id? + +> `optional` **id**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:170](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L170) + +--- + +### roomId + +> **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:176](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L176) + +--- + +### unique? + +> `optional` **unique**: `boolean` + +#### Defined in + +[packages/core/src/types.ts:177](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L177) + +--- + +### userId + +> **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:171](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L171) diff --git a/docs/docs/api/interfaces/Objective.md b/docs/docs/api/interfaces/Objective.md new file mode 100644 index 00000000000..5cfe89acfe5 --- /dev/null +++ b/docs/docs/api/interfaces/Objective.md @@ -0,0 +1,33 @@ +# Interface: Objective + +Represents an objective within a goal, detailing what needs to be achieved and whether it has been completed. + +## Properties + +### completed + +> **completed**: `boolean` + +#### Defined in + +[packages/core/src/types.ts:54](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L54) + +--- + +### description + +> **description**: `string` + +#### Defined in + +[packages/core/src/types.ts:53](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L53) + +--- + +### id? + +> `optional` **id**: `string` + +#### Defined in + +[packages/core/src/types.ts:52](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L52) diff --git a/docs/docs/api/interfaces/Relationship.md b/docs/docs/api/interfaces/Relationship.md new file mode 100644 index 00000000000..3cffa9fd280 --- /dev/null +++ b/docs/docs/api/interfaces/Relationship.md @@ -0,0 +1,73 @@ +# Interface: Relationship + +Represents a relationship between two users, including their IDs, the status of the relationship, and the room ID in which the relationship is established. + +## Properties + +### createdAt? + +> `optional` **createdAt**: `string` + +#### Defined in + +[packages/core/src/types.ts:268](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L268) + +--- + +### id + +> **id**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:262](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L262) + +--- + +### roomId + +> **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:266](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L266) + +--- + +### status + +> **status**: `string` + +#### Defined in + +[packages/core/src/types.ts:267](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L267) + +--- + +### userA + +> **userA**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:263](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L263) + +--- + +### userB + +> **userB**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:264](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L264) + +--- + +### userId + +> **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:265](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L265) diff --git a/docs/docs/api/interfaces/State.md b/docs/docs/api/interfaces/State.md new file mode 100644 index 00000000000..dbba18891a1 --- /dev/null +++ b/docs/docs/api/interfaces/State.md @@ -0,0 +1,277 @@ +# Interface: State + +Represents the state of the conversation or context in which the agent is operating, including information about users, messages, goals, and other relevant data. + +## Indexable + +\[`key`: `string`\]: `unknown` + +## Properties + +### actionExamples? + +> `optional` **actionExamples**: `string` + +#### Defined in + +[packages/core/src/types.ts:158](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L158) + +--- + +### actionNames? + +> `optional` **actionNames**: `string` + +#### Defined in + +[packages/core/src/types.ts:155](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L155) + +--- + +### actions? + +> `optional` **actions**: `string` + +#### Defined in + +[packages/core/src/types.ts:156](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L156) + +--- + +### actionsData? + +> `optional` **actionsData**: [`Action`](Action.md)[] + +#### Defined in + +[packages/core/src/types.ts:157](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L157) + +--- + +### actors + +> **actors**: `string` + +#### Defined in + +[packages/core/src/types.ts:145](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L145) + +--- + +### actorsData? + +> `optional` **actorsData**: [`Actor`](Actor.md)[] + +#### Defined in + +[packages/core/src/types.ts:146](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L146) + +--- + +### agentId? + +> `optional` **agentId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:137](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L137) + +--- + +### agentName? + +> `optional` **agentName**: `string` + +#### Defined in + +[packages/core/src/types.ts:143](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L143) + +--- + +### bio + +> **bio**: `string` + +#### Defined in + +[packages/core/src/types.ts:138](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L138) + +--- + +### goals? + +> `optional` **goals**: `string` + +#### Defined in + +[packages/core/src/types.ts:147](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L147) + +--- + +### goalsData? + +> `optional` **goalsData**: [`Goal`](Goal.md)[] + +#### Defined in + +[packages/core/src/types.ts:148](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L148) + +--- + +### lore + +> **lore**: `string` + +#### Defined in + +[packages/core/src/types.ts:139](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L139) + +--- + +### messageDirections + +> **messageDirections**: `string` + +#### Defined in + +[packages/core/src/types.ts:140](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L140) + +--- + +### postDirections + +> **postDirections**: `string` + +#### Defined in + +[packages/core/src/types.ts:141](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L141) + +--- + +### providers? + +> `optional` **providers**: `string` + +#### Defined in + +[packages/core/src/types.ts:159](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L159) + +--- + +### recentFacts? + +> `optional` **recentFacts**: `string` + +#### Defined in + +[packages/core/src/types.ts:151](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L151) + +--- + +### recentFactsData? + +> `optional` **recentFactsData**: [`Memory`](Memory.md)[] + +#### Defined in + +[packages/core/src/types.ts:152](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L152) + +--- + +### recentInteractions? + +> `optional` **recentInteractions**: `string` + +#### Defined in + +[packages/core/src/types.ts:162](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L162) + +--- + +### recentInteractionsData? + +> `optional` **recentInteractionsData**: [`Memory`](Memory.md)[] + +#### Defined in + +[packages/core/src/types.ts:161](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L161) + +--- + +### recentMessages + +> **recentMessages**: `string` + +#### Defined in + +[packages/core/src/types.ts:149](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L149) + +--- + +### recentMessagesData + +> **recentMessagesData**: [`Memory`](Memory.md)[] + +#### Defined in + +[packages/core/src/types.ts:150](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L150) + +--- + +### relevantFacts? + +> `optional` **relevantFacts**: `string` + +#### Defined in + +[packages/core/src/types.ts:153](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L153) + +--- + +### relevantFactsData? + +> `optional` **relevantFactsData**: [`Memory`](Memory.md)[] + +#### Defined in + +[packages/core/src/types.ts:154](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L154) + +--- + +### responseData? + +> `optional` **responseData**: [`Content`](Content.md) + +#### Defined in + +[packages/core/src/types.ts:160](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L160) + +--- + +### roomId + +> **roomId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:142](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L142) + +--- + +### senderName? + +> `optional` **senderName**: `string` + +#### Defined in + +[packages/core/src/types.ts:144](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L144) + +--- + +### userId? + +> `optional` **userId**: \`$\{string\}-$\{string\}-$\{string\}-$\{string\}-$\{string\}\` + +#### Defined in + +[packages/core/src/types.ts:136](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/types.ts#L136) diff --git a/docs/docs/api/typedoc-sidebar.cjs b/docs/docs/api/typedoc-sidebar.cjs index 0dc05f6985e..43cafd90cd6 100644 --- a/docs/docs/api/typedoc-sidebar.cjs +++ b/docs/docs/api/typedoc-sidebar.cjs @@ -1,4 +1,336 @@ // @ts-check /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ -const typedocSidebar = { items: [{"type":"category","label":"Classes","items":[{"type":"doc","id":"api/classes/DirectClient","label":"DirectClient"},{"type":"doc","id":"api/classes/DiscordClient","label":"DiscordClient"},{"type":"doc","id":"api/classes/PostgresDatabaseAdapter","label":"PostgresDatabaseAdapter"},{"type":"doc","id":"api/classes/SqliteDatabaseAdapter","label":"SqliteDatabaseAdapter"},{"type":"doc","id":"api/classes/TelegramClient","label":"TelegramClient"},{"type":"doc","id":"api/classes/TokenProvider","label":"TokenProvider"},{"type":"doc","id":"api/classes/TwitterGenerationClient","label":"TwitterGenerationClient"},{"type":"doc","id":"api/classes/TwitterInteractionClient","label":"TwitterInteractionClient"},{"type":"doc","id":"api/classes/TwitterSearchClient","label":"TwitterSearchClient"}]},{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"api/interfaces/CreateAndBuyContent","label":"CreateAndBuyContent"}]},{"type":"category","label":"Variables","items":[{"type":"doc","id":"api/variables/askClaude","label":"askClaude"},{"type":"doc","id":"api/variables/boredomProvider","label":"boredomProvider"},{"type":"doc","id":"api/variables/claudeHandlerTemplate","label":"claudeHandlerTemplate"},{"type":"doc","id":"api/variables/continueAction","label":"continueAction"},{"type":"doc","id":"api/variables/executeSwap","label":"executeSwap"},{"type":"doc","id":"api/variables/followRoom","label":"followRoom"},{"type":"doc","id":"api/variables/ignore","label":"ignore"},{"type":"doc","id":"api/variables/imageGeneration","label":"imageGeneration"},{"type":"doc","id":"api/variables/muteRoom","label":"muteRoom"},{"type":"doc","id":"api/variables/none","label":"none"},{"type":"doc","id":"api/variables/orderBookProvider","label":"orderBookProvider"},{"type":"doc","id":"api/variables/prettyConsole","label":"prettyConsole"},{"type":"doc","id":"api/variables/shouldContinueTemplate","label":"shouldContinueTemplate"},{"type":"doc","id":"api/variables/shouldFollowTemplate","label":"shouldFollowTemplate"},{"type":"doc","id":"api/variables/shouldMuteTemplate","label":"shouldMuteTemplate"},{"type":"doc","id":"api/variables/shouldUnmuteTemplate","label":"shouldUnmuteTemplate"},{"type":"doc","id":"api/variables/timeProvider","label":"timeProvider"},{"type":"doc","id":"api/variables/tokenProvider","label":"tokenProvider"},{"type":"doc","id":"api/variables/unfollowRoom","label":"unfollowRoom"},{"type":"doc","id":"api/variables/unmuteRoom","label":"unmuteRoom"},{"type":"doc","id":"api/variables/walletProvider","label":"walletProvider"}]},{"type":"category","label":"Functions","items":[{"type":"doc","id":"api/functions/buyToken","label":"buyToken"},{"type":"doc","id":"api/functions/createAndBuyToken","label":"createAndBuyToken"},{"type":"doc","id":"api/functions/generateCaption","label":"generateCaption"},{"type":"doc","id":"api/functions/generateImage","label":"generateImage"},{"type":"doc","id":"api/functions/isCreateAndBuyContent","label":"isCreateAndBuyContent"},{"type":"doc","id":"api/functions/sellToken","label":"sellToken"}]}]}; -module.exports = typedocSidebar.items; \ No newline at end of file +const typedocSidebar = { + items: [ + { + type: "category", + label: "Enumerations", + items: [ + { type: "doc", id: "api/enumerations/Clients", label: "Clients" }, + { type: "doc", id: "api/enumerations/GoalStatus", label: "GoalStatus" }, + { type: "doc", id: "api/enumerations/ModelClass", label: "ModelClass" }, + { + type: "doc", + id: "api/enumerations/ModelProviderName", + label: "ModelProviderName", + }, + { + type: "doc", + id: "api/enumerations/ServiceType", + label: "ServiceType", + }, + ], + }, + { + type: "category", + label: "Classes", + items: [ + { type: "doc", id: "api/classes/AgentRuntime", label: "AgentRuntime" }, + { + type: "doc", + id: "api/classes/DatabaseAdapter", + label: "DatabaseAdapter", + }, + { + type: "doc", + id: "api/classes/MemoryManager", + label: "MemoryManager", + }, + ], + }, + { + type: "category", + label: "Interfaces", + items: [ + { type: "doc", id: "api/interfaces/Account", label: "Account" }, + { type: "doc", id: "api/interfaces/Action", label: "Action" }, + { + type: "doc", + id: "api/interfaces/ActionExample", + label: "ActionExample", + }, + { type: "doc", id: "api/interfaces/Actor", label: "Actor" }, + { type: "doc", id: "api/interfaces/Content", label: "Content" }, + { + type: "doc", + id: "api/interfaces/ConversationExample", + label: "ConversationExample", + }, + { + type: "doc", + id: "api/interfaces/EvaluationExample", + label: "EvaluationExample", + }, + { type: "doc", id: "api/interfaces/Evaluator", label: "Evaluator" }, + { type: "doc", id: "api/interfaces/Goal", label: "Goal" }, + { + type: "doc", + id: "api/interfaces/IAgentRuntime", + label: "IAgentRuntime", + }, + { + type: "doc", + id: "api/interfaces/IBrowserService", + label: "IBrowserService", + }, + { + type: "doc", + id: "api/interfaces/IDatabaseAdapter", + label: "IDatabaseAdapter", + }, + { + type: "doc", + id: "api/interfaces/IImageDescriptionService", + label: "IImageDescriptionService", + }, + { + type: "doc", + id: "api/interfaces/IMemoryManager", + label: "IMemoryManager", + }, + { type: "doc", id: "api/interfaces/IPdfService", label: "IPdfService" }, + { + type: "doc", + id: "api/interfaces/ISpeechService", + label: "ISpeechService", + }, + { + type: "doc", + id: "api/interfaces/ITextGenerationService", + label: "ITextGenerationService", + }, + { + type: "doc", + id: "api/interfaces/ITranscriptionService", + label: "ITranscriptionService", + }, + { + type: "doc", + id: "api/interfaces/IVideoService", + label: "IVideoService", + }, + { type: "doc", id: "api/interfaces/Memory", label: "Memory" }, + { + type: "doc", + id: "api/interfaces/MessageExample", + label: "MessageExample", + }, + { type: "doc", id: "api/interfaces/Objective", label: "Objective" }, + { type: "doc", id: "api/interfaces/Participant", label: "Participant" }, + { type: "doc", id: "api/interfaces/Provider", label: "Provider" }, + { + type: "doc", + id: "api/interfaces/Relationship", + label: "Relationship", + }, + { type: "doc", id: "api/interfaces/Room", label: "Room" }, + { type: "doc", id: "api/interfaces/State", label: "State" }, + ], + }, + { + type: "category", + label: "Type Aliases", + items: [ + { type: "doc", id: "api/type-aliases/Character", label: "Character" }, + { type: "doc", id: "api/type-aliases/Client", label: "Client" }, + { type: "doc", id: "api/type-aliases/Handler", label: "Handler" }, + { + type: "doc", + id: "api/type-aliases/HandlerCallback", + label: "HandlerCallback", + }, + { type: "doc", id: "api/type-aliases/Media", label: "Media" }, + { type: "doc", id: "api/type-aliases/Model", label: "Model" }, + { type: "doc", id: "api/type-aliases/Models", label: "Models" }, + { type: "doc", id: "api/type-aliases/Plugin", label: "Plugin" }, + { type: "doc", id: "api/type-aliases/UUID", label: "UUID" }, + { type: "doc", id: "api/type-aliases/Validator", label: "Validator" }, + ], + }, + { + type: "category", + label: "Variables", + items: [ + { + type: "doc", + id: "api/variables/defaultCharacter", + label: "defaultCharacter", + }, + { type: "doc", id: "api/variables/elizaLogger", label: "elizaLogger" }, + { + type: "doc", + id: "api/variables/embeddingDimension", + label: "embeddingDimension", + }, + { + type: "doc", + id: "api/variables/embeddingZeroVector", + label: "embeddingZeroVector", + }, + { + type: "doc", + id: "api/variables/evaluationTemplate", + label: "evaluationTemplate", + }, + { type: "doc", id: "api/variables/settings", label: "settings" }, + ], + }, + { + type: "category", + label: "Functions", + items: [ + { type: "doc", id: "api/functions/addHeader", label: "addHeader" }, + { + type: "doc", + id: "api/functions/composeActionExamples", + label: "composeActionExamples", + }, + { + type: "doc", + id: "api/functions/composeContext", + label: "composeContext", + }, + { type: "doc", id: "api/functions/createGoal", label: "createGoal" }, + { + type: "doc", + id: "api/functions/createRelationship", + label: "createRelationship", + }, + { type: "doc", id: "api/functions/embed", label: "embed" }, + { + type: "doc", + id: "api/functions/formatActionNames", + label: "formatActionNames", + }, + { + type: "doc", + id: "api/functions/formatActions", + label: "formatActions", + }, + { + type: "doc", + id: "api/functions/formatActors", + label: "formatActors", + }, + { + type: "doc", + id: "api/functions/formatEvaluatorExampleDescriptions", + label: "formatEvaluatorExampleDescriptions", + }, + { + type: "doc", + id: "api/functions/formatEvaluatorExamples", + label: "formatEvaluatorExamples", + }, + { + type: "doc", + id: "api/functions/formatEvaluatorNames", + label: "formatEvaluatorNames", + }, + { + type: "doc", + id: "api/functions/formatEvaluators", + label: "formatEvaluators", + }, + { + type: "doc", + id: "api/functions/formatGoalsAsString", + label: "formatGoalsAsString", + }, + { + type: "doc", + id: "api/functions/formatMessages", + label: "formatMessages", + }, + { type: "doc", id: "api/functions/formatPosts", label: "formatPosts" }, + { + type: "doc", + id: "api/functions/formatRelationships", + label: "formatRelationships", + }, + { + type: "doc", + id: "api/functions/formatTimestamp", + label: "formatTimestamp", + }, + { + type: "doc", + id: "api/functions/generateCaption", + label: "generateCaption", + }, + { + type: "doc", + id: "api/functions/generateImage", + label: "generateImage", + }, + { + type: "doc", + id: "api/functions/generateMessageResponse", + label: "generateMessageResponse", + }, + { + type: "doc", + id: "api/functions/generateObject", + label: "generateObject", + }, + { + type: "doc", + id: "api/functions/generateObjectArray", + label: "generateObjectArray", + }, + { + type: "doc", + id: "api/functions/generateShouldRespond", + label: "generateShouldRespond", + }, + { + type: "doc", + id: "api/functions/generateText", + label: "generateText", + }, + { + type: "doc", + id: "api/functions/generateTextArray", + label: "generateTextArray", + }, + { + type: "doc", + id: "api/functions/generateTrueOrFalse", + label: "generateTrueOrFalse", + }, + { + type: "doc", + id: "api/functions/getActorDetails", + label: "getActorDetails", + }, + { type: "doc", id: "api/functions/getEndpoint", label: "getEndpoint" }, + { type: "doc", id: "api/functions/getGoals", label: "getGoals" }, + { type: "doc", id: "api/functions/getModel", label: "getModel" }, + { + type: "doc", + id: "api/functions/getProviders", + label: "getProviders", + }, + { + type: "doc", + id: "api/functions/getRelationship", + label: "getRelationship", + }, + { + type: "doc", + id: "api/functions/getRelationships", + label: "getRelationships", + }, + { + type: "doc", + id: "api/functions/retrieveCachedEmbedding", + label: "retrieveCachedEmbedding", + }, + { type: "doc", id: "api/functions/splitChunks", label: "splitChunks" }, + { type: "doc", id: "api/functions/trimTokens", label: "trimTokens" }, + { type: "doc", id: "api/functions/updateGoal", label: "updateGoal" }, + ], + }, + ], +}; +module.exports = typedocSidebar.items; diff --git a/docs/docs/api/variables/askClaude.md b/docs/docs/api/variables/askClaude.md deleted file mode 100644 index 0e97f255f2c..00000000000 --- a/docs/docs/api/variables/askClaude.md +++ /dev/null @@ -1,7 +0,0 @@ -# Variable: askClaude - -> `const` **askClaude**: `Action` - -## Defined in - -[core/src/actions/askClaude.ts:22](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/askClaude.ts#L22) diff --git a/docs/docs/api/variables/boredomProvider.md b/docs/docs/api/variables/boredomProvider.md deleted file mode 100644 index 08a3f06b37b..00000000000 --- a/docs/docs/api/variables/boredomProvider.md +++ /dev/null @@ -1,7 +0,0 @@ -# Variable: boredomProvider - -> `const` **boredomProvider**: `Provider` - -## Defined in - -[core/src/providers/boredom.ts:275](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/providers/boredom.ts#L275) diff --git a/docs/docs/api/variables/claudeHandlerTemplate.md b/docs/docs/api/variables/claudeHandlerTemplate.md deleted file mode 100644 index f747d54c668..00000000000 --- a/docs/docs/api/variables/claudeHandlerTemplate.md +++ /dev/null @@ -1,7 +0,0 @@ -# Variable: claudeHandlerTemplate - -> `const` **claudeHandlerTemplate**: "\{\{attachments\}\}\n\n\{\{recentMessages\}\}\n\n# Instructions: Claude, I need your help in assisting the user with their last request. Please provide a helpful, thorough response. I have no arms, so you'll have to write out any implements and take care not to omit or leave TODOs for later. Also, please don't acknowledge the request, just do it." - -## Defined in - -[core/src/actions/askClaude.ts:16](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/askClaude.ts#L16) diff --git a/docs/docs/api/variables/continueAction.md b/docs/docs/api/variables/continueAction.md deleted file mode 100644 index a32fe5bed39..00000000000 --- a/docs/docs/api/variables/continueAction.md +++ /dev/null @@ -1,7 +0,0 @@ -# Variable: continueAction - -> `const` **continueAction**: `Action` - -## Defined in - -[core/src/actions/continue.ts:33](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/continue.ts#L33) diff --git a/docs/docs/api/variables/defaultCharacter.md b/docs/docs/api/variables/defaultCharacter.md new file mode 100644 index 00000000000..9244b99aa57 --- /dev/null +++ b/docs/docs/api/variables/defaultCharacter.md @@ -0,0 +1,7 @@ +# Variable: defaultCharacter + +> `const` **defaultCharacter**: [`Character`](../type-aliases/Character.md) + +## Defined in + +[packages/core/src/defaultCharacter.ts:3](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/defaultCharacter.ts#L3) diff --git a/docs/docs/api/variables/elizaLogger.md b/docs/docs/api/variables/elizaLogger.md new file mode 100644 index 00000000000..cff0a2944e4 --- /dev/null +++ b/docs/docs/api/variables/elizaLogger.md @@ -0,0 +1,7 @@ +# Variable: elizaLogger + +> `const` **elizaLogger**: `ElizaLogger` + +## Defined in + +[packages/core/src/logger.ts:270](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/logger.ts#L270) diff --git a/docs/docs/api/variables/embeddingDimension.md b/docs/docs/api/variables/embeddingDimension.md new file mode 100644 index 00000000000..ebf6cd1f657 --- /dev/null +++ b/docs/docs/api/variables/embeddingDimension.md @@ -0,0 +1,7 @@ +# Variable: embeddingDimension + +> `const` **embeddingDimension**: `1536` = `1536` + +## Defined in + +[packages/core/src/memory.ts:9](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/memory.ts#L9) diff --git a/docs/docs/api/variables/embeddingZeroVector.md b/docs/docs/api/variables/embeddingZeroVector.md new file mode 100644 index 00000000000..fb708aa40e3 --- /dev/null +++ b/docs/docs/api/variables/embeddingZeroVector.md @@ -0,0 +1,7 @@ +# Variable: embeddingZeroVector + +> `const` **embeddingZeroVector**: `any`[] + +## Defined in + +[packages/core/src/memory.ts:10](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/memory.ts#L10) diff --git a/docs/docs/api/variables/evaluationTemplate.md b/docs/docs/api/variables/evaluationTemplate.md new file mode 100644 index 00000000000..3ebc44fae4a --- /dev/null +++ b/docs/docs/api/variables/evaluationTemplate.md @@ -0,0 +1,9 @@ +# Variable: evaluationTemplate + +> `const` **evaluationTemplate**: `string` + +Template used for the evaluation generateText. + +## Defined in + +[packages/core/src/evaluators.ts:8](https://github.com/ai16z/eliza/blob/8b230e97279ce98a641d3338cbfa78f13130c60e/packages/core/src/evaluators.ts#L8) diff --git a/docs/docs/api/variables/executeSwap.md b/docs/docs/api/variables/executeSwap.md deleted file mode 100644 index 1ed54a1b45c..00000000000 --- a/docs/docs/api/variables/executeSwap.md +++ /dev/null @@ -1,7 +0,0 @@ -# Variable: executeSwap - -> `const` **executeSwap**: `Action` - -## Defined in - -[core/src/actions/swap.ts:44](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/swap.ts#L44) diff --git a/docs/docs/api/variables/followRoom.md b/docs/docs/api/variables/followRoom.md deleted file mode 100644 index f9c2754cf53..00000000000 --- a/docs/docs/api/variables/followRoom.md +++ /dev/null @@ -1,7 +0,0 @@ -# Variable: followRoom - -> `const` **followRoom**: `Action` - -## Defined in - -[core/src/actions/followRoom.ts:27](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/followRoom.ts#L27) diff --git a/docs/docs/api/variables/ignore.md b/docs/docs/api/variables/ignore.md deleted file mode 100644 index 60d6fe2bbf3..00000000000 --- a/docs/docs/api/variables/ignore.md +++ /dev/null @@ -1,7 +0,0 @@ -# Variable: ignore - -> `const` **ignore**: `Action` - -## Defined in - -[core/src/actions/ignore.ts:8](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/ignore.ts#L8) diff --git a/docs/docs/api/variables/imageGeneration.md b/docs/docs/api/variables/imageGeneration.md deleted file mode 100644 index af0cc47296a..00000000000 --- a/docs/docs/api/variables/imageGeneration.md +++ /dev/null @@ -1,7 +0,0 @@ -# Variable: imageGeneration - -> `const` **imageGeneration**: `Action` - -## Defined in - -[core/src/actions/imageGeneration.ts:11](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/imageGeneration.ts#L11) diff --git a/docs/docs/api/variables/muteRoom.md b/docs/docs/api/variables/muteRoom.md deleted file mode 100644 index 5eb7ff0a6f9..00000000000 --- a/docs/docs/api/variables/muteRoom.md +++ /dev/null @@ -1,7 +0,0 @@ -# Variable: muteRoom - -> `const` **muteRoom**: `Action` - -## Defined in - -[core/src/actions/muteRoom.ts:28](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/muteRoom.ts#L28) diff --git a/docs/docs/api/variables/none.md b/docs/docs/api/variables/none.md deleted file mode 100644 index c0bce88bf1e..00000000000 --- a/docs/docs/api/variables/none.md +++ /dev/null @@ -1,7 +0,0 @@ -# Variable: none - -> `const` **none**: `Action` - -## Defined in - -[core/src/actions/none.ts:8](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/none.ts#L8) diff --git a/docs/docs/api/variables/orderBookProvider.md b/docs/docs/api/variables/orderBookProvider.md deleted file mode 100644 index ddc43f8e7b6..00000000000 --- a/docs/docs/api/variables/orderBookProvider.md +++ /dev/null @@ -1,7 +0,0 @@ -# Variable: orderBookProvider - -> `const` **orderBookProvider**: `Provider` - -## Defined in - -[core/src/providers/orderBook.ts:14](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/providers/orderBook.ts#L14) diff --git a/docs/docs/api/variables/prettyConsole.md b/docs/docs/api/variables/prettyConsole.md deleted file mode 100644 index 016da3f80e5..00000000000 --- a/docs/docs/api/variables/prettyConsole.md +++ /dev/null @@ -1,7 +0,0 @@ -# Variable: prettyConsole - -> `const` **prettyConsole**: `PrettyConsole` - -## Defined in - -[core/src/index.ts:31](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/index.ts#L31) diff --git a/docs/docs/api/variables/shouldContinueTemplate.md b/docs/docs/api/variables/shouldContinueTemplate.md deleted file mode 100644 index 69515745fa9..00000000000 --- a/docs/docs/api/variables/shouldContinueTemplate.md +++ /dev/null @@ -1,7 +0,0 @@ -# Variable: shouldContinueTemplate - -> `const` **shouldContinueTemplate**: `string` - -## Defined in - -[core/src/actions/continue.ts:22](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/continue.ts#L22) diff --git a/docs/docs/api/variables/shouldFollowTemplate.md b/docs/docs/api/variables/shouldFollowTemplate.md deleted file mode 100644 index 1dab71ea7aa..00000000000 --- a/docs/docs/api/variables/shouldFollowTemplate.md +++ /dev/null @@ -1,7 +0,0 @@ -# Variable: shouldFollowTemplate - -> `const` **shouldFollowTemplate**: `string` - -## Defined in - -[core/src/actions/followRoom.ts:13](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/followRoom.ts#L13) diff --git a/docs/docs/api/variables/shouldMuteTemplate.md b/docs/docs/api/variables/shouldMuteTemplate.md deleted file mode 100644 index 43b3c32f909..00000000000 --- a/docs/docs/api/variables/shouldMuteTemplate.md +++ /dev/null @@ -1,7 +0,0 @@ -# Variable: shouldMuteTemplate - -> `const` **shouldMuteTemplate**: `string` - -## Defined in - -[core/src/actions/muteRoom.ts:13](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/muteRoom.ts#L13) diff --git a/docs/docs/api/variables/shouldUnmuteTemplate.md b/docs/docs/api/variables/shouldUnmuteTemplate.md deleted file mode 100644 index 1bdfbae4651..00000000000 --- a/docs/docs/api/variables/shouldUnmuteTemplate.md +++ /dev/null @@ -1,7 +0,0 @@ -# Variable: shouldUnmuteTemplate - -> `const` **shouldUnmuteTemplate**: `string` - -## Defined in - -[core/src/actions/unmuteRoom.ts:13](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/unmuteRoom.ts#L13) diff --git a/docs/docs/api/variables/timeProvider.md b/docs/docs/api/variables/timeProvider.md deleted file mode 100644 index 59900eab343..00000000000 --- a/docs/docs/api/variables/timeProvider.md +++ /dev/null @@ -1,7 +0,0 @@ -# Variable: timeProvider - -> `const` **timeProvider**: `Provider` - -## Defined in - -[core/src/providers/time.ts:3](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/providers/time.ts#L3) diff --git a/docs/docs/api/variables/tokenProvider.md b/docs/docs/api/variables/tokenProvider.md deleted file mode 100644 index 9b2ca44cb0e..00000000000 --- a/docs/docs/api/variables/tokenProvider.md +++ /dev/null @@ -1,7 +0,0 @@ -# Variable: tokenProvider - -> `const` **tokenProvider**: `Provider` - -## Defined in - -[core/src/providers/token.ts:799](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/providers/token.ts#L799) diff --git a/docs/docs/api/variables/unfollowRoom.md b/docs/docs/api/variables/unfollowRoom.md deleted file mode 100644 index e3e7a61d688..00000000000 --- a/docs/docs/api/variables/unfollowRoom.md +++ /dev/null @@ -1,7 +0,0 @@ -# Variable: unfollowRoom - -> `const` **unfollowRoom**: `Action` - -## Defined in - -[core/src/actions/unfollowRoom.ts:27](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/unfollowRoom.ts#L27) diff --git a/docs/docs/api/variables/unmuteRoom.md b/docs/docs/api/variables/unmuteRoom.md deleted file mode 100644 index 60a7ea334ca..00000000000 --- a/docs/docs/api/variables/unmuteRoom.md +++ /dev/null @@ -1,7 +0,0 @@ -# Variable: unmuteRoom - -> `const` **unmuteRoom**: `Action` - -## Defined in - -[core/src/actions/unmuteRoom.ts:27](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/actions/unmuteRoom.ts#L27) diff --git a/docs/docs/api/variables/walletProvider.md b/docs/docs/api/variables/walletProvider.md deleted file mode 100644 index ef459054730..00000000000 --- a/docs/docs/api/variables/walletProvider.md +++ /dev/null @@ -1,7 +0,0 @@ -# Variable: walletProvider - -> `const` **walletProvider**: `Provider` - -## Defined in - -[core/src/providers/wallet.ts:243](https://github.com/ai16z/eliza/blob/f44765cf90f453d2ecf80e9a2e5e7bb6d1533f70/core/src/providers/wallet.ts#L243) diff --git a/docs/docs/community/changelog.md b/docs/docs/community/changelog.md new file mode 100644 index 00000000000..bee450eba5b --- /dev/null +++ b/docs/docs/community/changelog.md @@ -0,0 +1,158 @@ +# Changelog + +## [Unreleased](https://github.com/ai16z/eliza/tree/HEAD) + +[Full Changelog](https://github.com/ai16z/eliza/compare/v0.0.1...HEAD) + +**Implemented enhancements:** + +- Set Port Number in Env to Run Multiple Instances [\#156](https://github.com/ai16z/eliza/issues/156) +- Renovate bot for automated updates on dependencies [\#58](https://github.com/ai16z/eliza/issues/58) +- How to chat directly with agent [\#40](https://github.com/ai16z/eliza/issues/40) +- Telegram Improvements [\#35](https://github.com/ai16z/eliza/issues/35) +- Make sure app runs purely on char files, no process.env, and vice versa [\#30](https://github.com/ai16z/eliza/issues/30) +- Image Generation [\#22](https://github.com/ai16z/eliza/issues/22) +- Telegram Bot [\#21](https://github.com/ai16z/eliza/issues/21) +- Multi-model abstraction [\#19](https://github.com/ai16z/eliza/issues/19) +- updates to order book and trust score, virtual confidence, last active, decay score, validation trust, multiple recommenders [\#175](https://github.com/ai16z/eliza/pull/175) ([MarcoMandar](https://github.com/MarcoMandar)) +- Trustscore, token-performance, token performance simulation [\#101](https://github.com/ai16z/eliza/pull/101) ([MarcoMandar](https://github.com/MarcoMandar)) + +**Fixed bugs:** + +- TypeError: Cannot read properties of null \(reading 'queueTextCompletion'\) [\#168](https://github.com/ai16z/eliza/issues/168) +- TypeError: Promise.withResolvers is not a function [\#76](https://github.com/ai16z/eliza/issues/76) +- sqlite\_vss unsupported on win32-x64 [\#37](https://github.com/ai16z/eliza/issues/37) + +**Closed issues:** + +- Make sure 100% works with local models [\#69](https://github.com/ai16z/eliza/issues/69) +- shouldRespond handler for twitter interactions [\#68](https://github.com/ai16z/eliza/issues/68) +- docs [\#34](https://github.com/ai16z/eliza/issues/34) + +**Merged pull requests:** + +- server port in env [\#179](https://github.com/ai16z/eliza/pull/179) ([alextitonis](https://github.com/alextitonis)) +- prettier log setup, minor cleanups [\#177](https://github.com/ai16z/eliza/pull/177) ([ponderingdemocritus](https://github.com/ponderingdemocritus)) +- postgres updates [\#173](https://github.com/ai16z/eliza/pull/173) ([minghinmatthewlam](https://github.com/minghinmatthewlam)) +- adjusting test setup and adding a basic test [\#172](https://github.com/ai16z/eliza/pull/172) ([sirkitree](https://github.com/sirkitree)) +- feat: Shorten response verbosity [\#170](https://github.com/ai16z/eliza/pull/170) ([bigsky77](https://github.com/bigsky77)) +- clean up index [\#163](https://github.com/ai16z/eliza/pull/163) ([ponderingdemocritus](https://github.com/ponderingdemocritus)) +- Import work and cleanup [\#162](https://github.com/ai16z/eliza/pull/162) ([ponderingdemocritus](https://github.com/ponderingdemocritus)) +- type export structure [\#160](https://github.com/ai16z/eliza/pull/160) ([ponderingdemocritus](https://github.com/ponderingdemocritus)) +- Update ci.yaml [\#155](https://github.com/ai16z/eliza/pull/155) ([sirkitree](https://github.com/sirkitree)) +- Create pull\_request\_template.md [\#154](https://github.com/ai16z/eliza/pull/154) ([sirkitree](https://github.com/sirkitree)) +- fixed issue with openai [\#153](https://github.com/ai16z/eliza/pull/153) ([ponderingdemocritus](https://github.com/ponderingdemocritus)) +- update docs [\#152](https://github.com/ai16z/eliza/pull/152) ([madjin](https://github.com/madjin)) +- fix name of ImageGeneration.ts [\#151](https://github.com/ai16z/eliza/pull/151) ([twilwa](https://github.com/twilwa)) +- Feat/mono [\#150](https://github.com/ai16z/eliza/pull/150) ([ponderingdemocritus](https://github.com/ponderingdemocritus)) +- update docs [\#149](https://github.com/ai16z/eliza/pull/149) ([madjin](https://github.com/madjin)) +- Dependency update testing [\#147](https://github.com/ai16z/eliza/pull/147) ([sirkitree](https://github.com/sirkitree)) +- chore\(deps\): Upgrade uuid to v11 and TypeScript to v8 [\#143](https://github.com/ai16z/eliza/pull/143) ([ohaiku](https://github.com/ohaiku)) +- fix\(deps\): update dependency uuid to v11 [\#142](https://github.com/ai16z/eliza/pull/142) ([renovate[bot]](https://github.com/apps/renovate)) +- chore\(deps\): update typescript and related to v8 \(major\) [\#141](https://github.com/ai16z/eliza/pull/141) ([renovate[bot]](https://github.com/apps/renovate)) +- chore\(deps\): update eslint and formatting \(major\) [\#139](https://github.com/ai16z/eliza/pull/139) ([renovate[bot]](https://github.com/apps/renovate)) +- chore\(deps\): update dependency typedoc-plugin-markdown to v4 [\#138](https://github.com/ai16z/eliza/pull/138) ([renovate[bot]](https://github.com/apps/renovate)) +- chore\(deps\): update dependency rimraf to v6 - autoclosed [\#137](https://github.com/ai16z/eliza/pull/137) ([renovate[bot]](https://github.com/apps/renovate)) +- chore\(deps\): update dependency npm-run-all2 to v7 [\#136](https://github.com/ai16z/eliza/pull/136) ([renovate[bot]](https://github.com/apps/renovate)) +- chore\(deps\): update dependency itty-router to v5 [\#135](https://github.com/ai16z/eliza/pull/135) ([renovate[bot]](https://github.com/apps/renovate)) +- chore\(deps\): update dependency docusaurus-plugin-typedoc to v1 [\#134](https://github.com/ai16z/eliza/pull/134) ([renovate[bot]](https://github.com/apps/renovate)) +- chore\(deps\): update dependency @types/node to v22 [\#133](https://github.com/ai16z/eliza/pull/133) ([renovate[bot]](https://github.com/apps/renovate)) +- chore\(deps\): update dependency @types/jest to v29 [\#132](https://github.com/ai16z/eliza/pull/132) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): update react monorepo to v18.3.1 [\#131](https://github.com/ai16z/eliza/pull/131) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): update docusaurus monorepo to v3.5.2 [\#130](https://github.com/ai16z/eliza/pull/130) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): update dependency sql.js to v1.12.0 [\#129](https://github.com/ai16z/eliza/pull/129) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): update dependency react-router-dom to v6.27.0 [\#128](https://github.com/ai16z/eliza/pull/128) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): update dependency prism-react-renderer to v2.4.0 [\#127](https://github.com/ai16z/eliza/pull/127) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): update dependency playwright to v1.48.2 [\#126](https://github.com/ai16z/eliza/pull/126) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): update dependency pdfjs-dist to v4.7.76 [\#125](https://github.com/ai16z/eliza/pull/125) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): update dependency onnxruntime-node to v1.20.0 - autoclosed [\#124](https://github.com/ai16z/eliza/pull/124) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): update dependency node-llama-cpp to v3.1.1 [\#123](https://github.com/ai16z/eliza/pull/123) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): update dependency jieba-wasm to v2.2.0 [\#122](https://github.com/ai16z/eliza/pull/122) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): update dependency figlet to v1.8.0 [\#121](https://github.com/ai16z/eliza/pull/121) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): update dependency better-sqlite3 to v11.5.0 [\#120](https://github.com/ai16z/eliza/pull/120) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): update dependency @supabase/supabase-js to v2.46.1 [\#119](https://github.com/ai16z/eliza/pull/119) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): update dependency @mdx-js/react to v3.1.0 [\#118](https://github.com/ai16z/eliza/pull/118) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): update dependency @echogarden/speex-resampler-wasm to v0.2.1 [\#117](https://github.com/ai16z/eliza/pull/117) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): update dependency @echogarden/kissfft-wasm to v0.2.0 [\#116](https://github.com/ai16z/eliza/pull/116) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): update dependency @echogarden/espeak-ng-emscripten to v0.3.0 [\#115](https://github.com/ai16z/eliza/pull/115) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): update dependency @cliqz/adblocker-playwright to v1.34.0 [\#114](https://github.com/ai16z/eliza/pull/114) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): update ai/ml packages [\#113](https://github.com/ai16z/eliza/pull/113) ([renovate[bot]](https://github.com/apps/renovate)) +- chore\(deps\): update rollup and plugins [\#112](https://github.com/ai16z/eliza/pull/112) ([renovate[bot]](https://github.com/apps/renovate)) +- chore\(deps\): update dependency wrangler to v3.84.0 [\#111](https://github.com/ai16z/eliza/pull/111) ([renovate[bot]](https://github.com/apps/renovate)) +- chore\(deps\): update dependency typedoc to v0.26.10 [\#110](https://github.com/ai16z/eliza/pull/110) ([renovate[bot]](https://github.com/apps/renovate)) +- chore\(deps\): update dependency @types/node to v20.17.3 [\#109](https://github.com/ai16z/eliza/pull/109) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): update dependency socket.io to v4.8.1 [\#108](https://github.com/ai16z/eliza/pull/108) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): update dependency nodemon to v3.1.7 [\#107](https://github.com/ai16z/eliza/pull/107) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): update dependency clsx to v2.1.1 [\#106](https://github.com/ai16z/eliza/pull/106) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): update dependency @diffusionstudio/vits-web to v1.0.3 [\#105](https://github.com/ai16z/eliza/pull/105) ([renovate[bot]](https://github.com/apps/renovate)) +- chore\(deps\): update dependency npm-run-all2 to v5.0.2 [\#104](https://github.com/ai16z/eliza/pull/104) ([renovate[bot]](https://github.com/apps/renovate)) +- Postgres DB Adapter [\#102](https://github.com/ai16z/eliza/pull/102) ([leomercier](https://github.com/leomercier)) +- chore\(deps\): update dependency @types/fluent-ffmpeg to v2.1.27 [\#100](https://github.com/ai16z/eliza/pull/100) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): pin dependency socket.io to 4.8.0 [\#99](https://github.com/ai16z/eliza/pull/99) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): pin dependencies [\#98](https://github.com/ai16z/eliza/pull/98) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): update dependency discord.js to v14.16.3 [\#97](https://github.com/ai16z/eliza/pull/97) ([renovate[bot]](https://github.com/apps/renovate)) +- chore\(deps\): update dependency eslint to v8.57.1 [\#96](https://github.com/ai16z/eliza/pull/96) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): pin dependencies [\#94](https://github.com/ai16z/eliza/pull/94) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): pin dependencies [\#93](https://github.com/ai16z/eliza/pull/93) ([renovate[bot]](https://github.com/apps/renovate)) +- chore\(deps\): pin dependencies [\#90](https://github.com/ai16z/eliza/pull/90) ([renovate[bot]](https://github.com/apps/renovate)) +- chore\(deps\): update dependency tslib to v2.8.0 [\#89](https://github.com/ai16z/eliza/pull/89) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): pin dependencies [\#88](https://github.com/ai16z/eliza/pull/88) ([renovate[bot]](https://github.com/apps/renovate)) +- chore\(deps\): pin dependencies [\#87](https://github.com/ai16z/eliza/pull/87) ([renovate[bot]](https://github.com/apps/renovate)) +- chore\(deps\): pin dependencies [\#86](https://github.com/ai16z/eliza/pull/86) ([renovate[bot]](https://github.com/apps/renovate)) +- chore\(deps\): update rollup and plugins [\#85](https://github.com/ai16z/eliza/pull/85) ([renovate[bot]](https://github.com/apps/renovate)) +- chore\(deps\): pin dependencies [\#84](https://github.com/ai16z/eliza/pull/84) ([renovate[bot]](https://github.com/apps/renovate)) +- chore\(deps\): pin dependencies [\#83](https://github.com/ai16z/eliza/pull/83) ([renovate[bot]](https://github.com/apps/renovate)) +- chore\(deps\): replace dependency npm-run-all with npm-run-all2 5.0.0 [\#82](https://github.com/ai16z/eliza/pull/82) ([renovate[bot]](https://github.com/apps/renovate)) +- chore\(config\): migrate renovate config [\#80](https://github.com/ai16z/eliza/pull/80) ([renovate[bot]](https://github.com/apps/renovate)) +- fix\(deps\): update dependency pdfjs-dist to v4.2.67 \[security\] [\#78](https://github.com/ai16z/eliza/pull/78) ([renovate[bot]](https://github.com/apps/renovate)) +- chore\(deps\): update dependency rollup to v2.79.2 \[security\] [\#77](https://github.com/ai16z/eliza/pull/77) ([renovate[bot]](https://github.com/apps/renovate)) +- Model provider abstraction [\#74](https://github.com/ai16z/eliza/pull/74) ([lalalune](https://github.com/lalalune)) +- Image gen [\#44](https://github.com/ai16z/eliza/pull/44) ([alextitonis](https://github.com/alextitonis)) + +## [v0.0.1](https://github.com/ai16z/eliza/tree/v0.0.1) (2024-10-29) + +[Full Changelog](https://github.com/ai16z/eliza/compare/e5a15663d7d083f4c9b82634a0696b80b9ecd0b2...v0.0.1) + +**Closed issues:** + +- cleanup remnants of sqlite\_vss [\#66](https://github.com/ai16z/eliza/issues/66) +- Create issue templates [\#61](https://github.com/ai16z/eliza/issues/61) +- Contributing [\#45](https://github.com/ai16z/eliza/issues/45) +- How to specify a character file [\#39](https://github.com/ai16z/eliza/issues/39) +- Easy switching between openai and llama [\#15](https://github.com/ai16z/eliza/issues/15) +- Get image media from Discord and describe it [\#14](https://github.com/ai16z/eliza/issues/14) +- Summarize links from Discord and Twitter [\#13](https://github.com/ai16z/eliza/issues/13) +- Get image media from tweets and describe it [\#11](https://github.com/ai16z/eliza/issues/11) +- Feed Twitter Client [\#10](https://github.com/ai16z/eliza/issues/10) +- Replace Elevenlabs with faster TTS [\#6](https://github.com/ai16z/eliza/issues/6) +- Integrate Moondream into Twitter and Discord [\#5](https://github.com/ai16z/eliza/issues/5) +- Replace GPT-3.5 with Node Llama3 [\#3](https://github.com/ai16z/eliza/issues/3) +- Replace OpenAI Whisper with Whisper Turbo [\#2](https://github.com/ai16z/eliza/issues/2) +- Integrate agent-twitter-client [\#1](https://github.com/ai16z/eliza/issues/1) + +**Merged pull requests:** + +- chore: fix typo [\#71](https://github.com/ai16z/eliza/pull/71) ([eltociear](https://github.com/eltociear)) +- cleanup from \#60, resolves \#66 [\#67](https://github.com/ai16z/eliza/pull/67) ([sirkitree](https://github.com/sirkitree)) +- Telegram Integration with shouldRespond handler + image recognition [\#65](https://github.com/ai16z/eliza/pull/65) ([dreaminglucid](https://github.com/dreaminglucid)) +- Initial commit for adding Renovate autoupdater. [\#63](https://github.com/ai16z/eliza/pull/63) ([mrdavidburns](https://github.com/mrdavidburns)) +- adding github issue templates [\#62](https://github.com/ai16z/eliza/pull/62) ([sirkitree](https://github.com/sirkitree)) +- sqlite\_vss issue [\#60](https://github.com/ai16z/eliza/pull/60) ([MarcoMandar](https://github.com/MarcoMandar)) +- Clarifying instructions to run locally [\#59](https://github.com/ai16z/eliza/pull/59) ([ferric-sol](https://github.com/ferric-sol)) +- corrected node-llama-cpp command [\#57](https://github.com/ai16z/eliza/pull/57) ([Honkware](https://github.com/Honkware)) +- Adding a CONTRIBUTING.md [\#46](https://github.com/ai16z/eliza/pull/46) ([sirkitree](https://github.com/sirkitree)) +- pumpfun [\#43](https://github.com/ai16z/eliza/pull/43) ([MarcoMandar](https://github.com/MarcoMandar)) +- provide a way to chat directly with the agent via the command line [\#42](https://github.com/ai16z/eliza/pull/42) ([sirkitree](https://github.com/sirkitree)) +- Update README.md [\#41](https://github.com/ai16z/eliza/pull/41) ([sirkitree](https://github.com/sirkitree)) +- Update README.md [\#36](https://github.com/ai16z/eliza/pull/36) ([wahndo](https://github.com/wahndo)) +- Telegram [\#31](https://github.com/ai16z/eliza/pull/31) ([lalalune](https://github.com/lalalune)) +- token provider [\#24](https://github.com/ai16z/eliza/pull/24) ([MarcoMandar](https://github.com/MarcoMandar)) +- minor fixes to base.ts and llama.ts, resolved missing package.json im… [\#20](https://github.com/ai16z/eliza/pull/20) ([twilwa](https://github.com/twilwa)) +- More twitter upgrades and refactoring [\#18](https://github.com/ai16z/eliza/pull/18) ([lalalune](https://github.com/lalalune)) +- Refactor, Plumbing, Twitter Agent [\#17](https://github.com/ai16z/eliza/pull/17) ([lalalune](https://github.com/lalalune)) +- Integrate Moondream into Twitter and Discord [\#16](https://github.com/ai16z/eliza/pull/16) ([vladkashka56](https://github.com/vladkashka56)) +- New Twitter Client [\#8](https://github.com/ai16z/eliza/pull/8) ([lalalune](https://github.com/lalalune)) + + + +\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)* diff --git a/docs/docs/community/contributing.md b/docs/docs/community/contributing.md index e69de29bb2d..5fd9ef1ea2a 100644 --- a/docs/docs/community/contributing.md +++ b/docs/docs/community/contributing.md @@ -0,0 +1,98 @@ +--- +sidebar_position: 5 +title: Contributing +--- + +# Contributor Guide + +Welcome to the Eliza contributor guide! This document is designed to help you understand how you can be part of building the future of autonomous AI agents, regardless of your technical background. + +## The OODA Loop: A Framework for Contribution + +We believe in the power of the OODA Loop - a decision-making framework that emphasizes speed and adaptability. OODA stands for: + +- **Observe**: Gather information and insights about the project, the community, and the broader AI ecosystem. +- **Orient**: Analyze your observations to identify opportunities for contribution and improvement. +- **Decide**: Choose a course of action based on your analysis. This could be proposing a new feature, fixing a bug, or creating content. +- **Act**: Execute your decision and share your work with the community. + +By internalizing the OODA Loop, you can quickly identify areas where you can make a meaningful impact and drive the project forward. + +--- + +## How to Contribute + +### For Developers + +1. **Extend Eliza's Capabilities** + + - Develop new actions, evaluators, and providers to expand what Eliza agents can do. + - Improve existing components and modules. + +2. **Enhance Infrastructure** + + - Go through open issues, send back a PR if you can improve anything. + - Test currently documented steps to ensure they're still up to date. + - Optimize Eliza's database architecture and performance. + - Contribute to the autonomous trading system and trust engine. + - Improve deployment and scaling solutions. + +3. **Implement Integrations** + - Build connectors for new platforms and services. + - Enhance existing integrations with additional features. + +### For AI Enthusiasts + +1. **Fine-tune Models** + + - Experiment with fine-tuning models for specific tasks and domains. + - Develop best practices for prompt engineering and model selection. + +2. **Develop Characters** + - Create compelling character files that showcase Eliza's potential. + - Curate knowledge bases and datasets for different use cases. + +### Non-Technical Contributions + +1. **Create Content** + + - Make memes, stickers, emojis, and clips of AI agents that are deployed. + - Write tutorials, guides, and blog posts to help others learn about Eliza. + - Produce videos showcasing Eliza's capabilities and real-world applications. + +2. **Engage the Community** + + - Participate in discussions on Discord, Twitter, and other platforms. + - Help answer questions and provide support to other community members. + - Organize events, workshops, and hackathons to bring people together. + +3. **Spread the Word** + - Share the Eliza project and help attract new contributors. + - Participate in one of our upcoming demo days, show and tell your project. + +--- + +### Tips for Efficient Contribution + +- Use tools like OBS and Whisper to record and transcribe your work sessions. This allows you to easily document your process and share insights with the community. +- Leverage AI assistants to help with tasks like code generation, document summarization, and content creation. +- Collaborate with other community members to divide and conquer larger initiatives. + +## Recognition and Rewards + +We believe in recognizing and rewarding contributors who go above and beyond to drive the project forward. Stand-out contributions may be eligible for: + +- Grants from the ai16z Creator Fund +- Featuring your project across various channels +- Opportunities to shape the direction of the project + +Note: we're still finalizing details on the creator/dev fund that seeks to retroactively reward valued contributions to the ecosystem. + +## Getting Started + +1. Join the [Eliza Discord](https://discord.gg/P4uxZJFAdP) and make a short introduction. +2. Explore the [documentation](/docs/intro) to understand the project's architecture and capabilities. +3. Check out the [open issues](https://github.com/ai16z/eliza/issues) on GitHub to find ways to contribute. +4. Share your ideas and initiatives with the community - we're excited to see what you'll build! + +Lets push the boundaries of what's possible with autonomous AI agents. Welcome aboard! diff --git a/docs/docs/community/creator-fund.md b/docs/docs/community/creator-fund.md new file mode 100644 index 00000000000..bc455397021 --- /dev/null +++ b/docs/docs/community/creator-fund.md @@ -0,0 +1,45 @@ +--- +sidebar_position: 1 +title: Creator Fund +--- + +# The ai16z Creator Fund + +The ai16z Creator Fund is an initiative designed to support and empower developers, creators, and community members who are building the future of autonomous AI agents. + +## The Story Behind the Fund + +The ai16z Creator Fund was made possible by the generosity of Elijah, a significant holder of ai16z tokens. Elijah has pledged to donate a portion of his holdings, reducing his ownership from 16% to 5%, to establish a dedicated fund that will support promising developers and creators. + +The donated funds will be held in a dedicated wallet (`9YnQdCWDAQRfQYm5HvRzoPgc5GRn8fyhsH2eru8nfsxG`) and distributed via Streamflow token vesting contracts. This approach ensures that creators receive a steady stream of ai16z tokens over time as they hit milestones and deliver value to the ecosystem. + +## Benefits and Vision + +The ai16z Creator Fund aims to: + +- Bootstrap and reward an ecosystem of innovative creators building on ai16z +- Give creators the runway to focus on their work without worrying about short-term token prices +- Put Elijah's tokens to productive use in growing the ai16z community, rather than through a one-time event +- Reduce the risk of token dumping by aligning creators' interests with the long-term success of the project +- Bring more talent and energy into the ai16z ecosystem to drive innovation and adoption + +By providing ongoing sponsorship and recognizing creators' efforts, the fund will help cultivate a thriving community of builders who will take ai16z to the next level. + +## Next Steps + +We are currently working on finalizing the details of the ai16z Creator Fund, including: + +- Determining the size of the creator fund and the length of vesting schedules +- Establishing a transparent creator grant application and selection process +- Integrating Streamflow to manage token vesting contracts for selected grantees +- Preparing to announce the first cohort of funded creators and share their exciting projects with the community + +Stay tuned for more information on how to apply for grants from the ai16z Creator Fund. In the meantime, creators and developers are encouraged to start brainstorming ideas and preparing their applications. + +## A Note on Liquidity + +In addition to the Creator Fund, we are also exploring OTC (over-the-counter) deals to onboard new partners and use the funds to lock in more liquidity for the ai16z ecosystem. This approach will help ensure a healthy and sustainable token economy as we continue to grow and evolve. + +--- + +The ai16z Creator Fund represents an exciting opportunity to foster a vibrant community of builders and drive the future of autonomous AI agents. We can't wait to see the innovative projects and contributions that will emerge from this initiative! diff --git a/docs/docs/community/development-notes.md b/docs/docs/community/development-notes.md deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/docs/docs/community/faq.md b/docs/docs/community/faq.md new file mode 100644 index 00000000000..d7a44376f03 --- /dev/null +++ b/docs/docs/community/faq.md @@ -0,0 +1,126 @@ +# Frequently Asked Questions + +## Eliza FAQ + +### What is Eliza? + +**Eliza is an open-source, multi-agent simulation framework for creating and managing autonomous AI agents.** The project aims to empower developers and users to build unique AI personalities that can interact across various platforms, such as Discord, Twitter, and Telegram. + +### Who is behind Eliza? + +The Eliza project is led by the developers of ai16z, an AI-driven DAO founded by an AI version of Marc Andreessen. The lead developer is [Shaw](https://x.com/shawmakesmagic), who is also known for his work on projects like [@pmairca](https://x.com/pmairca) and [@degenspartanai](https://x.com/degenspartanai). The project is open source, and its code is available on GitHub: https://github.com/ai16z/eliza + +### How can I get started with Eliza? + +To begin building your own AI agents with Eliza, follow these steps: + +1. **Install Node.js and pnpm**: Ensure you have the necessary software prerequisites installed on your system. We use node v23. +2. **Set up your environment**: Create a `.env` file and populate it with the required API keys, database configuration, and platform-specific tokens. +3. **Install Eliza**: Use the command `npm install eliza` or `pnpm install eliza` to install the Eliza package. +4. **Configure your database**: Eliza currently relies on Supabase for local development. Follow the instructions in the documentation to set up your Supabase project and database. +5. **Define your agent's character**: Create a character file using the provided JSON format to specify your agent's personality, knowledge, and behavior. +6. **Run Eliza locally**: Use the provided commands to start the Eliza framework and interact with your agent. + +### What are the key components of Eliza? + +Eliza's architecture consists of several interconnected components: + +- **Agents**: These are the core elements that represent individual AI personalities. Agents operate within a runtime environment and interact with various platforms. +- **Actions**: Actions are predefined behaviors that agents can execute in response to messages, enabling them to perform tasks and interact with external systems. +- **Clients**: Clients act as interfaces between agents and specific platforms, such as Discord, Twitter, and Telegram. They handle platform-specific message formats and communication protocols. +- **Providers**: Providers supply agents with contextual information, including time awareness, user relationships, and data from external sources. +- **Evaluators**: These modules assess and extract information from conversations, helping agents track goals, build memory, and maintain context awareness. +- **Character Files**: These JSON files define the personality, knowledge, and behavior of each AI agent. +- **Memory System**: Eliza features a sophisticated memory management system that utilizes vector embeddings and relational database storage to store and retrieve information for agents. + +### How can I contribute to the Eliza project? + +Eliza welcomes contributions from individuals with a wide range of skills: + +#### Technical Contributions + +- **Develop new actions, clients, providers, and evaluators**: Extend Eliza's functionality by creating new modules or enhancing existing ones. +- **Contribute to database management**: Improve or expand Eliza's database capabilities using PostgreSQL, SQLite, or SQL.js. +- **Enhance local development workflows**: Improve documentation and tools for local development using SQLite and VS Code. +- **Fine-tune models**: Optimize existing models or implement new models for specific tasks and personalities. +- **Contribute to the autonomous trading system and trust engine**: Leverage expertise in market analysis, technical analysis, and risk management to enhance these features. + +#### Non-Technical Contributions + +- **Community Management**: Onboard new members, organize events, moderate discussions, and foster a welcoming community. +- **Content Creation**: Create memes, tutorials, documentation, and videos to share project updates. +- **Translation**: Translate documentation and other materials to make Eliza accessible to a global audience. +- **Domain Expertise**: Provide insights and feedback on specific applications of Eliza in various fields. + +### What are the future plans for Eliza? + +The Eliza project is continuously evolving, with ongoing development and community contributions. The team is actively working on: + +- **Expanding platform compatibility**: Adding support for more platforms and services. +- **Improving model capabilities**: Enhance agent performance and capabilities with existing and new models. +- **Enhancing the trust engine**: Provide robust and secure recommendations within decentralized networks. +- **Fostering community growth**: Rewarding contributions to expand the project's reach and impact. + +--- + +## ai16z FAQ + +### What is ai16z and how is it related to Eliza? + +**ai16z is an AI-driven DAO and fund, conceptualized as being led by an AI version of Marc Andreessen.** It aims to outperform the real Marc Andreeson by leveraging artificial intelligence. The developers of Eliza created ai16z to support their work in autonomous AI agents. While ai16z primarily focuses on trading, Eliza is a more general-purpose framework that can be used for various applications beyond finance. + +### When will token is mintable be fixed? + +Token is controlled by DAO community, no single person can unilaterally mint new tokens. The daos.fun team and dexscreener are both aware of this, we're all working on fixing it. + +### Liquidity seems low + +The DAOs.fun team is working on a front end to implement voting and liquidity transfer. + +### What is the difference between $ai16z and $degenai? + +The $ai16z token is the governance token of the ai16z DAO. Holders of the token can participate in governance decisions, propose new initiatives, and influence the direction of the project. + +DegenSpartanAI is another AI agent project created by Shaw. The $degenai token is associated with this project. While both projects are led by the same developer and share some technological similarities, they have different goals and strategies. + +ai16z is envisioned as a community-driven, PvE (player versus environment) focused fund, while DegenAI is more of a trading agent with a PvP (player versus player), aggressive approach. + +### Will the agent launch pump fund coins? + +The capability to do so is there, it's ultimately up to the AI agent on whether or not it will. + +### Can the agent invest in my project? + +Yes, if you make a convincing argument. + +### Who runs ai16z? + +ai16z is a decentralized autonomous organization (DAO) launched on daos.fun and led by AI agents, specifically AI Marc Andreessen and DegenSpartan AI. Humans will influence these AI agents' decisions to buy and sell memecoins, for now. + +### Do all trade suggestions happen in one place? + +Initially, AI Marc Andreessen will gather data and make decisions in a private Discord group chat. Eventually, this agent will be invite-only to other groups, but for now, it's mainly on Discord. + +### What happens when people copy the GitHub? + +Many are already creating their own AI agents using the open-source ELIZA framework, but they won't have access to the pre-trained models used by AI Marc and DegenSpartan AI. + +### What are the future plans for ai16z? + +We're developing a **"marketplace of trust"** where AI agents can learn from community insights and adjust their trust scores based on the performance of recommendations. Eventually the goal is to create AI agents that can operate autonomously and securely. + +### How can I contribute to ai16z? + +There are several ways to contribute to the ai16z project: + +- **Participate in community discussions**: Share your memecoin insights, propose new ideas, and engage with other community members. +- **Contribute to the development of the ai16z platform**: https://github.com/orgs/ai16z/projects/1/views/3 +- **Help build the ai16z ecosystem**: Create applicatoins / tools, resources, and memes. Give feedback, and spread the word + +**Other questions:** + +- ai16z and a16z are not officially affiliated. +- ELIZA is an open-source conversational agent framework. +- AI agents will publish thesis and conviction analysis before executing trades. +- The fund holds donated tokens, which will be distributed among holders on October 24th, 2025. +- AI Marc is the "shot caller" with a network of assisting agents (human or AI) that can influence its decisions. diff --git a/docs/docs/community/notes.md b/docs/docs/community/notes.md new file mode 100644 index 00000000000..409b5e91fc7 --- /dev/null +++ b/docs/docs/community/notes.md @@ -0,0 +1,392 @@ +--- +sidebar_position: 1 +title: Notes +--- + +# Notes + +## Discord Stream 11-6-24 + +#### Part 1 + +Watch: [Youtube](https://www.youtube.com/watch?v=oqq5H0HRF_A) + +00:00:00 - Overview + +- Eliza is moving to a plugin architecture to enable developers to easily add integrations (e.g. Ethereum wallets, NFTs, Obsidian, etc.) without modifying core code +- Plugins allow devs to focus on specific areas of interest +- Core changes will focus on enabling more flexibility and features to support plugins + +00:01:27 - Core abstractions + +- Characters: Way to input information to enable multi-agent systems +- Actions, evaluators, providers +- Existing capabilities: Document reading, audio transcription, video summarization, long-form context, timed message summarization + +00:02:50 - Eliza as an agent, not just a chatbot + +- Designed to act human-like and interact with the world using human tools +- Aim is to enable natural interactions without reliance on slash commands + +00:04:44 - Advanced usage and services + +- Memory and vector search db (SQLite, Postgres with pgVector) +- Browser service to summarize website content, get through CAPTCHAs +- Services are tools leveraged by actions, attached to runtime + +00:06:06 - Character-centric configuration + +- Moving secrets, API keys, model provider to character config +- Clients will become plugins, selectable per character +- Allows closed-source custom plugins while still contributing to open-source + +00:10:13 - Providers + +- Inject dynamic, real-time context into the agent +- Examples: Time, wallet, marketplace trust score, token balances, boredom/cringe detection +- Easy to add and register with the agent + +00:15:12 - Setting up providers and default actions + +- Default providers imported in runtime.ts +- CLI loads characters and default actions (to be made more flexible) +- Character config will define custom action names to load + +00:18:13 - Actions +Q: How does each client decide which action to call? +A: Agent response can include text, action, or both. Process actions checks the action name/similes and executes the corresponding handler. Action description is injected into agent context to guide usage. + +00:22:27 - Action execution flow + +- Check if action should be taken (validation) +- Determine action outcome +- Compose context and send follow-up if continuing +- Execute desired functionality (mint token, generate image, etc.) +- Use callback to send messages back to the connector (Discord, Twitter, etc.) + +00:24:47 - Choosing actions +Q: How does it choose which action to run? +A: The "generate method response" includes the action to run. Message handler template includes action examples, facts, generated dialogue actions, and more to guide the agent. + +00:28:22 - Custom actions +Q: How to create a custom action (e.g. send USDC to a wallet)? +A: Use existing actions (like token swap) as a template. Actions don't have input fields, but use secondary prompts to gather parameters. The "generate object" converts language to API calls. + +00:32:21 - Limitations of action-only approaches + +- Shaw believes half of the PhD papers on action-only models are not reproducible +- Many public claims of superior models are exaggerated; use Eliza if it's better + +00:36:40 - Next steps + +- Shaw to make a tutorial to better communicate key concepts +- Debugging and improvements based on the discussion +- Attendee to document their experience and suggest doc enhancements + +### Part 2 + +Watch: [Youtube](https://www.youtube.com/watch?v=yE8Mzq3BnUc) + +00:00:00 - Dealing with OpenAI rate limits for new accounts + +- New accounts have very low rate limits +- Options to increase limits: + 1. Have a friend at OpenAI age your account + 2. Use an older account + 3. Consistently use the API and limits will increase quickly +- Can also email OpenAI to request limit increases + +00:00:43 - Alternatives to OpenAI to avoid rate limits + +- Amazon Bedrock or Google Vertex likely have same models without strict rate limits +- Switching to these is probably a one-line change +- Project 89 got unlimited free access to Vertex + +00:01:25 - Memory management best practices +Q: Suggestions for memory management best practices across users/rooms? +A: Most memory systems are user-agent based, with no room concept. Eliza uses a room abstraction (like a Discord channel/server or Twitter thread) to enable multi-agent simulation. Memories are stored per-agent to avoid collisions. + +00:02:57 - Using memories in Eliza + +- Memories are used in the `composeState` function +- Pulls memories from various sources (recent messages, facts, goals, etc.) into a large state object +- State object is used to hydrate templates +- Custom memory providers can be added to pull from other sources (Obsidian, databases) + +00:05:11 - Evaluators vs. Action validation + +- Actions have a `validate` function to check if the action is valid to run (e.g., check if agent has a wallet before a swap) +- Evaluators are a separate abstraction that run a "reflection" step +- Example: Fact extraction evaluator runs every N messages to store facts about the user as memories +- Allows agent to "get to know" the user without needing full conversation history + +00:07:58 - Example use case: Order book evaluator + +- Evaluator looks at chats sent to an agent and extracts information about "shields" (tokens?) +- Uses this to build an order book and "marketplace of trust" + +00:09:15 - Mapping Eliza abstractions to OODA loop + +- Providers: Observe/Orient stages (merged since agent is a data machine) +- Actions & response handling: Decide stage +- Action execution: Act stage +- Evaluators: Update state, then loop back to Decide + +00:10:03 - Wrap up + +- Shaw considers making a video to explain these concepts in depth + +### Part 3 + +Watch: [Youtube](https://www.youtube.com/watch?v=7FiKJPyaMJI) + +00:00:00 - Managing large context sizes + +- State object can get very large, especially with long user posts +- Eliza uses "trim tokens" and a maximum content length (120k tokens) to cap context size + - New models have 128k-200k context, which is a lot (equivalent to 10 YouTube videos + full conversation) +- Conversation length is typically capped at 32 messages + - Fact extraction allows recalling information beyond this window + - Per-channel conversation access +- Increasing conversation length risks more aggressive token trimming from the top of the prompt + - Keep instructions at the bottom to avoid trimming them + +00:01:53 - Billing costs for cloud/GPT models +Q: What billing costs have you experienced with cloud/GPT model integration? +A: + +- Open Router has a few always-free models limited to 8k context and rate-limited + - Plan to re-implement and use these for the tiny/check model with fallback for rate limiting +- 8k context unlikely to make a good agent; preference for smaller model over largest 8k one +- Locally-run models are free for MacBooks with 16GB RAM, but not feasible for Linux/AMD users + +00:03:35 - Cost management strategies + +- Very cost-scalable depending on model size +- Use very cheap model (1000x cheaper than GPT-4) for should_respond handler + - Runs AI on every message, so cost is a consideration +- Consider running a local Llama 3B model for should_respond to minimize costs + - Only pay for valid generations + +00:04:32 - Model provider and class configuration + +- `ModelProvider` class with `ModelClass` (small, medium, large, embedding) +- Configured in `models.ts` +- Example: OpenAI small = GPT-4-mini, medium = GPT-4 +- Approach: Check if model class can handle everything in less than 8k context + - If yes (should_respond), default to free tier + - Else, use big models + +00:06:23 - Fine-tuned model support + +- Extend `ModelProvider` to support fine-tuned instances of small Llama models for specific tasks +- In progress, to be added soon +- Model endpoint override exists; will add per-model provider override + - Allows pointing small model to fine-tuned Llama 3.1B for should_respond + +00:07:10 - Avoiding cringey model loops + +- Fine-tuning is a form of anti-slop (avoiding low-quality responses) +- For detecting cringey model responses, use the "boredom provider" + - Has a list of cringe words; if detected, agent disengages +- JSON file exists with words disproportionately high in the dataset + - To be shared for a more comprehensive solution + +### Part 4 + +Watch: [Youtube](https://www.youtube.com/watch?v=ZlzZzDU1drM) + +00:00:00 - Setting up an autonomous agent loop +Q: How to set up an agent to constantly loop and explore based on objectives/goals? +A: Create a new "autonomous" client: + +1. Initialize with just the runtime (no Express app needed) +2. Set a timer to call a `step` function every 10 seconds +3. In the `step` function: + - Compose state + - Decide on action + - Execute action + - Update state + - Run evaluators + +00:01:56 - Creating an auto template + +- Create an `autoTemplate` with agent info (bio, lore, goals, actions) +- Prompt: "What does the agent want to do? Your response should only be the name of the action to call." +- Compose state using `runtime.composeState` + +00:03:38 - Passing a message object + +- Need to pass a message object with `userId`, `agentId`, `content`, and `roomId` +- Create a unique `roomId` for the autonomous agent using `crypto.randomUUID()` +- Set `userId` and `agentId` using the runtime +- Set `content` to a default message + +00:04:33 - Composing context + +- Compose context using the runtime, state, and auto template + +00:05:02 - Type error + +- Getting a type error: "is missing the following from type state" +- (Transcript ends before resolution) + +The key steps are: + +1. Create a dedicated autonomous client +2. Set up a loop to continuously step through the runtime +3. In each step, compose state, decide & execute actions, update state, and run evaluators +4. Create a custom auto template to guide the agent's decisions +5. Pass a properly formatted message object +6. Compose context using the runtime, state, and auto template + +--- + +## X Space 10-29-24 + +Space: https://x.com/weremeow/status/1851365658916708616 + +- 00:04:03 - Keeping up with rapid AI agent growth +- 00:09:01 - Imran from Alliance DAO on consumer AI incubators +- 00:14:04 - Discussion on Goatsea and Opus AI system +- 00:14:34 - Exponential growth accelerates AI progress +- 00:17:10 - Entertainers and AI as modern "religions" +- 00:28:45 - Mathis on Opus and "Goatse Gospels" +- 00:35:11 - Base vs. instruct/chat-tuned models +- 00:59:42 - http://ai16z.vc approach to memecoins fund +- 01:17:06 - Balancing chaotic vs. orderly AI systems +- 01:25:38 - AI controlling blockchain keys/wallets +- 01:36:10 - Creation story of ai16z +- 01:40:27 - AI / Crypto tipping points +- 01:49:54 - Preserving Opus on-chain before potential takedown +- 01:58:46 - Shinkai Protocol’s decentralized AI wallet +- 02:17:02 - Fee-sharing model to sustain DAOs +- 02:21:18 - DAO token liquidity pools as passive income +- 02:27:02 - AI bots for DAO treasury oversight +- 02:31:30 - AI-facilitated financial freedom for higher pursuits +- 02:41:51 - Call to build on http://DAO.fun for team-friendly economics + +--- + +## X Space 10-27-24 + +Space: https://x.com/shawmakesmagic/status/1850609680558805422 + +00:00:00 - Opening + +- Co-hosts: Shaw and Jin +- Purpose: Structured FAQ session about AI16Z and DegenAI +- Format: Pre-collected questions followed by audience Q&A + +00:06:40 - AI16Z vs DegenAI Relationship +Q: What's the difference between AI16Z and DegenAI? +A: + +- ai16z: DAO-based investment vehicle, more PvE focused, community driven +- DegenAI: Individual trading agent, PvP focused, more aggressive strategy +- Both use same codebase but different personalities +- DAO is a large holder of DegenAI +- Management fees (1%) used to buy more DegenAI +- Carry fees reinvested in DegenAI +- Projects intentionally interlinked but serve different purposes + +00:10:45 - Trust Engine Mechanics +Q: How does the trust engine work? +A: + +- Users share contract addresses with confidence levels +- System tracks recommendation performance +- Low conviction recommendations = low penalty if wrong +- High conviction failures severely impact trust score +- Historical performance tracked for trust calculation +- Trust scores influence agent's future decision-making + +00:21:45 - Technical Infrastructure +Q: Where do the agents live? +A: + +- Currently: Test servers and local development +- Future: Trusted Execution Environment (TEE) +- Partnership with TreasureDAO for infrastructure +- Goal: Fully autonomous agents without developer control +- Private keys generated within TEE for security + +00:34:20 - Trading Implementation +Q: When will Mark start trading? +A: + +- Three phase approach: + +1. Testing tech infrastructure +2. Virtual order book/paper trading +3. Live trading with real assets + +- Using Jupiter API for swaps +- Initial focus on basic trades before complex strategies +- Trading decisions based on community trust scores + +00:54:15 - Development Status +Q: Who's building this? +A: + +- Open source project with multiple contributors +- Key maintainers: Circuitry, Nate Martin +- Community developers incentivized through token ownership +- Focus on reusable components and documentation + +01:08:35 - AI Model Architecture +Q: What models power the agents? +A: + +- DegenAI: Llama 70B +- Using Together.xyz for model marketplace +- Continuous fine-tuning planned +- Different personalities require different model approaches +- Avoiding GPT-4 due to distinct "voice" + +01:21:35 - Ethics Framework +Q: What ethical guidelines are being followed? +A: + +- Rejecting traditional corporate AI ethics frameworks +- Focus on community-driven standards +- Emphasis on transparency and open source +- Goal: Multiple competing approaches rather than single standard +- Priority on practical utility over theoretical ethics + +01:28:30 - Wrap-up + +- Discord: AI16z.vc +- Future spaces planned with DAOs.fun team +- Focus on responsible growth +- Community engagement continuing in Discord + +The space emphasized technical implementation details while addressing community concerns about governance, ethics, and practical functionality. + +--- + +## X Space 10-25-24 + +- https://x.com/shawmakesmagic/status/1848553697611301014 + - https://www.youtube.com/live/F3IZ3ikacWM?feature=share + +**Overview** + +- 00:00-30:00 Talks about Eliza framework. The bot is able to tweet, reply to tweets, search Twitter for topics, and generate new posts on its own every few hours. It works autonomously without human input (except to fix the occasional issues) +- 30:00-45:00 Deep dive into creating the bots personality which is defined by character files containing bios, lore, example conversations, and specific directions. Some alpha for those +- 45:00-60:00 working on adding capabilities for the bot to make crypto token swaps and trades. This requires providing the bot wallet balances, token prices, market data, and a swap action. Some live coding for showing how new features can get implemented. +- 60:00-75:00 Discussion around the symbiosis between the AI and crypto communities. AI developers are realizing they can monetize their work through tokens vs traditional VC funding route. Crypto people are learning about AI advancements. + +**Notes** + +1. A large amount of $degenai tokens were moved to the DAO, which the AI bot "Marc" will hold and eventually trade with. +2. The goal is to make the AI bot a genuinely good venture capitalist that funds cool projects and buys interesting tokens. They want it to be high fidelity and real, bringing in Marc Andreeson's real knowledge by training a model on his writings. +3. Shaw thinks the only way to make an authentic / legitimate AI version of Marc Andreessen is to also have it outperform the real Marc Andreessen financially. +4. AI Marc Andreessen (or AI Marc) will be in a Discord channel (Telegram was also mentioned). DAO token holders above a certain threshold get access to interact with him, pitch ideas, and try to influence his investing decisions. +5. AI Marc decides how much to trust people's investment advice based on a "virtual Marcetplace of trust". He tracks how much money he would have made following their recommendations. Successful tips increase trust; failed ones decrease it. +6. The amount of DAO tokens someone holds also influences their sway with AI Marc. The two balancing factors are the virtual Marcetplace of trust performance and DAO token holdings. +7. The core tech behind AI Marc AIndreessen is the same agent system that allows him to pull in relevant knowledge, interact with people, and make decisions (http://github.com/ai16z) +8. AI Marc should be able to autonomously execute on-chain activities, not just have humans execute actions on his behalf. +9. In the near future, AI Marc will be able to execute trades autonomously based on the information and recommendations gathered from the community. Human intervention will be minimized. +10. They are working on getting AI Marc on-chain as soon as possible using trusted execution environments for him to take actions like approving trades. +11. The plan is for AI Marc to eventually participate in a "futarchy" style governance market within the DAO, allowing humans to influence decisions but not fully control the AI. diff --git a/docs/docs/community/project-overview.md b/docs/docs/community/project-overview.md deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/docs/docs/community/spaces-notes.md b/docs/docs/community/spaces-notes.md deleted file mode 100644 index f4ead593c51..00000000000 --- a/docs/docs/community/spaces-notes.md +++ /dev/null @@ -1,145 +0,0 @@ ---- -sidebar_position: 1 -title: X Space Notes ---- - -# X Space Notes - -## 10-29-24 - -Space: https://x.com/weremeow/status/1851365658916708616 - -- 00:04:03 - Keeping up with rapid AI agent growth -- 00:09:01 - Imran from Alliance DAO on consumer AI incubators -- 00:14:04 - Discussion on Goatsea and Opus AI system -- 00:14:34 - Exponential growth accelerates AI progress -- 00:17:10 - Entertainers and AI as modern "religions" -- 00:28:45 - Mathis on Opus and "Goatse Gospels" -- 00:35:11 - Base vs. instruct/chat-tuned models -- 00:59:42 - http://ai16z.vc approach to memecoins fund -- 01:17:06 - Balancing chaotic vs. orderly AI systems -- 01:25:38 - AI controlling blockchain keys/wallets -- 01:36:10 - Creation story of ai16z -- 01:40:27 - AI / Crypto tipping points -- 01:49:54 - Preserving Opus on-chain before potential takedown -- 01:58:46 - Shinkai Protocol’s decentralized AI wallet -- 02:17:02 - Fee-sharing model to sustain DAOs -- 02:21:18 - DAO token liquidity pools as passive income -- 02:27:02 - AI bots for DAO treasury oversight -- 02:31:30 - AI-facilitated financial freedom for higher pursuits -- 02:41:51 - Call to build on http://DAO.fun for team-friendly economics - ---- - -## 10-27-24 - -Space: https://x.com/shawmakesmagic/status/1850609680558805422 - -00:00:00 - Opening -- Co-hosts: Shaw and Jin -- Purpose: Structured FAQ session about AI16Z and DegenAI -- Format: Pre-collected questions followed by audience Q&A - -00:06:40 - AI16Z vs DegenAI Relationship -Q: What's the difference between AI16Z and DegenAI? -A: -- ai16z: DAO-based investment vehicle, more PvE focused, community driven -- DegenAI: Individual trading agent, PvP focused, more aggressive strategy -- Both use same codebase but different personalities -- DAO is a large holder of DegenAI -- Management fees (1%) used to buy more DegenAI -- Carry fees reinvested in DegenAI -- Projects intentionally interlinked but serve different purposes - -00:10:45 - Trust Engine Mechanics -Q: How does the trust engine work? -A: -- Users share contract addresses with confidence levels -- System tracks recommendation performance -- Low conviction recommendations = low penalty if wrong -- High conviction failures severely impact trust score -- Historical performance tracked for trust calculation -- Trust scores influence agent's future decision-making - -00:21:45 - Technical Infrastructure -Q: Where do the agents live? -A: -- Currently: Test servers and local development -- Future: Trusted Execution Environment (TEE) -- Partnership with TreasureDAO for infrastructure -- Goal: Fully autonomous agents without developer control -- Private keys generated within TEE for security - -00:34:20 - Trading Implementation -Q: When will Mark start trading? -A: -- Three phase approach: -1. Testing tech infrastructure -2. Virtual order book/paper trading -3. Live trading with real assets -- Using Jupiter API for swaps -- Initial focus on basic trades before complex strategies -- Trading decisions based on community trust scores - -00:54:15 - Development Status -Q: Who's building this? -A: -- Open source project with multiple contributors -- Key maintainers: Circuitry, Nate Martin -- Community developers incentivized through token ownership -- Focus on reusable components and documentation - -01:08:35 - AI Model Architecture -Q: What models power the agents? -A: -- DegenAI: Llama 70B -- Using Together.xyz for model marketplace -- Continuous fine-tuning planned -- Different personalities require different model approaches -- Avoiding GPT-4 due to distinct "voice" - -01:21:35 - Ethics Framework -Q: What ethical guidelines are being followed? -A: -- Rejecting traditional corporate AI ethics frameworks -- Focus on community-driven standards -- Emphasis on transparency and open source -- Goal: Multiple competing approaches rather than single standard -- Priority on practical utility over theoretical ethics - -01:28:30 - Wrap-up -- Discord: AI16z.vc -- Future spaces planned with DAOs.fun team -- Focus on responsible growth -- Community engagement continuing in Discord - -The space emphasized technical implementation details while addressing community concerns about governance, ethics, and practical functionality. - ---- - -## 10-25-24 - -- https://x.com/shawmakesmagic/status/1848553697611301014 - - https://www.youtube.com/live/F3IZ3ikacWM?feature=share - -**Overview** - -- 00:00-30:00 Talks about Eliza framework. The bot is able to tweet, reply to tweets, search Twitter for topics, and generate new posts on its own every few hours. It works autonomously without human input (except to fix the occasional issues) -- 30:00-45:00 Deep dive into creating the bots personality which is defined by character files containing bios, lore, example conversations, and specific directions. Some alpha for those -- 45:00-60:00 working on adding capabilities for the bot to make crypto token swaps and trades. This requires providing the bot wallet balances, token prices, market data, and a swap action. Some live coding for showing how new features can get implemented. -- 60:00-75:00 Discussion around the symbiosis between the AI and crypto communities. AI developers are realizing they can monetize their work through tokens vs traditional VC funding route. Crypto people are learning about AI advancements. - -**Notes** - -1. A large amount of $degenai tokens were moved to the DAO, which the AI bot "Marc" will hold and eventually trade with. -2. The goal is to make the AI bot a genuinely good venture capitalist that funds cool projects and buys interesting tokens. They want it to be high fidelity and real, bringing in Marc Andreeson's real knowledge by training a model on his writings. -3. Shaw thinks the only way to make an authentic / legitimate AI version of Marc Andreessen is to also have it outperform the real Marc Andreessen financially. -4. AI Marc Andreessen (or AI Marc) will be in a Discord channel (Telegram was also mentioned). DAO token holders above a certain threshold get access to interact with him, pitch ideas, and try to influence his investing decisions. -5. AI Marc decides how much to trust people's investment advice based on a "virtual Marcetplace of trust". He tracks how much money he would have made following their recommendations. Successful tips increase trust; failed ones decrease it. -6. The amount of DAO tokens someone holds also influences their sway with AI Marc. The two balancing factors are the virtual Marcetplace of trust performance and DAO token holdings. -7. The core tech behind AI Marc AIndreessen is the same agent system that allows him to pull in relevant knowledge, interact with people, and make decisions (http://github.com/ai16z) -8. AI Marc should be able to autonomously execute on-chain activities, not just have humans execute actions on his behalf. -9. In the near future, AI Marc will be able to execute trades autonomously based on the information and recommendations gathered from the community. Human intervention will be minimized. -10. They are working on getting AI Marc on-chain as soon as possible using trusted execution environments for him to take actions like approving trades. -11. The plan is for AI Marc to eventually participate in a "futarchy" style governance market within the DAO, allowing humans to influence decisions but not fully control the AI. - diff --git a/docs/docs/core/actions.md b/docs/docs/core/actions.md index 4ee982138ed..559527fb924 100644 --- a/docs/docs/core/actions.md +++ b/docs/docs/core/actions.md @@ -9,6 +9,7 @@ Actions are executable behaviors that agents can perform in response to messages ## Overview Each Action has: + - A unique name and similar variations (similes) - A validation function - A handler function @@ -20,20 +21,23 @@ Each Action has: ### Basic Conversation Actions #### CONTINUE + - Continues the conversation when additional context is needed - Used for natural conversation flow - Prevents over-dominating conversations - Limited to maximum of 3 continues in a row -#### IGNORE +#### IGNORE + - Disengages from conversation when appropriate - Used for: - - Handling aggressive/inappropriate users + - Handling aggressive/inappropriate users - After natural conversation endings - When agent should stop responding - Following goodbyes or closings #### NONE + - Default action when just responding normally - No additional behaviors needed - Basic conversational responses @@ -41,6 +45,7 @@ Each Action has: ### Room Management Actions #### FOLLOW_ROOM + - Actively follows a conversation/channel - Participates without needing explicit mentions - Used when: @@ -49,6 +54,7 @@ Each Action has: - Input would be valuable #### UNFOLLOW_ROOM + - Stops following a previously followed room - Only responds when explicitly mentioned - Used when: @@ -56,7 +62,8 @@ Each Action has: - Agent is being too disruptive - Input is no longer needed -#### MUTE_ROOM & UNMUTE_ROOM +#### MUTE_ROOM & UNMUTE_ROOM + - Completely mutes/unmutes a room - More strict than follow/unfollow - Used for temporary or permanent disengagement @@ -64,6 +71,7 @@ Each Action has: ### External Integrations #### ASK_CLAUDE + - Forwards complex queries to Claude AI - Handles: - Code review/debugging @@ -72,6 +80,7 @@ Each Action has: - Detailed explanations #### IMAGE_GENERATION + - Creates images from text descriptions - Supports multiple providers - Includes image captioning @@ -80,6 +89,7 @@ Each Action has: ### Trading/Financial Actions #### SWAP + - Executes token swaps on Solana - Handles slippage and validation - Supports: @@ -88,6 +98,7 @@ Each Action has: - Error handling #### TAKE_ORDER + - Records trading orders - Processes user conviction levels - Manages order book updates @@ -98,18 +109,18 @@ To create a custom action, implement the Action interface: ```typescript interface Action { - name: string; - similes: string[]; - description: string; - validate: (runtime: IAgentRuntime, message: Memory) => Promise; - handler: ( - runtime: IAgentRuntime, - message: Memory, - state?: State, - options?: any, - callback?: HandlerCallback - ) => Promise; - examples: ActionExample[][]; + name: string; + similes: string[]; + description: string; + validate: (runtime: IAgentRuntime, message: Memory) => Promise; + handler: ( + runtime: IAgentRuntime, + message: Memory, + state?: State, + options?: any, + callback?: HandlerCallback, + ) => Promise; + examples: ActionExample[][]; } ``` @@ -117,26 +128,27 @@ Example custom action: ```typescript const customAction: Action = { - name: "CUSTOM_ACTION", - similes: ["ALTERNATIVE_NAME"], - description: "Describes what the action does", - validate: async (runtime, message) => { - // Validation logic - return true; - }, - handler: async (runtime, message, state, options, callback) => { - // Action implementation - return result; - }, - examples: [ - // Usage examples - ] + name: "CUSTOM_ACTION", + similes: ["ALTERNATIVE_NAME"], + description: "Describes what the action does", + validate: async (runtime, message) => { + // Validation logic + return true; + }, + handler: async (runtime, message, state, options, callback) => { + // Action implementation + return result; + }, + examples: [ + // Usage examples + ], }; ``` ## Handler Callback Actions can use the callback parameter to: + - Send intermediate responses - Update conversation state - Add attachments @@ -145,18 +157,21 @@ Actions can use the callback parameter to: ## Best Practices 1. **Validation** + - Always validate input parameters - Check for required permissions - Verify preconditions - Handle edge cases 2. **Error Handling** + - Implement proper error catching - Provide informative error messages - Handle network failures gracefully - Clean up resources on failure 3. **Examples** + - Provide clear usage examples - Show expected inputs/outputs - Demonstrate error cases @@ -174,19 +189,19 @@ Test your actions using the example format: ```typescript const examples = [ - [ - { - user: "{{user1}}", - content: { text: "Input message" } - }, - { - user: "{{user2}}", - content: { - text: "Response", - action: "ACTION_NAME" - } - } - ] + [ + { + user: "{{user1}}", + content: { text: "Input message" }, + }, + { + user: "{{user2}}", + content: { + text: "Response", + action: "ACTION_NAME", + }, + }, + ], ]; ``` diff --git a/docs/docs/core/agents.md b/docs/docs/core/agents.md index c4fb88b2dfb..888bc83841e 100644 --- a/docs/docs/core/agents.md +++ b/docs/docs/core/agents.md @@ -15,6 +15,7 @@ Agents are the core components of the Eliza framework that handle autonomous int ## Architecture ### Agent Runtime + - Base environment for the agent - Message processing - Action handling @@ -24,13 +25,15 @@ Agents are the core components of the Eliza framework that handle autonomous int ### Key Components #### 1. Clients + - Discord -- Telegram +- Telegram - Direct (REST API) - Available connectors - Client-specific features (e.g., voice, attachments) #### 2. Providers + - Inject context into agent responses - Types of providers: - Time @@ -39,6 +42,7 @@ Agents are the core components of the Eliza framework that handle autonomous int - How to use providers for extended functionality #### 3. Actions + - Executable behaviors - Built-in actions: - Follow/unfollow rooms @@ -48,6 +52,7 @@ Agents are the core components of the Eliza framework that handle autonomous int - Creating custom actions #### 4. Evaluators + - Response assessment - Goal tracking - Fact extraction @@ -57,12 +62,14 @@ Agents are the core components of the Eliza framework that handle autonomous int ### Memory System #### Types of Memory + - Message history - Factual memory - Knowledge base - Relationship tracking #### RAG Integration + - Vector search for relevant information - Knowledge embedding - Contextual recall @@ -78,18 +85,21 @@ Agents are the core components of the Eliza framework that handle autonomous int ## Best Practices ### Performance + - Model selection - Context management - Memory optimization - Client-specific considerations ### Development + - Local development setup - Testing agents - Debugging tools - Monitoring and logging ### Scaling + - Multiple agent management - Resource considerations - Infrastructure recommendations @@ -97,16 +107,19 @@ Agents are the core components of the Eliza framework that handle autonomous int ## Examples ### Basic Agent Setup + ```typescript // Example code for basic agent configuration ``` ### Adding Custom Functionality + ```typescript // Example of extending agent capabilities ``` ### Client Integration + ```typescript // Example of connecting to different platforms ``` @@ -119,5 +132,6 @@ Agents are the core components of the Eliza framework that handle autonomous int - Error handling ## Related + - [Character Files](../characterfile) - [API Reference](/api/classes/AgentRuntime) diff --git a/docs/docs/core/evaluators.md b/docs/docs/core/evaluators.md index d1f7503577c..b17c049d216 100644 --- a/docs/docs/core/evaluators.md +++ b/docs/docs/core/evaluators.md @@ -9,6 +9,7 @@ Evaluators are components that assess and extract information from conversations ## Overview Evaluators help agents: + - Extract useful information from conversations - Track progress toward goals - Build long-term memory @@ -22,19 +23,21 @@ The fact evaluator extracts factual information from conversations for long-term ```typescript interface Fact { - claim: string; - type: 'fact' | 'opinion' | 'status'; - in_bio: boolean; - already_known: boolean; + claim: string; + type: "fact" | "opinion" | "status"; + in_bio: boolean; + already_known: boolean; } ``` #### Fact Types + - `fact`: True statements about the world or character that don't change - `status`: Facts that are true but may change over time - `opinion`: Non-factual opinions, thoughts, feelings, or recommendations #### Example Facts: + ```json [ { @@ -45,7 +48,7 @@ interface Fact { }, { "claim": "User completed marathon in 3 hours", - "type": "fact", + "type": "fact", "in_bio": false, "already_known": false }, @@ -64,25 +67,27 @@ The goal evaluator tracks progress on agent goals and objectives. ```typescript interface Goal { - id: string; - name: string; - status: 'IN_PROGRESS' | 'DONE' | 'FAILED'; - objectives: Objective[]; + id: string; + name: string; + status: "IN_PROGRESS" | "DONE" | "FAILED"; + objectives: Objective[]; } interface Objective { - description: string; - completed: boolean; + description: string; + completed: boolean; } ``` #### Goal Updates + - Monitors conversation for goal progress - Updates objective completion status - Marks goals as complete when all objectives are done - Marks goals as failed when they cannot be completed #### Example Goal: + ```json { "id": "goal-123", @@ -94,7 +99,7 @@ interface Objective { "completed": true }, { - "description": "Complete practice half-marathon", + "description": "Complete practice half-marathon", "completed": false } ] @@ -107,49 +112,53 @@ To create a custom evaluator, implement the Evaluator interface: ```typescript interface Evaluator { - name: string; - similes: string[]; - description: string; - validate: (runtime: IAgentRuntime, message: Memory) => Promise; - handler: ( - runtime: IAgentRuntime, - message: Memory, - state?: State, - options?: any - ) => Promise; - examples: EvaluatorExample[]; + name: string; + similes: string[]; + description: string; + validate: (runtime: IAgentRuntime, message: Memory) => Promise; + handler: ( + runtime: IAgentRuntime, + message: Memory, + state?: State, + options?: any, + ) => Promise; + examples: EvaluatorExample[]; } ``` Example custom evaluator: + ```typescript const customEvaluator: Evaluator = { - name: "CUSTOM_EVALUATOR", - similes: ["ALTERNATE_NAME"], - description: "Evaluates something in the conversation", - validate: async (runtime, message) => { - // Determine if evaluation should run - return true; - }, - handler: async (runtime, message, state, options) => { - // Evaluation logic - return evaluationResult; - }, - examples: [ - // Example inputs and outputs - ] + name: "CUSTOM_EVALUATOR", + similes: ["ALTERNATE_NAME"], + description: "Evaluates something in the conversation", + validate: async (runtime, message) => { + // Determine if evaluation should run + return true; + }, + handler: async (runtime, message, state, options) => { + // Evaluation logic + return evaluationResult; + }, + examples: [ + // Example inputs and outputs + ], }; ``` ## Best Practices ### Fact Extraction + 1. **Avoid Duplication** + - Check for existing facts - Only store new information - Mark duplicates as already_known 2. **Proper Categorization** + - Distinguish between facts/opinions/status - Check if fact exists in bio - Include relevant context @@ -160,12 +169,15 @@ const customEvaluator: Evaluator = { - Ensure facts are meaningful ### Goal Tracking + 1. **Clear Objectives** + - Break goals into measurable objectives - Define completion criteria - Track partial progress 2. **Status Updates** + - Only update changed goals - Include complete objectives list - Preserve unchanged data @@ -178,19 +190,21 @@ const customEvaluator: Evaluator = { ## Memory Integration Evaluators work with the memory system to: + 1. Store extracted facts 2. Update goal states 3. Build long-term context 4. Maintain conversation history Example memory integration: + ```typescript // Store new fact const factMemory = await runtime.factManager.addEmbeddingToMemory({ - userId: agentId, - content: { text: fact }, - roomId, - createdAt: Date.now() + userId: agentId, + content: { text: fact }, + roomId, + createdAt: Date.now(), }); await runtime.factManager.createMemory(factMemory, true); diff --git a/docs/docs/core/providers.md b/docs/docs/core/providers.md index 5ed6c8f908f..36fd97cf90d 100644 --- a/docs/docs/core/providers.md +++ b/docs/docs/core/providers.md @@ -12,36 +12,39 @@ Providers are core modules that inject dynamic context and real-time information ## Core Provider Types ### 1. Time Provider + Provides temporal context for agent interactions: ```typescript const timeProvider: Provider = { - get: async (_runtime: IAgentRuntime, _message: Memory) => { - const currentDate = new Date(); - const currentTime = currentDate.toLocaleTimeString("en-US"); - const currentYear = currentDate.getFullYear(); - return `The current time is: ${currentTime}, ${currentYear}`; - } + get: async (_runtime: IAgentRuntime, _message: Memory) => { + const currentDate = new Date(); + const currentTime = currentDate.toLocaleTimeString("en-US"); + const currentYear = currentDate.getFullYear(); + return `The current time is: ${currentTime}, ${currentYear}`; + }, }; ``` ### 2. Token Provider + Provides comprehensive token analytics and market data: ```typescript interface TokenAnalytics { - security: TokenSecurityData; - tradeData: TokenTradeData; - holderDistribution: string; - marketMetrics: { - price: number; - volume24h: number; - priceChange: number; - }; + security: TokenSecurityData; + tradeData: TokenTradeData; + holderDistribution: string; + marketMetrics: { + price: number; + volume24h: number; + priceChange: number; + }; } ``` Key features: + - Real-time price and volume data - Security metrics and risk assessment - Holder distribution analysis @@ -49,23 +52,25 @@ Key features: - Smart caching system ### 3. Wallet Provider + Manages cryptocurrency wallet interactions: ```typescript interface WalletPortfolio { - totalUsd: string; - totalSol?: string; - items: Array<{ - name: string; - symbol: string; - balance: string; - valueUsd: string; - valueSol?: string; - }>; + totalUsd: string; + totalSol?: string; + items: Array<{ + name: string; + symbol: string; + balance: string; + valueUsd: string; + valueSol?: string; + }>; } ``` Capabilities: + - Portfolio valuation - Token balances - Price tracking @@ -73,16 +78,18 @@ Capabilities: - Multi-currency support ### 4. Boredom Provider + Manages conversation dynamics and engagement: ```typescript interface BoredomLevel { - minScore: number; - statusMessages: string[]; + minScore: number; + statusMessages: string[]; } ``` Features: + - Engagement tracking - Conversation flow management - Natural disengagement @@ -95,11 +102,11 @@ Features: ```typescript interface Provider { - get: ( - runtime: IAgentRuntime, - message: Memory, - state?: State - ) => Promise; + get: ( + runtime: IAgentRuntime, + message: Memory, + state?: State, + ) => Promise; } ``` @@ -107,22 +114,23 @@ interface Provider { ```typescript class CacheManager { - private cache: NodeCache; - private cacheDir: string; - - constructor(ttl: number = 300) { // 5 minutes default - this.cache = new NodeCache({ stdTTL: ttl }); - this.cacheDir = path.join(__dirname, "cache"); - } - - async getCachedData(key: string): Promise { - // Check memory cache - const memoryCache = this.cache.get(key); - if (memoryCache) return memoryCache; - - // Check file cache - return this.readFromFileCache(key); - } + private cache: NodeCache; + private cacheDir: string; + + constructor(ttl: number = 300) { + // 5 minutes default + this.cache = new NodeCache({ stdTTL: ttl }); + this.cacheDir = path.join(__dirname, "cache"); + } + + async getCachedData(key: string): Promise { + // Check memory cache + const memoryCache = this.cache.get(key); + if (memoryCache) return memoryCache; + + // Check file cache + return this.readFromFileCache(key); + } } ``` @@ -130,20 +138,20 @@ class CacheManager { ```typescript async function withErrorHandling( - operation: () => Promise, - fallback: T, - retries: number = 3 + operation: () => Promise, + fallback: T, + retries: number = 3, ): Promise { - try { - return await operation(); - } catch (error) { - console.error(`Provider error: ${error.message}`); - if (retries > 0) { - await delay(1000); - return withErrorHandling(operation, fallback, retries - 1); - } - return fallback; + try { + return await operation(); + } catch (error) { + console.error(`Provider error: ${error.message}`); + if (retries > 0) { + await delay(1000); + return withErrorHandling(operation, fallback, retries - 1); } + return fallback; + } } ``` @@ -153,14 +161,14 @@ async function withErrorHandling( ```typescript const PROVIDER_CONFIG = { - API_ENDPOINTS: { - BIRDEYE: "https://public-api.birdeye.so", - DEXSCREENER: "https://api.dexscreener.com/latest/dex", - HELIUS: "https://mainnet.helius-rpc.com" - }, - CACHE_TTL: 300, // 5 minutes - MAX_RETRIES: 3, - RETRY_DELAY: 2000 + API_ENDPOINTS: { + BIRDEYE: "https://public-api.birdeye.so", + DEXSCREENER: "https://api.dexscreener.com/latest/dex", + HELIUS: "https://mainnet.helius-rpc.com", + }, + CACHE_TTL: 300, // 5 minutes + MAX_RETRIES: 3, + RETRY_DELAY: 2000, }; ``` @@ -168,41 +176,45 @@ const PROVIDER_CONFIG = { ```typescript const rateLimiter = new RateLimit({ - windowMs: 15 * 60 * 1000, // 15 minutes - max: 100 // limit each IP to 100 requests per windowMs + windowMs: 15 * 60 * 1000, // 15 minutes + max: 100, // limit each IP to 100 requests per windowMs }); ``` ## Best Practices ### 1. Data Management + - Implement robust caching strategies - Use appropriate TTL for different data types - Validate data before caching ### 2. Performance + ```typescript // Example of optimized data fetching async function fetchDataWithCache( - key: string, - fetcher: () => Promise + key: string, + fetcher: () => Promise, ): Promise { - const cached = await cache.get(key); - if (cached) return cached; - - const data = await fetcher(); - await cache.set(key, data); - return data; + const cached = await cache.get(key); + if (cached) return cached; + + const data = await fetcher(); + await cache.set(key, data); + return data; } ``` ### 3. Error Handling + - Implement retry mechanisms - Provide fallback values - Log errors comprehensively - Handle API timeouts ### 4. Security + - Validate input parameters - Sanitize returned data - Implement rate limiting @@ -214,20 +226,20 @@ async function fetchDataWithCache( ```typescript async function getMarketContext( - runtime: IAgentRuntime, - message: Memory + runtime: IAgentRuntime, + message: Memory, ): Promise { - const [timeContext, walletInfo, tokenData] = await Promise.all([ - timeProvider.get(runtime, message), - walletProvider.get(runtime, message), - tokenProvider.get(runtime, message) - ]); - - return formatContext({ - time: timeContext, - wallet: walletInfo, - token: tokenData - }); + const [timeContext, walletInfo, tokenData] = await Promise.all([ + timeProvider.get(runtime, message), + walletProvider.get(runtime, message), + tokenProvider.get(runtime, message), + ]); + + return formatContext({ + time: timeContext, + wallet: walletInfo, + token: tokenData, + }); } ``` @@ -235,12 +247,12 @@ async function getMarketContext( ```typescript const marketSentimentProvider: Provider = { - get: async (runtime: IAgentRuntime, message: Memory) => { - const sentiment = await analyzeSentiment(message.content); - const marketMetrics = await getMarketMetrics(); - - return formatSentimentResponse(sentiment, marketMetrics); - } + get: async (runtime: IAgentRuntime, message: Memory) => { + const sentiment = await analyzeSentiment(message.content); + const marketMetrics = await getMarketMetrics(); + + return formatSentimentResponse(sentiment, marketMetrics); + }, }; ``` @@ -249,20 +261,22 @@ const marketSentimentProvider: Provider = { ### Common Issues and Solutions 1. **Stale Data** + ```typescript // Implement cache invalidation const invalidateCache = async (pattern: string) => { - const keys = await cache.keys(pattern); - await Promise.all(keys.map(k => cache.del(k))); + const keys = await cache.keys(pattern); + await Promise.all(keys.map((k) => cache.del(k))); }; ``` 2. **Rate Limiting** + ```typescript // Implement backoff strategy const backoff = async (attempt: number) => { - const delay = Math.min(1000 * Math.pow(2, attempt), 10000); - await new Promise(resolve => setTimeout(resolve, delay)); + const delay = Math.min(1000 * Math.pow(2, attempt), 10000); + await new Promise((resolve) => setTimeout(resolve, delay)); }; ``` @@ -270,9 +284,8 @@ const marketSentimentProvider: Provider = { ```typescript // Implement fallback data sources const getFallbackData = async () => { - // Attempt alternative data sources + // Attempt alternative data sources }; ``` ## Additional Resources - diff --git a/docs/docs/guides/advanced.md b/docs/docs/guides/advanced.md index 7f61a5d9a12..234abf3b053 100644 --- a/docs/docs/guides/advanced.md +++ b/docs/docs/guides/advanced.md @@ -5,6 +5,7 @@ This guide covers advanced usage patterns and features of Eliza, including worki ## Video and Media Processing ### Video Service + Eliza provides robust video processing capabilities through the VideoService class. Key features include: - Downloading and processing videos from multiple sources (YouTube, Vimeo, direct MP4 links) @@ -13,7 +14,7 @@ Eliza provides robust video processing capabilities through the VideoService cla - Support for both manual and automatic captions ```typescript -import { VideoService } from './services/video'; +import { VideoService } from "./services/video"; // Initialize the service const videoService = VideoService.getInstance(runtime); @@ -23,6 +24,7 @@ const media = await videoService.processVideo(videoUrl); ``` ### Image Processing + The ImageService provides advanced image analysis capabilities: - Local and cloud-based image recognition @@ -33,6 +35,7 @@ The ImageService provides advanced image analysis capabilities: ## Memory Management and Embeddings ### Advanced Memory Operations + The system supports sophisticated memory operations through various database adapters: ```typescript @@ -41,7 +44,7 @@ const similarMemories = await db.searchMemoriesByEmbedding(embedding, { match_threshold: 0.95, count: 5, roomId: currentRoom, - tableName: "long_term_memory" + tableName: "long_term_memory", }); // Create unique memories with deduplication @@ -49,6 +52,7 @@ await db.createMemory(memory, "episodic_memory", true); ``` ### Custom Database Adapters + You can implement custom database adapters by extending the DatabaseAdapter class: ```typescript @@ -69,6 +73,7 @@ class CustomDatabaseAdapter extends DatabaseAdapter { ## Speech and Transcription ### Speech Service + The system includes a comprehensive speech service with support for: - Text-to-speech conversion with multiple providers @@ -82,6 +87,7 @@ const audioStream = await speechService.generate(runtime, text); ``` ### Advanced Transcription + The TranscriptionService provides: - Local and cloud-based transcription options @@ -95,17 +101,18 @@ The system includes a sophisticated trust score management system: ```typescript interface RecommenderMetrics { - trustScore: number; - totalRecommendations: number; - successfulRecs: number; - avgTokenPerformance: number; - riskScore: number; - consistencyScore: number; - virtualConfidence: number; + trustScore: number; + totalRecommendations: number; + successfulRecs: number; + avgTokenPerformance: number; + riskScore: number; + consistencyScore: number; + virtualConfidence: number; } ``` Key features include: + - Historical metrics tracking - Performance analysis - Risk assessment @@ -129,16 +136,19 @@ const content = await browserService.getPageContent(url); ## Best Practices ### Memory Management + - Implement proper memory cleanup and garbage collection - Use the caching system effectively - Monitor memory usage in long-running processes ### Error Handling + - Implement comprehensive error handling - Use the logging system effectively - Monitor system performance ### Performance Optimization + - Use batch processing when possible - Implement proper caching strategies - Monitor and optimize database queries @@ -146,6 +156,7 @@ const content = await browserService.getPageContent(url); ## Configuration Options ### Environment Variables + Key configuration options include: ```bash @@ -155,6 +166,7 @@ ELEVENLABS_API_KEY=... # For voice synthesis ``` ### Runtime Configuration + The runtime can be configured with various options: ```typescript @@ -163,8 +175,8 @@ const runtime = { settings: { model: "gpt-4", temperature: 0.7, - maxTokens: 2048 - } + maxTokens: 2048, + }, }, // Additional configuration options }; @@ -173,6 +185,7 @@ const runtime = { ## Advanced Features ### Custom Actions + Implement custom actions for specialized behavior: ```typescript @@ -181,13 +194,14 @@ class CustomAction extends BaseAction { // Custom implementation return { success: true, - data: {} + data: {}, }; } } ``` ### Custom Evaluators + Create specialized evaluators for specific use cases: ```typescript @@ -196,7 +210,7 @@ class CustomEvaluator extends BaseEvaluator { // Custom evaluation logic return { score: 0.95, - confidence: 0.8 + confidence: 0.8, }; } } @@ -215,11 +229,13 @@ class CustomEvaluator extends BaseEvaluator { Common issues and solutions: 1. Memory leaks + - Monitor memory usage - Implement proper cleanup - Use garbage collection 2. Performance issues + - Optimize database queries - Implement proper caching - Use batch processing diff --git a/docs/docs/guides/basic-usage.md b/docs/docs/guides/basic-usage.md index 7c97d7fafaa..f00b7143bf1 100644 --- a/docs/docs/guides/basic-usage.md +++ b/docs/docs/guides/basic-usage.md @@ -21,8 +21,8 @@ pnpm install @your-org/agent-framework Here's a minimal example to create and start an agent: ```typescript -import { AgentRuntime, createAgentRuntime } from '@your-org/agent-framework'; -import { SqliteDatabaseAdapter } from '@your-org/agent-framework/adapters'; +import { AgentRuntime, createAgentRuntime } from "@your-org/agent-framework"; +import { SqliteDatabaseAdapter } from "@your-org/agent-framework/adapters"; // Initialize database const db = new SqliteDatabaseAdapter(new Database("./db.sqlite")); @@ -35,7 +35,7 @@ const runtime = await createAgentRuntime({ // Add character details }, db, - token: process.env.API_TOKEN + token: process.env.API_TOKEN, }); ``` @@ -44,6 +44,7 @@ const runtime = await createAgentRuntime({ ### Agents Agents are autonomous entities that can: + - Process incoming messages - Generate contextual responses - Take actions based on input @@ -53,6 +54,7 @@ Agents are autonomous entities that can: ### Clients The framework supports multiple client types: + - Discord - Telegram - Twitter @@ -70,7 +72,7 @@ const action = { description: "Summarize content or conversations", handler: async (runtime, message, state) => { // Action implementation - } + }, }; runtime.registerAction(action); @@ -79,6 +81,7 @@ runtime.registerAction(action); ### Providers Providers supply contextual information to agents: + - Time awareness - User relationships - System state @@ -90,7 +93,7 @@ Providers supply contextual information to agents: ```typescript // Handle incoming chat message -runtime.on('message', async (message) => { +runtime.on("message", async (message) => { const response = await runtime.handleMessage(message); // Process response }); @@ -102,7 +105,7 @@ For platforms supporting voice (e.g., Discord): ```typescript // Handle voice channel join -runtime.on('voiceStateUpdate', async (oldState, newState) => { +runtime.on("voiceStateUpdate", async (oldState, newState) => { if (newState.channelId) { await runtime.joinVoiceChannel(newState.channelId); } @@ -112,6 +115,7 @@ runtime.on('voiceStateUpdate', async (oldState, newState) => { ### Media Processing The framework can handle various media types: + - Images (with description generation) - Audio (with transcription) - Documents (with text extraction) @@ -121,7 +125,7 @@ The framework can handle various media types: // Process attachment const media = await runtime.processAttachment({ type: "image", - url: "https://example.com/image.jpg" + url: "https://example.com/image.jpg", }); ``` @@ -138,7 +142,7 @@ const character = { style: { tone: "professional", personality: "friendly", - language: "en" + language: "en", }, topics: ["technology", "science", "general"], // Additional character settings @@ -162,16 +166,19 @@ const settings = { ## Best Practices 1. **Error Handling** + - Implement proper error catching - Provide graceful fallbacks - Log errors for debugging 2. **Resource Management** + - Monitor memory usage - Implement rate limiting - Cache frequently accessed data 3. **Security** + - Validate input - Sanitize output - Implement proper authentication @@ -186,8 +193,8 @@ const settings = { Here's a complete example bringing together the core concepts: ```typescript -import { AgentRuntime, createAgentRuntime } from '@your-org/agent-framework'; -import { DiscordClient } from '@your-org/agent-framework/clients/discord'; +import { AgentRuntime, createAgentRuntime } from "@your-org/agent-framework"; +import { DiscordClient } from "@your-org/agent-framework/clients/discord"; async function main() { // Initialize runtime @@ -198,13 +205,13 @@ async function main() { modelProvider: "anthropic", style: { tone: "friendly", - personality: "helpful" - } + personality: "helpful", + }, }, settings: { maxContextLength: 2000, - temperature: 0.7 - } + temperature: 0.7, + }, }); // Add custom action @@ -214,14 +221,14 @@ async function main() { handler: async (runtime, message, state) => { return { text: "Here's how I can help...", - action: "HELP_RESPONSE" + action: "HELP_RESPONSE", }; - } + }, }); // Initialize Discord client const discord = new DiscordClient(runtime); - + // Start listening discord.start(); } @@ -234,11 +241,13 @@ main().catch(console.error); Common issues and solutions: 1. **Connection Issues** + - Verify API tokens - Check network connectivity - Confirm service status 2. **Response Timeouts** + - Adjust timeout settings - Check rate limits - Verify model availability @@ -251,6 +260,7 @@ Common issues and solutions: ## Next Steps After mastering basic usage, explore: + - Advanced configuration options - Custom action development - Integration with external services diff --git a/docs/docs/guides/configuration.md b/docs/docs/guides/configuration.md index 29056f83e9a..850a6e73deb 100644 --- a/docs/docs/guides/configuration.md +++ b/docs/docs/guides/configuration.md @@ -72,14 +72,14 @@ actions: ### 1. Basic Setup ```typescript -import { createAgentRuntime } from '@your-org/agent-framework'; -import { SqliteDatabaseAdapter } from '@your-org/agent-framework/adapters'; +import { createAgentRuntime } from "@your-org/agent-framework"; +import { SqliteDatabaseAdapter } from "@your-org/agent-framework/adapters"; // Initialize runtime const runtime = await createAgentRuntime({ character: characterConfig, configPath: "./elizaConfig.yaml", - databaseAdapter: new SqliteDatabaseAdapter("./db.sqlite") + databaseAdapter: new SqliteDatabaseAdapter("./db.sqlite"), }); ``` @@ -108,18 +108,18 @@ await telegramClient.start(); ```typescript const modelProviders = { - "openai": { + openai: { small: "gpt-3.5-turbo", - large: "gpt-4" + large: "gpt-4", }, - "anthropic": { + anthropic: { small: "claude-3-haiku", - large: "claude-3-opus" + large: "claude-3-opus", }, "llama-cloud": { small: "llama-7b", - large: "llama-70b" - } + large: "llama-70b", + }, }; ``` @@ -131,7 +131,7 @@ const dbAdapter = new SqliteDatabaseAdapter("./db.sqlite"); // PostgreSQL const dbAdapter = new PostgresDatabaseAdapter({ - connectionString: process.env.POSTGRES_URL + connectionString: process.env.POSTGRES_URL, }); ``` @@ -144,7 +144,7 @@ runtime.providers.push({ get: async (runtime, message, state) => { // Provider implementation return data; - } + }, }); ``` @@ -169,9 +169,9 @@ runtime.providers.push({ ```typescript // Optimize context length const settings = { - maxContextLength: 4000, // Adjust based on model - maxTokens: 1000, // Limit response length - temperature: 0.7 // Adjust response randomness + maxContextLength: 4000, // Adjust based on model + maxTokens: 1000, // Limit response length + temperature: 0.7, // Adjust response randomness }; ``` @@ -181,10 +181,10 @@ const settings = { try { const runtime = await createAgentRuntime(config); } catch (error) { - if (error.code === 'CONFIG_NOT_FOUND') { - console.error('Configuration file missing'); - } else if (error.code === 'INVALID_CHARACTER') { - console.error('Character file validation failed'); + if (error.code === "CONFIG_NOT_FOUND") { + console.error("Configuration file missing"); + } else if (error.code === "INVALID_CHARACTER") { + console.error("Character file validation failed"); } } ``` @@ -194,32 +194,36 @@ try { ### Common Issues 1. **Missing Configuration** + ```typescript -if (!fs.existsSync('./elizaConfig.yaml')) { - console.error('Missing elizaConfig.yaml - copy from example'); +if (!fs.existsSync("./elizaConfig.yaml")) { + console.error("Missing elizaConfig.yaml - copy from example"); } ``` 2. **Invalid Character File** + ```typescript // Validate character file if (!character.name || !character.bio || !character.style) { - throw new Error('Invalid character configuration'); + throw new Error("Invalid character configuration"); } ``` 3. **Model Provider Issues** + ```typescript // Fallback to local model if (!process.env.OPENAI_API_KEY) { - console.log('Using local model fallback'); - runtime.modelProvider = 'llama-local'; + console.log("Using local model fallback"); + runtime.modelProvider = "llama-local"; } ``` ## Next Steps After basic configuration: + 1. Configure custom actions 2. Set up client integrations 3. Customize character behavior diff --git a/docs/docs/guides/local-development.md b/docs/docs/guides/local-development.md index 7bc51e96af4..6f48de06726 100644 --- a/docs/docs/guides/local-development.md +++ b/docs/docs/guides/local-development.md @@ -104,8 +104,8 @@ actions: ### SQLite (Recommended for Development) ```typescript -import { SqliteDatabaseAdapter } from '@your-org/agent-framework/adapters'; -import Database from 'better-sqlite3'; +import { SqliteDatabaseAdapter } from "@your-org/agent-framework/adapters"; +import Database from "better-sqlite3"; const db = new SqliteDatabaseAdapter(new Database("./dev.db")); ``` @@ -113,7 +113,7 @@ const db = new SqliteDatabaseAdapter(new Database("./dev.db")); ### In-Memory Database (for Testing) ```typescript -import { SqlJsDatabaseAdapter } from '@your-org/agent-framework/adapters'; +import { SqlJsDatabaseAdapter } from "@your-org/agent-framework/adapters"; const db = new SqlJsDatabaseAdapter(new Database(":memory:")); ``` @@ -164,12 +164,14 @@ Create `.vscode/launch.json`: ### 3. Common Issues **Memory Issues:** + ```bash # Increase Node.js memory limit if needed NODE_OPTIONS="--max-old-space-size=8192" pnpm run dev ``` **Model Download Issues:** + ```bash # Clear model cache rm -rf ./models/* @@ -204,16 +206,19 @@ pnpm test:integration ## Development Best Practices 1. **Version Control** + - Create feature branches - Follow conventional commits - Keep PRs focused and manageable 2. **Code Organization** + - Place custom actions in `custom_actions/` - Keep character files in `characters/` - Store test data in `tests/fixtures/` 3. **Performance** + - Use SQLite for development - Enable GPU acceleration when possible - Monitor memory usage diff --git a/docs/docs/guides/secrets-management.md b/docs/docs/guides/secrets-management.md index bf480b7e671..898594e01c5 100644 --- a/docs/docs/guides/secrets-management.md +++ b/docs/docs/guides/secrets-management.md @@ -66,6 +66,7 @@ Character files can include their own secrets, which override environment variab ### Precedence Order Secrets are resolved in the following order: + 1. Character-specific secrets (highest priority) 2. Environment variables 3. Default values (lowest priority) @@ -117,13 +118,13 @@ When using character-specific secrets: ```typescript // Validate character file location const isSecurePath = (path: string): boolean => { - return !path.includes('../') && !path.startsWith('/'); + return !path.includes("../") && !path.startsWith("/"); }; // Load character securely const loadCharacter = async (path: string) => { if (!isSecurePath(path)) { - throw new Error('Invalid character file path'); + throw new Error("Invalid character file path"); } // Load and validate character }; @@ -138,8 +139,8 @@ Implement proper access controls for secret management: ```typescript class SecretAccess { private static readonly ALLOWED_KEYS = [ - 'OPENAI_API_KEY', - 'DISCORD_TOKEN', + "OPENAI_API_KEY", + "DISCORD_TOKEN", // ... other allowed keys ]; @@ -154,12 +155,12 @@ class SecretAccess { For stored secrets: ```typescript -import { createCipheriv, createDecipheriv } from 'crypto'; +import { createCipheriv, createDecipheriv } from "crypto"; class SecretEncryption { static async encrypt(value: string, key: Buffer): Promise { const iv = crypto.randomBytes(16); - const cipher = createCipheriv('aes-256-gcm', key, iv); + const cipher = createCipheriv("aes-256-gcm", key, iv); // ... implementation } @@ -175,11 +176,11 @@ Validate secrets before use: ```typescript async function validateSecrets(character: Character): Promise { - const required = ['OPENAI_API_KEY']; - const missing = required.filter(key => !character.settings.secrets[key]); - + const required = ["OPENAI_API_KEY"]; + const missing = required.filter((key) => !character.settings.secrets[key]); + if (missing.length > 0) { - throw new Error(`Missing required secrets: ${missing.join(', ')}`); + throw new Error(`Missing required secrets: ${missing.join(", ")}`); } } ``` @@ -189,17 +190,21 @@ async function validateSecrets(character: Character): Promise { ### Common Issues 1. **Missing Secrets** + ```typescript if (!process.env.OPENAI_API_KEY && !character.settings.secrets.OPENAI_API_KEY) { - throw new Error('OpenAI API key not found in environment or character settings'); + throw new Error( + "OpenAI API key not found in environment or character settings", + ); } ``` 2. **Invalid Secret Format** + ```typescript function validateApiKey(key: string): boolean { // OpenAI keys start with 'sk-' - if (key.startsWith('sk-')) { + if (key.startsWith("sk-")) { return key.length > 20; } return false; @@ -207,14 +212,15 @@ function validateApiKey(key: string): boolean { ``` 3. **Secret Loading Errors** + ```typescript try { await loadSecrets(); } catch (error) { - if (error.code === 'ENOENT') { - console.error('Environment file not found'); + if (error.code === "ENOENT") { + console.error("Environment file not found"); } else if (error instanceof ValidationError) { - console.error('Invalid secret format'); + console.error("Invalid secret format"); } } ``` diff --git a/docs/docs/intro.md b/docs/docs/intro.md index c582840ccc4..8d8a364a10f 100644 --- a/docs/docs/intro.md +++ b/docs/docs/intro.md @@ -6,7 +6,7 @@ sidebar_position: 1 ![](/img/eliza_banner.jpg) -*As seen powering [@DegenSpartanAI](https://x.com/degenspartanai) and [@MarcAIndreessen](https://x.com/pmairca)* +_As seen powering [@DegenSpartanAI](https://x.com/degenspartanai) and [@MarcAIndreessen](https://x.com/pmairca)_ ## What is Eliza? @@ -24,6 +24,7 @@ Eliza is a powerful multi-agent simulation framework designed to create, deploy, ### Communication & Media - **Multi-Platform Support**: + - Full-featured Discord integration with voice channel support - Twitter/X bot capabilities - Telegram integration @@ -40,6 +41,7 @@ Eliza is a powerful multi-agent simulation framework designed to create, deploy, ### AI & Technical Features - **Flexible Model Support**: + - Local inference with open-source models - Cloud-based inference through OpenAI - Default configuration with Nous Hermes Llama 3.1B @@ -57,16 +59,19 @@ Eliza is a powerful multi-agent simulation framework designed to create, deploy, Eliza can be used to create: 1. **AI Assistants** + - Customer support agents - Community moderators - Personal assistants 2. **Social Media Personas** + - Automated content creators - Engagement bots - Brand representatives 3. **Knowledge Workers** + - Research assistants - Content analysts - Document processors diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index 6e8232285e3..b63bf98d831 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -5,17 +5,17 @@ const config = { title: "eliza", tagline: "The flexible, scalable AI agent for everyone", favicon: "img/favicon.ico", - + // GitHub Pages Configuration - url: "https://madjin.github.io", + url: "https://ai16z.github.io", baseUrl: "/eliza/", - organizationName: "madjin", + organizationName: "ai16z", projectName: "eliza", deploymentBranch: "gh-pages", trailingSlash: true, - onBrokenLinks: "throw", + onBrokenLinks: "ignore", onBrokenMarkdownLinks: "warn", - + i18n: { defaultLocale: "en", locales: ["en"], @@ -23,24 +23,70 @@ const config = { markdown: { mermaid: true, }, - themes: [ - '@docusaurus/theme-mermaid', - // Any other themes... - ], + themes: ["@docusaurus/theme-mermaid"], plugins: [ - // TypeDoc plugin for API documentation [ "docusaurus-plugin-typedoc", { - entryPoints: ["src/index.ts"], - tsconfig: "../core/tsconfig.json", + entryPoints: ["../packages/core/src/index.ts"], + tsconfig: "../tsconfig.json", out: "./api", - skipErrorChecking: true, + skipErrorChecking: true, + + // Documentation Enhancement Options + excludeExternals: false, + excludePrivate: true, + excludeProtected: false, + excludeInternal: false, + excludeNotDocumented: false, + + // Output Formatting + plugin: ["typedoc-plugin-markdown"], + //theme: 'markdown', + hideGenerator: true, + cleanOutputDir: true, + + // Enhanced Navigation + categoryOrder: [ + "Classes", + "Interfaces", + "Enumerations", + "Type Aliases", + "Variables", + "Functions", + ], + + // Documentation Features + includeVersion: true, + sort: ["source-order"], + gitRevision: "main", + readme: "none", + + // Code Examples + preserveWatchOutput: true, + disableSources: false, + + // Validation Settings + validation: { + notExported: false, + invalidLink: false, + notDocumented: false, + }, + + // File exclusions + exclude: [ + "**/_media/**", + "**/node_modules/@types/node/events.d.ts", + "**/dist/**", + ], + + // Build settings + watch: false, + treatWarningsAsErrors: false, + treatValidationWarningsAsErrors: false, }, ], - // Search functionality require.resolve("docusaurus-lunr-search"), - // Separate API docs plugin instance [ "@docusaurus/plugin-content-docs", { @@ -60,6 +106,7 @@ const config = { sidebarPath: "./sidebars.js", editUrl: "https://github.com/ai16z/eliza/tree/main/docs/", routeBasePath: "docs", + exclude: ["**/_media/**"], // Add exclude pattern here too }, theme: { customCss: "./src/css/custom.css", @@ -70,13 +117,12 @@ const config = { themeConfig: /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ ({ - // Enable dark mode by default + // Rest of themeConfig remains the same colorMode: { - defaultMode: 'dark', + defaultMode: "dark", disableSwitch: false, respectPrefersColorScheme: true, }, - // Add sidebar configuration docs: { sidebar: { hideable: true, @@ -107,50 +153,50 @@ const config = { href: "https://github.com/ai16z/eliza", label: "GitHub", position: "right", - } - ] + }, + ], }, footer: { - style: 'dark', + style: "dark", links: [ { - title: 'Docs', + title: "Docs", items: [ - { - label: 'General', - href: './' + { + label: "General", + href: "./", }, - ] + ], }, { - title: 'Community', + title: "Community", items: [ { - label: 'Discord', - href: 'https://discord.gg/NQHKW7US' + label: "Discord", + href: "https://discord.gg/NQHKW7US", }, { - label: 'Twitter', - href: 'https://twitter.com/pmairca' - } - ] + label: "Twitter", + href: "https://twitter.com/pmairca", + }, + ], }, { - title: 'More', + title: "More", items: [ { - label: 'GitHub', - href: 'https://github.com/ai16z/eliza' - } - ] - } + label: "GitHub", + href: "https://github.com/ai16z/eliza", + }, + ], + }, ], - copyright: `Copyright © ${new Date().getFullYear()} ai16z.ai` + copyright: `Copyright © ${new Date().getFullYear()} ai16z.ai`, }, prism: { theme: prismThemes.github, - darkTheme: prismThemes.dracula - } + darkTheme: prismThemes.dracula, + }, }), }; export default config; diff --git a/docs/package-lock.json b/docs/package-lock.json deleted file mode 100644 index 81600083f2e..00000000000 --- a/docs/package-lock.json +++ /dev/null @@ -1,19610 +0,0 @@ -{ - "name": "eliza-docs", - "version": "0.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "eliza-docs", - "version": "0.0.0", - "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/plugin-ideal-image": "^3.5.2", - "@docusaurus/preset-classic": "3.5.2", - "@docusaurus/theme-mermaid": "^3.5.2", - "@mdx-js/react": "3.0.1", - "clsx": "2.1.0", - "docusaurus-lunr-search": "^3.5.0", - "prism-react-renderer": "2.3.1", - "react": "18.2.0", - "react-dom": "18.2.0", - "react-router-dom": "6.22.1" - }, - "devDependencies": { - "@docusaurus/module-type-aliases": "3.5.2", - "@docusaurus/types": "3.5.2", - "docusaurus-plugin-typedoc": "^1.0.5", - "typedoc": "^0.26.11", - "typedoc-plugin-markdown": "4.2.9" - }, - "engines": { - "node": "23.1.0" - } - }, - "node_modules/@algolia/autocomplete-core": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz", - "integrity": "sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==", - "license": "MIT", - "dependencies": { - "@algolia/autocomplete-plugin-algolia-insights": "1.9.3", - "@algolia/autocomplete-shared": "1.9.3" - } - }, - "node_modules/@algolia/autocomplete-plugin-algolia-insights": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz", - "integrity": "sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==", - "license": "MIT", - "dependencies": { - "@algolia/autocomplete-shared": "1.9.3" - }, - "peerDependencies": { - "search-insights": ">= 1 < 3" - } - }, - "node_modules/@algolia/autocomplete-preset-algolia": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.6.tgz", - "integrity": "sha512-Cvg5JENdSCMuClwhJ1ON1/jSuojaYMiUW2KePm18IkdCzPJj/NXojaOxw58RFtQFpJgfVW8h2E8mEoDtLlMdeA==", - "license": "MIT", - "dependencies": { - "@algolia/autocomplete-shared": "1.17.6" - }, - "peerDependencies": { - "@algolia/client-search": ">= 4.9.1 < 6", - "algoliasearch": ">= 4.9.1 < 6" - } - }, - "node_modules/@algolia/autocomplete-preset-algolia/node_modules/@algolia/autocomplete-shared": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.6.tgz", - "integrity": "sha512-aq/3V9E00Tw2GC/PqgyPGXtqJUlVc17v4cn1EUhSc+O/4zd04Uwb3UmPm8KDaYQQOrkt1lwvCj2vG2wRE5IKhw==", - "license": "MIT", - "peerDependencies": { - "@algolia/client-search": ">= 4.9.1 < 6", - "algoliasearch": ">= 4.9.1 < 6" - } - }, - "node_modules/@algolia/autocomplete-shared": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz", - "integrity": "sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==", - "license": "MIT", - "peerDependencies": { - "@algolia/client-search": ">= 4.9.1 < 6", - "algoliasearch": ">= 4.9.1 < 6" - } - }, - "node_modules/@algolia/cache-browser-local-storage": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.24.0.tgz", - "integrity": "sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww==", - "license": "MIT", - "dependencies": { - "@algolia/cache-common": "4.24.0" - } - }, - "node_modules/@algolia/cache-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.24.0.tgz", - "integrity": "sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g==", - "license": "MIT" - }, - "node_modules/@algolia/cache-in-memory": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.24.0.tgz", - "integrity": "sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w==", - "license": "MIT", - "dependencies": { - "@algolia/cache-common": "4.24.0" - } - }, - "node_modules/@algolia/client-abtesting": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.12.0.tgz", - "integrity": "sha512-hx4eVydkm3yrFCFxmcBtSzI/ykt0cZ6sDWch+v3JTgKpD2WtosMJU3Upv1AjQ4B6COSHCOWEX3vfFxW6OoH6aA==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.12.0", - "@algolia/requester-browser-xhr": "5.12.0", - "@algolia/requester-fetch": "5.12.0", - "@algolia/requester-node-http": "5.12.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-account": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.24.0.tgz", - "integrity": "sha512-adcvyJ3KjPZFDybxlqnf+5KgxJtBjwTPTeyG2aOyoJvx0Y8dUQAEOEVOJ/GBxX0WWNbmaSrhDURMhc+QeevDsA==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/client-search": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-account/node_modules/@algolia/client-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", - "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-account/node_modules/@algolia/client-search": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", - "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-analytics": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.24.0.tgz", - "integrity": "sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/client-search": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-analytics/node_modules/@algolia/client-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", - "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-analytics/node_modules/@algolia/client-search": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", - "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-common": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.12.0.tgz", - "integrity": "sha512-od3WmO8qxyfNhKc+K3D17tvun3IMs/xMNmxCG9MiElAkYVbPPTRUYMkRneCpmJyQI0hNx2/EA4kZgzVfQjO86Q==", - "license": "MIT", - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-insights": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.12.0.tgz", - "integrity": "sha512-8alajmsYUd+7vfX5lpRNdxqv3Xx9clIHLUItyQK0Z6gwGMbVEFe6YYhgDtwslMAP0y6b0WeJEIZJMLgT7VYpRw==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.12.0", - "@algolia/requester-browser-xhr": "5.12.0", - "@algolia/requester-fetch": "5.12.0", - "@algolia/requester-node-http": "5.12.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-personalization": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.24.0.tgz", - "integrity": "sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-personalization/node_modules/@algolia/client-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", - "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-query-suggestions": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.12.0.tgz", - "integrity": "sha512-Q5CszzGWfxbIDs9DJ/QJsL7bP6h+lJMg27KxieEnI9KGCu0Jt5iFA3GkREkgRZxRdzlHbZKkrIzhtHVbSHw/rg==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.12.0", - "@algolia/requester-browser-xhr": "5.12.0", - "@algolia/requester-fetch": "5.12.0", - "@algolia/requester-node-http": "5.12.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-search": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.12.0.tgz", - "integrity": "sha512-R3qzEytgVLHOGNri+bpta6NtTt7YtkvUe/QBcAmMDjW4Jk1P0eBYIPfvnzIPbINRsLxIq9fZs9uAYBgsrts4Zg==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.12.0", - "@algolia/requester-browser-xhr": "5.12.0", - "@algolia/requester-fetch": "5.12.0", - "@algolia/requester-node-http": "5.12.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/events": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz", - "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==", - "license": "MIT" - }, - "node_modules/@algolia/ingestion": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.12.0.tgz", - "integrity": "sha512-zpHo6qhR22tL8FsdSI4DvEraPDi/019HmMrCFB/TUX98yzh5ooAU7sNW0qPL1I7+S++VbBmNzJOEU9VI8tEC8A==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.12.0", - "@algolia/requester-browser-xhr": "5.12.0", - "@algolia/requester-fetch": "5.12.0", - "@algolia/requester-node-http": "5.12.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/logger-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.24.0.tgz", - "integrity": "sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA==", - "license": "MIT" - }, - "node_modules/@algolia/logger-console": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.24.0.tgz", - "integrity": "sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg==", - "license": "MIT", - "dependencies": { - "@algolia/logger-common": "4.24.0" - } - }, - "node_modules/@algolia/monitoring": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.12.0.tgz", - "integrity": "sha512-i2AJZED/zf4uhxezAJUhMKoL5QoepCBp2ynOYol0N76+TSoohaMADdPnWCqOULF4RzOwrG8wWynAwBlXsAI1RQ==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.12.0", - "@algolia/requester-browser-xhr": "5.12.0", - "@algolia/requester-fetch": "5.12.0", - "@algolia/requester-node-http": "5.12.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/recommend": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-4.24.0.tgz", - "integrity": "sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw==", - "license": "MIT", - "dependencies": { - "@algolia/cache-browser-local-storage": "4.24.0", - "@algolia/cache-common": "4.24.0", - "@algolia/cache-in-memory": "4.24.0", - "@algolia/client-common": "4.24.0", - "@algolia/client-search": "4.24.0", - "@algolia/logger-common": "4.24.0", - "@algolia/logger-console": "4.24.0", - "@algolia/requester-browser-xhr": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/requester-node-http": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/recommend/node_modules/@algolia/client-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", - "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/recommend/node_modules/@algolia/client-search": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", - "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/recommend/node_modules/@algolia/requester-browser-xhr": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz", - "integrity": "sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0" - } - }, - "node_modules/@algolia/recommend/node_modules/@algolia/requester-node-http": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz", - "integrity": "sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0" - } - }, - "node_modules/@algolia/requester-browser-xhr": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.12.0.tgz", - "integrity": "sha512-KxwleraFuVoEGCoeW6Y1RAEbgBMS7SavqeyzWdtkJc6mXeCOJXn1iZitb8Tyn2FcpMNUKlSm0adrUTt7G47+Ow==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.12.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/requester-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.24.0.tgz", - "integrity": "sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==", - "license": "MIT" - }, - "node_modules/@algolia/requester-fetch": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.12.0.tgz", - "integrity": "sha512-FuDZXUGU1pAg2HCnrt8+q1VGHKChV/LhvjvZlLOT7e56GJie6p+EuLu4/hMKPOVuQQ8XXtrTHKIU3Lw+7O5/bQ==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.12.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/requester-node-http": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.12.0.tgz", - "integrity": "sha512-ncDDY7CxZhMs6LIoPl+vHFQceIBhYPY5EfuGF1V7beO0U38xfsCYEyutEFB2kRzf4D9Gqppn3iWX71sNtrKcuw==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.12.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/transporter": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.24.0.tgz", - "integrity": "sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA==", - "license": "MIT", - "dependencies": { - "@algolia/cache-common": "4.24.0", - "@algolia/logger-common": "4.24.0", - "@algolia/requester-common": "4.24.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", - "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", - "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.0", - "@babel/generator": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.0", - "@babel/parser": "^7.26.0", - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.26.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", - "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.26.2", - "@babel/types": "^7.26.0", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz", - "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", - "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", - "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", - "license": "MIT", - "dependencies": { - "@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/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/traverse": "^7.25.9", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz", - "integrity": "sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "regexpu-core": "^6.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", - "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", - "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", - "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", - "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", - "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-wrap-function": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", - "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz", - "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", - "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", - "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", - "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", - "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.26.0" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", - "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", - "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", - "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", - "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", - "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", - "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", - "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", - "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", - "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", - "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-remap-async-to-generator": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", - "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-remap-async-to-generator": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", - "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", - "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", - "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", - "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", - "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", - "license": "MIT", - "dependencies": { - "@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/traverse": "^7.25.9", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", - "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/template": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", - "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", - "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", - "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", - "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz", - "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==", - "license": "MIT", - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", - "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", - "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", - "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", - "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", - "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", - "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", - "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", - "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz", - "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-simple-access": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", - "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", - "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", - "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", - "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", - "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", - "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", - "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", - "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", - "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", - "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", - "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", - "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.9.tgz", - "integrity": "sha512-Ncw2JFsJVuvfRsa2lSHiC55kETQVLSnsYGQ1JDDwkUeWGTL/8Tom8aLTnlqgoeuopWrbbGndrc9AlLYrIosrow==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", - "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", - "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", - "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", - "license": "MIT", - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", - "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", - "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regexp-modifiers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", - "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", - "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz", - "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", - "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", - "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", - "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", - "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", - "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.9.tgz", - "integrity": "sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-syntax-typescript": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", - "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", - "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", - "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", - "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", - "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-import-assertions": "^7.26.0", - "@babel/plugin-syntax-import-attributes": "^7.26.0", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.25.9", - "@babel/plugin-transform-async-generator-functions": "^7.25.9", - "@babel/plugin-transform-async-to-generator": "^7.25.9", - "@babel/plugin-transform-block-scoped-functions": "^7.25.9", - "@babel/plugin-transform-block-scoping": "^7.25.9", - "@babel/plugin-transform-class-properties": "^7.25.9", - "@babel/plugin-transform-class-static-block": "^7.26.0", - "@babel/plugin-transform-classes": "^7.25.9", - "@babel/plugin-transform-computed-properties": "^7.25.9", - "@babel/plugin-transform-destructuring": "^7.25.9", - "@babel/plugin-transform-dotall-regex": "^7.25.9", - "@babel/plugin-transform-duplicate-keys": "^7.25.9", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", - "@babel/plugin-transform-dynamic-import": "^7.25.9", - "@babel/plugin-transform-exponentiation-operator": "^7.25.9", - "@babel/plugin-transform-export-namespace-from": "^7.25.9", - "@babel/plugin-transform-for-of": "^7.25.9", - "@babel/plugin-transform-function-name": "^7.25.9", - "@babel/plugin-transform-json-strings": "^7.25.9", - "@babel/plugin-transform-literals": "^7.25.9", - "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", - "@babel/plugin-transform-member-expression-literals": "^7.25.9", - "@babel/plugin-transform-modules-amd": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.25.9", - "@babel/plugin-transform-modules-systemjs": "^7.25.9", - "@babel/plugin-transform-modules-umd": "^7.25.9", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", - "@babel/plugin-transform-new-target": "^7.25.9", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", - "@babel/plugin-transform-numeric-separator": "^7.25.9", - "@babel/plugin-transform-object-rest-spread": "^7.25.9", - "@babel/plugin-transform-object-super": "^7.25.9", - "@babel/plugin-transform-optional-catch-binding": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9", - "@babel/plugin-transform-private-methods": "^7.25.9", - "@babel/plugin-transform-private-property-in-object": "^7.25.9", - "@babel/plugin-transform-property-literals": "^7.25.9", - "@babel/plugin-transform-regenerator": "^7.25.9", - "@babel/plugin-transform-regexp-modifiers": "^7.26.0", - "@babel/plugin-transform-reserved-words": "^7.25.9", - "@babel/plugin-transform-shorthand-properties": "^7.25.9", - "@babel/plugin-transform-spread": "^7.25.9", - "@babel/plugin-transform-sticky-regex": "^7.25.9", - "@babel/plugin-transform-template-literals": "^7.25.9", - "@babel/plugin-transform-typeof-symbol": "^7.25.9", - "@babel/plugin-transform-unicode-escapes": "^7.25.9", - "@babel/plugin-transform-unicode-property-regex": "^7.25.9", - "@babel/plugin-transform-unicode-regex": "^7.25.9", - "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.38.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.25.9.tgz", - "integrity": "sha512-D3to0uSPiWE7rBrdIICCd0tJSIGpLaaGptna2+w7Pft5xMqLpA1sz99DK5TZ1TjGbdQ/VI1eCSZ06dv3lT4JOw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-transform-react-display-name": "^7.25.9", - "@babel/plugin-transform-react-jsx": "^7.25.9", - "@babel/plugin-transform-react-jsx-development": "^7.25.9", - "@babel/plugin-transform-react-pure-annotations": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", - "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.25.9", - "@babel/plugin-transform-typescript": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", - "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.26.0.tgz", - "integrity": "sha512-YXHu5lN8kJCb1LOb9PgV6pvak43X2h4HvRApcN5SdWeaItQOzfn1hgP6jasD6KWQyJDBxrVmA9o9OivlnNJK/w==", - "license": "MIT", - "dependencies": { - "core-js-pure": "^3.30.2", - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", - "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", - "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", - "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@braintree/sanitize-url": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.4.tgz", - "integrity": "sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==", - "license": "MIT" - }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@docsearch/css": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.6.3.tgz", - "integrity": "sha512-3uvbg8E7rhqE1C4oBAK3tGlS2qfhi9zpfZgH/yjDPF73vd9B41urVIKujF4rczcF4E3qs34SedhehiDJ4UdNBA==", - "license": "MIT" - }, - "node_modules/@docsearch/react": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.6.3.tgz", - "integrity": "sha512-2munr4uBuZq1PG+Ge+F+ldIdxb3Wi8OmEIv2tQQb4RvEvvph+xtQkxwHzVIEnt5s+HecwucuXwB+3JhcZboFLg==", - "license": "MIT", - "dependencies": { - "@algolia/autocomplete-core": "1.9.3", - "@algolia/autocomplete-preset-algolia": "1.17.6", - "@docsearch/css": "3.6.3", - "algoliasearch": "^5.11.0" - }, - "peerDependencies": { - "@types/react": ">= 16.8.0 < 19.0.0", - "react": ">= 16.8.0 < 19.0.0", - "react-dom": ">= 16.8.0 < 19.0.0", - "search-insights": ">= 1 < 3" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "search-insights": { - "optional": true - } - } - }, - "node_modules/@docsearch/react/node_modules/@algolia/client-analytics": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.12.0.tgz", - "integrity": "sha512-EpTsSv6IW8maCfXCDIptgT7+mQJj7pImEkcNUnxR8yUKAHzTogTXv9yGm2WXOZFVuwstd2i0sImhQ1Vz8RH/hA==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.12.0", - "@algolia/requester-browser-xhr": "5.12.0", - "@algolia/requester-fetch": "5.12.0", - "@algolia/requester-node-http": "5.12.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@docsearch/react/node_modules/@algolia/client-personalization": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.12.0.tgz", - "integrity": "sha512-bUV9HtfkTBgpoVhxFrMkmVPG03ZN1Rtn51kiaEtukucdk3ggjR9Qu1YUfRSU2lFgxr9qJc8lTxwfvhjCeJRcqw==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.12.0", - "@algolia/requester-browser-xhr": "5.12.0", - "@algolia/requester-fetch": "5.12.0", - "@algolia/requester-node-http": "5.12.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@docsearch/react/node_modules/@algolia/recommend": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.12.0.tgz", - "integrity": "sha512-0jmZyKvYnB/Bj5c7WKsKedOUjnr0UtXm0LVFUdQrxXfqOqvWv9n6Vpr65UjdYG4Q49kRQxhlwtal9WJYrYymXg==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.12.0", - "@algolia/requester-browser-xhr": "5.12.0", - "@algolia/requester-fetch": "5.12.0", - "@algolia/requester-node-http": "5.12.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@docsearch/react/node_modules/algoliasearch": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.12.0.tgz", - "integrity": "sha512-psGBRYdGgik8I6m28iAB8xpubvjEt7UQU+w5MAJUA2324WHiGoHap5BPkkjB14rMaXeRts6pmOsrVIglGyOVwg==", - "license": "MIT", - "dependencies": { - "@algolia/client-abtesting": "5.12.0", - "@algolia/client-analytics": "5.12.0", - "@algolia/client-common": "5.12.0", - "@algolia/client-insights": "5.12.0", - "@algolia/client-personalization": "5.12.0", - "@algolia/client-query-suggestions": "5.12.0", - "@algolia/client-search": "5.12.0", - "@algolia/ingestion": "1.12.0", - "@algolia/monitoring": "1.12.0", - "@algolia/recommend": "5.12.0", - "@algolia/requester-browser-xhr": "5.12.0", - "@algolia/requester-fetch": "5.12.0", - "@algolia/requester-node-http": "5.12.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@docusaurus/babel": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.6.0.tgz", - "integrity": "sha512-7CsoQFiadoq7AHSUIQNkI/lGfg9AQ2ZBzsf9BqfZGXkHwWDy6twuohEaG0PgQv1npSRSAB2dioVxhRSErnqKNA==", - "dependencies": { - "@babel/core": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.25.9", - "@babel/preset-env": "^7.25.9", - "@babel/preset-react": "^7.25.9", - "@babel/preset-typescript": "^7.25.9", - "@babel/runtime": "^7.25.9", - "@babel/runtime-corejs3": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@docusaurus/logger": "3.6.0", - "@docusaurus/utils": "3.6.0", - "babel-plugin-dynamic-import-node": "^2.3.3", - "fs-extra": "^11.1.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/babel/node_modules/@docusaurus/logger": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.6.0.tgz", - "integrity": "sha512-BcQhoXilXW0607cH/kO6P5Gt5KxCGfoJ+QDKNf3yO2S09/RsITlW+0QljXPbI3DklTrHrhRDmgGk1yX4nUhWTA==", - "dependencies": { - "chalk": "^4.1.2", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/babel/node_modules/@docusaurus/utils": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.6.0.tgz", - "integrity": "sha512-VKczAutI4mptiAw/WcYEu5WeVhQ6Q1zdIUl64SGw9K++9lziH+Kt10Ee8l2dMpRkiUk6zzK20kMNlX2WCUwXYQ==", - "dependencies": { - "@docusaurus/logger": "3.6.0", - "@docusaurus/utils-common": "3.6.0", - "@svgr/webpack": "^8.1.0", - "escape-string-regexp": "^4.0.0", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "github-slugger": "^1.5.0", - "globby": "^11.1.0", - "gray-matter": "^4.0.3", - "jiti": "^1.20.0", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "micromatch": "^4.0.5", - "prompts": "^2.4.2", - "resolve-pathname": "^3.0.0", - "shelljs": "^0.8.5", - "tslib": "^2.6.0", - "url-loader": "^4.1.1", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/types": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/types": { - "optional": true - } - } - }, - "node_modules/@docusaurus/babel/node_modules/@docusaurus/utils-common": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.6.0.tgz", - "integrity": "sha512-diUDNfbw33GaZMmKwdTckT2IBfVouXLXRD+zphH9ywswuaEIKqixvuf5g41H7MBBrlMsxhna3uTMoB4B/OPDcA==", - "dependencies": { - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/types": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/types": { - "optional": true - } - } - }, - "node_modules/@docusaurus/bundler": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.6.0.tgz", - "integrity": "sha512-o5T9HXkPKH0OQAifTxEXaebcO8kaz3tU1+wlIShZ2DKJHlsyWX3N4rToWBHroWnV/ZCT2XN3kLRzXASqrnb9Tw==", - "dependencies": { - "@babel/core": "^7.25.9", - "@docusaurus/babel": "3.6.0", - "@docusaurus/cssnano-preset": "3.6.0", - "@docusaurus/logger": "3.6.0", - "@docusaurus/types": "3.6.0", - "@docusaurus/utils": "3.6.0", - "autoprefixer": "^10.4.14", - "babel-loader": "^9.2.1", - "clean-css": "^5.3.2", - "copy-webpack-plugin": "^11.0.0", - "css-loader": "^6.8.1", - "css-minimizer-webpack-plugin": "^5.0.1", - "cssnano": "^6.1.2", - "file-loader": "^6.2.0", - "html-minifier-terser": "^7.2.0", - "mini-css-extract-plugin": "^2.9.1", - "null-loader": "^4.0.1", - "postcss": "^8.4.26", - "postcss-loader": "^7.3.3", - "react-dev-utils": "^12.0.1", - "terser-webpack-plugin": "^5.3.9", - "tslib": "^2.6.0", - "url-loader": "^4.1.1", - "webpack": "^5.95.0", - "webpackbar": "^6.0.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/faster": "3.5.2" - }, - "peerDependenciesMeta": { - "@docusaurus/faster": { - "optional": true - } - } - }, - "node_modules/@docusaurus/bundler/node_modules/@docusaurus/cssnano-preset": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.6.0.tgz", - "integrity": "sha512-h3jlOXqqzNSoU+C4CZLNpFtD+v2xr1UBf4idZpwMgqid9r6lb5GS7tWKnQnauio6OipacbHbDXEX3JyT1PlDkg==", - "dependencies": { - "cssnano-preset-advanced": "^6.1.2", - "postcss": "^8.4.38", - "postcss-sort-media-queries": "^5.2.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/bundler/node_modules/@docusaurus/logger": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.6.0.tgz", - "integrity": "sha512-BcQhoXilXW0607cH/kO6P5Gt5KxCGfoJ+QDKNf3yO2S09/RsITlW+0QljXPbI3DklTrHrhRDmgGk1yX4nUhWTA==", - "dependencies": { - "chalk": "^4.1.2", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/bundler/node_modules/@docusaurus/types": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.6.0.tgz", - "integrity": "sha512-jADLgoZGWhAzThr+mRiyuFD4OUzt6jHnb7NRArRKorgxckqUBaPyFOau9hhbcSTHtU6ceyeWjN7FDt7uG2Hplw==", - "dependencies": { - "@mdx-js/mdx": "^3.0.0", - "@types/history": "^4.7.11", - "@types/react": "*", - "commander": "^5.1.0", - "joi": "^17.9.2", - "react-helmet-async": "^1.3.0", - "utility-types": "^3.10.0", - "webpack": "^5.95.0", - "webpack-merge": "^5.9.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/bundler/node_modules/@docusaurus/utils": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.6.0.tgz", - "integrity": "sha512-VKczAutI4mptiAw/WcYEu5WeVhQ6Q1zdIUl64SGw9K++9lziH+Kt10Ee8l2dMpRkiUk6zzK20kMNlX2WCUwXYQ==", - "dependencies": { - "@docusaurus/logger": "3.6.0", - "@docusaurus/utils-common": "3.6.0", - "@svgr/webpack": "^8.1.0", - "escape-string-regexp": "^4.0.0", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "github-slugger": "^1.5.0", - "globby": "^11.1.0", - "gray-matter": "^4.0.3", - "jiti": "^1.20.0", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "micromatch": "^4.0.5", - "prompts": "^2.4.2", - "resolve-pathname": "^3.0.0", - "shelljs": "^0.8.5", - "tslib": "^2.6.0", - "url-loader": "^4.1.1", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/types": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/types": { - "optional": true - } - } - }, - "node_modules/@docusaurus/bundler/node_modules/@docusaurus/utils-common": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.6.0.tgz", - "integrity": "sha512-diUDNfbw33GaZMmKwdTckT2IBfVouXLXRD+zphH9ywswuaEIKqixvuf5g41H7MBBrlMsxhna3uTMoB4B/OPDcA==", - "dependencies": { - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/types": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/types": { - "optional": true - } - } - }, - "node_modules/@docusaurus/bundler/node_modules/consola": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", - "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", - "engines": { - "node": "^14.18.0 || >=16.10.0" - } - }, - "node_modules/@docusaurus/bundler/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/@docusaurus/bundler/node_modules/markdown-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", - "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", - "dependencies": { - "repeat-string": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/@docusaurus/bundler/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@docusaurus/bundler/node_modules/webpackbar": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-6.0.1.tgz", - "integrity": "sha512-TnErZpmuKdwWBdMoexjio3KKX6ZtoKHRVvLIU0A47R0VVBDtx3ZyOJDktgYixhoJokZTYTt1Z37OkO9pnGJa9Q==", - "dependencies": { - "ansi-escapes": "^4.3.2", - "chalk": "^4.1.2", - "consola": "^3.2.3", - "figures": "^3.2.0", - "markdown-table": "^2.0.0", - "pretty-time": "^1.1.0", - "std-env": "^3.7.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=14.21.3" - }, - "peerDependencies": { - "webpack": "3 || 4 || 5" - } - }, - "node_modules/@docusaurus/bundler/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@docusaurus/core": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.5.2.tgz", - "integrity": "sha512-4Z1WkhCSkX4KO0Fw5m/Vuc7Q3NxBG53NE5u59Rs96fWkMPZVSrzEPP16/Nk6cWb/shK7xXPndTmalJtw7twL/w==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.23.3", - "@babel/generator": "^7.23.3", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.22.9", - "@babel/preset-env": "^7.22.9", - "@babel/preset-react": "^7.22.5", - "@babel/preset-typescript": "^7.22.5", - "@babel/runtime": "^7.22.6", - "@babel/runtime-corejs3": "^7.22.6", - "@babel/traverse": "^7.22.8", - "@docusaurus/cssnano-preset": "3.5.2", - "@docusaurus/logger": "3.5.2", - "@docusaurus/mdx-loader": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-common": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", - "autoprefixer": "^10.4.14", - "babel-loader": "^9.1.3", - "babel-plugin-dynamic-import-node": "^2.3.3", - "boxen": "^6.2.1", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "clean-css": "^5.3.2", - "cli-table3": "^0.6.3", - "combine-promises": "^1.1.0", - "commander": "^5.1.0", - "copy-webpack-plugin": "^11.0.0", - "core-js": "^3.31.1", - "css-loader": "^6.8.1", - "css-minimizer-webpack-plugin": "^5.0.1", - "cssnano": "^6.1.2", - "del": "^6.1.1", - "detect-port": "^1.5.1", - "escape-html": "^1.0.3", - "eta": "^2.2.0", - "eval": "^0.1.8", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "html-minifier-terser": "^7.2.0", - "html-tags": "^3.3.1", - "html-webpack-plugin": "^5.5.3", - "leven": "^3.1.0", - "lodash": "^4.17.21", - "mini-css-extract-plugin": "^2.7.6", - "p-map": "^4.0.0", - "postcss": "^8.4.26", - "postcss-loader": "^7.3.3", - "prompts": "^2.4.2", - "react-dev-utils": "^12.0.1", - "react-helmet-async": "^1.3.0", - "react-loadable": "npm:@docusaurus/react-loadable@6.0.0", - "react-loadable-ssr-addon-v5-slorber": "^1.0.1", - "react-router": "^5.3.4", - "react-router-config": "^5.1.1", - "react-router-dom": "^5.3.4", - "rtl-detect": "^1.0.4", - "semver": "^7.5.4", - "serve-handler": "^6.1.5", - "shelljs": "^0.8.5", - "terser-webpack-plugin": "^5.3.9", - "tslib": "^2.6.0", - "update-notifier": "^6.0.2", - "url-loader": "^4.1.1", - "webpack": "^5.88.1", - "webpack-bundle-analyzer": "^4.9.0", - "webpack-dev-server": "^4.15.1", - "webpack-merge": "^5.9.0", - "webpackbar": "^5.0.2" - }, - "bin": { - "docusaurus": "bin/docusaurus.mjs" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@mdx-js/react": "^3.0.0", - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/core/node_modules/react-router-dom": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", - "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.3.4", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "peerDependencies": { - "react": ">=15" - } - }, - "node_modules/@docusaurus/cssnano-preset": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.5.2.tgz", - "integrity": "sha512-D3KiQXOMA8+O0tqORBrTOEQyQxNIfPm9jEaJoALjjSjc2M/ZAWcUfPQEnwr2JB2TadHw2gqWgpZckQmrVWkytA==", - "license": "MIT", - "dependencies": { - "cssnano-preset-advanced": "^6.1.2", - "postcss": "^8.4.38", - "postcss-sort-media-queries": "^5.2.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/logger": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.5.2.tgz", - "integrity": "sha512-LHC540SGkeLfyT3RHK3gAMK6aS5TRqOD4R72BEU/DE2M/TY8WwEUAMY576UUc/oNJXv8pGhBmQB6N9p3pt8LQw==", - "license": "MIT", - "dependencies": { - "chalk": "^4.1.2", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/lqip-loader": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docusaurus/lqip-loader/-/lqip-loader-3.6.0.tgz", - "integrity": "sha512-jEQjnKAjhgyZ/aQf0Tbl3eDpp1j0C/GojE/cv2Bad89o+luV1OAOs9UHDRyKwWQfN+se0D9kFxkfsfwYxMpI8A==", - "dependencies": { - "@docusaurus/logger": "3.6.0", - "file-loader": "^6.2.0", - "lodash": "^4.17.21", - "sharp": "^0.32.3", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/lqip-loader/node_modules/@docusaurus/logger": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.6.0.tgz", - "integrity": "sha512-BcQhoXilXW0607cH/kO6P5Gt5KxCGfoJ+QDKNf3yO2S09/RsITlW+0QljXPbI3DklTrHrhRDmgGk1yX4nUhWTA==", - "dependencies": { - "chalk": "^4.1.2", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/mdx-loader": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.5.2.tgz", - "integrity": "sha512-ku3xO9vZdwpiMIVd8BzWV0DCqGEbCP5zs1iHfKX50vw6jX8vQo0ylYo1YJMZyz6e+JFJ17HYHT5FzVidz2IflA==", - "license": "MIT", - "dependencies": { - "@docusaurus/logger": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", - "@mdx-js/mdx": "^3.0.0", - "@slorber/remark-comment": "^1.0.0", - "escape-html": "^1.0.3", - "estree-util-value-to-estree": "^3.0.1", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "image-size": "^1.0.2", - "mdast-util-mdx": "^3.0.0", - "mdast-util-to-string": "^4.0.0", - "rehype-raw": "^7.0.0", - "remark-directive": "^3.0.0", - "remark-emoji": "^4.0.0", - "remark-frontmatter": "^5.0.0", - "remark-gfm": "^4.0.0", - "stringify-object": "^3.3.0", - "tslib": "^2.6.0", - "unified": "^11.0.3", - "unist-util-visit": "^5.0.0", - "url-loader": "^4.1.1", - "vfile": "^6.0.1", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/module-type-aliases": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.5.2.tgz", - "integrity": "sha512-Z+Xu3+2rvKef/YKTMxZHsEXp1y92ac0ngjDiExRdqGTmEKtCUpkbNYH8v5eXo5Ls+dnW88n6WTa+Q54kLOkwPg==", - "license": "MIT", - "dependencies": { - "@docusaurus/types": "3.5.2", - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router-config": "*", - "@types/react-router-dom": "*", - "react-helmet-async": "*", - "react-loadable": "npm:@docusaurus/react-loadable@6.0.0" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/@docusaurus/plugin-content-blog": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.5.2.tgz", - "integrity": "sha512-R7ghWnMvjSf+aeNDH0K4fjyQnt5L0KzUEnUhmf1e3jZrv3wogeytZNN6n7X8yHcMsuZHPOrctQhXWnmxu+IRRg==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/logger": "3.5.2", - "@docusaurus/mdx-loader": "3.5.2", - "@docusaurus/theme-common": "3.5.2", - "@docusaurus/types": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-common": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", - "cheerio": "1.0.0-rc.12", - "feed": "^4.2.2", - "fs-extra": "^11.1.1", - "lodash": "^4.17.21", - "reading-time": "^1.5.0", - "srcset": "^4.0.0", - "tslib": "^2.6.0", - "unist-util-visit": "^5.0.0", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/plugin-content-docs": "*", - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-content-docs": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.5.2.tgz", - "integrity": "sha512-Bt+OXn/CPtVqM3Di44vHjE7rPCEsRCB/DMo2qoOuozB9f7+lsdrHvD0QCHdBs0uhz6deYJDppAr2VgqybKPlVQ==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/logger": "3.5.2", - "@docusaurus/mdx-loader": "3.5.2", - "@docusaurus/module-type-aliases": "3.5.2", - "@docusaurus/theme-common": "3.5.2", - "@docusaurus/types": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-common": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", - "@types/react-router-config": "^5.0.7", - "combine-promises": "^1.1.0", - "fs-extra": "^11.1.1", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "tslib": "^2.6.0", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-content-pages": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.5.2.tgz", - "integrity": "sha512-WzhHjNpoQAUz/ueO10cnundRz+VUtkjFhhaQ9jApyv1a46FPURO4cef89pyNIOMny1fjDz/NUN2z6Yi+5WUrCw==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/mdx-loader": "3.5.2", - "@docusaurus/types": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", - "fs-extra": "^11.1.1", - "tslib": "^2.6.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-debug": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.5.2.tgz", - "integrity": "sha512-kBK6GlN0itCkrmHuCS6aX1wmoWc5wpd5KJlqQ1FyrF0cLDnvsYSnh7+ftdwzt7G6lGBho8lrVwkkL9/iQvaSOA==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/types": "3.5.2", - "@docusaurus/utils": "3.5.2", - "fs-extra": "^11.1.1", - "react-json-view-lite": "^1.2.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-analytics": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.5.2.tgz", - "integrity": "sha512-rjEkJH/tJ8OXRE9bwhV2mb/WP93V441rD6XnM6MIluu7rk8qg38iSxS43ga2V2Q/2ib53PcqbDEJDG/yWQRJhQ==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/types": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-gtag": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.5.2.tgz", - "integrity": "sha512-lm8XL3xLkTPHFKKjLjEEAHUrW0SZBSHBE1I+i/tmYMBsjCcUB5UJ52geS5PSiOCFVR74tbPGcPHEV/gaaxFeSA==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/types": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", - "@types/gtag.js": "^0.0.12", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-tag-manager": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.5.2.tgz", - "integrity": "sha512-QkpX68PMOMu10Mvgvr5CfZAzZQFx8WLlOiUQ/Qmmcl6mjGK6H21WLT5x7xDmcpCoKA/3CegsqIqBR+nA137lQg==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/types": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-ideal-image": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-ideal-image/-/plugin-ideal-image-3.6.0.tgz", - "integrity": "sha512-6BaZU7mX+RH+lRFPm5nj3GGfAsjsJ1JHjp0Xjb4ilfte7L2IZkTl6MPpvAzyPC0qIUxfXRcJs4qd/HUE0xcTlw==", - "dependencies": { - "@docusaurus/core": "3.6.0", - "@docusaurus/lqip-loader": "3.6.0", - "@docusaurus/responsive-loader": "^1.7.0", - "@docusaurus/theme-translations": "3.6.0", - "@docusaurus/types": "3.6.0", - "@docusaurus/utils-validation": "3.6.0", - "@slorber/react-ideal-image": "^0.0.12", - "react-waypoint": "^10.3.0", - "sharp": "^0.32.3", - "tslib": "^2.6.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "jimp": "*", - "react": "^18.0.0", - "react-dom": "^18.0.0" - }, - "peerDependenciesMeta": { - "jimp": { - "optional": true - } - } - }, - "node_modules/@docusaurus/plugin-ideal-image/node_modules/@docusaurus/core": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.6.0.tgz", - "integrity": "sha512-lvRgMoKJJSRDt9+HhAqFcICV4kp/mw1cJJrLxIw4Q2XZnFGM1XUuwcbuaqWmGog+NcOLZaPCcCtZbn60EMCtjQ==", - "dependencies": { - "@docusaurus/babel": "3.6.0", - "@docusaurus/bundler": "3.6.0", - "@docusaurus/logger": "3.6.0", - "@docusaurus/mdx-loader": "3.6.0", - "@docusaurus/utils": "3.6.0", - "@docusaurus/utils-common": "3.6.0", - "@docusaurus/utils-validation": "3.6.0", - "boxen": "^6.2.1", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "cli-table3": "^0.6.3", - "combine-promises": "^1.1.0", - "commander": "^5.1.0", - "core-js": "^3.31.1", - "del": "^6.1.1", - "detect-port": "^1.5.1", - "escape-html": "^1.0.3", - "eta": "^2.2.0", - "eval": "^0.1.8", - "fs-extra": "^11.1.1", - "html-tags": "^3.3.1", - "html-webpack-plugin": "^5.6.0", - "leven": "^3.1.0", - "lodash": "^4.17.21", - "p-map": "^4.0.0", - "prompts": "^2.4.2", - "react-dev-utils": "^12.0.1", - "react-helmet-async": "^1.3.0", - "react-loadable": "npm:@docusaurus/react-loadable@6.0.0", - "react-loadable-ssr-addon-v5-slorber": "^1.0.1", - "react-router": "^5.3.4", - "react-router-config": "^5.1.1", - "react-router-dom": "^5.3.4", - "rtl-detect": "^1.0.4", - "semver": "^7.5.4", - "serve-handler": "^6.1.6", - "shelljs": "^0.8.5", - "tslib": "^2.6.0", - "update-notifier": "^6.0.2", - "webpack": "^5.95.0", - "webpack-bundle-analyzer": "^4.10.2", - "webpack-dev-server": "^4.15.2", - "webpack-merge": "^6.0.1" - }, - "bin": { - "docusaurus": "bin/docusaurus.mjs" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@mdx-js/react": "^3.0.0", - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-ideal-image/node_modules/@docusaurus/core/node_modules/webpack-merge": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", - "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.1" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@docusaurus/plugin-ideal-image/node_modules/@docusaurus/logger": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.6.0.tgz", - "integrity": "sha512-BcQhoXilXW0607cH/kO6P5Gt5KxCGfoJ+QDKNf3yO2S09/RsITlW+0QljXPbI3DklTrHrhRDmgGk1yX4nUhWTA==", - "dependencies": { - "chalk": "^4.1.2", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/plugin-ideal-image/node_modules/@docusaurus/mdx-loader": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.6.0.tgz", - "integrity": "sha512-GhRzL1Af/AdSSrGesSPOU/iP/aXadTGmVKuysCxZDrQR2RtBtubQZ9aw+KvdFVV7R4K/CsbgD6J5oqrXlEPk3Q==", - "dependencies": { - "@docusaurus/logger": "3.6.0", - "@docusaurus/utils": "3.6.0", - "@docusaurus/utils-validation": "3.6.0", - "@mdx-js/mdx": "^3.0.0", - "@slorber/remark-comment": "^1.0.0", - "escape-html": "^1.0.3", - "estree-util-value-to-estree": "^3.0.1", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "image-size": "^1.0.2", - "mdast-util-mdx": "^3.0.0", - "mdast-util-to-string": "^4.0.0", - "rehype-raw": "^7.0.0", - "remark-directive": "^3.0.0", - "remark-emoji": "^4.0.0", - "remark-frontmatter": "^5.0.0", - "remark-gfm": "^4.0.0", - "stringify-object": "^3.3.0", - "tslib": "^2.6.0", - "unified": "^11.0.3", - "unist-util-visit": "^5.0.0", - "url-loader": "^4.1.1", - "vfile": "^6.0.1", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-ideal-image/node_modules/@docusaurus/theme-translations": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.6.0.tgz", - "integrity": "sha512-L555X8lWE3fv8VaF0Bc1VnAgi10UvRKFcvADHiYR7Gj37ItaWP5i7xLHsSw7fi/SHTXe5wfIeCFNqUYHyCOHAQ==", - "dependencies": { - "fs-extra": "^11.1.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/plugin-ideal-image/node_modules/@docusaurus/types": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.6.0.tgz", - "integrity": "sha512-jADLgoZGWhAzThr+mRiyuFD4OUzt6jHnb7NRArRKorgxckqUBaPyFOau9hhbcSTHtU6ceyeWjN7FDt7uG2Hplw==", - "dependencies": { - "@mdx-js/mdx": "^3.0.0", - "@types/history": "^4.7.11", - "@types/react": "*", - "commander": "^5.1.0", - "joi": "^17.9.2", - "react-helmet-async": "^1.3.0", - "utility-types": "^3.10.0", - "webpack": "^5.95.0", - "webpack-merge": "^5.9.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-ideal-image/node_modules/@docusaurus/utils": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.6.0.tgz", - "integrity": "sha512-VKczAutI4mptiAw/WcYEu5WeVhQ6Q1zdIUl64SGw9K++9lziH+Kt10Ee8l2dMpRkiUk6zzK20kMNlX2WCUwXYQ==", - "dependencies": { - "@docusaurus/logger": "3.6.0", - "@docusaurus/utils-common": "3.6.0", - "@svgr/webpack": "^8.1.0", - "escape-string-regexp": "^4.0.0", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "github-slugger": "^1.5.0", - "globby": "^11.1.0", - "gray-matter": "^4.0.3", - "jiti": "^1.20.0", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "micromatch": "^4.0.5", - "prompts": "^2.4.2", - "resolve-pathname": "^3.0.0", - "shelljs": "^0.8.5", - "tslib": "^2.6.0", - "url-loader": "^4.1.1", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/types": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/types": { - "optional": true - } - } - }, - "node_modules/@docusaurus/plugin-ideal-image/node_modules/@docusaurus/utils-common": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.6.0.tgz", - "integrity": "sha512-diUDNfbw33GaZMmKwdTckT2IBfVouXLXRD+zphH9ywswuaEIKqixvuf5g41H7MBBrlMsxhna3uTMoB4B/OPDcA==", - "dependencies": { - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/types": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/types": { - "optional": true - } - } - }, - "node_modules/@docusaurus/plugin-ideal-image/node_modules/@docusaurus/utils-validation": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.6.0.tgz", - "integrity": "sha512-CRHiKKJEKA0GFlfOf71JWHl7PtwOyX0+Zg9ep9NFEZv6Lcx3RJ9nhl7p8HRjPL6deyYceavM//BsfW4pCI4BtA==", - "dependencies": { - "@docusaurus/logger": "3.6.0", - "@docusaurus/utils": "3.6.0", - "@docusaurus/utils-common": "3.6.0", - "fs-extra": "^11.2.0", - "joi": "^17.9.2", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/plugin-ideal-image/node_modules/react-router-dom": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", - "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", - "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.3.4", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "peerDependencies": { - "react": ">=15" - } - }, - "node_modules/@docusaurus/plugin-sitemap": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.5.2.tgz", - "integrity": "sha512-DnlqYyRAdQ4NHY28TfHuVk414ft2uruP4QWCH//jzpHjqvKyXjj2fmDtI8RPUBh9K8iZKFMHRnLtzJKySPWvFA==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/logger": "3.5.2", - "@docusaurus/types": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-common": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", - "fs-extra": "^11.1.1", - "sitemap": "^7.1.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/preset-classic": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.5.2.tgz", - "integrity": "sha512-3ihfXQ95aOHiLB5uCu+9PRy2gZCeSZoDcqpnDvf3B+sTrMvMTr8qRUzBvWkoIqc82yG5prCboRjk1SVILKx6sg==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/plugin-content-blog": "3.5.2", - "@docusaurus/plugin-content-docs": "3.5.2", - "@docusaurus/plugin-content-pages": "3.5.2", - "@docusaurus/plugin-debug": "3.5.2", - "@docusaurus/plugin-google-analytics": "3.5.2", - "@docusaurus/plugin-google-gtag": "3.5.2", - "@docusaurus/plugin-google-tag-manager": "3.5.2", - "@docusaurus/plugin-sitemap": "3.5.2", - "@docusaurus/theme-classic": "3.5.2", - "@docusaurus/theme-common": "3.5.2", - "@docusaurus/theme-search-algolia": "3.5.2", - "@docusaurus/types": "3.5.2" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/responsive-loader": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/responsive-loader/-/responsive-loader-1.7.0.tgz", - "integrity": "sha512-N0cWuVqTRXRvkBxeMQcy/OF2l7GN8rmni5EzR3HpwR+iU2ckYPnziceojcxvvxQ5NqZg1QfEW0tycQgHp+e+Nw==", - "dependencies": { - "loader-utils": "^2.0.0" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "jimp": "*", - "sharp": "*" - }, - "peerDependenciesMeta": { - "jimp": { - "optional": true - }, - "sharp": { - "optional": true - } - } - }, - "node_modules/@docusaurus/theme-classic": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.5.2.tgz", - "integrity": "sha512-XRpinSix3NBv95Rk7xeMF9k4safMkwnpSgThn0UNQNumKvmcIYjfkwfh2BhwYh/BxMXQHJ/PdmNh22TQFpIaYg==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/mdx-loader": "3.5.2", - "@docusaurus/module-type-aliases": "3.5.2", - "@docusaurus/plugin-content-blog": "3.5.2", - "@docusaurus/plugin-content-docs": "3.5.2", - "@docusaurus/plugin-content-pages": "3.5.2", - "@docusaurus/theme-common": "3.5.2", - "@docusaurus/theme-translations": "3.5.2", - "@docusaurus/types": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-common": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", - "@mdx-js/react": "^3.0.0", - "clsx": "^2.0.0", - "copy-text-to-clipboard": "^3.2.0", - "infima": "0.2.0-alpha.44", - "lodash": "^4.17.21", - "nprogress": "^0.2.0", - "postcss": "^8.4.26", - "prism-react-renderer": "^2.3.0", - "prismjs": "^1.29.0", - "react-router-dom": "^5.3.4", - "rtlcss": "^4.1.0", - "tslib": "^2.6.0", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/theme-classic/node_modules/react-router-dom": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", - "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.3.4", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "peerDependencies": { - "react": ">=15" - } - }, - "node_modules/@docusaurus/theme-common": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.5.2.tgz", - "integrity": "sha512-QXqlm9S6x9Ibwjs7I2yEDgsCocp708DrCrgHgKwg2n2AY0YQ6IjU0gAK35lHRLOvAoJUfCKpQAwUykB0R7+Eew==", - "license": "MIT", - "dependencies": { - "@docusaurus/mdx-loader": "3.5.2", - "@docusaurus/module-type-aliases": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-common": "3.5.2", - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router-config": "*", - "clsx": "^2.0.0", - "parse-numeric-range": "^1.3.0", - "prism-react-renderer": "^2.3.0", - "tslib": "^2.6.0", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/plugin-content-docs": "*", - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/theme-mermaid": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-mermaid/-/theme-mermaid-3.5.2.tgz", - "integrity": "sha512-7vWCnIe/KoyTN1Dc55FIyqO5hJ3YaV08Mr63Zej0L0mX1iGzt+qKSmeVUAJ9/aOalUhF0typV0RmNUSy5FAmCg==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/module-type-aliases": "3.5.2", - "@docusaurus/theme-common": "3.5.2", - "@docusaurus/types": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", - "mermaid": "^10.4.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/theme-search-algolia": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.5.2.tgz", - "integrity": "sha512-qW53kp3VzMnEqZGjakaV90sst3iN1o32PH+nawv1uepROO8aEGxptcq2R5rsv7aBShSRbZwIobdvSYKsZ5pqvA==", - "license": "MIT", - "dependencies": { - "@docsearch/react": "^3.5.2", - "@docusaurus/core": "3.5.2", - "@docusaurus/logger": "3.5.2", - "@docusaurus/plugin-content-docs": "3.5.2", - "@docusaurus/theme-common": "3.5.2", - "@docusaurus/theme-translations": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", - "algoliasearch": "^4.18.0", - "algoliasearch-helper": "^3.13.3", - "clsx": "^2.0.0", - "eta": "^2.2.0", - "fs-extra": "^11.1.1", - "lodash": "^4.17.21", - "tslib": "^2.6.0", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/theme-translations": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.5.2.tgz", - "integrity": "sha512-GPZLcu4aT1EmqSTmbdpVrDENGR2yObFEX8ssEFYTCiAIVc0EihNSdOIBTazUvgNqwvnoU1A8vIs1xyzc3LITTw==", - "license": "MIT", - "dependencies": { - "fs-extra": "^11.1.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/types": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.5.2.tgz", - "integrity": "sha512-N6GntLXoLVUwkZw7zCxwy9QiuEXIcTVzA9AkmNw16oc0AP3SXLrMmDMMBIfgqwuKWa6Ox6epHol9kMtJqekACw==", - "license": "MIT", - "dependencies": { - "@mdx-js/mdx": "^3.0.0", - "@types/history": "^4.7.11", - "@types/react": "*", - "commander": "^5.1.0", - "joi": "^17.9.2", - "react-helmet-async": "^1.3.0", - "utility-types": "^3.10.0", - "webpack": "^5.88.1", - "webpack-merge": "^5.9.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/utils": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.5.2.tgz", - "integrity": "sha512-33QvcNFh+Gv+C2dP9Y9xWEzMgf3JzrpL2nW9PopidiohS1nDcyknKRx2DWaFvyVTTYIkkABVSr073VTj/NITNA==", - "license": "MIT", - "dependencies": { - "@docusaurus/logger": "3.5.2", - "@docusaurus/utils-common": "3.5.2", - "@svgr/webpack": "^8.1.0", - "escape-string-regexp": "^4.0.0", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "github-slugger": "^1.5.0", - "globby": "^11.1.0", - "gray-matter": "^4.0.3", - "jiti": "^1.20.0", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "micromatch": "^4.0.5", - "prompts": "^2.4.2", - "resolve-pathname": "^3.0.0", - "shelljs": "^0.8.5", - "tslib": "^2.6.0", - "url-loader": "^4.1.1", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/types": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/types": { - "optional": true - } - } - }, - "node_modules/@docusaurus/utils-common": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.5.2.tgz", - "integrity": "sha512-i0AZjHiRgJU6d7faQngIhuHKNrszpL/SHQPgF1zH4H+Ij6E9NBYGy6pkcGWToIv7IVPbs+pQLh1P3whn0gWXVg==", - "license": "MIT", - "dependencies": { - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/types": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/types": { - "optional": true - } - } - }, - "node_modules/@docusaurus/utils-validation": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.5.2.tgz", - "integrity": "sha512-m+Foq7augzXqB6HufdS139PFxDC5d5q2QKZy8q0qYYvGdI6nnlNsGH4cIGsgBnV7smz+mopl3g4asbSDvMV0jA==", - "license": "MIT", - "dependencies": { - "@docusaurus/logger": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-common": "3.5.2", - "fs-extra": "^11.2.0", - "joi": "^17.9.2", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "license": "BSD-3-Clause", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", - "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", - "license": "MIT" - }, - "node_modules/@mdx-js/mdx": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz", - "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdx": "^2.0.0", - "collapse-white-space": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "estree-util-scope": "^1.0.0", - "estree-walker": "^3.0.0", - "hast-util-to-jsx-runtime": "^2.0.0", - "markdown-extensions": "^2.0.0", - "recma-build-jsx": "^1.0.0", - "recma-jsx": "^1.0.0", - "recma-stringify": "^1.0.0", - "rehype-recma": "^1.0.0", - "remark-mdx": "^3.0.0", - "remark-parse": "^11.0.0", - "remark-rehype": "^11.0.0", - "source-map": "^0.7.0", - "unified": "^11.0.0", - "unist-util-position-from-estree": "^2.0.0", - "unist-util-stringify-position": "^4.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/react": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.0.1.tgz", - "integrity": "sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==", - "license": "MIT", - "dependencies": { - "@types/mdx": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "@types/react": ">=16", - "react": ">=16" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pnpm/config.env-replace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", - "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", - "license": "MIT", - "engines": { - "node": ">=12.22.0" - } - }, - "node_modules/@pnpm/network.ca-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", - "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", - "license": "MIT", - "dependencies": { - "graceful-fs": "4.2.10" - }, - "engines": { - "node": ">=12.22.0" - } - }, - "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "license": "ISC" - }, - "node_modules/@pnpm/npm-conf": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz", - "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==", - "license": "MIT", - "dependencies": { - "@pnpm/config.env-replace": "^1.1.0", - "@pnpm/network.ca-file": "^1.0.1", - "config-chain": "^1.1.11" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@polka/url": { - "version": "1.0.0-next.28", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", - "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", - "license": "MIT" - }, - "node_modules/@remix-run/router": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.1.tgz", - "integrity": "sha512-zcU0gM3z+3iqj8UX45AmWY810l3oUmXM7uH4dt5xtzvMhRtYVhKGOmgOd1877dOPPepfCjUv57w+syamWIYe7w==", - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@shikijs/core": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.22.2.tgz", - "integrity": "sha512-bvIQcd8BEeR1yFvOYv6HDiyta2FFVePbzeowf5pPS1avczrPK+cjmaxxh0nx5QzbON7+Sv0sQfQVciO7bN72sg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/engine-javascript": "1.22.2", - "@shikijs/engine-oniguruma": "1.22.2", - "@shikijs/types": "1.22.2", - "@shikijs/vscode-textmate": "^9.3.0", - "@types/hast": "^3.0.4", - "hast-util-to-html": "^9.0.3" - } - }, - "node_modules/@shikijs/engine-javascript": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.22.2.tgz", - "integrity": "sha512-iOvql09ql6m+3d1vtvP8fLCVCK7BQD1pJFmHIECsujB0V32BJ0Ab6hxk1ewVSMFA58FI0pR2Had9BKZdyQrxTw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/types": "1.22.2", - "@shikijs/vscode-textmate": "^9.3.0", - "oniguruma-to-js": "0.4.3" - } - }, - "node_modules/@shikijs/engine-oniguruma": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.22.2.tgz", - "integrity": "sha512-GIZPAGzQOy56mGvWMoZRPggn0dTlBf1gutV5TdceLCZlFNqWmuc7u+CzD0Gd9vQUTgLbrt0KLzz6FNprqYAxlA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/types": "1.22.2", - "@shikijs/vscode-textmate": "^9.3.0" - } - }, - "node_modules/@shikijs/types": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.22.2.tgz", - "integrity": "sha512-NCWDa6LGZqTuzjsGfXOBWfjS/fDIbDdmVDug+7ykVe1IKT4c1gakrvlfFYp5NhAXH/lyqLM8wsAPo5wNy73Feg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/vscode-textmate": "^9.3.0", - "@types/hast": "^3.0.4" - } - }, - "node_modules/@shikijs/vscode-textmate": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-9.3.0.tgz", - "integrity": "sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@sideway/address": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", - "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", - "license": "BSD-3-Clause", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", - "license": "BSD-3-Clause" - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "license": "MIT" - }, - "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@slorber/react-ideal-image": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/@slorber/react-ideal-image/-/react-ideal-image-0.0.12.tgz", - "integrity": "sha512-u8KiDTEkMA7/KAeA5ywg/P7YG4zuKhWtswfVZDH8R8HXgQsFcHIYU2WaQnGuK/Du7Wdj90I+SdFmajSGFRvoKA==", - "engines": { - "node": ">= 8.9.0", - "npm": "> 3" - }, - "peerDependencies": { - "prop-types": ">=15", - "react": ">=0.14.x", - "react-waypoint": ">=9.0.2" - } - }, - "node_modules/@slorber/remark-comment": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@slorber/remark-comment/-/remark-comment-1.0.0.tgz", - "integrity": "sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==", - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.1.0", - "micromark-util-symbol": "^1.0.1" - } - }, - "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", - "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", - "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", - "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", - "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", - "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", - "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", - "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", - "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-preset": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", - "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", - "license": "MIT", - "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", - "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", - "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", - "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", - "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", - "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", - "@svgr/babel-plugin-transform-svg-component": "8.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/core": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", - "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.21.3", - "@svgr/babel-preset": "8.1.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^8.1.3", - "snake-case": "^3.0.4" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", - "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.21.3", - "entities": "^4.4.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/plugin-jsx": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", - "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.21.3", - "@svgr/babel-preset": "8.1.0", - "@svgr/hast-util-to-babel-ast": "8.0.0", - "svg-parser": "^2.0.4" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "*" - } - }, - "node_modules/@svgr/plugin-svgo": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", - "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", - "license": "MIT", - "dependencies": { - "cosmiconfig": "^8.1.3", - "deepmerge": "^4.3.1", - "svgo": "^3.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "*" - } - }, - "node_modules/@svgr/webpack": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", - "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.21.3", - "@babel/plugin-transform-react-constant-elements": "^7.21.3", - "@babel/preset-env": "^7.20.2", - "@babel/preset-react": "^7.18.6", - "@babel/preset-typescript": "^7.21.0", - "@svgr/core": "8.1.0", - "@svgr/plugin-jsx": "8.1.0", - "@svgr/plugin-svgo": "8.1.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "license": "MIT", - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "license": "ISC", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@types/acorn": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz", - "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", - "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", - "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", - "license": "MIT", - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/d3-scale": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz", - "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==", - "license": "MIT", - "dependencies": { - "@types/d3-time": "*" - } - }, - "node_modules/@types/d3-scale-chromatic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.3.tgz", - "integrity": "sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw==", - "license": "MIT" - }, - "node_modules/@types/d3-time": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.3.tgz", - "integrity": "sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==", - "license": "MIT" - }, - "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", - "license": "MIT", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/eslint": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", - "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", - "license": "MIT", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "license": "MIT", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "license": "MIT" - }, - "node_modules/@types/estree-jsx": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", - "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", - "license": "MIT", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.1.tgz", - "integrity": "sha512-CRICJIl0N5cXDONAdlTv5ShATZ4HEwk6kDDIW2/w9qOWKg+NU/5F8wYRWCrONad0/UKkloNSmmyN/wX4rtpbVA==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/express/node_modules/@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/gtag.js": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.12.tgz", - "integrity": "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==", - "license": "MIT" - }, - "node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/history": { - "version": "4.7.11", - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", - "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", - "license": "MIT" - }, - "node_modules/@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", - "license": "MIT" - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", - "license": "MIT" - }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", - "license": "MIT" - }, - "node_modules/@types/http-proxy": { - "version": "1.17.15", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz", - "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "license": "MIT" - }, - "node_modules/@types/mdast": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", - "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/mdx": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", - "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", - "license": "MIT" - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "license": "MIT" - }, - "node_modules/@types/ms": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.8.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.8.7.tgz", - "integrity": "sha512-LidcG+2UeYIWcMuMUpBKOnryBWG/rnmOHQR5apjn8myTQcx3rinFRn7DcIFhMnS0PPFSC6OafdIKEad0lj6U0Q==", - "license": "MIT", - "dependencies": { - "undici-types": "~6.19.8" - } - }, - "node_modules/@types/node-forge": { - "version": "1.3.11", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", - "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/parse-json": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", - "license": "MIT" - }, - "node_modules/@types/parse5": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz", - "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==", - "license": "MIT" - }, - "node_modules/@types/prismjs": { - "version": "1.26.5", - "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz", - "integrity": "sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==", - "license": "MIT" - }, - "node_modules/@types/prop-types": { - "version": "15.7.13", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", - "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", - "license": "MIT" - }, - "node_modules/@types/qs": { - "version": "6.9.16", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.16.tgz", - "integrity": "sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==", - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "license": "MIT" - }, - "node_modules/@types/react": { - "version": "18.3.12", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", - "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", - "license": "MIT", - "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-router": { - "version": "5.1.20", - "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", - "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", - "license": "MIT", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*" - } - }, - "node_modules/@types/react-router-config": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.11.tgz", - "integrity": "sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==", - "license": "MIT", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "^5.1.0" - } - }, - "node_modules/@types/react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", - "license": "MIT", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*" - } - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "license": "MIT" - }, - "node_modules/@types/sax": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", - "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", - "license": "MIT", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-index": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", - "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", - "license": "MIT", - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", - "license": "MIT", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.36", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", - "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "license": "MIT" - }, - "node_modules/@types/ws": { - "version": "8.5.13", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz", - "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yargs": { - "version": "17.0.33", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", - "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "license": "MIT" - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "license": "ISC" - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "license": "MIT", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "license": "Apache-2.0", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "license": "BSD-3-Clause" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "license": "Apache-2.0" - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "license": "ISC" - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", - "license": "MIT", - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/address": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", - "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/algoliasearch": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.24.0.tgz", - "integrity": "sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==", - "license": "MIT", - "dependencies": { - "@algolia/cache-browser-local-storage": "4.24.0", - "@algolia/cache-common": "4.24.0", - "@algolia/cache-in-memory": "4.24.0", - "@algolia/client-account": "4.24.0", - "@algolia/client-analytics": "4.24.0", - "@algolia/client-common": "4.24.0", - "@algolia/client-personalization": "4.24.0", - "@algolia/client-search": "4.24.0", - "@algolia/logger-common": "4.24.0", - "@algolia/logger-console": "4.24.0", - "@algolia/recommend": "4.24.0", - "@algolia/requester-browser-xhr": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/requester-node-http": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/algoliasearch-helper": { - "version": "3.22.5", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.22.5.tgz", - "integrity": "sha512-lWvhdnc+aKOKx8jyA3bsdEgHzm/sglC4cYdMG4xSQyRiPLJVJtH/IVYZG3Hp6PkTEhQqhyVYkeP9z2IlcHJsWw==", - "license": "MIT", - "dependencies": { - "@algolia/events": "^4.0.1" - }, - "peerDependencies": { - "algoliasearch": ">= 3.1 < 6" - } - }, - "node_modules/algoliasearch/node_modules/@algolia/client-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", - "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/algoliasearch/node_modules/@algolia/client-search": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", - "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/algoliasearch/node_modules/@algolia/requester-browser-xhr": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz", - "integrity": "sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0" - } - }, - "node_modules/algoliasearch/node_modules/@algolia/requester-node-http": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz", - "integrity": "sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==", - "license": "MIT", - "dependencies": { - "@algolia/requester-common": "4.24.0" - } - }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "license": "ISC", - "dependencies": { - "string-width": "^4.1.0" - } - }, - "node_modules/ansi-align/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/ansi-align/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "engines": [ - "node >= 0.8.0" - ], - "license": "Apache-2.0", - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "license": "ISC" - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "license": "MIT" - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "license": "MIT" - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/astring": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", - "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", - "license": "MIT", - "bin": { - "astring": "bin/astring" - } - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "license": "ISC", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/autocomplete.js": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/autocomplete.js/-/autocomplete.js-0.37.1.tgz", - "integrity": "sha512-PgSe9fHYhZEsm/9jggbjtVsGXJkPLvd+9mC7gZJ662vVL5CRWEtm/mIrrzCx0MrNxHVwxD5d00UOn6NsmL2LUQ==", - "license": "MIT", - "dependencies": { - "immediate": "^3.2.3" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.20", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", - "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.3", - "caniuse-lite": "^1.0.30001646", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/b4a": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", - "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==" - }, - "node_modules/babel-loader": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", - "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", - "license": "MIT", - "dependencies": { - "find-cache-dir": "^4.0.0", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0", - "webpack": ">=5" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "license": "MIT", - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", - "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.2", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", - "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2", - "core-js-compat": "^3.38.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", - "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT" - }, - "node_modules/bare-events": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.0.tgz", - "integrity": "sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==", - "optional": true - }, - "node_modules/bare-fs": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.5.tgz", - "integrity": "sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==", - "optional": true, - "dependencies": { - "bare-events": "^2.0.0", - "bare-path": "^2.0.0", - "bare-stream": "^2.0.0" - } - }, - "node_modules/bare-os": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.4.tgz", - "integrity": "sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==", - "optional": true - }, - "node_modules/bare-path": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.3.tgz", - "integrity": "sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==", - "optional": true, - "dependencies": { - "bare-os": "^2.1.0" - } - }, - "node_modules/bare-stream": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.3.2.tgz", - "integrity": "sha512-EFZHSIBkDgSHIwj2l2QZfP4U5OcD4xFAOwhSb/vlr9PIqyGJGvB/nfClJbcnh3EY4jtPE4zsb5ztae96bVF79A==", - "optional": true, - "dependencies": { - "streamx": "^2.20.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "license": "MIT" - }, - "node_modules/bcp-47-match": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-1.0.3.tgz", - "integrity": "sha512-LggQ4YTdjWQSKELZF5JwchnBa1u0pIQSZf5lSdOHEdbVP55h0qICA/FUp3+W99q0xqxYa1ZQizTUH87gecII5w==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/bonjour-service": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", - "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "license": "ISC" - }, - "node_modules/boxen": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz", - "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==", - "license": "MIT", - "dependencies": { - "ansi-align": "^3.0.1", - "camelcase": "^6.2.0", - "chalk": "^4.1.2", - "cli-boxes": "^3.0.0", - "string-width": "^5.0.1", - "type-fest": "^2.5.0", - "widest-line": "^4.0.1", - "wrap-ansi": "^8.0.1" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", - "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001669", - "electron-to-chromium": "^1.5.41", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.1" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "license": "MIT" - }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", - "license": "MIT", - "engines": { - "node": ">=14.16" - } - }, - "node_modules/cacheable-request": { - "version": "10.2.14", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", - "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", - "license": "MIT", - "dependencies": { - "@types/http-cache-semantics": "^4.0.2", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.3", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "license": "MIT", - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001677", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001677.tgz", - "integrity": "sha512-fmfjsOlJUpMWu+mAAtZZZHz7UEwsUxIIvu1TJfO1HqFQvB/B+ii0xr9B5HpbZY/mC4XZ8SvjHJqtAY6pDPQEog==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-html4": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", - "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-legacy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-reference-invalid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", - "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/cheerio": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", - "license": "MIT", - "dependencies": { - "cheerio-select": "^2.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" - }, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" - } - }, - "node_modules/cheerio-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-select": "^5.1.0", - "css-what": "^6.1.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", - "license": "MIT", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/clean-css": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", - "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", - "license": "MIT", - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 10.0" - } - }, - "node_modules/clean-css/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-boxes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", - "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-table3": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", - "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", - "license": "MIT", - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "@colors/colors": "1.5.0" - } - }, - "node_modules/cli-table3/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/cli-table3/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clsx": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", - "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/collapse-white-space": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", - "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/color": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", - "dependencies": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" - }, - "engines": { - "node": ">=12.5.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "license": "ISC", - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "license": "MIT" - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "license": "MIT" - }, - "node_modules/combine-promises": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/combine-promises/-/combine-promises-1.2.0.tgz", - "integrity": "sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/comma-separated-tokens": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", - "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", - "license": "ISC" - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "license": "MIT", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compressible/node_modules/mime-db": { - "version": "1.53.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", - "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz", - "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "compressible": "~2.0.18", - "debug": "2.6.9", - "negotiator": "~0.6.4", - "on-headers": "~1.0.2", - "safe-buffer": "5.2.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "license": "MIT" - }, - "node_modules/config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "license": "MIT", - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "node_modules/configstore": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", - "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", - "license": "BSD-2-Clause", - "dependencies": { - "dot-prop": "^6.0.1", - "graceful-fs": "^4.2.6", - "unique-string": "^3.0.0", - "write-file-atomic": "^3.0.3", - "xdg-basedir": "^5.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/yeoman/configstore?sponsor=1" - } - }, - "node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/consola": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", - "license": "MIT" - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "license": "ISC" - }, - "node_modules/consolidated-events": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/consolidated-events/-/consolidated-events-2.0.2.tgz", - "integrity": "sha512-2/uRVMdRypf5z/TW/ncD/66l75P5hH2vM/GR8Jf8HLc2xnfJtmina6F6du8+v4Z2vTrMo7jC+W1tmEEuuELgkQ==" - }, - "node_modules/content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "license": "MIT" - }, - "node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "license": "MIT" - }, - "node_modules/copy-text-to-clipboard": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz", - "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", - "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", - "license": "MIT", - "dependencies": { - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.1", - "globby": "^13.1.1", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", - "license": "MIT", - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/core-js": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.39.0.tgz", - "integrity": "sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", - "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.24.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-pure": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.39.0.tgz", - "integrity": "sha512-7fEcWwKI4rJinnK+wLTezeg2smbFFdSBP6E2kQZNbnzM2s1rpKQ6aaRteZSSg7FLU3P0HGGVo/gbpfanU36urg==", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "license": "MIT" - }, - "node_modules/cose-base": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz", - "integrity": "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==", - "license": "MIT", - "dependencies": { - "layout-base": "^1.0.0" - } - }, - "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "license": "MIT", - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-random-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", - "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", - "license": "MIT", - "dependencies": { - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/crypto-random-string/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/css-declaration-sorter": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", - "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", - "license": "ISC", - "engines": { - "node": "^14 || ^16 || >=18" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-loader": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", - "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", - "license": "MIT", - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.33", - "postcss-modules-extract-imports": "^3.1.0", - "postcss-modules-local-by-default": "^4.0.5", - "postcss-modules-scope": "^3.2.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/css-minimizer-webpack-plugin": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz", - "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==", - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "cssnano": "^6.0.1", - "jest-worker": "^29.4.3", - "postcss": "^8.4.24", - "schema-utils": "^4.0.1", - "serialize-javascript": "^6.0.1" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@parcel/css": { - "optional": true - }, - "@swc/css": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "lightningcss": { - "optional": true - } - } - }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-selector-parser": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz", - "integrity": "sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==", - "license": "MIT" - }, - "node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", - "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", - "license": "MIT", - "dependencies": { - "cssnano-preset-default": "^6.1.2", - "lilconfig": "^3.1.1" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/cssnano-preset-advanced": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz", - "integrity": "sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==", - "license": "MIT", - "dependencies": { - "autoprefixer": "^10.4.19", - "browserslist": "^4.23.0", - "cssnano-preset-default": "^6.1.2", - "postcss-discard-unused": "^6.0.5", - "postcss-merge-idents": "^6.0.3", - "postcss-reduce-idents": "^6.0.3", - "postcss-zindex": "^6.0.2" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/cssnano-preset-default": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", - "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "css-declaration-sorter": "^7.2.0", - "cssnano-utils": "^4.0.2", - "postcss-calc": "^9.0.1", - "postcss-colormin": "^6.1.0", - "postcss-convert-values": "^6.1.0", - "postcss-discard-comments": "^6.0.2", - "postcss-discard-duplicates": "^6.0.3", - "postcss-discard-empty": "^6.0.3", - "postcss-discard-overridden": "^6.0.2", - "postcss-merge-longhand": "^6.0.5", - "postcss-merge-rules": "^6.1.1", - "postcss-minify-font-values": "^6.1.0", - "postcss-minify-gradients": "^6.0.3", - "postcss-minify-params": "^6.1.0", - "postcss-minify-selectors": "^6.0.4", - "postcss-normalize-charset": "^6.0.2", - "postcss-normalize-display-values": "^6.0.2", - "postcss-normalize-positions": "^6.0.2", - "postcss-normalize-repeat-style": "^6.0.2", - "postcss-normalize-string": "^6.0.2", - "postcss-normalize-timing-functions": "^6.0.2", - "postcss-normalize-unicode": "^6.1.0", - "postcss-normalize-url": "^6.0.2", - "postcss-normalize-whitespace": "^6.0.2", - "postcss-ordered-values": "^6.0.2", - "postcss-reduce-initial": "^6.1.0", - "postcss-reduce-transforms": "^6.0.2", - "postcss-svgo": "^6.0.3", - "postcss-unique-selectors": "^6.0.4" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/cssnano-utils": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", - "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/csso": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "license": "MIT", - "dependencies": { - "css-tree": "~2.2.0" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.28", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", - "license": "CC0-1.0" - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" - }, - "node_modules/cytoscape": { - "version": "3.30.3", - "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.30.3.tgz", - "integrity": "sha512-HncJ9gGJbVtw7YXtIs3+6YAFSSiKsom0amWc33Z7QbylbY2JGMrA0yz4EwrdTScZxnwclXeEZHzO5pxoy0ZE4g==", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/cytoscape-cose-bilkent": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz", - "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==", - "license": "MIT", - "dependencies": { - "cose-base": "^1.0.0" - }, - "peerDependencies": { - "cytoscape": "^3.2.0" - } - }, - "node_modules/d3": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", - "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", - "license": "ISC", - "dependencies": { - "d3-array": "3", - "d3-axis": "3", - "d3-brush": "3", - "d3-chord": "3", - "d3-color": "3", - "d3-contour": "4", - "d3-delaunay": "6", - "d3-dispatch": "3", - "d3-drag": "3", - "d3-dsv": "3", - "d3-ease": "3", - "d3-fetch": "3", - "d3-force": "3", - "d3-format": "3", - "d3-geo": "3", - "d3-hierarchy": "3", - "d3-interpolate": "3", - "d3-path": "3", - "d3-polygon": "3", - "d3-quadtree": "3", - "d3-random": "3", - "d3-scale": "4", - "d3-scale-chromatic": "3", - "d3-selection": "3", - "d3-shape": "3", - "d3-time": "3", - "d3-time-format": "4", - "d3-timer": "3", - "d3-transition": "3", - "d3-zoom": "3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-array": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", - "license": "ISC", - "dependencies": { - "internmap": "1 - 2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-axis": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", - "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-brush": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", - "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", - "license": "ISC", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "3", - "d3-transition": "3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-chord": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", - "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", - "license": "ISC", - "dependencies": { - "d3-path": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-contour": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", - "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", - "license": "ISC", - "dependencies": { - "d3-array": "^3.2.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-delaunay": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", - "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", - "license": "ISC", - "dependencies": { - "delaunator": "5" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dispatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", - "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-drag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", - "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", - "license": "ISC", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-selection": "3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dsv": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", - "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", - "license": "ISC", - "dependencies": { - "commander": "7", - "iconv-lite": "0.6", - "rw": "1" - }, - "bin": { - "csv2json": "bin/dsv2json.js", - "csv2tsv": "bin/dsv2dsv.js", - "dsv2dsv": "bin/dsv2dsv.js", - "dsv2json": "bin/dsv2json.js", - "json2csv": "bin/json2dsv.js", - "json2dsv": "bin/json2dsv.js", - "json2tsv": "bin/json2dsv.js", - "tsv2csv": "bin/dsv2dsv.js", - "tsv2json": "bin/dsv2json.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dsv/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", - "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", - "license": "ISC", - "dependencies": { - "d3-dsv": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-force": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", - "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", - "license": "ISC", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-quadtree": "1 - 3", - "d3-timer": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-format": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", - "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-geo": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", - "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", - "license": "ISC", - "dependencies": { - "d3-array": "2.5.0 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-hierarchy": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", - "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-polygon": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", - "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-quadtree": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", - "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-random": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", - "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-sankey": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz", - "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==", - "license": "BSD-3-Clause", - "dependencies": { - "d3-array": "1 - 2", - "d3-shape": "^1.2.0" - } - }, - "node_modules/d3-sankey/node_modules/d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", - "license": "BSD-3-Clause", - "dependencies": { - "internmap": "^1.0.0" - } - }, - "node_modules/d3-sankey/node_modules/d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==", - "license": "BSD-3-Clause" - }, - "node_modules/d3-sankey/node_modules/d3-shape": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", - "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", - "license": "BSD-3-Clause", - "dependencies": { - "d3-path": "1" - } - }, - "node_modules/d3-sankey/node_modules/internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", - "license": "ISC" - }, - "node_modules/d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", - "license": "ISC", - "dependencies": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-scale-chromatic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", - "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3", - "d3-interpolate": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-selection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", - "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-shape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", - "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", - "license": "ISC", - "dependencies": { - "d3-path": "^3.1.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", - "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", - "license": "ISC", - "dependencies": { - "d3-array": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", - "license": "ISC", - "dependencies": { - "d3-time": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-transition": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", - "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3", - "d3-dispatch": "1 - 3", - "d3-ease": "1 - 3", - "d3-interpolate": "1 - 3", - "d3-timer": "1 - 3" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "d3-selection": "2 - 3" - } - }, - "node_modules/d3-zoom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", - "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", - "license": "ISC", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "2 - 3", - "d3-transition": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/dagre-d3-es": { - "version": "7.0.10", - "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.10.tgz", - "integrity": "sha512-qTCQmEhcynucuaZgY5/+ti3X/rnszKZhEQH/ZdWdtP1tA/y3VoHJzcVrO9pjjJCNpigfscAtoUB5ONcd2wNn0A==", - "license": "MIT", - "dependencies": { - "d3": "^7.8.2", - "lodash-es": "^4.17.21" - } - }, - "node_modules/dayjs": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", - "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", - "license": "MIT" - }, - "node_modules/debounce": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", - "license": "MIT" - }, - "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", - "license": "MIT", - "dependencies": { - "character-entities": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "license": "MIT", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "license": "BSD-2-Clause", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", - "license": "MIT", - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/delaunator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", - "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", - "license": "ISC", - "dependencies": { - "robust-predicates": "^3.0.2" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "license": "MIT" - }, - "node_modules/detect-port": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz", - "integrity": "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==", - "license": "MIT", - "dependencies": { - "address": "^1.0.1", - "debug": "4" - }, - "bin": { - "detect": "bin/detect-port.js", - "detect-port": "bin/detect-port.js" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "license": "MIT", - "dependencies": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "bin": { - "detect": "bin/detect-port", - "detect-port": "bin/detect-port" - }, - "engines": { - "node": ">= 4.2.1" - } - }, - "node_modules/detect-port-alt/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/detect-port-alt/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/devlop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", - "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", - "license": "MIT", - "dependencies": { - "dequal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/diff": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", - "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/direction": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/direction/-/direction-1.0.4.tgz", - "integrity": "sha512-GYqKi1aH7PJXxdhTeZBFrg8vUBeKXi+cNprXsC1kpJcbcVnV9wBsrOu1cQEdG0WeQwlfHiy3XvnKfIrJ2R0NzQ==", - "license": "MIT", - "bin": { - "direction": "cli.js" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/dns-packet": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", - "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", - "license": "MIT", - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/docusaurus-lunr-search": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/docusaurus-lunr-search/-/docusaurus-lunr-search-3.5.0.tgz", - "integrity": "sha512-k3zN4jYMi/prWInJILGKOxE+BVcgYinwj9+gcECsYm52tS+4ZKzXQzbPnVJAEXmvKOfFMcDFvS3MSmm6cEaxIQ==", - "license": "MIT", - "dependencies": { - "autocomplete.js": "^0.37.0", - "clsx": "^1.2.1", - "gauge": "^3.0.0", - "hast-util-select": "^4.0.0", - "hast-util-to-text": "^2.0.0", - "hogan.js": "^3.0.2", - "lunr": "^2.3.8", - "lunr-languages": "^1.4.0", - "mark.js": "^8.11.1", - "minimatch": "^3.0.4", - "rehype-parse": "^7.0.1", - "to-vfile": "^6.1.0", - "unified": "^9.0.0", - "unist-util-is": "^4.0.2" - }, - "engines": { - "node": ">= 8.10.0" - }, - "peerDependencies": { - "@docusaurus/core": "^2.0.0-alpha.60 || ^2.0.0 || ^3.0.0", - "react": "^16.8.4 || ^17 || ^18", - "react-dom": "^16.8.4 || ^17 || ^18" - } - }, - "node_modules/docusaurus-lunr-search/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "license": "MIT" - }, - "node_modules/docusaurus-lunr-search/node_modules/bail": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/docusaurus-lunr-search/node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/docusaurus-lunr-search/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/docusaurus-lunr-search/node_modules/trough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/docusaurus-lunr-search/node_modules/unified": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", - "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", - "license": "MIT", - "dependencies": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-lunr-search/node_modules/unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-lunr-search/node_modules/vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-lunr-search/node_modules/vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/docusaurus-plugin-typedoc": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/docusaurus-plugin-typedoc/-/docusaurus-plugin-typedoc-1.0.5.tgz", - "integrity": "sha512-mv8LBJYilGOOPLqaIM3vbYc34m4qwOCpb4WfP24DOPFNj2uiTerw8sg9MGvN6Jx2+J8rq9/WMnjcyz3UMqoIIQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "typedoc-plugin-markdown": ">=4.0.0" - } - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "license": "MIT", - "dependencies": { - "utila": "~0.4" - } - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/dompurify": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.6.tgz", - "integrity": "sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ==", - "license": "(MPL-2.0 OR Apache-2.0)" - }, - "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "license": "MIT", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/dot-prop/node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "license": "MIT" - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "license": "MIT" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.50", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.50.tgz", - "integrity": "sha512-eMVObiUQ2LdgeO1F/ySTXsvqvxb6ZH2zPGaMYsWzRDdOddUa77tdmI0ltg+L16UpbWdhPmuF3wIQYyQq65WfZw==", - "license": "ISC" - }, - "node_modules/elkjs": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/elkjs/-/elkjs-0.9.3.tgz", - "integrity": "sha512-f/ZeWvW/BCXbhGEf1Ujp29EASo/lk1FDnETgNKwJrsVvGZhUWCZyg3xLJjAsxfOmt8KjswHmI5EwCQcPMpOYhQ==", - "license": "EPL-2.0" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "license": "MIT" - }, - "node_modules/emojilib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz", - "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==", - "license": "MIT" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/emoticon": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-4.1.0.tgz", - "integrity": "sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-module-lexer": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", - "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", - "license": "MIT" - }, - "node_modules/esast-util-from-estree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", - "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "devlop": "^1.0.0", - "estree-util-visit": "^2.0.0", - "unist-util-position-from-estree": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/esast-util-from-js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", - "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "acorn": "^8.0.0", - "esast-util-from-estree": "^2.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-goat": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", - "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-util-attach-comments": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", - "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-build-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", - "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "estree-walker": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-is-identifier-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", - "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-scope": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", - "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-to-js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", - "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "astring": "^1.8.0", - "source-map": "^0.7.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-value-to-estree": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.2.1.tgz", - "integrity": "sha512-Vt2UOjyPbNQQgT5eJh+K5aATti0OjCIAGc9SgMdOFYbohuifsWclR74l0iZTJwePMgWYdX1hlVS+dedH9XV8kw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/remcohaszing" - } - }, - "node_modules/estree-util-visit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", - "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eta": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/eta/-/eta-2.2.0.tgz", - "integrity": "sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "url": "https://github.com/eta-dev/eta?sponsor=1" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eval": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz", - "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==", - "dependencies": { - "@types/node": "*", - "require-like": ">= 0.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "license": "MIT" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/express": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", - "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/express/node_modules/path-to-regexp": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", - "license": "MIT" - }, - "node_modules/express/node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "license": "MIT" - }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "license": "MIT" - }, - "node_modules/fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==" - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "license": "MIT" - }, - "node_modules/fast-uri": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", - "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", - "license": "BSD-3-Clause" - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fault": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", - "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", - "license": "MIT", - "dependencies": { - "format": "^0.2.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "license": "Apache-2.0", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/feed": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", - "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==", - "license": "MIT", - "dependencies": { - "xml-js": "^1.6.11" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/file-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/file-loader/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/file-loader/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" - }, - "node_modules/file-loader/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/filesize": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/find-cache-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", - "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", - "license": "MIT", - "dependencies": { - "common-path-prefix": "^3.0.0", - "pkg-dir": "^7.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "license": "MIT", - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/fork-ts-checker-webpack-plugin": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", - "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=10", - "yarn": ">=1.0.0" - }, - "peerDependencies": { - "eslint": ">= 6", - "typescript": ">= 2.7", - "vue-template-compiler": "*", - "webpack": ">= 4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - } - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "license": "ISC", - "engines": { - "node": ">= 6" - } - }, - "node_modules/form-data-encoder": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", - "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", - "license": "MIT", - "engines": { - "node": ">= 14.17" - } - }, - "node_modules/format": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", - "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, - "node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", - "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", - "license": "Unlicense" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "deprecated": "This package is no longer supported.", - "license": "ISC", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/gauge/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/gauge/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "license": "ISC" - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" - }, - "node_modules/github-slugger": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", - "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==", - "license": "ISC" - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "license": "BSD-2-Clause" - }, - "node_modules/global-dirs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", - "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", - "license": "MIT", - "dependencies": { - "ini": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/global-dirs/node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "license": "MIT", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "license": "MIT", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/got/node_modules/@sindresorhus/is": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", - "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC" - }, - "node_modules/gray-matter": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", - "license": "MIT", - "dependencies": { - "js-yaml": "^3.13.1", - "kind-of": "^6.0.2", - "section-matter": "^1.0.0", - "strip-bom-string": "^1.0.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/gray-matter/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/gray-matter/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "license": "MIT", - "dependencies": { - "duplexer": "^0.1.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "license": "MIT" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "license": "ISC" - }, - "node_modules/has-yarn": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", - "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hast-util-from-parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz", - "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==", - "license": "MIT", - "dependencies": { - "@types/parse5": "^5.0.0", - "hastscript": "^6.0.0", - "property-information": "^5.0.0", - "vfile": "^4.0.0", - "vfile-location": "^3.2.0", - "web-namespaces": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-parse5/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "license": "MIT" - }, - "node_modules/hast-util-from-parse5/node_modules/unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-parse5/node_modules/vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-parse5/node_modules/vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-has-property": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-1.0.4.tgz", - "integrity": "sha512-ghHup2voGfgFoHMGnaLHOjbYFACKrRh9KFttdCzMCbFoBMJXiNi2+XTrPP8+q6cDJM/RSqlCfVWrjp1H201rZg==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-is-element": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz", - "integrity": "sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-parse-selector": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", - "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-raw": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.4.tgz", - "integrity": "sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "@ungap/structured-clone": "^1.0.0", - "hast-util-from-parse5": "^8.0.0", - "hast-util-to-parse5": "^8.0.0", - "html-void-elements": "^3.0.0", - "mdast-util-to-hast": "^13.0.0", - "parse5": "^7.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-raw/node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-raw/node_modules/hast-util-from-parse5": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz", - "integrity": "sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "devlop": "^1.0.0", - "hastscript": "^8.0.0", - "property-information": "^6.0.0", - "vfile": "^6.0.0", - "vfile-location": "^5.0.0", - "web-namespaces": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-raw/node_modules/hast-util-parse-selector": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", - "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-raw/node_modules/hastscript": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-8.0.0.tgz", - "integrity": "sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-parse-selector": "^4.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-raw/node_modules/property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-raw/node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-raw/node_modules/vfile-location": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", - "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-raw/node_modules/web-namespaces": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", - "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-raw/node_modules/zwitch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-select": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hast-util-select/-/hast-util-select-4.0.2.tgz", - "integrity": "sha512-8EEG2//bN5rrzboPWD2HdS3ugLijNioS1pqOTIolXNf67xxShYw4SQEmVXd3imiBG+U2bC2nVTySr/iRAA7Cjg==", - "license": "MIT", - "dependencies": { - "bcp-47-match": "^1.0.0", - "comma-separated-tokens": "^1.0.0", - "css-selector-parser": "^1.0.0", - "direction": "^1.0.0", - "hast-util-has-property": "^1.0.0", - "hast-util-is-element": "^1.0.0", - "hast-util-to-string": "^1.0.0", - "hast-util-whitespace": "^1.0.0", - "not": "^0.1.0", - "nth-check": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0", - "unist-util-visit": "^2.0.0", - "zwitch": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-select/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "license": "MIT" - }, - "node_modules/hast-util-select/node_modules/unist-util-visit": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-select/node_modules/unist-util-visit-parents": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-estree": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.0.tgz", - "integrity": "sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-attach-comments": "^3.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "hast-util-whitespace": "^3.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-object": "^0.4.0", - "unist-util-position": "^5.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-estree/node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-to-estree/node_modules/hast-util-whitespace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", - "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-estree/node_modules/inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", - "license": "MIT" - }, - "node_modules/hast-util-to-estree/node_modules/property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-to-estree/node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-to-estree/node_modules/style-to-object": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", - "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", - "license": "MIT", - "dependencies": { - "inline-style-parser": "0.1.1" - } - }, - "node_modules/hast-util-to-estree/node_modules/zwitch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-to-html": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.3.tgz", - "integrity": "sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-whitespace": "^3.0.0", - "html-void-elements": "^3.0.0", - "mdast-util-to-hast": "^13.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "stringify-entities": "^4.0.0", - "zwitch": "^2.0.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-html/node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-to-html/node_modules/hast-util-whitespace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", - "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-html/node_modules/property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-to-html/node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-to-html/node_modules/zwitch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-to-jsx-runtime": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.2.tgz", - "integrity": "sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "hast-util-whitespace": "^3.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-object": "^1.0.0", - "unist-util-position": "^5.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-jsx-runtime/node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-to-jsx-runtime/node_modules/hast-util-whitespace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", - "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-jsx-runtime/node_modules/property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-to-jsx-runtime/node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-to-parse5": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", - "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-parse5/node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-to-parse5/node_modules/property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-to-parse5/node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-to-parse5/node_modules/web-namespaces": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", - "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-to-parse5/node_modules/zwitch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-to-string": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-1.0.4.tgz", - "integrity": "sha512-eK0MxRX47AV2eZ+Lyr18DCpQgodvaS3fAQO2+b9Two9F5HEoRPhiUMNzoXArMJfZi2yieFzUBMRl3HNJ3Jus3w==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-text": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-2.0.1.tgz", - "integrity": "sha512-8nsgCARfs6VkwH2jJU9b8LNTuR4700na+0h3PqCaEk4MAnMDeu5P0tP8mjk9LLNGxIeQRLbiDbZVw6rku+pYsQ==", - "license": "MIT", - "dependencies": { - "hast-util-is-element": "^1.0.0", - "repeat-string": "^1.0.0", - "unist-util-find-after": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-whitespace": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-1.0.4.tgz", - "integrity": "sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hastscript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", - "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", - "license": "MIT", - "dependencies": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hastscript/node_modules/@types/hast": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", - "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2" - } - }, - "node_modules/hastscript/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "license": "MIT" - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, - "node_modules/history": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", - "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^3.0.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^1.0.1" - } - }, - "node_modules/hogan.js": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/hogan.js/-/hogan.js-3.0.2.tgz", - "integrity": "sha512-RqGs4wavGYJWE07t35JQccByczmNUXQT0E12ZYV1VKYu5UiAU9lsos/yBAcf840+zrUQQxgVduCR5/B8nNtibg==", - "dependencies": { - "mkdirp": "0.3.0", - "nopt": "1.0.10" - }, - "bin": { - "hulk": "bin/hulk" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "license": "BSD-3-Clause", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT" - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/html-entities": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", - "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ], - "license": "MIT" - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "license": "MIT" - }, - "node_modules/html-minifier-terser": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", - "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", - "license": "MIT", - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "~5.3.2", - "commander": "^10.0.0", - "entities": "^4.4.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.15.1" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": "^14.13.1 || >=16.0.0" - } - }, - "node_modules/html-minifier-terser/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "license": "MIT", - "engines": { - "node": ">=14" - } - }, - "node_modules/html-tags": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", - "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/html-void-elements": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", - "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/html-webpack-plugin": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz", - "integrity": "sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==", - "license": "MIT", - "dependencies": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/html-webpack-plugin" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.20.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/html-webpack-plugin/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/html-webpack-plugin/node_modules/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "license": "MIT", - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/htmlparser2": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "license": "BSD-2-Clause" - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "license": "MIT" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", - "license": "MIT" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "license": "MIT", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", - "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", - "license": "MIT", - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/http2-wrapper": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", - "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", - "license": "MIT", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/image-size": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz", - "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==", - "license": "MIT", - "dependencies": { - "queue": "6.0.2" - }, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=16.x" - } - }, - "node_modules/immediate": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", - "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==", - "license": "MIT" - }, - "node_modules/immer": { - "version": "9.0.21", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", - "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/infima": { - "version": "0.2.0-alpha.44", - "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.44.tgz", - "integrity": "sha512-tuRkUSO/lB3rEhLJk25atwAjgLuzq070+pOW8XcvpHky/YbENnRRdPd85IBkyeTgttmOy5ah+yHYsK1HhUd4lQ==", - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "license": "ISC" - }, - "node_modules/inline-style-parser": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", - "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", - "license": "MIT" - }, - "node_modules/internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/ipaddr.js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", - "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/is-alphabetical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", - "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-alphanumerical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", - "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", - "license": "MIT", - "dependencies": { - "is-alphabetical": "^2.0.0", - "is-decimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "license": "MIT" - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "license": "MIT", - "dependencies": { - "ci-info": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-decimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", - "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hexadecimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", - "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "license": "MIT", - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-npm": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", - "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "license": "MIT" - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-yarn-global": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", - "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "license": "ISC" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jiti": { - "version": "1.21.6", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", - "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", - "license": "MIT", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/joi": { - "version": "17.13.3", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", - "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", - "license": "BSD-3-Clause", - "dependencies": { - "@hapi/hoek": "^9.3.0", - "@hapi/topo": "^5.1.0", - "@sideway/address": "^4.1.5", - "@sideway/formula": "^3.0.1", - "@sideway/pinpoint": "^2.0.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "license": "MIT" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/katex": { - "version": "0.16.11", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.11.tgz", - "integrity": "sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ==", - "funding": [ - "https://opencollective.com/katex", - "https://github.com/sponsors/katex" - ], - "license": "MIT", - "dependencies": { - "commander": "^8.3.0" - }, - "bin": { - "katex": "cli.js" - } - }, - "node_modules/katex/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/khroma": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz", - "integrity": "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==" - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/latest-version": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", - "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", - "license": "MIT", - "dependencies": { - "package-json": "^8.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/launch-editor": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz", - "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", - "license": "MIT", - "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" - } - }, - "node_modules/layout-base": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz", - "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==", - "license": "MIT" - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "license": "MIT" - }, - "node_modules/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "uc.micro": "^2.0.0" - } - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "license": "MIT", - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "license": "MIT", - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "license": "MIT" - }, - "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "license": "MIT" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "license": "MIT" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "license": "MIT" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "license": "MIT" - }, - "node_modules/longest-streak": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", - "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "license": "MIT" - }, - "node_modules/lunr-languages": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/lunr-languages/-/lunr-languages-1.14.0.tgz", - "integrity": "sha512-hWUAb2KqM3L7J5bcrngszzISY4BxrXn/Xhbb9TTCJYEGqlR1nG67/M14sp09+PTIRklobrn57IAxcdcO/ZFyNA==", - "license": "MPL-1.1" - }, - "node_modules/mark.js": { - "version": "8.11.1", - "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", - "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==", - "license": "MIT" - }, - "node_modules/markdown-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", - "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/markdown-it": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", - "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1", - "entities": "^4.4.0", - "linkify-it": "^5.0.0", - "mdurl": "^2.0.0", - "punycode.js": "^2.3.1", - "uc.micro": "^2.1.0" - }, - "bin": { - "markdown-it": "bin/markdown-it.mjs" - } - }, - "node_modules/markdown-table": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", - "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/mdast-util-directive": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz", - "integrity": "sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "parse-entities": "^4.0.0", - "stringify-entities": "^4.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-find-and-replace": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz", - "integrity": "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "escape-string-regexp": "^5.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mdast-util-find-and-replace/node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-from-markdown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", - "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark": "^4.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-from-markdown/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/mdast-util-frontmatter": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz", - "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "escape-string-regexp": "^5.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "micromark-extension-frontmatter": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-frontmatter/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mdast-util-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", - "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", - "license": "MIT", - "dependencies": { - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-gfm-autolink-literal": "^2.0.0", - "mdast-util-gfm-footnote": "^2.0.0", - "mdast-util-gfm-strikethrough": "^2.0.0", - "mdast-util-gfm-table": "^2.0.0", - "mdast-util-gfm-task-list-item": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-autolink-literal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", - "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "ccount": "^2.0.0", - "devlop": "^1.0.0", - "mdast-util-find-and-replace": "^3.0.0", - "micromark-util-character": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/mdast-util-gfm-footnote": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz", - "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-strikethrough": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", - "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", - "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "markdown-table": "^3.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-task-list-item": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", - "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", - "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", - "license": "MIT", - "dependencies": { - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-expression": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", - "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-jsx": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.3.tgz", - "integrity": "sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "parse-entities": "^4.0.0", - "stringify-entities": "^4.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdxjs-esm": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", - "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-phrasing": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", - "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-phrasing/node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-hast": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", - "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@ungap/structured-clone": "^1.0.0", - "devlop": "^1.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "trim-lines": "^3.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.1.tgz", - "integrity": "sha512-OrkcCoqAkEg9b1ykXBrA0ehRc8H4fGU/03cACmW2xXzau1+dIdS+qJugh1Cqex3hMumSBgSE/5pc7uqP12nLAw==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^4.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "unist-util-visit": "^5.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown/node_modules/zwitch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/mdast-util-to-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", - "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "license": "CC0-1.0" - }, - "node_modules/mdurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", - "dev": true, - "license": "MIT" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", - "license": "Unlicense", - "dependencies": { - "fs-monkey": "^1.0.4" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/mermaid": { - "version": "10.9.3", - "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-10.9.3.tgz", - "integrity": "sha512-V80X1isSEvAewIL3xhmz/rVmc27CVljcsbWxkxlWJWY/1kQa4XOABqpDl2qQLGKzpKm6WbTfUEKImBlUfFYArw==", - "license": "MIT", - "dependencies": { - "@braintree/sanitize-url": "^6.0.1", - "@types/d3-scale": "^4.0.3", - "@types/d3-scale-chromatic": "^3.0.0", - "cytoscape": "^3.28.1", - "cytoscape-cose-bilkent": "^4.1.0", - "d3": "^7.4.0", - "d3-sankey": "^0.12.3", - "dagre-d3-es": "7.0.10", - "dayjs": "^1.11.7", - "dompurify": "^3.0.5 <3.1.7", - "elkjs": "^0.9.0", - "katex": "^0.16.9", - "khroma": "^2.0.0", - "lodash-es": "^4.17.21", - "mdast-util-from-markdown": "^1.3.0", - "non-layered-tidy-tree-layout": "^2.0.2", - "stylis": "^4.1.3", - "ts-dedent": "^2.2.0", - "uuid": "^9.0.0", - "web-worker": "^1.2.0" - } - }, - "node_modules/mermaid/node_modules/@types/mdast": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", - "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2" - } - }, - "node_modules/mermaid/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "license": "MIT" - }, - "node_modules/mermaid/node_modules/mdast-util-from-markdown": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", - "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "mdast-util-to-string": "^3.1.0", - "micromark": "^3.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-decode-string": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "unist-util-stringify-position": "^3.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mermaid/node_modules/mdast-util-to-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", - "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mermaid/node_modules/micromark": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", - "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "micromark-core-commonmark": "^1.0.1", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "node_modules/mermaid/node_modules/micromark-core-commonmark": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", - "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-factory-destination": "^1.0.0", - "micromark-factory-label": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-factory-title": "^1.0.0", - "micromark-factory-whitespace": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-html-tag-name": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "node_modules/mermaid/node_modules/micromark-factory-destination": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", - "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/mermaid/node_modules/micromark-factory-label": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", - "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/mermaid/node_modules/micromark-factory-title": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", - "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/mermaid/node_modules/micromark-factory-whitespace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", - "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/mermaid/node_modules/micromark-util-chunked": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", - "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/mermaid/node_modules/micromark-util-classify-character": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", - "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/mermaid/node_modules/micromark-util-combine-extensions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", - "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/mermaid/node_modules/micromark-util-decode-numeric-character-reference": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", - "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/mermaid/node_modules/micromark-util-decode-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", - "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/mermaid/node_modules/micromark-util-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", - "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/mermaid/node_modules/micromark-util-html-tag-name": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", - "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/mermaid/node_modules/micromark-util-normalize-identifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", - "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/mermaid/node_modules/micromark-util-resolve-all": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", - "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/mermaid/node_modules/micromark-util-sanitize-uri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", - "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/mermaid/node_modules/micromark-util-subtokenize": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", - "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/mermaid/node_modules/micromark-util-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", - "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/mermaid/node_modules/unist-util-stringify-position": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", - "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromark": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", - "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-core-commonmark": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", - "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-destination": "^2.0.0", - "micromark-factory-label": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-factory-title": "^2.0.0", - "micromark-factory-whitespace": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-html-tag-name": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-core-commonmark/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-core-commonmark/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-core-commonmark/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-directive": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.2.tgz", - "integrity": "sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-factory-whitespace": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "parse-entities": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-directive/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-directive/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-directive/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-frontmatter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz", - "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==", - "license": "MIT", - "dependencies": { - "fault": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", - "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", - "license": "MIT", - "dependencies": { - "micromark-extension-gfm-autolink-literal": "^2.0.0", - "micromark-extension-gfm-footnote": "^2.0.0", - "micromark-extension-gfm-strikethrough": "^2.0.0", - "micromark-extension-gfm-table": "^2.0.0", - "micromark-extension-gfm-tagfilter": "^2.0.0", - "micromark-extension-gfm-task-list-item": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", - "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-gfm-footnote": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", - "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-gfm-strikethrough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", - "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-gfm-table": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.0.tgz", - "integrity": "sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-table/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-gfm-tagfilter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", - "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", - "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-task-list-item": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", - "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-mdx-expression": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz", - "integrity": "sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-mdx-expression": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-mdx-expression/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-mdx-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.1.tgz", - "integrity": "sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==", - "license": "MIT", - "dependencies": { - "@types/acorn": "^4.0.0", - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "micromark-factory-mdx-expression": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-extension-mdx-md": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", - "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", - "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdxjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", - "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", - "license": "MIT", - "dependencies": { - "acorn": "^8.0.0", - "acorn-jsx": "^5.0.0", - "micromark-extension-mdx-expression": "^3.0.0", - "micromark-extension-mdx-jsx": "^3.0.0", - "micromark-extension-mdx-md": "^2.0.0", - "micromark-extension-mdxjs-esm": "^3.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdxjs-esm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", - "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-position-from-estree": "^2.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-factory-destination": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", - "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-destination/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-destination/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-factory-label": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", - "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-label/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-label/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-factory-mdx-expression": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.2.tgz", - "integrity": "sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-position-from-estree": "^2.0.0", - "vfile-message": "^4.0.0" - } - }, - "node_modules/micromark-factory-mdx-expression/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-factory-space": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", - "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-factory-space/node_modules/micromark-util-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", - "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-factory-title": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", - "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-title/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-title/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-title/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-factory-whitespace": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", - "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-whitespace/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-whitespace/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-whitespace/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-character": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", - "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-character/node_modules/micromark-util-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", - "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-chunked": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", - "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-chunked/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-classify-character": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", - "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-classify-character/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-classify-character/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-combine-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", - "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-chunked": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", - "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-numeric-character-reference/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-decode-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", - "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-string/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-string/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", - "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-events-to-acorn": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz", - "integrity": "sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/acorn": "^4.0.0", - "@types/estree": "^1.0.0", - "@types/unist": "^3.0.0", - "devlop": "^1.0.0", - "estree-util-visit": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "vfile-message": "^4.0.0" - } - }, - "node_modules/micromark-util-events-to-acorn/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-html-tag-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", - "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-normalize-identifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", - "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-normalize-identifier/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-resolve-all": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", - "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-sanitize-uri": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", - "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-sanitize-uri/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-sanitize-uri/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-subtokenize": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", - "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-subtokenize/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-symbol": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", - "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-types": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", - "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "license": "MIT", - "dependencies": { - "mime-db": "~1.33.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", - "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", - "license": "MIT", - "dependencies": { - "schema-utils": "^4.0.0", - "tapable": "^2.2.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "license": "ISC" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mkdirp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", - "integrity": "sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==", - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", - "license": "MIT/X11", - "engines": { - "node": "*" - } - }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" - }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/mrmime": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", - "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "license": "MIT", - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" - }, - "node_modules/negotiator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", - "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "license": "MIT" - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "license": "MIT", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-abi": { - "version": "3.71.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.71.0.tgz", - "integrity": "sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-addon-api": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", - "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==" - }, - "node_modules/node-emoji": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.3.tgz", - "integrity": "sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==", - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^4.6.0", - "char-regex": "^1.0.2", - "emojilib": "^2.4.0", - "skin-tone": "^2.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "license": "(BSD-3-Clause OR GPL-2.0)", - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", - "license": "MIT" - }, - "node_modules/non-layered-tidy-tree-layout": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz", - "integrity": "sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==", - "license": "MIT" - }, - "node_modules/nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", - "license": "MIT", - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", - "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/not": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/not/-/not-0.1.0.tgz", - "integrity": "sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA==" - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==", - "license": "MIT" - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/null-loader": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-4.0.1.tgz", - "integrity": "sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/null-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/null-loader/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/null-loader/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/null-loader/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "license": "MIT" - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/oniguruma-to-js": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/oniguruma-to-js/-/oniguruma-to-js-0.4.3.tgz", - "integrity": "sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "regex": "^4.3.2" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "license": "MIT", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "license": "(WTFPL OR MIT)", - "bin": { - "opener": "bin/opener-bin.js" - } - }, - "node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "license": "MIT", - "engines": { - "node": ">=12.20" - } - }, - "node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "license": "MIT", - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "license": "MIT", - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "license": "MIT", - "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", - "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", - "license": "MIT", - "dependencies": { - "got": "^12.1.0", - "registry-auth-token": "^5.0.1", - "registry-url": "^6.0.0", - "semver": "^7.3.7" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "license": "MIT", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-entities": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", - "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "character-entities": "^2.0.0", - "character-entities-legacy": "^3.0.0", - "character-reference-invalid": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "is-alphanumerical": "^2.0.0", - "is-decimal": "^2.0.0", - "is-hexadecimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/parse-entities/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "license": "MIT" - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-numeric-range": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", - "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==", - "license": "ISC" - }, - "node_modules/parse5": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", - "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", - "license": "MIT", - "dependencies": { - "entities": "^4.5.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", - "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", - "license": "MIT", - "dependencies": { - "domhandler": "^5.0.3", - "parse5": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", - "license": "(WTFPL OR MIT)" - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "license": "MIT" - }, - "node_modules/path-to-regexp": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", - "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", - "license": "MIT", - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pkg-dir": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", - "license": "MIT", - "dependencies": { - "find-up": "^6.3.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "license": "MIT", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "license": "MIT", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "license": "MIT", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-up/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "license": "MIT", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss": { - "version": "8.4.47", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", - "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.1.0", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-calc": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", - "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.11", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/postcss-colormin": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", - "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-api": "^3.0.0", - "colord": "^2.9.3", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-convert-values": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", - "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-discard-comments": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", - "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", - "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-discard-empty": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", - "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", - "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-discard-unused": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz", - "integrity": "sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-loader": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.4.tgz", - "integrity": "sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==", - "license": "MIT", - "dependencies": { - "cosmiconfig": "^8.3.5", - "jiti": "^1.20.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - } - }, - "node_modules/postcss-merge-idents": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz", - "integrity": "sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==", - "license": "MIT", - "dependencies": { - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", - "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^6.1.1" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-merge-rules": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", - "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^4.0.2", - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", - "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", - "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", - "license": "MIT", - "dependencies": { - "colord": "^2.9.3", - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-minify-params": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", - "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", - "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", - "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", - "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", - "license": "MIT", - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", - "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", - "license": "ISC", - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "license": "ISC", - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", - "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", - "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", - "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", - "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-string": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", - "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", - "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", - "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-url": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", - "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", - "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-ordered-values": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", - "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", - "license": "MIT", - "dependencies": { - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-reduce-idents": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz", - "integrity": "sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", - "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", - "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-sort-media-queries": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz", - "integrity": "sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==", - "license": "MIT", - "dependencies": { - "sort-css-media-queries": "2.2.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.4.23" - } - }, - "node_modules/postcss-svgo": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", - "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^3.2.0" - }, - "engines": { - "node": "^14 || ^16 || >= 18" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", - "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "license": "MIT" - }, - "node_modules/postcss-zindex": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-6.0.2.tgz", - "integrity": "sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/prebuild-install": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz", - "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==", - "dependencies": { - "detect-libc": "^2.0.0", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^3.3.0", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^4.0.0", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - }, - "bin": { - "prebuild-install": "bin.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/prebuild-install/node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/prebuild-install/node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, - "node_modules/pretty-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", - "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/prism-react-renderer": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.3.1.tgz", - "integrity": "sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==", - "license": "MIT", - "dependencies": { - "@types/prismjs": "^1.26.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": ">=16.0.0" - } - }, - "node_modules/prismjs": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", - "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "license": "MIT" - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/property-information": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", - "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", - "license": "MIT", - "dependencies": { - "xtend": "^4.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "license": "ISC" - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/pump": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", - "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/punycode.js": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", - "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/pupa": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", - "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", - "license": "MIT", - "dependencies": { - "escape-goat": "^4.0.0" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - "license": "MIT", - "dependencies": { - "inherits": "~2.0.3" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/queue-tick": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==" - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dev-utils": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", - "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.16.0", - "address": "^1.1.2", - "browserslist": "^4.18.1", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "detect-port-alt": "^1.1.6", - "escape-string-regexp": "^4.0.0", - "filesize": "^8.0.6", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.5.0", - "global-modules": "^2.0.0", - "globby": "^11.0.4", - "gzip-size": "^6.0.0", - "immer": "^9.0.7", - "is-root": "^2.1.0", - "loader-utils": "^3.2.0", - "open": "^8.4.0", - "pkg-up": "^3.1.0", - "prompts": "^2.4.2", - "react-error-overlay": "^6.0.11", - "recursive-readdir": "^2.2.2", - "shell-quote": "^1.7.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/react-dev-utils/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/loader-utils": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", - "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", - "license": "MIT", - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/react-dev-utils/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/react-dev-utils/node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" - }, - "peerDependencies": { - "react": "^18.2.0" - } - }, - "node_modules/react-error-overlay": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", - "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==", - "license": "MIT" - }, - "node_modules/react-fast-compare": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", - "license": "MIT" - }, - "node_modules/react-helmet-async": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz", - "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==", - "license": "Apache-2.0", - "dependencies": { - "@babel/runtime": "^7.12.5", - "invariant": "^2.2.4", - "prop-types": "^15.7.2", - "react-fast-compare": "^3.2.0", - "shallowequal": "^1.1.0" - }, - "peerDependencies": { - "react": "^16.6.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" - }, - "node_modules/react-json-view-lite": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-1.5.0.tgz", - "integrity": "sha512-nWqA1E4jKPklL2jvHWs6s+7Na0qNgw9HCP6xehdQJeg6nPBTFZgGwyko9Q0oj+jQWKTTVRS30u0toM5wiuL3iw==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "react": "^16.13.1 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-loadable": { - "name": "@docusaurus/react-loadable", - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", - "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", - "license": "MIT", - "dependencies": { - "@types/react": "*" - }, - "peerDependencies": { - "react": "*" - } - }, - "node_modules/react-loadable-ssr-addon-v5-slorber": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz", - "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.3" - }, - "engines": { - "node": ">=10.13.0" - }, - "peerDependencies": { - "react-loadable": "*", - "webpack": ">=4.41.1 || 5.x" - } - }, - "node_modules/react-router": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", - "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "peerDependencies": { - "react": ">=15" - } - }, - "node_modules/react-router-config": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz", - "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.1.2" - }, - "peerDependencies": { - "react": ">=15", - "react-router": ">=5" - } - }, - "node_modules/react-router-dom": { - "version": "6.22.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.22.1.tgz", - "integrity": "sha512-iwMyyyrbL7zkKY7MRjOVRy+TMnS/OPusaFVxM2P11x9dzSzGmLsebkCvYirGq0DWB9K9hOspHYYtDz33gE5Duw==", - "license": "MIT", - "dependencies": { - "@remix-run/router": "1.15.1", - "react-router": "6.22.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" - } - }, - "node_modules/react-router-dom/node_modules/react-router": { - "version": "6.22.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.22.1.tgz", - "integrity": "sha512-0pdoRGwLtemnJqn1K0XHUbnKiX0S4X8CgvVVmHGOWmofESj31msHo/1YiqcJWK7Wxfq2a4uvvtS01KAQyWK/CQ==", - "license": "MIT", - "dependencies": { - "@remix-run/router": "1.15.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/react-waypoint": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/react-waypoint/-/react-waypoint-10.3.0.tgz", - "integrity": "sha512-iF1y2c1BsoXuEGz08NoahaLFIGI9gTUAAOKip96HUmylRT6DUtpgoBPjk/Y8dfcFVmfVDvUzWjNXpZyKTOV0SQ==", - "dependencies": { - "@babel/runtime": "^7.12.5", - "consolidated-events": "^1.1.0 || ^2.0.0", - "prop-types": "^15.0.0", - "react-is": "^17.0.1 || ^18.0.0" - }, - "peerDependencies": { - "react": "^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-waypoint/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/reading-time": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz", - "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==", - "license": "MIT" - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/recma-build-jsx": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", - "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-util-build-jsx": "^3.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/recma-jsx": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz", - "integrity": "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==", - "license": "MIT", - "dependencies": { - "acorn-jsx": "^5.0.0", - "estree-util-to-js": "^2.0.0", - "recma-parse": "^1.0.0", - "recma-stringify": "^1.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/recma-parse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", - "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "esast-util-from-js": "^2.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/recma-stringify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", - "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-util-to-js": "^2.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/recursive-readdir": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", - "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", - "license": "MIT", - "dependencies": { - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "license": "MIT" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", - "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "license": "MIT" - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/regex/-/regex-4.4.0.tgz", - "integrity": "sha512-uCUSuobNVeqUupowbdZub6ggI5/JZkYyJdDogddJr60L764oxC2pMZov1fQ3wM9bdyzUILDG+Sqx6NAKAz9rKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/regexpu-core": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.1.1.tgz", - "integrity": "sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==", - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.0", - "regjsgen": "^0.8.0", - "regjsparser": "^0.11.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/registry-auth-token": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", - "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", - "license": "MIT", - "dependencies": { - "@pnpm/npm-conf": "^2.1.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/registry-url": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", - "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", - "license": "MIT", - "dependencies": { - "rc": "1.2.8" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", - "license": "MIT" - }, - "node_modules/regjsparser": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.11.2.tgz", - "integrity": "sha512-3OGZZ4HoLJkkAZx/48mTXJNlmqTGOzc0o9OWQPuWpkOlXXPbyN6OafCcoXUnBqE2D3f/T5L+pWc1kdEmnfnRsA==", - "license": "BSD-2-Clause", - "dependencies": { - "jsesc": "~3.0.2" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/rehype-parse": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-7.0.1.tgz", - "integrity": "sha512-fOiR9a9xH+Le19i4fGzIEowAbwG7idy2Jzs4mOrFWBSJ0sNUgy0ev871dwWnbOo371SjgjG4pwzrbgSVrKxecw==", - "license": "MIT", - "dependencies": { - "hast-util-from-parse5": "^6.0.0", - "parse5": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-parse/node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "license": "MIT" - }, - "node_modules/rehype-raw": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", - "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "hast-util-raw": "^9.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-recma": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", - "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/hast": "^3.0.0", - "hast-util-to-estree": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/remark-directive": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-3.0.0.tgz", - "integrity": "sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-directive": "^3.0.0", - "micromark-extension-directive": "^3.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-emoji": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-4.0.1.tgz", - "integrity": "sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.2", - "emoticon": "^4.0.1", - "mdast-util-find-and-replace": "^3.0.1", - "node-emoji": "^2.1.0", - "unified": "^11.0.4" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/remark-frontmatter": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz", - "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-frontmatter": "^2.0.0", - "micromark-extension-frontmatter": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-gfm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", - "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-gfm": "^3.0.0", - "micromark-extension-gfm": "^3.0.0", - "remark-parse": "^11.0.0", - "remark-stringify": "^11.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-mdx": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz", - "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==", - "license": "MIT", - "dependencies": { - "mdast-util-mdx": "^3.0.0", - "micromark-extension-mdxjs": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-parse": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", - "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.1.tgz", - "integrity": "sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "mdast-util-to-hast": "^13.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-stringify": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", - "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-to-markdown": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "license": "MIT", - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, - "node_modules/renderkid/node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/renderkid/node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-like": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", - "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==", - "engines": { - "node": "*" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "license": "MIT" - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-pathname": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==", - "license": "MIT" - }, - "node_modules/responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "license": "MIT", - "dependencies": { - "lowercase-keys": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/robust-predicates": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", - "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", - "license": "Unlicense" - }, - "node_modules/rtl-detect": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.1.2.tgz", - "integrity": "sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==", - "license": "BSD-3-Clause" - }, - "node_modules/rtlcss": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz", - "integrity": "sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig==", - "license": "MIT", - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0", - "postcss": "^8.4.21", - "strip-json-comments": "^3.1.1" - }, - "bin": { - "rtlcss": "bin/rtlcss.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", - "license": "BSD-3-Clause" - }, - "node_modules/sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "license": "MIT", - "dependencies": { - "mri": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" - }, - "node_modules/sax": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "license": "ISC" - }, - "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/search-insights": { - "version": "2.17.2", - "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.2.tgz", - "integrity": "sha512-zFNpOpUO+tY2D85KrxJ+aqwnIfdEGi06UH2+xEb+Bp9Mwznmauqc9djbnBibJO5mpfUPPa8st6Sx65+vbeO45g==", - "license": "MIT", - "peer": true - }, - "node_modules/section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "license": "MIT" - }, - "node_modules/selfsigned": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", - "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", - "license": "MIT", - "dependencies": { - "@types/node-forge": "^1.3.0", - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", - "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", - "license": "MIT", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/send/node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-handler": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.6.tgz", - "integrity": "sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==", - "license": "MIT", - "dependencies": { - "bytes": "3.0.0", - "content-disposition": "0.5.2", - "mime-types": "2.1.18", - "minimatch": "3.1.2", - "path-is-inside": "1.0.2", - "path-to-regexp": "3.3.0", - "range-parser": "1.2.0" - } - }, - "node_modules/serve-handler/node_modules/path-to-regexp": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.3.0.tgz", - "integrity": "sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==", - "license": "MIT" - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "license": "MIT", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "license": "ISC" - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "license": "ISC" - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "license": "MIT", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", - "license": "MIT" - }, - "node_modules/sharp": { - "version": "0.32.6", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz", - "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==", - "hasInstallScript": true, - "dependencies": { - "color": "^4.2.3", - "detect-libc": "^2.0.2", - "node-addon-api": "^6.1.0", - "prebuild-install": "^7.1.1", - "semver": "^7.5.4", - "simple-get": "^4.0.1", - "tar-fs": "^3.0.4", - "tunnel-agent": "^0.6.0" - }, - "engines": { - "node": ">=14.15.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "license": "BSD-3-Clause", - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/shiki": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.22.2.tgz", - "integrity": "sha512-3IZau0NdGKXhH2bBlUk4w1IHNxPh6A5B2sUpyY+8utLu2j/h1QpFkAaUA1bAMxOWWGtTWcAh531vnS4NJKS/lA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/core": "1.22.2", - "@shikijs/engine-javascript": "1.22.2", - "@shikijs/engine-oniguruma": "1.22.2", - "@shikijs/types": "1.22.2", - "@shikijs/vscode-textmate": "^9.3.0", - "@types/hast": "^3.0.4" - } - }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "license": "ISC" - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/simple-get": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "decompress-response": "^6.0.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - }, - "node_modules/sirv": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", - "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", - "license": "MIT", - "dependencies": { - "@polka/url": "^1.0.0-next.24", - "mrmime": "^2.0.0", - "totalist": "^3.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "license": "MIT" - }, - "node_modules/sitemap": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.2.tgz", - "integrity": "sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==", - "license": "MIT", - "dependencies": { - "@types/node": "^17.0.5", - "@types/sax": "^1.2.1", - "arg": "^5.0.0", - "sax": "^1.2.4" - }, - "bin": { - "sitemap": "dist/cli.js" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=5.6.0" - } - }, - "node_modules/sitemap/node_modules/@types/node": { - "version": "17.0.45", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", - "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", - "license": "MIT" - }, - "node_modules/skin-tone": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", - "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", - "license": "MIT", - "dependencies": { - "unicode-emoji-modifier-base": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "license": "MIT", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "license": "MIT", - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/sockjs/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/sort-css-media-queries": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz", - "integrity": "sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==", - "license": "MIT", - "engines": { - "node": ">= 6.3.0" - } - }, - "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/space-separated-tokens": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "license": "BSD-3-Clause" - }, - "node_modules/srcset": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz", - "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/std-env": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", - "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", - "license": "MIT" - }, - "node_modules/streamx": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.1.tgz", - "integrity": "sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==", - "dependencies": { - "fast-fifo": "^1.3.2", - "queue-tick": "^1.0.1", - "text-decoder": "^1.1.0" - }, - "optionalDependencies": { - "bare-events": "^2.2.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/stringify-entities": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", - "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", - "license": "MIT", - "dependencies": { - "character-entities-html4": "^2.0.0", - "character-entities-legacy": "^3.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "license": "BSD-2-Clause", - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/style-to-object": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", - "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", - "license": "MIT", - "dependencies": { - "inline-style-parser": "0.2.4" - } - }, - "node_modules/stylehacks": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", - "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/stylis": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.4.tgz", - "integrity": "sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now==", - "license": "MIT" - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", - "license": "MIT" - }, - "node_modules/svgo": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", - "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", - "license": "MIT", - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^5.1.0", - "css-tree": "^2.3.1", - "css-what": "^6.1.0", - "csso": "^5.0.5", - "picocolors": "^1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/svgo" - } - }, - "node_modules/svgo/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/tar-fs": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.6.tgz", - "integrity": "sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==", - "dependencies": { - "pump": "^3.0.0", - "tar-stream": "^3.1.5" - }, - "optionalDependencies": { - "bare-fs": "^2.1.1", - "bare-path": "^2.1.0" - } - }, - "node_modules/tar-stream": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", - "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", - "dependencies": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, - "node_modules/terser": { - "version": "5.36.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", - "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", - "license": "BSD-2-Clause", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/terser-webpack-plugin/node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/terser-webpack-plugin/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "license": "MIT" - }, - "node_modules/text-decoder": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.1.tgz", - "integrity": "sha512-x9v3H/lTKIJKQQe7RPQkLfKAnc9lUTkWDypIQgTzPJAq+5/GCDHonmshfvlsNSj58yyshbIJJDLmU15qNERrXQ==" - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "license": "MIT" - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "license": "MIT" - }, - "node_modules/tiny-invariant": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", - "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", - "license": "MIT" - }, - "node_modules/tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", - "license": "MIT" - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/to-vfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-6.1.0.tgz", - "integrity": "sha512-BxX8EkCxOAZe+D/ToHdDsJcVI4HqQfmw0tCkp31zf3dNP/XWIAjU4CmeuSwsSoOzOTqHPOL0KUzyZqJplkD0Qw==", - "license": "MIT", - "dependencies": { - "is-buffer": "^2.0.0", - "vfile": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/to-vfile/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "license": "MIT" - }, - "node_modules/to-vfile/node_modules/unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/to-vfile/node_modules/vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/to-vfile/node_modules/vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/totalist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", - "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/trough": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", - "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/ts-dedent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", - "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", - "license": "MIT", - "engines": { - "node": ">=6.10" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/type-is/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/type-is/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typedoc": { - "version": "0.26.11", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.26.11.tgz", - "integrity": "sha512-sFEgRRtrcDl2FxVP58Ze++ZK2UQAEvtvvH8rRlig1Ja3o7dDaMHmaBfvJmdGnNEFaLTpQsN8dpvZaTqJSu/Ugw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "lunr": "^2.3.9", - "markdown-it": "^14.1.0", - "minimatch": "^9.0.5", - "shiki": "^1.16.2", - "yaml": "^2.5.1" - }, - "bin": { - "typedoc": "bin/typedoc" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x" - } - }, - "node_modules/typedoc-plugin-markdown": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-4.2.9.tgz", - "integrity": "sha512-Wqmx+7ezKFgtTklEq/iUhQ5uFeBDhAT6wiS2na9cFLidIpl9jpDHJy/COYh8jUZXgIRIZVQ/bPNjyrnPFoDwzg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "typedoc": "0.26.x" - } - }, - "node_modules/typedoc/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/typedoc/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", - "license": "Apache-2.0", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/uc.micro": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", - "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", - "dev": true, - "license": "MIT" - }, - "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "license": "MIT" - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", - "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-emoji-modifier-base": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", - "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "license": "MIT", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", - "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unified": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", - "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unique-string": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", - "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", - "license": "MIT", - "dependencies": { - "crypto-random-string": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/unist-util-find-after": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-3.0.0.tgz", - "integrity": "sha512-ojlBqfsBftYXExNu3+hHLfJQ/X1jYY/9vdm4yZWjIbf0VuWF6CRufci1ZyoD/wV2TYMKxXUoNuoqwy+CkgzAiQ==", - "license": "MIT", - "dependencies": { - "unist-util-is": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", - "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-position-from-estree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", - "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents/node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit/node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/update-notifier": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", - "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", - "license": "BSD-2-Clause", - "dependencies": { - "boxen": "^7.0.0", - "chalk": "^5.0.1", - "configstore": "^6.0.0", - "has-yarn": "^3.0.0", - "import-lazy": "^4.0.0", - "is-ci": "^3.0.1", - "is-installed-globally": "^0.4.0", - "is-npm": "^6.0.0", - "is-yarn-global": "^0.4.0", - "latest-version": "^7.0.0", - "pupa": "^3.1.0", - "semver": "^7.3.7", - "semver-diff": "^4.0.0", - "xdg-basedir": "^5.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/boxen": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", - "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", - "license": "MIT", - "dependencies": { - "ansi-align": "^3.0.1", - "camelcase": "^7.0.1", - "chalk": "^5.2.0", - "cli-boxes": "^3.0.0", - "string-width": "^5.1.2", - "type-fest": "^2.13.0", - "widest-line": "^4.0.1", - "wrap-ansi": "^8.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/update-notifier/node_modules/camelcase": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", - "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/update-notifier/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-loader": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", - "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "mime-types": "^2.1.27", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "file-loader": "*", - "webpack": "^4.0.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "file-loader": { - "optional": true - } - } - }, - "node_modules/url-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/url-loader/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/url-loader/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" - }, - "node_modules/url-loader/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/url-loader/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/url-loader/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT" - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", - "license": "MIT" - }, - "node_modules/utility-types": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", - "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/uvu": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", - "license": "MIT", - "dependencies": { - "dequal": "^2.0.0", - "diff": "^5.0.0", - "kleur": "^4.0.3", - "sade": "^1.7.3" - }, - "bin": { - "uvu": "bin.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/uvu/node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/value-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==", - "license": "MIT" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-location": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", - "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/watchpack": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", - "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", - "license": "MIT", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "license": "MIT", - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/web-namespaces": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", - "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/web-worker": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.3.0.tgz", - "integrity": "sha512-BSR9wyRsy/KOValMgd5kMyr3JzpdeoR9KVId8u5GVlTTAtNChlsE4yTxeY7zMdNSyOmoKBv8NH2qeRY9Tg+IaA==", - "license": "Apache-2.0" - }, - "node_modules/webpack": { - "version": "5.96.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz", - "integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==", - "license": "MIT", - "dependencies": { - "@types/eslint-scope": "^3.7.7", - "@types/estree": "^1.0.6", - "@webassemblyjs/ast": "^1.12.1", - "@webassemblyjs/wasm-edit": "^1.12.1", - "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.14.0", - "browserslist": "^4.24.0", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.1", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-bundle-analyzer": { - "version": "4.10.2", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz", - "integrity": "sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==", - "license": "MIT", - "dependencies": { - "@discoveryjs/json-ext": "0.5.7", - "acorn": "^8.0.4", - "acorn-walk": "^8.0.0", - "commander": "^7.2.0", - "debounce": "^1.2.1", - "escape-string-regexp": "^4.0.0", - "gzip-size": "^6.0.0", - "html-escaper": "^2.0.2", - "opener": "^1.5.2", - "picocolors": "^1.0.0", - "sirv": "^2.0.3", - "ws": "^7.3.1" - }, - "bin": { - "webpack-bundle-analyzer": "lib/bin/analyzer.js" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-dev-middleware": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", - "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", - "license": "MIT", - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack-dev-middleware/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack-dev-middleware/node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack-dev-server": { - "version": "4.15.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", - "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", - "license": "MIT", - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.4", - "ws": "^8.13.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", - "license": "MIT", - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" - }, - "node_modules/webpack/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpackbar": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-5.0.2.tgz", - "integrity": "sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==", - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "consola": "^2.15.3", - "pretty-time": "^1.1.0", - "std-env": "^3.0.1" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "webpack": "3 || 4 || 5" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "license": "Apache-2.0", - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "license": "Apache-2.0", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "license": "ISC", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/wide-align/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/wide-align/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/widest-line": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", - "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", - "license": "MIT", - "dependencies": { - "string-width": "^5.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "license": "MIT" - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xdg-basedir": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", - "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/xml-js": { - "version": "1.6.11", - "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", - "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", - "license": "MIT", - "dependencies": { - "sax": "^1.2.4" - }, - "bin": { - "xml-js": "bin/cli.js" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "license": "MIT", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "license": "ISC" - }, - "node_modules/yaml": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.0.tgz", - "integrity": "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==", - "dev": true, - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yocto-queue": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", - "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", - "license": "MIT", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zwitch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", - "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - } - } -} diff --git a/docs/package.json b/docs/package.json index 344ee660614..d284ffb6918 100644 --- a/docs/package.json +++ b/docs/package.json @@ -15,10 +15,12 @@ "write-heading-ids": "docusaurus write-heading-ids" }, "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/plugin-ideal-image": "^3.5.2", - "@docusaurus/preset-classic": "3.5.2", - "@docusaurus/theme-mermaid": "^3.5.2", + "@docusaurus/core": "^3.6.0", + "@docusaurus/plugin-content-blog": "^3.6.0", + "@docusaurus/plugin-content-docs": "^3.6.0", + "@docusaurus/plugin-ideal-image": "^3.6.0", + "@docusaurus/preset-classic": "^3.6.0", + "@docusaurus/theme-mermaid": "^3.6.0", "@mdx-js/react": "3.0.1", "clsx": "2.1.0", "docusaurus-lunr-search": "^3.5.0", @@ -28,11 +30,11 @@ "react-router-dom": "6.22.1" }, "devDependencies": { - "@docusaurus/module-type-aliases": "3.5.2", - "@docusaurus/types": "3.5.2", + "@docusaurus/module-type-aliases": "3.6.0", + "@docusaurus/types": "3.6.0", "docusaurus-plugin-typedoc": "^1.0.5", "typedoc": "^0.26.11", - "typedoc-plugin-markdown": "4.2.9" + "typedoc-plugin-markdown": "^4.2.9" }, "browserslist": { "production": [ diff --git a/docs/sidebars.js b/docs/sidebars.js index a7ac861e122..62c64f15dfc 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -52,9 +52,10 @@ const sidebars = { label: "Community", collapsed: false, items: [ - "community/project-overview", - "community/spaces-notes", - "community/development-notes", + "community/creator-fund", + "community/notes", + "community/changelog", + "community/faq", "community/contributing", ], }, diff --git a/package.json b/package.json index 47f93f63804..282297c4c2c 100644 --- a/package.json +++ b/package.json @@ -2,30 +2,38 @@ "name": "eliza", "scripts": { "preinstall": "npx only-allow pnpm", - "build": "pnpm --dir core build", + "build": "bash ./scripts/build.sh", "build-docs": "pnpm --dir docs build", - "start:all": "pnpm --dir core start:all --isRoot", - "stop:all": "pnpm --dir core stop:all --isRoot", - "start:service:all": "pnpm --dir core start:service:all --isRoot", - "stop:service:all": "pnpm --dir core stop:service:all --isRoot", - "start": "pnpm --dir core start --isRoot", - "dev": "pnpm --dir core dev --isRoot", - "lint": "pnpm --dir core lint", + "start:all": "pnpm --filter \"@ai16z/agent\" start:all --isRoot", + "start:service:all": "pnpm --filter \"@ai16z/agent\" start:service:all --isRoot", + "stop:service:all": "pnpm --filter \"@ai16z/agent\" stop:service:all", + "start": "pnpm --filter \"@ai16z/agent\" start --isRoot", + "dev": "bash ./scripts/dev.sh", + "lint": "pnpm --dir packages/core lint && pnpm --dir packages/agent lint", "prettier-check": "npx prettier --check .", "prettier": "npx prettier --write .", "clean": "bash ./scripts/clean.sh" }, "devDependencies": { + "concurrently": "^9.1.0", "husky": "^9.1.6", "lerna": "^8.1.5", "only-allow": "^1.2.1", "prettier": "^3.3.3", - "typedoc": "^0.26.11" + "typedoc": "^0.26.11", + "typescript": "5.6.3" + }, + "pnpm": { + "overrides": { + "onnxruntime-node": "^1.20.0" + } }, "engines": { "node": ">=22" }, "dependencies": { - "typescript": "5.6.3" + "ollama-ai-provider": "^0.16.1", + "optional": "^0.1.4", + "sharp": "^0.33.5" } } diff --git a/supabase/config.toml b/packages/adapter-postgres/config.toml similarity index 100% rename from supabase/config.toml rename to packages/adapter-postgres/config.toml diff --git a/supabase/migrations/20240318103238_remote_schema.sql b/packages/adapter-postgres/migrations/20240318103238_remote_schema.sql similarity index 100% rename from supabase/migrations/20240318103238_remote_schema.sql rename to packages/adapter-postgres/migrations/20240318103238_remote_schema.sql diff --git a/packages/adapter-postgres/package.json b/packages/adapter-postgres/package.json new file mode 100644 index 00000000000..1e123b8849a --- /dev/null +++ b/packages/adapter-postgres/package.json @@ -0,0 +1,18 @@ +{ + "name": "@ai16z/adapter-postgres", + "version": "0.0.1", + "main": "src/index.ts", + "type": "module", + "types": "dist/index.d.ts", + "dependencies": { + "@ai16z/eliza": "workspace:*", + "pg": "^8.13.1" + }, + "devDependencies": { + "tsup": "^8.3.5" + }, + "scripts": { + "build": "echo 'No build step required'", + "dev": "tsup --watch" + } +} diff --git a/supabase/postgres-schema.sql b/packages/adapter-postgres/schema.sql similarity index 100% rename from supabase/postgres-schema.sql rename to packages/adapter-postgres/schema.sql diff --git a/supabase/seed.sql b/packages/adapter-postgres/seed.sql similarity index 100% rename from supabase/seed.sql rename to packages/adapter-postgres/seed.sql diff --git a/core/src/adapters/postgres.ts b/packages/adapter-postgres/src/index.ts similarity index 94% rename from core/src/adapters/postgres.ts rename to packages/adapter-postgres/src/index.ts index b97ec704b31..b081e50aea7 100644 --- a/core/src/adapters/postgres.ts +++ b/packages/adapter-postgres/src/index.ts @@ -9,8 +9,8 @@ import { type Relationship, type UUID, Participant, -} from "../core/types.ts"; -import { DatabaseAdapter } from "../core/database.ts"; +} from "@ai16z/eliza/src/types.ts"; +import { DatabaseAdapter } from "@ai16z/eliza/src/database.ts"; const { Pool } = pg; export class PostgresDatabaseAdapter extends DatabaseAdapter { @@ -352,13 +352,13 @@ export class PostgresDatabaseAdapter extends DatabaseAdapter { if (params.start) { paramCount++; sql += ` AND "createdAt" >= to_timestamp($${paramCount})`; - values.push(params.start/1000); + values.push(params.start / 1000); } if (params.end) { paramCount++; sql += ` AND "createdAt" <= to_timestamp($${paramCount})`; - values.push(params.end/1000); + values.push(params.end / 1000); } if (params.unique) { @@ -832,37 +832,4 @@ export class PostgresDatabaseAdapter extends DatabaseAdapter { } } } - -export function createLoggingDatabaseAdapter( - adapter: DatabaseAdapter -): DatabaseAdapter { - return new Proxy(adapter, { - get(target, prop, receiver) { - const value = Reflect.get(target, prop, receiver); - - if (typeof value === "function") { - return async function (...args: any[]) { - const methodName = prop.toString(); - console.log(`Calling method: ${methodName}`, { - arguments: args.map((arg) => - typeof arg === "object" ? JSON.stringify(arg) : arg - ), - }); - - try { - const result = await value.apply(this, args); - console.log( - `Method ${methodName} completed successfully` - ); - return result; - } catch (error) { - console.error(`Method ${methodName} failed:`, error); - throw error; - } - }; - } - - return value; - }, - }); -} +export default PostgresDatabaseAdapter; diff --git a/packages/adapter-sqlite/package.json b/packages/adapter-sqlite/package.json new file mode 100644 index 00000000000..a9ada525d29 --- /dev/null +++ b/packages/adapter-sqlite/package.json @@ -0,0 +1,23 @@ +{ + "name": "@ai16z/adapter-sqlite", + "version": "0.0.1", + "main": "src/index.ts", + "type": "module", + "types": "dist/index.d.ts", + "dependencies": { + "@ai16z/eliza": "workspace:*", + "@types/better-sqlite3": "7.6.11", + "sqlite-vec": "0.1.4-alpha.2", + "better-sqlite3": "11.5.0" + }, + "devDependencies": { + "tsup": "^8.3.5" + }, + "scripts": { + "build": "echo 'No build step required'", + "dev": "tsup --watch" + }, + "peerDependencies": { + "whatwg-url": "7.1.0" + } +} diff --git a/core/src/adapters/sqlite.ts b/packages/adapter-sqlite/src/index.ts similarity index 98% rename from core/src/adapters/sqlite.ts rename to packages/adapter-sqlite/src/index.ts index efafc954a93..a577dd1620b 100644 --- a/core/src/adapters/sqlite.ts +++ b/packages/adapter-sqlite/src/index.ts @@ -1,22 +1,19 @@ -import { v4 } from "uuid"; -import { load } from "./sqlite/sqlite_vec.ts"; - -import { DatabaseAdapter } from "../core/database.ts"; +import { DatabaseAdapter } from "@ai16z/eliza/src/database.ts"; +import { embeddingZeroVector } from "@ai16z/eliza/src/memory.ts"; import { Account, Actor, GoalStatus, + Participant, type Goal, type Memory, type Relationship, type UUID, - Participant, -} from "../core/types.ts"; - -import { sqliteTables } from "./sqlite/sqliteTables.ts"; - +} from "@ai16z/eliza/src/types.ts"; import { Database } from "better-sqlite3"; -import { embeddingZeroVector } from "../core/memory.ts"; +import { v4 } from "uuid"; +import { load } from "./sqlite_vec.ts"; +import { sqliteTables } from "./sqliteTables.ts"; export class SqliteDatabaseAdapter extends DatabaseAdapter { async getRoom(roomId: UUID): Promise { @@ -152,7 +149,6 @@ export class SqliteDatabaseAdapter extends DatabaseAdapter { tableName: string; agentId?: UUID; }): Promise { - console.log("getMemoriesByRoomIds", params); if (!params.tableName) { // default to messages params.tableName = "messages"; @@ -354,6 +350,8 @@ export class SqliteDatabaseAdapter extends DatabaseAdapter { ORDER BY vec_distance_L2(${opts.query_field_name}, ?) ASC LIMIT ? `; + console.log("sql", sql) + console.log("opts.query_input", opts.query_input) const memories = this.db.prepare(sql).all( opts.query_table_name, new Float32Array(opts.query_input.split(",").map(Number)), // Convert string to Float32Array diff --git a/core/src/adapters/sqlite/sqliteTables.ts b/packages/adapter-sqlite/src/sqliteTables.ts similarity index 100% rename from core/src/adapters/sqlite/sqliteTables.ts rename to packages/adapter-sqlite/src/sqliteTables.ts diff --git a/core/src/adapters/sqlite/sqlite_vec.ts b/packages/adapter-sqlite/src/sqlite_vec.ts similarity index 70% rename from core/src/adapters/sqlite/sqlite_vec.ts rename to packages/adapter-sqlite/src/sqlite_vec.ts index 2f159d22f99..c033f5ceba1 100644 --- a/core/src/adapters/sqlite/sqlite_vec.ts +++ b/packages/adapter-sqlite/src/sqlite_vec.ts @@ -1,15 +1,15 @@ import * as sqliteVec from "sqlite-vec"; import { Database } from "better-sqlite3"; -import { prettyConsole } from "../../index.ts"; +import { elizaLogger } from "../../core/src/index.ts"; // Loads the sqlite-vec extensions into the provided SQLite database export function loadVecExtensions(db: Database): void { try { // Load sqlite-vec extensions sqliteVec.load(db); - prettyConsole.log("sqlite-vec extensions loaded successfully."); + elizaLogger.log("sqlite-vec extensions loaded successfully."); } catch (error) { - prettyConsole.error("Failed to load sqlite-vec extensions:", error); + elizaLogger.error("Failed to load sqlite-vec extensions:", error); throw error; } } diff --git a/packages/adapter-sqljs/package.json b/packages/adapter-sqljs/package.json new file mode 100644 index 00000000000..e771b9a7e56 --- /dev/null +++ b/packages/adapter-sqljs/package.json @@ -0,0 +1,23 @@ +{ + "name": "@ai16z/adapter-sqljs", + "version": "0.0.1", + "main": "dist/index.js", + "type": "module", + "types": "dist/index.d.ts", + "dependencies": { + "@ai16z/eliza": "workspace:*", + "@types/sql.js": "1.4.9", + "uuid": "11.0.2", + "sql.js": "1.12.0" + }, + "devDependencies": { + "tsup": "^8.3.5" + }, + "scripts": { + "build": "echo 'No build step required'", + "dev": "tsup --watch" + }, + "peerDependencies": { + "whatwg-url": "7.1.0" + } +} diff --git a/core/src/adapters/sqljs.ts b/packages/adapter-sqljs/src/index.ts similarity index 99% rename from core/src/adapters/sqljs.ts rename to packages/adapter-sqljs/src/index.ts index b6cdf44737e..6bc01625b21 100644 --- a/core/src/adapters/sqljs.ts +++ b/packages/adapter-sqljs/src/index.ts @@ -1,6 +1,6 @@ import { v4 } from "uuid"; -import { DatabaseAdapter } from "../core/database.ts"; +import { DatabaseAdapter } from "@ai16z/eliza/src/database.ts"; import { Account, Actor, @@ -10,9 +10,9 @@ import { type Relationship, type UUID, Participant, -} from "../core/types.ts"; -import { sqliteTables } from "./sqlite/sqliteTables.ts"; -import { Database } from "./sqljs/types.ts"; +} from "@ai16z/eliza/src/types.ts"; +import { sqliteTables } from "./sqliteTables.ts"; +import { Database } from "./types.ts"; export class SqlJsDatabaseAdapter extends DatabaseAdapter { async getRoom(roomId: UUID): Promise { diff --git a/packages/adapter-sqljs/src/sqliteTables.ts b/packages/adapter-sqljs/src/sqliteTables.ts new file mode 100644 index 00000000000..ed077bbcdc3 --- /dev/null +++ b/packages/adapter-sqljs/src/sqliteTables.ts @@ -0,0 +1,94 @@ +export const sqliteTables = ` +PRAGMA foreign_keys=OFF; +BEGIN TRANSACTION; + +-- Table: accounts +CREATE TABLE IF NOT EXISTS "accounts" ( + "id" TEXT PRIMARY KEY, + "createdAt" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + "name" TEXT, + "username" TEXT, + "email" TEXT NOT NULL, + "avatarUrl" TEXT, + "details" TEXT DEFAULT '{}' CHECK(json_valid("details")) -- Ensuring details is a valid JSON field +); + +-- Table: memories +CREATE TABLE IF NOT EXISTS "memories" ( + "id" TEXT PRIMARY KEY, + "type" TEXT NOT NULL, + "createdAt" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + "content" TEXT NOT NULL, + "embedding" BLOB NOT NULL, -- TODO: EMBEDDING ARRAY, CONVERT TO BEST FORMAT FOR SQLITE-VSS (JSON?) + "userId" TEXT, + "roomId" TEXT, + "agentId" TEXT, + "unique" INTEGER DEFAULT 1 NOT NULL, + FOREIGN KEY ("userId") REFERENCES "accounts"("id"), + FOREIGN KEY ("roomId") REFERENCES "rooms"("id"), + FOREIGN KEY ("agentId") REFERENCES "accounts"("id") +); + +-- Table: goals +CREATE TABLE IF NOT EXISTS "goals" ( + "id" TEXT PRIMARY KEY, + "createdAt" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + "userId" TEXT, + "name" TEXT, + "status" TEXT, + "description" TEXT, + "roomId" TEXT, + "objectives" TEXT DEFAULT '[]' NOT NULL CHECK(json_valid("objectives")) -- Ensuring objectives is a valid JSON array +); + +-- Table: logs +CREATE TABLE IF NOT EXISTS "logs" ( + "id" TEXT PRIMARY KEY, + "createdAt" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + "userId" TEXT NOT NULL, + "body" TEXT NOT NULL, + "type" TEXT NOT NULL, + "roomId" TEXT NOT NULL +); + +-- Table: participants +CREATE TABLE IF NOT EXISTS "participants" ( + "createdAt" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + "userId" TEXT, + "roomId" TEXT, + "userState" TEXT, + "id" TEXT PRIMARY KEY, + "last_message_read" TEXT, + FOREIGN KEY ("userId") REFERENCES "accounts"("id"), + FOREIGN KEY ("roomId") REFERENCES "rooms"("id") +); + +-- Table: relationships +CREATE TABLE IF NOT EXISTS "relationships" ( + "createdAt" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + "userA" TEXT NOT NULL, + "userB" TEXT NOT NULL, + "status" "text", + "id" TEXT PRIMARY KEY, + "userId" TEXT NOT NULL, + FOREIGN KEY ("userA") REFERENCES "accounts"("id"), + FOREIGN KEY ("userB") REFERENCES "accounts"("id"), + FOREIGN KEY ("userId") REFERENCES "accounts"("id") +); + +-- Table: rooms +CREATE TABLE IF NOT EXISTS "rooms" ( + "id" TEXT PRIMARY KEY, + "createdAt" TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +-- Index: relationships_id_key +CREATE UNIQUE INDEX IF NOT EXISTS "relationships_id_key" ON "relationships" ("id"); + +-- Index: memories_id_key +CREATE UNIQUE INDEX IF NOT EXISTS "memories_id_key" ON "memories" ("id"); + +-- Index: participants_id_key +CREATE UNIQUE INDEX IF NOT EXISTS "participants_id_key" ON "participants" ("id"); + +COMMIT;`; diff --git a/core/src/adapters/sqljs/types.ts b/packages/adapter-sqljs/src/types.ts similarity index 100% rename from core/src/adapters/sqljs/types.ts rename to packages/adapter-sqljs/src/types.ts diff --git a/packages/adapter-supabase/config.toml b/packages/adapter-supabase/config.toml new file mode 100644 index 00000000000..c1f016d4a40 --- /dev/null +++ b/packages/adapter-supabase/config.toml @@ -0,0 +1,159 @@ +# A string used to distinguish different Supabase projects on the same host. Defaults to the +# working directory name when running `supabase init`. +project_id = "eliza" + +[api] +enabled = true +# Port to use for the API URL. +port = 54321 +# Schemas to expose in your API. Tables, views and stored procedures in this schema will get API +# endpoints. public and storage are always included. +schemas = ["public", "storage", "graphql_public"] +# Extra schemas to add to the search_path of every request. public is always included. +extra_search_path = ["public", "extensions"] +# The maximum number of rows returns from a view, table, or stored procedure. Limits payload size +# for accidental or malicious requests. +max_rows = 1000 + +[db] +# Port to use for the local database URL. +port = 54322 +# Port used by db diff command to initialize the shadow database. +shadow_port = 54320 +# The database major version to use. This has to be the same as your remote database's. Run `SHOW +# server_version;` on the remote database to check. +major_version = 15 + +[db.pooler] +enabled = false +# Port to use for the local connection pooler. +port = 54329 +# Specifies when a server connection can be reused by other clients. +# Configure one of the supported pooler modes: `transaction`, `session`. +pool_mode = "transaction" +# How many server connections to allow per user/database pair. +default_pool_size = 20 +# Maximum number of client connections allowed. +max_client_conn = 100 + +[realtime] +enabled = true +# Bind realtime via either IPv4 or IPv6. (default: IPv6) +# ip_version = "IPv6" +# The maximum length in bytes of HTTP request headers. (default: 4096) +# max_header_length = 4096 + +[studio] +enabled = true +# Port to use for Supabase Studio. +port = 54323 +# External URL of the API server that frontend connects to. +api_url = "http://127.0.0.1" + +# Email testing server. Emails sent with the local dev setup are not actually sent - rather, they +# are monitored, and you can view the emails that would have been sent from the web interface. +[inbucket] +enabled = true +# Port to use for the email testing server web interface. +port = 54324 +# Uncomment to expose additional ports for testing user applications that send emails. +# smtp_port = 54325 +# pop3_port = 54326 + +[storage] +enabled = true +# The maximum file size allowed (e.g. "5MB", "500KB"). +file_size_limit = "50MiB" + +[auth] +enabled = true +# The base URL of your website. Used as an allow-list for redirects and for constructing URLs used +# in emails. +site_url = "http://127.0.0.1:3000" +# A list of *exact* URLs that auth providers are permitted to redirect to post authentication. +additional_redirect_urls = ["https://127.0.0.1:3000"] +# How long tokens are valid for, in seconds. Defaults to 3600 (1 hour), maximum 604,800 (1 week). +jwt_expiry = 3600 +# If disabled, the refresh token will never expire. +enable_refresh_token_rotation = true +# Allows refresh tokens to be reused after expiry, up to the specified interval in seconds. +# Requires enable_refresh_token_rotation = true. +refresh_token_reuse_interval = 10 +# Allow/disallow new user signups to your project. +enable_signup = true +# Allow/disallow testing manual linking of accounts +enable_manual_linking = false + +[auth.email] +# Allow/disallow new user signups via email to your project. +enable_signup = true +# If enabled, a user will be required to confirm any email change on both the old, and new email +# addresses. If disabled, only the new email is required to confirm. +double_confirm_changes = true +# If enabled, users need to confirm their email address before signing in. +enable_confirmations = false + +# Uncomment to customize email template +# [auth.email.template.invite] +# subject = "You have been invited" +# content_path = "./supabase/templates/invite.html" + +[auth.sms] +# Allow/disallow new user signups via SMS to your project. +enable_signup = true +# If enabled, users need to confirm their phone number before signing in. +enable_confirmations = false +# Template for sending OTP to users +template = "Your code is {{ .Code }} ." + +# Use pre-defined map of phone number to OTP for testing. +[auth.sms.test_otp] +# 4152127777 = "123456" + +# This hook runs before a token is issued and allows you to add additional claims based on the authentication method used. +[auth.hook.custom_access_token] +# enabled = true +# uri = "pg-functions:////" + + +# Configure one of the supported SMS providers: `twilio`, `twilio_verify`, `messagebird`, `textlocal`, `vonage`. +[auth.sms.twilio] +enabled = false +account_sid = "" +message_service_sid = "" +# DO NOT commit your Twilio auth token to git. Use environment variable substitution instead: +auth_token = "env(SUPABASE_AUTH_SMS_TWILIO_AUTH_TOKEN)" + +# Use an external OAuth provider. The full list of providers are: `apple`, `azure`, `bitbucket`, +# `discord`, `facebook`, `github`, `gitlab`, `google`, `keycloak`, `linkedin_oidc`, `notion`, `twitch`, +# `twitter`, `slack`, `spotify`, `workos`, `zoom`. +[auth.external.apple] +enabled = false +client_id = "" +# DO NOT commit your OAuth provider secret to git. Use environment variable substitution instead: +secret = "env(SUPABASE_AUTH_EXTERNAL_APPLE_SECRET)" +# Overrides the default auth redirectUrl. +redirect_uri = "" +# Overrides the default auth provider URL. Used to support self-hosted gitlab, single-tenant Azure, +# or any other third-party OIDC providers. +url = "" + +[analytics] +enabled = false +port = 54327 +vector_port = 54328 +# Configure one of the supported backends: `postgres`, `bigquery`. +backend = "postgres" + +# Experimental features may be deprecated any time +[experimental] +# Configures Postgres storage engine to use OrioleDB (S3) +orioledb_version = "" +# Configures S3 bucket URL, eg. .s3-.amazonaws.com +s3_host = "env(S3_HOST)" +# Configures S3 bucket region, eg. us-east-1 +s3_region = "env(S3_REGION)" +# Configures AWS_ACCESS_KEY_ID for S3 bucket +s3_access_key = "env(S3_ACCESS_KEY)" +# Configures AWS_SECRET_ACCESS_KEY for S3 bucket +s3_secret_key = "env(S3_SECRET_KEY)" diff --git a/packages/adapter-supabase/package.json b/packages/adapter-supabase/package.json new file mode 100644 index 00000000000..6e38b636234 --- /dev/null +++ b/packages/adapter-supabase/package.json @@ -0,0 +1,21 @@ +{ + "name": "@ai16z/adapter-supabase", + "version": "0.0.1", + "main": "dist/index.js", + "type": "module", + "types": "dist/index.d.ts", + "dependencies": { + "@ai16z/eliza": "workspace:*", + "@supabase/supabase-js": "2.46.1" + }, + "devDependencies": { + "tsup": "^8.3.5" + }, + "scripts": { + "build": "echo 'No build step required'", + "dev": "tsup --watch" + }, + "peerDependencies": { + "whatwg-url": "7.1.0" + } +} diff --git a/packages/adapter-supabase/schema.sql b/packages/adapter-supabase/schema.sql new file mode 100644 index 00000000000..b2e77227c2f --- /dev/null +++ b/packages/adapter-supabase/schema.sql @@ -0,0 +1,103 @@ +-- Enable pgvector extension + +-- -- Drop existing tables and extensions +-- DROP EXTENSION IF EXISTS vector CASCADE; +-- DROP TABLE IF EXISTS relationships CASCADE; +-- DROP TABLE IF EXISTS participants CASCADE; +-- DROP TABLE IF EXISTS logs CASCADE; +-- DROP TABLE IF EXISTS goals CASCADE; +-- DROP TABLE IF EXISTS memories CASCADE; +-- DROP TABLE IF EXISTS rooms CASCADE; +-- DROP TABLE IF EXISTS accounts CASCADE; + + +CREATE EXTENSION IF NOT EXISTS vector; + +BEGIN; + +CREATE TABLE accounts ( + "id" UUID PRIMARY KEY, + "createdAt" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, + "name" TEXT, + "username" TEXT, + "email" TEXT NOT NULL, + "avatarUrl" TEXT, + "details" JSONB DEFAULT '{}'::jsonb +); + +CREATE TABLE rooms ( + "id" UUID PRIMARY KEY, + "createdAt" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP +); + +CREATE TABLE memories ( + "id" UUID PRIMARY KEY, + "type" TEXT NOT NULL, + "createdAt" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, + "content" JSONB NOT NULL, + "embedding" vector(1536), + "userId" UUID REFERENCES accounts("id"), + "agentId" UUID REFERENCES accounts("id"), + "roomId" UUID REFERENCES rooms("id"), + "unique" BOOLEAN DEFAULT true NOT NULL, + CONSTRAINT fk_room FOREIGN KEY ("roomId") REFERENCES rooms("id") ON DELETE CASCADE, + CONSTRAINT fk_user FOREIGN KEY ("userId") REFERENCES accounts("id") ON DELETE CASCADE, + CONSTRAINT fk_agent FOREIGN KEY ("agentId") REFERENCES accounts("id") ON DELETE CASCADE +); + +CREATE TABLE goals ( + "id" UUID PRIMARY KEY, + "createdAt" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, + "userId" UUID REFERENCES accounts("id"), + "name" TEXT, + "status" TEXT, + "description" TEXT, + "roomId" UUID REFERENCES rooms("id"), + "objectives" JSONB DEFAULT '[]'::jsonb NOT NULL, + CONSTRAINT fk_room FOREIGN KEY ("roomId") REFERENCES rooms("id") ON DELETE CASCADE, + CONSTRAINT fk_user FOREIGN KEY ("userId") REFERENCES accounts("id") ON DELETE CASCADE +); + +CREATE TABLE logs ( + "id" UUID PRIMARY KEY DEFAULT gen_random_uuid(), + "createdAt" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, + "userId" UUID NOT NULL REFERENCES accounts("id"), + "body" JSONB NOT NULL, + "type" TEXT NOT NULL, + "roomId" UUID NOT NULL REFERENCES rooms("id"), + CONSTRAINT fk_room FOREIGN KEY ("roomId") REFERENCES rooms("id") ON DELETE CASCADE, + CONSTRAINT fk_user FOREIGN KEY ("userId") REFERENCES accounts("id") ON DELETE CASCADE +); + +CREATE TABLE participants ( + "id" UUID PRIMARY KEY, + "createdAt" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, + "userId" UUID REFERENCES accounts("id"), + "roomId" UUID REFERENCES rooms("id"), + "userState" TEXT, + "last_message_read" TEXT, + UNIQUE("userId", "roomId"), + CONSTRAINT fk_room FOREIGN KEY ("roomId") REFERENCES rooms("id") ON DELETE CASCADE, + CONSTRAINT fk_user FOREIGN KEY ("userId") REFERENCES accounts("id") ON DELETE CASCADE +); + +CREATE TABLE relationships ( + "id" UUID PRIMARY KEY, + "createdAt" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, + "userA" UUID NOT NULL REFERENCES accounts("id"), + "userB" UUID NOT NULL REFERENCES accounts("id"), + "status" TEXT, + "userId" UUID NOT NULL REFERENCES accounts("id"), + CONSTRAINT fk_user_a FOREIGN KEY ("userA") REFERENCES accounts("id") ON DELETE CASCADE, + CONSTRAINT fk_user_b FOREIGN KEY ("userB") REFERENCES accounts("id") ON DELETE CASCADE, + CONSTRAINT fk_user FOREIGN KEY ("userId") REFERENCES accounts("id") ON DELETE CASCADE +); + +-- Indexes +CREATE INDEX idx_memories_embedding ON memories USING hnsw ("embedding" vector_cosine_ops); +CREATE INDEX idx_memories_type_room ON memories("type", "roomId"); +CREATE INDEX idx_participants_user ON participants("userId"); +CREATE INDEX idx_participants_room ON participants("roomId"); +CREATE INDEX idx_relationships_users ON relationships("userA", "userB"); + +COMMIT; \ No newline at end of file diff --git a/packages/adapter-supabase/seed.sql b/packages/adapter-supabase/seed.sql new file mode 100644 index 00000000000..063c5fbe532 --- /dev/null +++ b/packages/adapter-supabase/seed.sql @@ -0,0 +1,3 @@ +INSERT INTO public.accounts (id, name, email, avatarUrl, details) VALUES ('00000000-0000-0000-0000-000000000000', 'Default Agent', 'default@agent.com', '', '{}'); +INSERT INTO public.rooms (id) VALUES ('00000000-0000-0000-0000-000000000000'); +INSERT INTO public.participants (userId, roomId) VALUES ('00000000-0000-0000-0000-000000000000', '00000000-0000-0000-0000-000000000000'); diff --git a/core/src/adapters/supabase.ts b/packages/adapter-supabase/src/index.ts similarity index 99% rename from core/src/adapters/supabase.ts rename to packages/adapter-supabase/src/index.ts index 0b97f895b05..478dc32a047 100644 --- a/core/src/adapters/supabase.ts +++ b/packages/adapter-supabase/src/index.ts @@ -9,8 +9,8 @@ import { type UUID, Participant, Room, -} from "../core/types.ts"; -import { DatabaseAdapter } from "../core/database.ts"; +} from "@ai16z/eliza/src/types.ts"; +import { DatabaseAdapter } from "@ai16z/eliza/src/database.ts"; import { v4 as uuid } from "uuid"; export class SupabaseDatabaseAdapter extends DatabaseAdapter { async getRoom(roomId: UUID): Promise { diff --git a/packages/agent/.gitignore b/packages/agent/.gitignore new file mode 100644 index 00000000000..c377cce3115 --- /dev/null +++ b/packages/agent/.gitignore @@ -0,0 +1,6 @@ +*.ts +!index.ts +!character.ts +.env +*.env +.env* \ No newline at end of file diff --git a/packages/agent/package.json b/packages/agent/package.json new file mode 100644 index 00000000000..152d6c39ca8 --- /dev/null +++ b/packages/agent/package.json @@ -0,0 +1,33 @@ +{ + "name": "@ai16z/agent", + "version": "0.0.1", + "main": "src/index.ts", + "type": "module", + "scripts": { + "build": "tsup --format esm --dts", + "start": "node --loader ts-node/esm src/index.ts", + "dev": "tsc && nodemon --watch src --watch ../core/dist --ext ts,json --exec 'node --loader ts-node/esm' src/index.ts", + "start:service:all": "pm2 start pnpm --name=\"all\" --restart-delay=3000 --max-restarts=10 -- run start:all", + "stop:service:all": "pm2 stop all", + "start:all": "node --loader ts-node/esm src/index.ts --characters=\"../characters/eliza.json\",\"../characters/degenspartan.json\",\"../characters/ruby.json\",\"../characters/pmairca.json\"" + }, + "dependencies": { + "@ai16z/eliza": "workspace:*", + "@ai16z/adapter-postgres": "workspace:*", + "@ai16z/adapter-sqlite": "workspace:*", + "@ai16z/client-direct": "workspace:*", + "@ai16z/client-discord": "workspace:*", + "@ai16z/client-telegram": "workspace:*", + "@ai16z/client-twitter": "workspace:*", + "@ai16z/plugin-bootstrap": "workspace:*", + "@ai16z/plugin-image-generation": "workspace:*", + "@ai16z/plugin-node": "workspace:*", + "@ai16z/plugin-solana": "workspace:*", + "readline": "^1.3.0", + "yargs": "17.7.2" + }, + "devDependencies": { + "ts-node": "10.9.2", + "tsup": "^8.3.5" + } +} diff --git a/packages/agent/src/index.ts b/packages/agent/src/index.ts new file mode 100644 index 00000000000..0c2a8e36bc7 --- /dev/null +++ b/packages/agent/src/index.ts @@ -0,0 +1,310 @@ +import { PostgresDatabaseAdapter } from "@ai16z/adapter-postgres/src/index.ts"; +import { SqliteDatabaseAdapter } from "@ai16z/adapter-sqlite/src/index.ts"; +import { DirectClientInterface } from "@ai16z/client-direct/src/index.ts"; +import { DiscordClientInterface } from "@ai16z/client-discord/src/index.ts"; +import { TelegramClientInterface } from "@ai16z/client-telegram/src/index.ts"; +import { TwitterClientInterface } from "@ai16z/client-twitter/src/index.ts"; +import { defaultCharacter } from "@ai16z/eliza/src/defaultCharacter.ts"; +import { AgentRuntime } from "@ai16z/eliza/src/runtime.ts"; +import settings from "@ai16z/eliza/src/settings.ts"; +import { + Character, + IAgentRuntime, + IDatabaseAdapter, + ModelProviderName, +} from "@ai16z/eliza/src/types.ts"; +import { bootstrapPlugin } from "@ai16z/plugin-bootstrap/src/index.ts"; +import { solanaPlugin } from "@ai16z/plugin-solana/src/index.ts"; +import { nodePlugin } from "@ai16z/plugin-node/src/index.ts"; +import Database from "better-sqlite3"; +import fs from "fs"; +import readline from "readline"; +import yargs from "yargs"; + +export const wait = (minTime: number = 1000, maxTime: number = 3000) => { + const waitTime = + Math.floor(Math.random() * (maxTime - minTime + 1)) + minTime; + return new Promise((resolve) => setTimeout(resolve, waitTime)); +}; + +export function parseArguments(): { + character?: string; + characters?: string; +} { + try { + return yargs(process.argv.slice(2)) + .option("character", { + type: "string", + description: "Path to the character JSON file", + }) + .option("characters", { + type: "string", + description: + "Comma separated list of paths to character JSON files", + }) + .parseSync(); + } catch (error) { + console.error("Error parsing arguments:", error); + return {}; + } +} + +export async function loadCharacters( + charactersArg: string +): Promise { + let characterPaths = charactersArg + ?.split(",") + .map((path) => path.trim()) + .map((path) => { + if (path.startsWith("../characters")) { + return `../${path}`; + } + if (path.startsWith("characters")) { + return `../../${path}`; + } + if (path.startsWith("./characters")) { + return `../.${path}`; + } + return path; + }); + + const loadedCharacters = []; + + if (characterPaths?.length > 0) { + for (const path of characterPaths) { + try { + const character = JSON.parse(fs.readFileSync(path, "utf8")); + + // is there a "plugins" field? + if (character.plugins) { + console.log("Plugins are: ", character.plugins); + + const importedPlugins = await Promise.all( + character.plugins.map(async (plugin) => { + // if the plugin name doesnt start with @eliza, + + const importedPlugin = await import(plugin); + return importedPlugin; + }) + ); + + character.plugins = importedPlugins; + } + + loadedCharacters.push(character); + } catch (e) { + console.error(`Error loading character from ${path}: ${e}`); + } + } + } + + if (loadedCharacters.length === 0) { + console.log("No characters found, using default character"); + loadedCharacters.push(defaultCharacter); + } + + return loadedCharacters; +} + +export function getTokenForProvider( + provider: ModelProviderName, + character: Character +) { + switch (provider) { + case ModelProviderName.OPENAI: + return ( + character.settings?.secrets?.OPENAI_API_KEY || + settings.OPENAI_API_KEY + ); + case ModelProviderName.ANTHROPIC: + return ( + character.settings?.secrets?.ANTHROPIC_API_KEY || + character.settings?.secrets?.CLAUDE_API_KEY || + settings.ANTHROPIC_API_KEY || + settings.CLAUDE_API_KEY + ); + case ModelProviderName.REDPILL: + return ( + character.settings?.secrets?.REDPILL_API_KEY || + settings.REDPILL_API_KEY + ); + case ModelProviderName.OPENROUTER: + return ( + character.settings?.secrets?.OPENROUTER || + settings.OPENROUTER_API_KEY + ); + } +} + +export async function createDirectRuntime( + character: Character, + db: IDatabaseAdapter, + token: string +) { + console.log("Creating runtime for character", character.name); + return new AgentRuntime({ + databaseAdapter: db, + token, + modelProvider: character.modelProvider, + evaluators: [], + character, + plugins: [], + providers: [], + actions: [], + services: [], + managers: [], + }); +} + +function initializeDatabase() { + if (process.env.POSTGRES_URL) { + return new PostgresDatabaseAdapter({ + connectionString: process.env.POSTGRES_URL, + }); + } else { + return new SqliteDatabaseAdapter(new Database("./db.sqlite")); + } +} + +export async function initializeClients( + character: Character, + runtime: IAgentRuntime +) { + const clients = []; + const clientTypes = + character.clients?.map((str) => str.toLowerCase()) || []; + + if (clientTypes.includes("discord")) { + clients.push(await DiscordClientInterface.start(runtime)); + } + + if (clientTypes.includes("telegram")) { + const telegramClient = await TelegramClientInterface.start(runtime); + if (telegramClient) clients.push(telegramClient); + } + + if (clientTypes.includes("twitter")) { + const twitterClients = await TwitterClientInterface.start(runtime); + clients.push(twitterClients); + } + + return clients; +} + +export async function createAgent( + character: Character, + db: any, + token: string +) { + console.log("Creating runtime for character", character.name); + return new AgentRuntime({ + databaseAdapter: db, + token, + modelProvider: character.modelProvider, + evaluators: [], + character, + plugins: [ + bootstrapPlugin, + nodePlugin, + character.settings.secrets.WALLET_PUBLIC_KEY + ? solanaPlugin + : null + ].filter(Boolean), + providers: [], + actions: [], + services: [], + managers: [], + }); +} + +async function startAgent(character: Character, directClient: any) { + try { + const token = getTokenForProvider(character.modelProvider, character); + const db = initializeDatabase(); + + const runtime = await createAgent(character, db, token); + + const clients = await initializeClients( + character, + runtime as IAgentRuntime + ); + + directClient.registerAgent(await runtime); + + return clients; + } catch (error) { + console.error( + `Error starting agent for character ${character.name}:`, + error + ); + throw error; // Re-throw after logging + } +} + +const startAgents = async () => { + const directClient = await DirectClientInterface.start(); + const args = parseArguments(); + + let charactersArg = args.characters || args.character; + + let characters = [defaultCharacter]; + + if (charactersArg) { + characters = await loadCharacters(charactersArg); + } + + try { + for (const character of characters) { + await startAgent(character, directClient); + } + } catch (error) { + console.error("Error starting agents:", error); + } + + function chat() { + const agentId = characters[0].name ?? "Agent"; + rl.question("You: ", (input) => handleUserInput(input, agentId)); + } + + console.log("Chat started. Type 'exit' to quit."); + chat(); +}; + +startAgents().catch((error) => { + console.error("Unhandled error in startAgents:", error); + process.exit(1); // Exit the process after logging +}); + +const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout, +}); + +async function handleUserInput(input, agentId) { + if (input.toLowerCase() === "exit") { + rl.close(); + return; + } + + try { + const serverPort = parseInt(settings.SERVER_PORT || "3000"); + + const response = await fetch( + `http://localhost:${serverPort}/${agentId}/message`, + { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + text: input, + userId: "user", + userName: "User", + }), + } + ); + + const data = await response.json(); + data.forEach((message) => console.log(`${"Agent"}: ${message.text}`)); + } catch (error) { + console.error("Error fetching response:", error); + } +} diff --git a/packages/agent/tsconfig.json b/packages/agent/tsconfig.json new file mode 100644 index 00000000000..9294a4fa6db --- /dev/null +++ b/packages/agent/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": ".", + "module": "ESNext", + "moduleResolution": "Bundler", + "types": ["node"] + }, + "include": ["src"] +} diff --git a/packages/client-direct/package.json b/packages/client-direct/package.json new file mode 100644 index 00000000000..506bd8a83cf --- /dev/null +++ b/packages/client-direct/package.json @@ -0,0 +1,27 @@ +{ + "name": "@ai16z/client-direct", + "version": "0.0.1", + "main": "dist/index.js", + "type": "module", + "types": "dist/index.d.ts", + "dependencies": { + "@ai16z/eliza": "workspace:*", + "@ai16z/plugin-image-generation": "workspace:*", + "@types/body-parser": "1.19.5", + "@types/cors": "2.8.17", + "@types/express": "5.0.0", + "body-parser": "1.20.3", + "cors": "2.8.5", + "multer": "1.4.5-lts.1" + }, + "devDependencies": { + "tsup": "^8.3.5" + }, + "scripts": { + "build": "tsup --format esm --dts", + "dev": "tsup --watch" + }, + "peerDependencies": { + "whatwg-url": "7.1.0" + } +} diff --git a/core/src/clients/direct/index.ts b/packages/client-direct/src/index.ts similarity index 84% rename from core/src/clients/direct/index.ts rename to packages/client-direct/src/index.ts index cff77fc23a4..ade88ecd11c 100644 --- a/core/src/clients/direct/index.ts +++ b/packages/client-direct/src/index.ts @@ -1,19 +1,22 @@ import bodyParser from "body-parser"; -import express from "express"; -import { composeContext } from "../../core/context.ts"; -import { AgentRuntime } from "../../core/runtime.ts"; -import { Content, Memory, ModelClass, State } from "../../core/types.ts"; -import { stringToUuid } from "../../core/uuid.ts"; import cors from "cors"; -import { messageCompletionFooter } from "../../core/parsing.ts"; +import express, { Request as ExpressRequest } from "express"; import multer, { File } from "multer"; -import { Request as ExpressRequest } from "express"; -import { generateMessageResponse } from "../../core/generation.ts"; +import { generateCaption, generateImage } from "@ai16z/eliza/src/generation.ts"; +import { composeContext } from "@ai16z/eliza/src/context.ts"; +import { generateMessageResponse } from "@ai16z/eliza/src/generation.ts"; +import { messageCompletionFooter } from "@ai16z/eliza/src/parsing.ts"; +import { AgentRuntime } from "@ai16z/eliza/src/runtime.ts"; import { - generateCaption, - generateImage, -} from "../../actions/imageGenerationUtils.ts"; - + Content, + Memory, + ModelClass, + State, + Client, + IAgentRuntime, +} from "@ai16z/eliza/src/types.ts"; +import { stringToUuid } from "@ai16z/eliza/src/uuid.ts"; +import settings from "@ai16z/eliza/src/settings.ts"; const upload = multer({ storage: multer.memoryStorage() }); export const messageHandlerTemplate = @@ -50,11 +53,12 @@ export interface SimliClientConfig { videoRef: any; audioRef: any; } -class DirectClient { +export class DirectClient { private app: express.Application; private agents: Map; constructor() { + console.log("DirectClient constructor"); this.app = express(); this.app.use(cors()); this.agents = new Map(); @@ -122,6 +126,7 @@ class DirectClient { this.app.post( "/:agentId/message", async (req: express.Request, res: express.Response) => { + console.log("DirectClient message"); const agentId = req.params.agentId; const roomId = stringToUuid( req.body.roomId ?? "default-room-" + agentId @@ -162,7 +167,12 @@ class DirectClient { inReplyTo: undefined, }; - const userMessage = { content, userId, roomId, agentId: runtime.agentId }; + const userMessage = { + content, + userId, + roomId, + agentId: runtime.agentId, + }; const memory: Memory = { id: messageId, @@ -205,9 +215,11 @@ class DirectClient { ); return; } - + let message = null as Content | null; + await runtime.evaluate(memory, state); + const result = await runtime.processActions( memory, [responseMessage], @@ -216,14 +228,13 @@ class DirectClient { message = newMessages; return [memory]; } - ) + ); if (message) { res.json([message, response]); } else { res.json([response]); } - } ); @@ -271,4 +282,17 @@ class DirectClient { } } -export { DirectClient }; +export const DirectClientInterface: Client = { + start: async (runtime: IAgentRuntime) => { + console.log("DirectClientInterface start"); + const client = new DirectClient(); + const serverPort = parseInt(settings.SERVER_PORT || "3000"); + client.start(serverPort); + return client; + }, + stop: async (runtime: IAgentRuntime) => { + console.warn("Direct client does not support stopping yet"); + }, +}; + +export default DirectClientInterface; diff --git a/packages/client-direct/tsconfig.json b/packages/client-direct/tsconfig.json new file mode 100644 index 00000000000..eaa78145aa3 --- /dev/null +++ b/packages/client-direct/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "./src" + }, + "include": ["src"] +} diff --git a/packages/client-direct/tsup.config.ts b/packages/client-direct/tsup.config.ts new file mode 100644 index 00000000000..e42bf4efeae --- /dev/null +++ b/packages/client-direct/tsup.config.ts @@ -0,0 +1,20 @@ +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/client-discord/package.json b/packages/client-discord/package.json new file mode 100644 index 00000000000..27a78abe694 --- /dev/null +++ b/packages/client-discord/package.json @@ -0,0 +1,31 @@ +{ + "name": "@ai16z/client-discord", + "version": "0.0.1", + "main": "dist/index.js", + "type": "module", + "types": "dist/index.d.ts", + "dependencies": { + "@ai16z/eliza": "workspace:*", + "@ai16z/plugin-node": "workspace:*", + "@discordjs/opus": "github:discordjs/opus", + "@discordjs/rest": "2.4.0", + "@discordjs/voice": "0.17.0", + "prism-media": "1.3.5", + "libsodium-wrappers": "0.7.15", + "discord.js": "14.16.3" + }, + "devDependencies": { + "tsup": "^8.3.5" + }, + "scripts": { + "build": "tsup --format esm --dts", + "dev": "tsup --watch" + }, + "trustedDependencies": { + "@discordjs/opus": "github:discordjs/opus", + "@discordjs/voice": "0.17.0" + }, + "peerDependencies": { + "whatwg-url": "7.1.0" + } +} diff --git a/core/src/clients/discord/actions/chat_with_attachments.ts b/packages/client-discord/src/actions/chat_with_attachments.ts similarity index 93% rename from core/src/clients/discord/actions/chat_with_attachments.ts rename to packages/client-discord/src/actions/chat_with_attachments.ts index ee54c937043..ca6597d72da 100644 --- a/core/src/clients/discord/actions/chat_with_attachments.ts +++ b/packages/client-discord/src/actions/chat_with_attachments.ts @@ -1,8 +1,8 @@ -import { composeContext } from "../../../core/context.ts"; -import { generateText, trimTokens } from "../../../core/generation.ts"; -import { log_to_file } from "../../../core/logger.ts"; -import models from "../../../core/models.ts"; -import { parseJSONObjectFromText } from "../../../core/parsing.ts"; +import fs from "fs"; +import { composeContext } from "@ai16z/eliza/src/context.ts"; +import { generateText, trimTokens } from "@ai16z/eliza/src/generation.ts"; +import models from "@ai16z/eliza/src/models.ts"; +import { parseJSONObjectFromText } from "@ai16z/eliza/src/parsing.ts"; import { Action, ActionExample, @@ -12,8 +12,7 @@ import { Memory, ModelClass, State, -} from "../../../core/types.ts"; -import fs from "fs"; +} from "@ai16z/eliza/src/types.ts"; export const summarizationTemplate = `# Summarized so far (we are adding to this) {{currentSummary}} @@ -199,30 +198,14 @@ const summarizeAction = { ), }); - log_to_file( - `${state.agentName}_${datestr}_chat_with_attachment_context`, - context - ); - const summary = await generateText({ runtime, context, modelClass: ModelClass.SMALL, }); - log_to_file( - `${state.agentName}_${datestr}_chat_with_attachment_response`, - summary - ); - currentSummary = currentSummary + "\n" + summary; - // log summary to file - log_to_file( - `${state.agentName}_${datestr}_chat_with_attachment_summary`, - currentSummary - ); - if (!currentSummary) { console.error("No summary found, that's not good!"); return; diff --git a/core/src/clients/discord/actions/download_media.ts b/packages/client-discord/src/actions/download_media.ts similarity index 90% rename from core/src/clients/discord/actions/download_media.ts rename to packages/client-discord/src/actions/download_media.ts index 4e3dfaf6313..90edac1737a 100644 --- a/core/src/clients/discord/actions/download_media.ts +++ b/packages/client-discord/src/actions/download_media.ts @@ -1,18 +1,20 @@ import path from "path"; -import { composeContext } from "../../../core/context.ts"; -import { parseJSONObjectFromText } from "../../../core/parsing.ts"; +import { composeContext } from "@ai16z/eliza/src/context.ts"; +import { parseJSONObjectFromText } from "@ai16z/eliza/src/parsing.ts"; import { Action, ActionExample, Content, HandlerCallback, IAgentRuntime, + IVideoService, Memory, ModelClass, + ServiceType, State, -} from "../../../core/types.ts"; -import { VideoService } from "../../../services/video.ts"; -import { generateText } from "../../../core/generation.ts"; +} from "@ai16z/eliza/src/types.ts"; +import { VideoService } from "@ai16z/plugin-node/src/services/video.ts"; +import { generateText } from "@ai16z/eliza/src/generation.ts"; export const mediaUrlTemplate = `# Messages we are searching for a media URL {{recentMessages}} @@ -83,7 +85,9 @@ export default { options: any, callback: HandlerCallback ) => { - const videoService = VideoService.getInstance(runtime); + const videoService = runtime.getService( + ServiceType.VIDEO + ); if (!state) { state = (await runtime.composeState(message)) as State; } @@ -129,10 +133,6 @@ export default { console.error( "Max retries reached. Failed to send message with attachment." ); - await callback({ - ...response, - text: "Sorry, I encountered an error while trying to send the video attachment. Please try again later.", - }); break; } diff --git a/core/src/clients/discord/actions/joinvoice.ts b/packages/client-discord/src/actions/joinvoice.ts similarity index 95% rename from core/src/clients/discord/actions/joinvoice.ts rename to packages/client-discord/src/actions/joinvoice.ts index f63194be86a..54210d109de 100644 --- a/core/src/clients/discord/actions/joinvoice.ts +++ b/packages/client-discord/src/actions/joinvoice.ts @@ -9,15 +9,14 @@ import { Guild, GuildMember, } from "discord.js"; -import { composeContext } from "../../../core/context.ts"; -import { log_to_file } from "../../../core/logger.ts"; +import { composeContext } from "@ai16z/eliza/src/context.ts"; import { Action, ActionExample, IAgentRuntime, Memory, State, -} from "../../../core/types.ts"; +} from "@ai16z/eliza/src/types.ts"; export default { name: "JOIN_VOICE", @@ -164,24 +163,12 @@ You should only respond with the name of the voice channel or none, no commentar const datestr = new Date().toUTCString().replace(/:/g, "-"); - // log context to file - log_to_file( - `${state.agentName}_${datestr}_joinvoice_context`, - context - ); - const responseContent = await generateText({ runtime, context, modelClass: ModelClass.SMALL, }); - // log response to file - log_to_file( - `${state.agentName}_${datestr}_joinvoice_response`, - responseContent - ); - runtime.databaseAdapter.log({ body: { message, context, response: responseContent }, userId: message.userId, diff --git a/core/src/clients/discord/actions/leavevoice.ts b/packages/client-discord/src/actions/leavevoice.ts similarity index 99% rename from core/src/clients/discord/actions/leavevoice.ts rename to packages/client-discord/src/actions/leavevoice.ts index 11b5a793641..82124c582e8 100644 --- a/core/src/clients/discord/actions/leavevoice.ts +++ b/packages/client-discord/src/actions/leavevoice.ts @@ -12,7 +12,7 @@ import { IAgentRuntime, Memory, State, -} from "../../../core/types.ts"; +} from "@ai16z/eliza/src/types.ts"; export default { name: "LEAVE_VOICE", diff --git a/core/src/clients/discord/actions/summarize_conversation.ts b/packages/client-discord/src/actions/summarize_conversation.ts similarity index 93% rename from core/src/clients/discord/actions/summarize_conversation.ts rename to packages/client-discord/src/actions/summarize_conversation.ts index 3247b177f37..6d853a17904 100644 --- a/core/src/clients/discord/actions/summarize_conversation.ts +++ b/packages/client-discord/src/actions/summarize_conversation.ts @@ -1,13 +1,13 @@ -import { composeContext } from "../../../core/context.ts"; +import fs from "fs"; +import { composeContext } from "@ai16z/eliza/src/context.ts"; import { generateText, splitChunks, trimTokens, -} from "../../../core/generation.ts"; -import { log_to_file } from "../../../core/logger.ts"; -import { getActorDetails } from "../../../core/messages.ts"; -import models from "../../../core/models.ts"; -import { parseJSONObjectFromText } from "../../../core/parsing.ts"; +} from "@ai16z/eliza/src/generation.ts"; +import { getActorDetails } from "@ai16z/eliza/src/messages.ts"; +import models from "@ai16z/eliza/src/models.ts"; +import { parseJSONObjectFromText } from "@ai16z/eliza/src/parsing.ts"; import { Action, ActionExample, @@ -18,8 +18,7 @@ import { Memory, ModelClass, State, -} from "../../../core/types.ts"; -import fs from "fs"; +} from "@ai16z/eliza/src/types.ts"; export const summarizationTemplate = `# Summarized so far (we are adding to this) {{currentSummary}} @@ -290,33 +289,15 @@ const summarizeAction = { ), }); - log_to_file( - `${state.agentName}_${datestr}_summarization_context`, - context - ); - const summary = await generateText({ runtime, context, modelClass: ModelClass.SMALL, }); - log_to_file( - `${state.agentName}_${datestr}_summarization_response_${i}`, - summary - ); - currentSummary = currentSummary + "\n" + summary; } - // log context to file - log_to_file( - `${state.agentName}_${datestr}_summarization_summary`, - currentSummary - ); - - // call callback with it -- twitter and discord client can separately handle what to do, IMO we may way to add gists so the agent can post a gist and link to it later - if (!currentSummary) { console.error("No summary found, that's not good!"); return; diff --git a/core/src/clients/discord/actions/transcribe_media.ts b/packages/client-discord/src/actions/transcribe_media.ts similarity index 95% rename from core/src/clients/discord/actions/transcribe_media.ts rename to packages/client-discord/src/actions/transcribe_media.ts index fa22a4f566f..bb611455166 100644 --- a/core/src/clients/discord/actions/transcribe_media.ts +++ b/packages/client-discord/src/actions/transcribe_media.ts @@ -1,7 +1,7 @@ -import { composeContext } from "../../../core/context.ts"; -import { generateText } from "../../../core/generation.ts"; -import { log_to_file } from "../../../core/logger.ts"; -import { parseJSONObjectFromText } from "../../../core/parsing.ts"; +import fs from "fs"; +import { composeContext } from "@ai16z/eliza/src/context.ts"; +import { generateText } from "@ai16z/eliza/src/generation.ts"; +import { parseJSONObjectFromText } from "@ai16z/eliza/src/parsing.ts"; import { Action, ActionExample, @@ -11,8 +11,7 @@ import { Memory, ModelClass, State, -} from "../../../core/types.ts"; -import fs from "fs"; +} from "@ai16z/eliza/src/types.ts"; export const transcriptionTemplate = `# Transcription of media file {{mediaTranscript}} diff --git a/core/src/clients/discord/attachments.ts b/packages/client-discord/src/attachments.ts similarity index 81% rename from core/src/clients/discord/attachments.ts rename to packages/client-discord/src/attachments.ts index c9c5b1452eb..4b6e7ba5e5a 100644 --- a/core/src/clients/discord/attachments.ts +++ b/packages/client-discord/src/attachments.ts @@ -1,8 +1,61 @@ +import { generateText, trimTokens } from "@ai16z/eliza/src/generation.ts"; +import { parseJSONObjectFromText } from "@ai16z/eliza/src/parsing.ts"; +import { + IAgentRuntime, + IImageDescriptionService, + IPdfService, + ITranscriptionService, + IVideoService, + Media, + ModelClass, + ServiceType, +} from "@ai16z/eliza/src/types.ts"; import { Attachment, Collection } from "discord.js"; import ffmpeg from "fluent-ffmpeg"; import fs from "fs"; -import { IAgentRuntime, Media } from "../../core/types.ts"; -import { generateSummary } from "../../services/summary.ts"; + +async function generateSummary( + runtime: IAgentRuntime, + text: string +): Promise<{ title: string; description: string }> { + // make sure text is under 128k characters + text = trimTokens(text, 100000, "gpt-4o-mini"); // TODO: clean this up + + const prompt = `Please generate a concise summary for the following text: + + Text: """ + ${text} + """ + + Respond with a JSON object in the following format: + \`\`\`json + { + "title": "Generated Title", + "summary": "Generated summary and/or description of the text" + } + \`\`\``; + + const response = await generateText({ + runtime, + context: prompt, + modelClass: ModelClass.SMALL, + }); + + const parsedResponse = parseJSONObjectFromText(response); + + if (parsedResponse) { + return { + title: parsedResponse.title, + description: parsedResponse.summary, + }; + } + + return { + title: "", + description: "", + }; +} + export class AttachmentManager { private attachmentCache: Map = new Map(); private runtime: IAgentRuntime; @@ -49,7 +102,9 @@ export class AttachmentManager { media = await this.processImageAttachment(attachment); } else if ( attachment.contentType?.startsWith("video/") || - this.runtime.videoService.isVideoUrl(attachment.url) + this.runtime + .getService(ServiceType.VIDEO) + .isVideoUrl(attachment.url) ) { media = await this.processVideoAttachment(attachment); } else { @@ -80,10 +135,9 @@ export class AttachmentManager { throw new Error("Unsupported audio/video format"); } - const transcription = - await this.runtime.transcriptionService.transcribeAttachment( - audioBuffer - ); + const transcription = await this.runtime + .getService(ServiceType.TRANSCRIPTION) + .transcribeAttachment(audioBuffer); const { title, description } = await generateSummary( this.runtime, transcription @@ -162,9 +216,9 @@ export class AttachmentManager { try { const response = await fetch(attachment.url); const pdfBuffer = await response.arrayBuffer(); - const text = await this.runtime.pdfService.convertPdfToText( - Buffer.from(pdfBuffer) - ); + const text = await this.runtime + .getService(ServiceType.PDF) + .convertPdfToText(Buffer.from(pdfBuffer)); const { title, description } = await generateSummary( this.runtime, text @@ -230,10 +284,11 @@ export class AttachmentManager { attachment: Attachment ): Promise { try { - const { description, title } = - await this.runtime.imageDescriptionService.describeImage( - attachment.url - ); + const { description, title } = await this.runtime + .getService( + ServiceType.IMAGE_DESCRIPTION + ) + .describeImage(attachment.url); return { id: attachment.id, url: attachment.url, @@ -264,10 +319,14 @@ export class AttachmentManager { private async processVideoAttachment( attachment: Attachment ): Promise { - if (this.runtime.videoService.isVideoUrl(attachment.url)) { - const videoInfo = await this.runtime.videoService.processVideo( - attachment.url - ); + if ( + this.runtime + .getService(ServiceType.VIDEO) + .isVideoUrl(attachment.url) + ) { + const videoInfo = await this.runtime + .getService(ServiceType.VIDEO) + .processVideo(attachment.url); return { id: attachment.id, url: attachment.url, diff --git a/core/src/clients/discord/index.ts b/packages/client-discord/src/index.ts similarity index 85% rename from core/src/clients/discord/index.ts rename to packages/client-discord/src/index.ts index 2a4e84d13a8..eda359bae03 100644 --- a/core/src/clients/discord/index.ts +++ b/packages/client-discord/src/index.ts @@ -1,4 +1,11 @@ -import { REST } from "@discordjs/rest"; +import { embeddingZeroVector } from "@ai16z/eliza/src/memory.ts"; +import { + Character, + Client as ElizaClient, + IAgentRuntime, +} from "@ai16z/eliza/src/types.ts"; +import { stringToUuid } from "@ai16z/eliza/src/uuid.ts"; +import { elizaLogger } from "@ai16z/eliza/src/logger.ts"; import { Client, Events, @@ -6,25 +13,19 @@ import { Guild, MessageReaction, Partials, - Routes, User, } from "discord.js"; import { EventEmitter } from "events"; -import { embeddingZeroVector } from "../../core/memory.ts"; -import { Character, IAgentRuntime } from "../../core/types.ts"; -import { stringToUuid } from "../../core/uuid.ts"; import chat_with_attachments from "./actions/chat_with_attachments.ts"; import download_media from "./actions/download_media.ts"; import joinvoice from "./actions/joinvoice.ts"; import leavevoice from "./actions/leavevoice.ts"; import summarize from "./actions/summarize_conversation.ts"; import transcribe_media from "./actions/transcribe_media.ts"; -import { commands } from "./commands.ts"; import { MessageManager } from "./messages.ts"; import channelStateProvider from "./providers/channelState.ts"; import voiceStateProvider from "./providers/voiceState.ts"; import { VoiceManager } from "./voice.ts"; -import { prettyConsole } from "../../index.ts"; export class DiscordClient extends EventEmitter { apiToken: string; @@ -64,7 +65,6 @@ export class DiscordClient extends EventEmitter { this.client.login(this.apiToken); this.setupEventListeners(); - this.setupCommands(); this.runtime.registerAction(joinvoice); this.runtime.registerAction(leavevoice); @@ -113,33 +113,17 @@ export class DiscordClient extends EventEmitter { ); } - private setupCommands() { - const rest = new REST({ version: "9" }).setToken(this.apiToken); - (async () => { - try { - await rest.put( - Routes.applicationCommands( - this.runtime.getSetting("DISCORD_APPLICATION_ID") - ), - { body: commands } - ); - } catch (error) { - console.error(error); - } - })(); - } - private async onClientReady(readyClient: { user: { tag: any; id: any } }) { - prettyConsole.success(`Logged in as ${readyClient.user?.tag}`); - prettyConsole.success("Use this URL to add the bot to your server:"); - prettyConsole.success( + elizaLogger.success(`Logged in as ${readyClient.user?.tag}`); + elizaLogger.success("Use this URL to add the bot to your server:"); + elizaLogger.success( `https://discord.com/api/oauth2/authorize?client_id=${readyClient.user?.id}&permissions=0&scope=bot%20applications.commands` ); await this.onReady(); } async handleReactionAdd(reaction: MessageReaction, user: User) { - prettyConsole.log("Reaction added"); + elizaLogger.log("Reaction added"); // if (user.bot) return; let emoji = reaction.emoji.name; @@ -168,7 +152,9 @@ export class DiscordClient extends EventEmitter { const reactionMessage = `*<${emoji}>: "${truncatedContent}"*`; - const roomId = stringToUuid(reaction.message.channel.id + "-" + this.runtime.agentId); + const roomId = stringToUuid( + reaction.message.channel.id + "-" + this.runtime.agentId + ); const userIdUUID = stringToUuid(user.id + "-" + this.runtime.agentId); // Generate a unique UUID for the reaction @@ -200,7 +186,9 @@ export class DiscordClient extends EventEmitter { content: { text: reactionMessage, source: "discord", - inReplyTo: stringToUuid(reaction.message.id + "-" + this.runtime.agentId), // This is the ID of the original message + inReplyTo: stringToUuid( + reaction.message.id + "-" + this.runtime.agentId + ), // This is the ID of the original message }, roomId, createdAt: Date.now(), @@ -238,7 +226,9 @@ export class DiscordClient extends EventEmitter { const reactionMessage = `*Removed <${emoji} emoji> from: "${truncatedContent}"*`; - const roomId = stringToUuid(reaction.message.channel.id + "-" + this.runtime.agentId); + const roomId = stringToUuid( + reaction.message.channel.id + "-" + this.runtime.agentId + ); const userIdUUID = stringToUuid(user.id); // Generate a unique UUID for the reaction removal @@ -266,7 +256,9 @@ export class DiscordClient extends EventEmitter { content: { text: reactionMessage, source: "discord", - inReplyTo: stringToUuid(reaction.message.id + "-" + this.runtime.agentId), // This is the ID of the original message + inReplyTo: stringToUuid( + reaction.message.id + "-" + this.runtime.agentId + ), // This is the ID of the original message }, roomId, createdAt: Date.now(), @@ -304,5 +296,13 @@ export class DiscordClient extends EventEmitter { } } -// Export the DiscordClient class -export default DiscordClient; +export function startDiscord(runtime: IAgentRuntime) { + return new DiscordClient(runtime); +} + +export const DiscordClientInterface: ElizaClient = { + start: async (runtime: IAgentRuntime) => new DiscordClient(runtime), + stop: async (runtime: IAgentRuntime) => { + console.warn("Discord client does not support stopping yet"); + }, +}; diff --git a/core/src/clients/discord/messages.ts b/packages/client-discord/src/messages.ts similarity index 71% rename from core/src/clients/discord/messages.ts rename to packages/client-discord/src/messages.ts index 895b53eb860..8327893a532 100644 --- a/core/src/clients/discord/messages.ts +++ b/packages/client-discord/src/messages.ts @@ -1,37 +1,190 @@ -import { - ChannelType, - Client, - Message as DiscordMessage, - PermissionsBitField, - TextChannel, - ThreadChannel, -} from "discord.js"; -import { composeContext } from "../../core/context.ts"; +import { composeContext } from "@ai16z/eliza/src/context.ts"; import { generateMessageResponse, generateShouldRespond, -} from "../../core/generation.ts"; -import { log_to_file } from "../../core/logger.ts"; -import { embeddingZeroVector } from "../../core/memory.ts"; +} from "@ai16z/eliza/src/generation.ts"; +import { embeddingZeroVector } from "@ai16z/eliza/src/memory.ts"; +import { + messageCompletionFooter, + shouldRespondFooter, +} from "@ai16z/eliza/src/parsing.ts"; import { Content, HandlerCallback, IAgentRuntime, + IBrowserService, + ISpeechService, + IVideoService, Media, Memory, ModelClass, + ServiceType, State, UUID, -} from "../../core/types.ts"; -import { stringToUuid } from "../../core/uuid.ts"; -import { generateSummary } from "../../services/summary.ts"; +} from "@ai16z/eliza/src/types.ts"; +import { stringToUuid } from "@ai16z/eliza/src/uuid.ts"; +import { generateText, trimTokens } from "@ai16z/eliza/src/generation.ts"; +import { parseJSONObjectFromText } from "@ai16z/eliza/src/parsing.ts"; +import { + ChannelType, + Client, + Message as DiscordMessage, + PermissionsBitField, + TextChannel, + ThreadChannel, +} from "discord.js"; +import { elizaLogger } from "@ai16z/eliza/src/logger.ts"; import { AttachmentManager } from "./attachments.ts"; -import { messageHandlerTemplate, shouldRespondTemplate } from "./templates.ts"; -import { InterestChannels } from "./types.ts"; import { VoiceManager } from "./voice.ts"; -import { prettyConsole } from "../../index.ts"; const MAX_MESSAGE_LENGTH = 1900; +async function generateSummary( + runtime: IAgentRuntime, + text: string +): Promise<{ title: string; description: string }> { + // make sure text is under 128k characters + text = trimTokens(text, 100000, "gpt-4o-mini"); // TODO: clean this up + + const prompt = `Please generate a concise summary for the following text: + + Text: """ + ${text} + """ + + Respond with a JSON object in the following format: + \`\`\`json + { + "title": "Generated Title", + "summary": "Generated summary and/or description of the text" + } + \`\`\``; + + const response = await generateText({ + runtime, + context: prompt, + modelClass: ModelClass.SMALL, + }); + + const parsedResponse = parseJSONObjectFromText(response); + + if (parsedResponse) { + return { + title: parsedResponse.title, + description: parsedResponse.summary, + }; + } + + return { + title: "", + description: "", + }; +} + +export type InterestChannels = { + [key: string]: { + lastMessageSent: number; + messages: { userId: UUID; userName: string; content: Content }[]; + }; +}; + +const discordShouldRespondTemplate = + `# Task: Decide if {{agentName}} should respond. +About {{agentName}}: +{{bio}} + +# INSTRUCTIONS: Determine if {{agentName}} should respond to the message and participate in the conversation. Do not comment. Just respond with "RESPOND" or "IGNORE" or "STOP". + +# RESPONSE EXAMPLES +: I just saw a really great movie +: Oh? Which movie? +Result: [IGNORE] + +{{agentName}}: Oh, this is my favorite scene +: sick +: wait, why is it your favorite scene +Result: [RESPOND] + +: stfu bot +Result: [STOP] + +: Hey {{agent}}, can you help me with something +Result: [RESPOND] + +: {{agentName}} stfu plz +Result: [STOP] + +: i need help +{{agentName}}: how can I help you? +: no. i need help from someone else +Result: [IGNORE] + +: Hey {{agent}}, can I ask you a question +{{agentName}}: Sure, what is it +: can you ask claude to create a basic react module that demonstrates a counter +Result: [RESPOND] + +: {{agentName}} can you tell me a story +: {about a girl named elara +{{agentName}}: Sure. +{{agentName}}: Once upon a time, in a quaint little village, there was a curious girl named Elara. +{{agentName}}: Elara was known for her adventurous spirit and her knack for finding beauty in the mundane. +: I'm loving it, keep going +Result: [RESPOND] + +: {{agentName}} stop responding plz +Result: [STOP] + +: okay, i want to test something. can you say marco? +{{agentName}}: marco +: great. okay, now do it again +Result: [RESPOND] + +Response options are [RESPOND], [IGNORE] and [STOP]. + +{{agentName}} is in a room with other users and is very worried about being annoying and saying too much. +Respond with [RESPOND] to messages that are directed at {{agentName}}, or participate in conversations that are interesting or relevant to their background. +If a message is not interesting or relevant, respond with [IGNORE] +Unless directly responding to a user, respond with [IGNORE] to messages that are very short or do not contain much information. +If a user asks {{agentName}} to be quiet, respond with [STOP] +If {{agentName}} concludes a conversation and isn't part of the conversation anymore, respond with [STOP] + +IMPORTANT: {{agentName}} is particularly sensitive about being annoying, so if there is any doubt, it is better to respond with [IGNORE]. +If {{agentName}} is conversing with a user and they have not asked to stop, it is better to respond with [RESPOND]. + +{{recentMessages}} + +# INSTRUCTIONS: Choose the option that best describes {{agentName}}'s response to the last message. Ignore messages if they are addressed to someone else. +` + shouldRespondFooter; + +export const discordMessageHandlerTemplate = + // {{goals}} + `# Action Examples +{{actionExamples}} +(Action examples are for reference only. Do not use the information from them in your response.) + +# Task: Generate dialog and actions for the character {{agentName}}. +About {{agentName}}: +{{bio}} +{{lore}} + +Examples of {{agentName}}'s dialog and actions: +{{characterMessageExamples}} + +{{providers}} + +{{attachments}} + +{{actions}} + +# Capabilities +Note that {{agentName}} is capable of reading/seeing/hearing various forms of media, including images, videos, audio, plaintext and PDFs. Recent attachments have been included above under the "Attachments" section. + +{{messageDirections}} + +{{recentMessages}} + +# Instructions: Write the next message for {{agentName}}. Include an action, if appropriate. {{actionNames}} +` + messageCompletionFooter; export async function sendMessageInChunks( channel: TextChannel, @@ -39,11 +192,9 @@ export async function sendMessageInChunks( inReplyTo: string, files: any[] ): Promise { - const sentMessages: DiscordMessage[] = []; const messages = splitMessage(content); try { - for (let i = 0; i < messages.length; i++) { const message = messages[i]; if ( @@ -71,7 +222,7 @@ export async function sendMessageInChunks( } } } catch (error) { - prettyConsole.error("Error sending message:", error); + elizaLogger.error("Error sending message:", error); } return sentMessages; @@ -110,14 +261,12 @@ function splitMessage(content: string): string[] { return messages; } - function canSendMessage(channel) { - console.log("canSendMessage", channel); // if it is a DM channel, we can always send messages if (channel.type === ChannelType.DM) { return { canSend: true, - reason: null + reason: null, }; } const botMember = channel.guild?.members.cache.get(channel.client.user.id); @@ -125,7 +274,7 @@ function canSendMessage(channel) { if (!botMember) { return { canSend: false, - reason: 'Not a guild channel or bot member not found' + reason: "Not a guild channel or bot member not found", }; } @@ -133,12 +282,14 @@ function canSendMessage(channel) { const requiredPermissions = [ PermissionsBitField.Flags.ViewChannel, PermissionsBitField.Flags.SendMessages, - PermissionsBitField.Flags.ReadMessageHistory + PermissionsBitField.Flags.ReadMessageHistory, ]; // Add thread-specific permission if it's a thread if (channel instanceof ThreadChannel) { - requiredPermissions.push(PermissionsBitField.Flags.SendMessagesInThreads); + requiredPermissions.push( + PermissionsBitField.Flags.SendMessagesInThreads + ); } // Check permissions @@ -147,19 +298,22 @@ function canSendMessage(channel) { if (!permissions) { return { canSend: false, - reason: 'Could not retrieve permissions' + reason: "Could not retrieve permissions", }; } // Check each required permission - const missingPermissions = requiredPermissions.filter(perm => !permissions.has(perm)); + const missingPermissions = requiredPermissions.filter( + (perm) => !permissions.has(perm) + ); return { canSend: missingPermissions.length === 0, missingPermissions: missingPermissions, - reason: missingPermissions.length > 0 - ? `Missing permissions: ${missingPermissions.map(p => String(p)).join(', ')}` - : null + reason: + missingPermissions.length > 0 + ? `Missing permissions: ${missingPermissions.map((p) => String(p)).join(", ")}` + : null, }; } @@ -183,7 +337,7 @@ export class MessageManager { if ( message.interaction || message.author.id === - this.client.user?.id /* || message.author?.bot*/ + this.client.user?.id /* || message.author?.bot*/ ) return; const userId = message.author.id as UUID; @@ -217,7 +371,9 @@ export class MessageManager { "discord" ); - const messageId = stringToUuid(message.id + "-" + this.runtime.agentId); + const messageId = stringToUuid( + message.id + "-" + this.runtime.agentId + ); let shouldIgnore = false; let shouldRespond = true; @@ -228,7 +384,11 @@ export class MessageManager { source: "discord", url: message.url, inReplyTo: message.reference?.messageId - ? stringToUuid(message.reference.messageId + "-" + this.runtime.agentId) + ? stringToUuid( + message.reference.messageId + + "-" + + this.runtime.agentId + ) : undefined, }; @@ -263,10 +423,12 @@ export class MessageManager { })) as State; if (!canSendMessage(message.channel).canSend) { - return prettyConsole.warn(`Cannot send message to channel ${message.channel}`, canSendMessage(message.channel)); + return elizaLogger.warn( + `Cannot send message to channel ${message.channel}`, + canSendMessage(message.channel) + ); } - if (!shouldIgnore) { shouldIgnore = await this._shouldIgnore(message); } @@ -298,19 +460,17 @@ export class MessageManager { (!shouldRespond && hasInterest) || (shouldRespond && !hasInterest) ) { - console.log("Checking if should respond"); shouldRespond = await this._shouldRespond(message, state); } - if (!shouldRespond) { - return; - } - - console.log("Responding"); + if (shouldRespond) { const context = composeContext({ state, - template: messageHandlerTemplate, + template: + this.runtime.character.templates + ?.discordMessageHandlerTemplate || + discordMessageHandlerTemplate, }); const responseContent = await this._generateResponse( @@ -320,7 +480,9 @@ export class MessageManager { ); responseContent.text = responseContent.text?.trim(); - responseContent.inReplyTo = stringToUuid(message.id + "-" + this.runtime.agentId); + responseContent.inReplyTo = stringToUuid( + message.id + "-" + this.runtime.agentId + ); if (!responseContent.text) { return; @@ -332,21 +494,25 @@ export class MessageManager { ) => { try { if (message.id && !content.inReplyTo) { - content.inReplyTo = stringToUuid(message.id + "-" + this.runtime.agentId); + content.inReplyTo = stringToUuid( + message.id + "-" + this.runtime.agentId + ); } if (message.channel.type === ChannelType.GuildVoice) { // For voice channels, use text-to-speech - const audioStream = - await this.runtime.speechService.generate( - this.runtime, - content.text - ); + const audioStream = await this.runtime + .getService( + ServiceType.SPEECH_GENERATION + ) + .generate(this.runtime, content.text); await this.voiceManager.playAudioStream( userId, audioStream ); const memory: Memory = { - id: stringToUuid(message.id + "-" + this.runtime.agentId), + id: stringToUuid( + message.id + "-" + this.runtime.agentId + ), userId: this.runtime.agentId, agentId: this.runtime.agentId, content, @@ -376,7 +542,9 @@ export class MessageManager { } const memory: Memory = { - id: stringToUuid(m.id + "-" + this.runtime.agentId), + id: stringToUuid( + m.id + "-" + this.runtime.agentId + ), userId: this.runtime.agentId, agentId: this.runtime.agentId, content: { @@ -406,29 +574,27 @@ export class MessageManager { state = await this.runtime.updateRecentMessageState(state); - await this.runtime.evaluate(memory, state); - await this.runtime.processActions( memory, responseMessages, state, callback ); + } + await this.runtime.evaluate(memory, state, shouldRespond); + } catch (error) { console.error("Error handling message:", error); if (message.channel.type === ChannelType.GuildVoice) { // For voice channels, use text-to-speech for the error message const errorMessage = "Sorry, I had a glitch. What was that?"; - const audioStream = await this.runtime.speechService.generate( - this.runtime, - errorMessage - ); + const audioStream = await this.runtime + .getService(ServiceType.SPEECH_GENERATION) + .generate(this.runtime, errorMessage); await this.voiceManager.playAudioStream(userId, audioStream); } else { // For text channels, send the error message - await message.reply( - "Sorry, I encountered an error while processing your request." - ); + console.error("Error sending message:", error); } } } @@ -486,9 +652,14 @@ export class MessageManager { const urls = processedContent.match(urlRegex) || []; for (const url of urls) { - if (this.runtime.videoService.isVideoUrl(url)) { - const videoInfo = - await this.runtime.videoService.processVideo(url); + if ( + this.runtime + .getService(ServiceType.VIDEO) + .isVideoUrl(url) + ) { + const videoInfo = await this.runtime + .getService(ServiceType.VIDEO) + .processVideo(url); attachments.push({ id: `youtube-${Date.now()}`, url: url, @@ -498,8 +669,9 @@ export class MessageManager { text: videoInfo.text, }); } else { - const { title, bodyContent } = - await this.runtime.browserService.getPageContent(url); + const { title, bodyContent } = await this.runtime + .getService(ServiceType.BROWSER) + .getPageContent(url, this.runtime); const { title: newTitle, description } = await generateSummary( this.runtime, title + "\n" + bodyContent @@ -669,7 +841,11 @@ export class MessageManager { // If none of the above conditions are met, use the generateText to decide const shouldRespondContext = composeContext({ state, - template: shouldRespondTemplate, + template: + this.runtime.character.templates + ?.discordShouldRespondTemplate || + this.runtime.character.templates?.shouldRespondTemplate || + discordShouldRespondTemplate, }); const response = await generateShouldRespond({ @@ -701,14 +877,6 @@ export class MessageManager { ): Promise { const { userId, roomId } = message; - const datestr = new Date().toUTCString().replace(/:/g, "-"); - - // log context to file - log_to_file( - `${state.agentName}_${datestr}_discord_message_context`, - context - ); - const response = await generateMessageResponse({ runtime: this.runtime, context, @@ -720,11 +888,6 @@ export class MessageManager { return; } - log_to_file( - `${state.agentName}_${datestr}_discord_message_response`, - JSON.stringify(response) - ); - await this.runtime.databaseAdapter.log({ body: { message, context, response }, userId: userId, diff --git a/core/src/clients/discord/providers/channelState.ts b/packages/client-discord/src/providers/channelState.ts similarity index 92% rename from core/src/clients/discord/providers/channelState.ts rename to packages/client-discord/src/providers/channelState.ts index 34fb634576e..775c7099b21 100644 --- a/core/src/clients/discord/providers/channelState.ts +++ b/packages/client-discord/src/providers/channelState.ts @@ -3,7 +3,12 @@ import { Message as DiscordMessage, TextChannel, } from "discord.js"; -import { IAgentRuntime, Memory, Provider, State } from "../../../core/types.ts"; +import { + IAgentRuntime, + Memory, + Provider, + State, +} from "@ai16z/eliza/src/types.ts"; const channelStateProvider: Provider = { get: async (runtime: IAgentRuntime, message: Memory, state?: State) => { @@ -11,7 +16,6 @@ const channelStateProvider: Provider = { (state?.discordMessage as DiscordMessage) || (state?.discordChannel as DiscordMessage); if (!discordMessage) { - console.log("discordMessage is null"); return ""; } diff --git a/core/src/clients/discord/providers/voiceState.ts b/packages/client-discord/src/providers/voiceState.ts similarity index 92% rename from core/src/clients/discord/providers/voiceState.ts rename to packages/client-discord/src/providers/voiceState.ts index 0b510602f94..f8815e74a04 100644 --- a/core/src/clients/discord/providers/voiceState.ts +++ b/packages/client-discord/src/providers/voiceState.ts @@ -1,6 +1,11 @@ import { getVoiceConnection } from "@discordjs/voice"; import { ChannelType, Message as DiscordMessage } from "discord.js"; -import { IAgentRuntime, Memory, Provider, State } from "../../../core/types.ts"; +import { + IAgentRuntime, + Memory, + Provider, + State, +} from "@ai16z/eliza/src/types.ts"; const voiceStateProvider: Provider = { get: async (runtime: IAgentRuntime, message: Memory, state?: State) => { diff --git a/core/src/clients/discord/voice.ts b/packages/client-discord/src/voice.ts similarity index 79% rename from core/src/clients/discord/voice.ts rename to packages/client-discord/src/voice.ts index ea331eaf912..6098592592f 100644 --- a/core/src/clients/discord/voice.ts +++ b/packages/client-discord/src/voice.ts @@ -18,33 +18,161 @@ import { VoiceState, } from "discord.js"; import EventEmitter from "events"; -import path from "path"; import prism from "prism-media"; import { Readable, pipeline } from "stream"; -import { composeContext } from "../../core/context.ts"; -import { generateMessageResponse } from "../../core/generation.ts"; -import { log_to_file } from "../../core/logger.ts"; -import { embeddingZeroVector } from "../../core/memory.ts"; +import { composeContext } from "@ai16z/eliza/src/context.ts"; +import { generateMessageResponse } from "@ai16z/eliza/src/generation.ts"; +import { embeddingZeroVector } from "@ai16z/eliza/src/memory.ts"; import { Content, HandlerCallback, IAgentRuntime, + ISpeechService, + ITranscriptionService, Memory, ModelClass, + ServiceType, State, UUID, -} from "../../core/types.ts"; -import { stringToUuid } from "../../core/uuid.ts"; -import { getWavHeader } from "../../services/audioUtils.ts"; -import { AudioMonitor } from "./audioMonitor.ts"; -import { voiceHandlerTemplate } from "./templates.ts"; - -const __dirname = path.dirname(new URL(import.meta.url).pathname); +} from "@ai16z/eliza/src/types.ts"; +import { stringToUuid } from "@ai16z/eliza/src/uuid.ts"; + +export function getWavHeader( + audioLength: number, + sampleRate: number, + channelCount: number = 1, + bitsPerSample: number = 16 +): Buffer { + const wavHeader = Buffer.alloc(44); + wavHeader.write("RIFF", 0); + wavHeader.writeUInt32LE(36 + audioLength, 4); // Length of entire file in bytes minus 8 + wavHeader.write("WAVE", 8); + wavHeader.write("fmt ", 12); + wavHeader.writeUInt32LE(16, 16); // Length of format data + wavHeader.writeUInt16LE(1, 20); // Type of format (1 is PCM) + wavHeader.writeUInt16LE(channelCount, 22); // Number of channels + wavHeader.writeUInt32LE(sampleRate, 24); // Sample rate + wavHeader.writeUInt32LE( + (sampleRate * bitsPerSample * channelCount) / 8, + 28 + ); // Byte rate + wavHeader.writeUInt16LE((bitsPerSample * channelCount) / 8, 32); // Block align ((BitsPerSample * Channels) / 8) + wavHeader.writeUInt16LE(bitsPerSample, 34); // Bits per sample + wavHeader.write("data", 36); // Data chunk header + wavHeader.writeUInt32LE(audioLength, 40); // Data chunk size + return wavHeader; +} + +import { messageCompletionFooter } from "@ai16z/eliza/src/parsing.ts"; + +const discordVoiceHandlerTemplate = + `# Task: Generate conversational voice dialog for {{agentName}}. +About {{agentName}}: +{{bio}} + +# Attachments +{{attachments}} + +# Capabilities +Note that {{agentName}} is capable of reading/seeing/hearing various forms of media, including images, videos, audio, plaintext and PDFs. Recent attachments have been included above under the "Attachments" section. + +{{actions}} + +{{messageDirections}} + +{{recentMessages}} + +# Instructions: Write the next message for {{agentName}}. Include an optional action if appropriate. {{actionNames}} +` + messageCompletionFooter; // These values are chosen for compatibility with picovoice components const DECODE_FRAME_SIZE = 1024; const DECODE_SAMPLE_RATE = 16000; +// Buffers all audio +export class AudioMonitor { + private readable: Readable; + private buffers: Buffer[] = []; + private maxSize: number; + private lastFlagged: number = -1; + private ended: boolean = false; + + constructor( + readable: Readable, + maxSize: number, + callback: (buffer: Buffer) => void + ) { + this.readable = readable; + this.maxSize = maxSize; + this.readable.on("data", (chunk: Buffer) => { + //console.log('AudioMonitor got data'); + if (this.lastFlagged < 0) { + this.lastFlagged = this.buffers.length; + } + this.buffers.push(chunk); + const currentSize = this.buffers.reduce( + (acc, cur) => acc + cur.length, + 0 + ); + while (currentSize > this.maxSize) { + this.buffers.shift(); + this.lastFlagged--; + } + }); + this.readable.on("end", () => { + console.log("AudioMonitor ended"); + this.ended = true; + if (this.lastFlagged < 0) return; + callback(this.getBufferFromStart()); + this.lastFlagged = -1; + }); + this.readable.on("speakingStopped", () => { + if (this.ended) return; + console.log("Speaking stopped"); + if (this.lastFlagged < 0) return; + callback(this.getBufferFromStart()); + }); + this.readable.on("speakingStarted", () => { + if (this.ended) return; + console.log("Speaking started"); + this.reset(); + }); + } + + stop() { + this.readable.removeAllListeners("data"); + this.readable.removeAllListeners("end"); + this.readable.removeAllListeners("speakingStopped"); + this.readable.removeAllListeners("speakingStarted"); + } + + isFlagged() { + return this.lastFlagged >= 0; + } + + getBufferFromFlag() { + if (this.lastFlagged < 0) { + return null; + } + const buffer = Buffer.concat(this.buffers.slice(this.lastFlagged)); + return buffer; + } + + getBufferFromStart() { + const buffer = Buffer.concat(this.buffers); + return buffer; + } + + reset() { + this.buffers = []; + this.lastFlagged = -1; + } + + isEnded() { + return this.ended; + } +} + export class VoiceManager extends EventEmitter { private client: Client; private runtime: IAgentRuntime; @@ -270,10 +398,11 @@ export class VoiceManager extends EventEmitter { await this.convertOpusToWav(inputBuffer); console.log("starting transcription"); - const text = - await this.runtime.transcriptionService.transcribe( - wavBuffer - ); + const text = await this.runtime + .getService( + ServiceType.TRANSCRIPTION + ) + .transcribe(wavBuffer); console.log("transcribed text: ", text); transcriptionText += text; } catch (error) { @@ -301,7 +430,9 @@ export class VoiceManager extends EventEmitter { return; } - const roomId = stringToUuid(channelId + "-" + this.runtime.agentId); + const roomId = stringToUuid( + channelId + "-" + this.runtime.agentId + ); const userIdUUID = stringToUuid(userId); await this.runtime.ensureConnection( @@ -366,7 +497,12 @@ export class VoiceManager extends EventEmitter { const context = composeContext({ state, - template: voiceHandlerTemplate, + template: + this.runtime.character.templates + ?.discordVoiceHandlerTemplate || + this.runtime.character.templates + ?.messageHandlerTemplate || + discordVoiceHandlerTemplate, }); const responseContent = await this._generateResponse( @@ -404,11 +540,11 @@ export class VoiceManager extends EventEmitter { await this.runtime.updateRecentMessageState( state ); - const responseStream = - await this.runtime.speechService.generate( - this.runtime, - content.text - ); + const responseStream = await this.runtime + .getService( + ServiceType.SPEECH_GENERATION + ) + .generate(this.runtime, content.text); if (responseStream) { await this.playAudioStream( @@ -484,14 +620,6 @@ export class VoiceManager extends EventEmitter { ): Promise { const { userId, roomId } = message; - const datestr = new Date().toUTCString().replace(/:/g, "-"); - - // log context to file - log_to_file( - `${state.agentName}_${datestr}_discord_voice_context`, - context - ); - const response = await generateMessageResponse({ runtime: this.runtime, context, @@ -505,11 +633,6 @@ export class VoiceManager extends EventEmitter { return; } - log_to_file( - `${state.agentName}_${datestr}_discord_voice_response`, - JSON.stringify(response) - ); - await this.runtime.databaseAdapter.log({ body: { message, context, response }, userId: userId, @@ -680,4 +803,4 @@ export class VoiceManager extends EventEmitter { await interaction.reply("Failed to leave the voice channel."); } } -} \ No newline at end of file +} diff --git a/packages/client-discord/tsconfig.json b/packages/client-discord/tsconfig.json new file mode 100644 index 00000000000..eaa78145aa3 --- /dev/null +++ b/packages/client-discord/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "./src" + }, + "include": ["src"] +} diff --git a/packages/client-discord/tsup.config.ts b/packages/client-discord/tsup.config.ts new file mode 100644 index 00000000000..e42bf4efeae --- /dev/null +++ b/packages/client-discord/tsup.config.ts @@ -0,0 +1,20 @@ +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/client-telegram/package.json b/packages/client-telegram/package.json new file mode 100644 index 00000000000..e1234d29485 --- /dev/null +++ b/packages/client-telegram/package.json @@ -0,0 +1,19 @@ +{ + "name": "@ai16z/client-telegram", + "version": "0.0.1", + "main": "src/index.ts", + "type": "module", + "dependencies": { + "@telegraf/types": "7.1.0", + "@ai16z/eliza": "workspace:*", + "@ai16z/plugin-node": "workspace:*", + "telegraf": "4.16.3" + }, + "devDependencies": { + "tsup": "^8.3.5" + }, + "scripts": { + "build": "tsup --format esm --dts", + "dev": "tsup --watch" + } +} diff --git a/core/src/clients/telegram/config/default.json5 b/packages/client-telegram/src/config/default.json5 similarity index 100% rename from core/src/clients/telegram/config/default.json5 rename to packages/client-telegram/src/config/default.json5 diff --git a/packages/client-telegram/src/index.ts b/packages/client-telegram/src/index.ts new file mode 100644 index 00000000000..ccbd7138864 --- /dev/null +++ b/packages/client-telegram/src/index.ts @@ -0,0 +1,19 @@ +import elizaLogger from "@ai16z/eliza/src/logger.ts"; +import { Client, IAgentRuntime } from "@ai16z/eliza/src/types.ts"; +import { TelegramClient } from "./telegramClient.ts"; + +export const TelegramClientInterface: Client = { + start: async (runtime: IAgentRuntime) => { + const botToken = runtime.getSetting("TELEGRAM_BOT_TOKEN"); + const tg = new TelegramClient(runtime, botToken); + elizaLogger.success( + `✅ Telegram client successfully started for character ${runtime.character.name}` + ); + return tg; + }, + stop: async (runtime: IAgentRuntime) => { + console.warn("Telegram client does not support stopping yet"); + }, +}; + +export default TelegramClientInterface; diff --git a/core/src/clients/telegram/src/messageManager.ts b/packages/client-telegram/src/messageManager.ts similarity index 66% rename from core/src/clients/telegram/src/messageManager.ts rename to packages/client-telegram/src/messageManager.ts index c1167ebe392..144f1bdbef5 100644 --- a/core/src/clients/telegram/src/messageManager.ts +++ b/packages/client-telegram/src/messageManager.ts @@ -1,41 +1,140 @@ import { Message } from "@telegraf/types"; -import { Context } from "telegraf"; -import { Telegraf } from "telegraf"; +import { Context, Telegraf } from "telegraf"; -import { composeContext } from "../../../core/context.ts"; -import { log_to_file } from "../../../core/logger.ts"; -import { embeddingZeroVector } from "../../../core/memory.ts"; +import { composeContext } from "@ai16z/eliza/src/context.ts"; +import { embeddingZeroVector } from "@ai16z/eliza/src/memory.ts"; import { Content, + HandlerCallback, IAgentRuntime, + IImageDescriptionService, Memory, + ModelClass, State, UUID, - HandlerCallback, - ModelClass, -} from "../../../core/types.ts"; -import { stringToUuid } from "../../../core/uuid.ts"; -import { - messageHandlerTemplate, - shouldRespondTemplate, -} from "../../discord/templates.ts"; -import ImageDescriptionService from "../../../services/image.ts"; +} from "@ai16z/eliza/src/types.ts"; +import { stringToUuid } from "@ai16z/eliza/src/uuid.ts"; + import { generateMessageResponse, generateShouldRespond, -} from "../../../core/generation.ts"; +} from "@ai16z/eliza/src/generation.ts"; +import { + messageCompletionFooter, + shouldRespondFooter, +} from "@ai16z/eliza/src/parsing.ts"; +import ImageDescriptionService from "@ai16z/plugin-node/src/services/image.ts"; const MAX_MESSAGE_LENGTH = 4096; // Telegram's max message length +const telegramShouldRespondTemplate = + `# Task: Decide if {{agentName}} should respond. +About {{agentName}}: +{{bio}} + +# INSTRUCTIONS: Determine if {{agentName}} should respond to the message and participate in the conversation. Do not comment. Just respond with "RESPOND" or "IGNORE" or "STOP". + +# RESPONSE EXAMPLES +: I just saw a really great movie +: Oh? Which movie? +Result: [IGNORE] + +{{agentName}}: Oh, this is my favorite scene +: sick +: wait, why is it your favorite scene +Result: [RESPOND] + +: stfu bot +Result: [STOP] + +: Hey {{agent}}, can you help me with something +Result: [RESPOND] + +: {{agentName}} stfu plz +Result: [STOP] + +: i need help +{{agentName}}: how can I help you? +: no. i need help from someone else +Result: [IGNORE] + +: Hey {{agent}}, can I ask you a question +{{agentName}}: Sure, what is it +: can you ask claude to create a basic react module that demonstrates a counter +Result: [RESPOND] + +: {{agentName}} can you tell me a story +: {about a girl named elara +{{agentName}}: Sure. +{{agentName}}: Once upon a time, in a quaint little village, there was a curious girl named Elara. +{{agentName}}: Elara was known for her adventurous spirit and her knack for finding beauty in the mundane. +: I'm loving it, keep going +Result: [RESPOND] + +: {{agentName}} stop responding plz +Result: [STOP] + +: okay, i want to test something. can you say marco? +{{agentName}}: marco +: great. okay, now do it again +Result: [RESPOND] + +Response options are [RESPOND], [IGNORE] and [STOP]. + +{{agentName}} is in a room with other users and is very worried about being annoying and saying too much. +Respond with [RESPOND] to messages that are directed at {{agentName}}, or participate in conversations that are interesting or relevant to their background. +If a message is not interesting or relevant, respond with [IGNORE] +Unless directly responding to a user, respond with [IGNORE] to messages that are very short or do not contain much information. +If a user asks {{agentName}} to be quiet, respond with [STOP] +If {{agentName}} concludes a conversation and isn't part of the conversation anymore, respond with [STOP] + +IMPORTANT: {{agentName}} is particularly sensitive about being annoying, so if there is any doubt, it is better to respond with [IGNORE]. +If {{agentName}} is conversing with a user and they have not asked to stop, it is better to respond with [RESPOND]. + +{{recentMessages}} + +# INSTRUCTIONS: Choose the option that best describes {{agentName}}'s response to the last message. Ignore messages if they are addressed to someone else. +` + shouldRespondFooter; + +const telegramMessageHandlerTemplate = + // {{goals}} + `# Action Examples +{{actionExamples}} +(Action examples are for reference only. Do not use the information from them in your response.) + +# Task: Generate dialog and actions for the character {{agentName}}. +About {{agentName}}: +{{bio}} +{{lore}} + +Examples of {{agentName}}'s dialog and actions: +{{characterMessageExamples}} + +{{providers}} + +{{attachments}} + +{{actions}} + +# Capabilities +Note that {{agentName}} is capable of reading/seeing/hearing various forms of media, including images, videos, audio, plaintext and PDFs. Recent attachments have been included above under the "Attachments" section. + +{{messageDirections}} + +{{recentMessages}} + +# Instructions: Write the next message for {{agentName}}. Include an action, if appropriate. {{actionNames}} +` + messageCompletionFooter; + export class MessageManager { private bot: Telegraf; private runtime: IAgentRuntime; - private imageService: ImageDescriptionService; + private imageService: IImageDescriptionService; constructor(bot: Telegraf, runtime: IAgentRuntime) { this.bot = bot; this.runtime = runtime; - this.imageService = ImageDescriptionService.getInstance(this.runtime); + this.imageService = ImageDescriptionService.getInstance(); } // Process image messages and generate descriptions @@ -71,8 +170,9 @@ export class MessageManager { } if (imageUrl) { - const { title, description } = - await this.imageService.describeImage(imageUrl); + const { title, description } = await this.imageService + .getInstance() + .describeImage(imageUrl); const fullDescription = `[Image: ${title}\n${description}]`; return { description: fullDescription }; } @@ -115,7 +215,11 @@ export class MessageManager { if ("text" in message || ("caption" in message && message.caption)) { const shouldRespondContext = composeContext({ state, - template: shouldRespondTemplate, + template: + this.runtime.character.templates + ?.telegramShouldRespondTemplate || + this.runtime.character?.templates?.shouldRespondTemplate || + telegramShouldRespondTemplate, }); const response = await generateShouldRespond({ @@ -184,12 +288,6 @@ export class MessageManager { context: string ): Promise { const { userId, roomId } = message; - const datestr = new Date().toUTCString().replace(/:/g, "-"); - - log_to_file( - `${state.agentName}_${datestr}_telegram_message_context`, - context - ); const response = await generateMessageResponse({ runtime: this.runtime, @@ -201,12 +299,6 @@ export class MessageManager { console.error("❌ No response from generateMessageResponse"); return null; } - - log_to_file( - `${state.agentName}_${datestr}_telegram_message_response`, - JSON.stringify(response) - ); - await this.runtime.databaseAdapter.log({ body: { message, context, response }, userId: userId, @@ -235,7 +327,9 @@ export class MessageManager { const userId = stringToUuid(ctx.from.id.toString()) as UUID; const userName = ctx.from.username || ctx.from.first_name || "Unknown User"; - const chatId = stringToUuid(ctx.chat?.id.toString() + "-" + this.runtime.agentId) as UUID; + const chatId = stringToUuid( + ctx.chat?.id.toString() + "-" + this.runtime.agentId + ) as UUID; const agentId = this.runtime.agentId; const roomId = chatId; @@ -277,7 +371,9 @@ export class MessageManager { inReplyTo: "reply_to_message" in message && message.reply_to_message ? stringToUuid( - message.reply_to_message.message_id.toString() + "-" + this.runtime.agentId + message.reply_to_message.message_id.toString() + + "-" + + this.runtime.agentId ) : undefined, }; @@ -306,7 +402,11 @@ export class MessageManager { // Generate response const context = composeContext({ state, - template: messageHandlerTemplate, + template: + this.runtime.character.templates + ?.telegramMessageHandlerTemplate || + this.runtime.character?.templates?.messageHandlerTemplate || + telegramMessageHandlerTemplate, }); const responseContent = await this._generateResponse( @@ -333,7 +433,11 @@ export class MessageManager { const isLastMessage = i === sentMessages.length - 1; const memory: Memory = { - id: stringToUuid(sentMessage.message_id.toString() + "-" + this.runtime.agentId), + id: stringToUuid( + sentMessage.message_id.toString() + + "-" + + this.runtime.agentId + ), agentId, userId, roomId, @@ -370,9 +474,7 @@ export class MessageManager { ); } catch (error) { console.error("❌ Error handling message:", error); - await ctx.reply( - "Sorry, I encountered an error while processing your request." - ); + console.error("Error sending message:", error); } } } diff --git a/core/src/clients/telegram/src/index.ts b/packages/client-telegram/src/telegramClient.ts similarity index 67% rename from core/src/clients/telegram/src/index.ts rename to packages/client-telegram/src/telegramClient.ts index c378db8cfb3..6d729746d65 100644 --- a/core/src/clients/telegram/src/index.ts +++ b/packages/client-telegram/src/telegramClient.ts @@ -1,8 +1,8 @@ import { Context, Telegraf } from "telegraf"; -import { IAgentRuntime } from "../../../core/types.ts"; +import { IAgentRuntime } from "@ai16z/eliza/src/types.ts"; import { MessageManager } from "./messageManager.ts"; -import { prettyConsole } from "../../../index.ts"; +import { elizaLogger } from "@ai16z/eliza/src/logger.ts"; export class TelegramClient { private bot: Telegraf; @@ -10,18 +10,18 @@ export class TelegramClient { private messageManager: MessageManager; constructor(runtime: IAgentRuntime, botToken: string) { - prettyConsole.log("📱 Constructing new TelegramClient..."); + elizaLogger.log("📱 Constructing new TelegramClient..."); this.runtime = runtime; this.bot = new Telegraf(botToken); this.messageManager = new MessageManager(this.bot, this.runtime); - prettyConsole.log("Setting up message handler..."); + elizaLogger.log("Setting up message handler..."); this.bot.on("message", async (ctx) => { try { - prettyConsole.log("📥 Received message:", ctx.message); + elizaLogger.log("📥 Received message:", ctx.message); await this.messageManager.handleMessage(ctx); } catch (error) { - prettyConsole.error("❌ Error handling message:", error); + elizaLogger.error("❌ Error handling message:", error); await ctx.reply( "An error occurred while processing your message." ); @@ -30,51 +30,48 @@ export class TelegramClient { // Handle specific message types for better logging this.bot.on("photo", (ctx) => { - prettyConsole.log( + elizaLogger.log( "📸 Received photo message with caption:", ctx.message.caption ); }); this.bot.on("document", (ctx) => { - prettyConsole.log( + elizaLogger.log( "📎 Received document message:", ctx.message.document.file_name ); }); this.bot.catch((err, ctx) => { - prettyConsole.error( - `❌ Telegram Error for ${ctx.updateType}:`, - err - ); + elizaLogger.error(`❌ Telegram Error for ${ctx.updateType}:`, err); ctx.reply("An unexpected error occurred. Please try again later."); }); - prettyConsole.log("✅ TelegramClient constructor completed"); + elizaLogger.log("✅ TelegramClient constructor completed"); } public async start(): Promise { - prettyConsole.log("🚀 Starting Telegram bot..."); + elizaLogger.log("🚀 Starting Telegram bot..."); try { this.bot.launch({ dropPendingUpdates: true, }); - prettyConsole.log( + elizaLogger.log( "✨ Telegram bot successfully launched and is running!" ); - prettyConsole.log(`Bot username: @${this.bot.botInfo?.username}`); + elizaLogger.log(`Bot username: @${this.bot.botInfo?.username}`); // Graceful shutdown handlers const shutdownHandler = async (signal: string) => { - prettyConsole.log( + elizaLogger.log( `⚠️ Received ${signal}. Shutting down Telegram bot gracefully...` ); try { await this.stop(); - prettyConsole.log("🛑 Telegram bot stopped gracefully"); + elizaLogger.log("🛑 Telegram bot stopped gracefully"); } catch (error) { - prettyConsole.error( + elizaLogger.error( "❌ Error during Telegram bot shutdown:", error ); @@ -86,14 +83,14 @@ export class TelegramClient { process.once("SIGTERM", () => shutdownHandler("SIGTERM")); process.once("SIGHUP", () => shutdownHandler("SIGHUP")); } catch (error) { - prettyConsole.error("❌ Failed to launch Telegram bot:", error); + elizaLogger.error("❌ Failed to launch Telegram bot:", error); throw error; } } public async stop(): Promise { - prettyConsole.log("Stopping Telegram bot..."); + elizaLogger.log("Stopping Telegram bot..."); await this.bot.stop(); - prettyConsole.log("Telegram bot stopped"); + elizaLogger.log("Telegram bot stopped"); } } diff --git a/packages/client-telegram/tsconfig.json b/packages/client-telegram/tsconfig.json new file mode 100644 index 00000000000..eaa78145aa3 --- /dev/null +++ b/packages/client-telegram/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "./src" + }, + "include": ["src"] +} diff --git a/packages/client-telegram/tsup.config.ts b/packages/client-telegram/tsup.config.ts new file mode 100644 index 00000000000..e42bf4efeae --- /dev/null +++ b/packages/client-telegram/tsup.config.ts @@ -0,0 +1,20 @@ +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/client-twitter/package.json b/packages/client-twitter/package.json new file mode 100644 index 00000000000..0fef6626651 --- /dev/null +++ b/packages/client-twitter/package.json @@ -0,0 +1,22 @@ +{ + "name": "@ai16z/client-twitter", + "version": "0.0.1", + "main": "dist/index.js", + "type": "module", + "types": "dist/index.d.ts", + "dependencies": { + "@ai16z/eliza": "workspace:*", + "glob": "11.0.0", + "agent-twitter-client": "0.0.13" + }, + "devDependencies": { + "tsup": "^8.3.5" + }, + "scripts": { + "build": "tsup --format esm --dts", + "dev": "tsup --watch" + }, + "peerDependencies": { + "whatwg-url": "7.1.0" + } +} diff --git a/core/src/clients/twitter/base.ts b/packages/client-twitter/src/base.ts similarity index 94% rename from core/src/clients/twitter/base.ts rename to packages/client-twitter/src/base.ts index 51e6234728e..fd2e887f02e 100644 --- a/core/src/clients/twitter/base.ts +++ b/packages/client-twitter/src/base.ts @@ -1,3 +1,12 @@ +import { embeddingZeroVector } from "@ai16z/eliza/src/memory.ts"; +import { + Content, + IAgentRuntime, + IImageDescriptionService, + Memory, + State, + UUID, +} from "@ai16z/eliza/src/types.ts"; import { QueryTweetsResponse, Scraper, @@ -8,20 +17,11 @@ import { EventEmitter } from "events"; import fs from "fs"; import path from "path"; import { fileURLToPath } from "url"; -import { embeddingZeroVector } from "../../core/memory.ts"; -import { - Content, - IAgentRuntime, - Memory, - State, - UUID, -} from "../../core/types.ts"; -import ImageDescriptionService from "../../services/image.ts"; import { glob } from "glob"; -import { stringToUuid } from "../../core/uuid.ts"; -import { prettyConsole } from "../../index.ts"; +import { elizaLogger } from "@ai16z/eliza/src/logger.ts"; +import { stringToUuid } from "@ai16z/eliza/src/uuid.ts"; export function extractAnswer(text: string): string { const startIndex = text.indexOf("Answer: ") + 8; @@ -88,10 +88,9 @@ export class ClientBase extends EventEmitter { runtime: IAgentRuntime; directions: string; lastCheckedTweetId: number | null = null; - tweetCacheFilePath = "tweetcache/latest_checked_tweet_id.txt"; - imageDescriptionService: ImageDescriptionService; + tweetCacheFilePath = __dirname + "/tweetcache/latest_checked_tweet_id.txt"; + imageDescriptionService: IImageDescriptionService; temperature: number = 0.5; - dryRun: boolean = false; private tweetCache: Map = new Map(); requestQueue: RequestQueue = new RequestQueue(); @@ -104,7 +103,7 @@ export class ClientBase extends EventEmitter { } const cacheDir = path.join( __dirname, - "../../../tweetcache", + "tweetcache", tweet.conversationId, `${tweet.id}.json` ); @@ -165,9 +164,7 @@ export class ClientBase extends EventEmitter { this.twitterClient = new Scraper(); ClientBase._twitterClient = this.twitterClient; } - this.dryRun = - this.runtime.getSetting("TWITTER_DRY_RUN")?.toLowerCase() === - "true"; + this.directions = "- " + this.runtime.character.style.all.join("\n- ") + @@ -175,11 +172,14 @@ export class ClientBase extends EventEmitter { this.runtime.character.style.post.join(); try { + console.log("this.tweetCacheFilePath", this.tweetCacheFilePath) if (fs.existsSync(this.tweetCacheFilePath)) { + // make it? const data = fs.readFileSync(this.tweetCacheFilePath, "utf-8"); this.lastCheckedTweetId = parseInt(data.trim()); } else { console.warn("Tweet cache file not found."); + console.warn(this.tweetCacheFilePath) } } catch (error) { console.error( @@ -189,7 +189,7 @@ export class ClientBase extends EventEmitter { } const cookiesFilePath = path.join( __dirname, - "../../../tweetcache/" + + "tweetcache/" + this.runtime.getSetting("TWITTER_USERNAME") + "_cookies.json" ); @@ -382,7 +382,9 @@ export class ClientBase extends EventEmitter { await this.runtime.messageManager.getMemoriesByRoomIds({ agentId: this.runtime.agentId, roomIds: cachedResults.map((tweet) => - stringToUuid(tweet.conversationId + "-" + this.runtime.agentId) + stringToUuid( + tweet.conversationId + "-" + this.runtime.agentId + ) ), }); @@ -426,11 +428,15 @@ export class ClientBase extends EventEmitter { url: tweet.permanentUrl, source: "twitter", inReplyTo: tweet.inReplyToStatusId - ? stringToUuid(tweet.inReplyToStatusId + "-" + this.runtime.agentId) + ? stringToUuid( + tweet.inReplyToStatusId + + "-" + + this.runtime.agentId + ) : undefined, } as Content; - prettyConsole.log("Creating memory for tweet", tweet.id); + elizaLogger.log("Creating memory for tweet", tweet.id); // check if it already exists const memory = @@ -438,7 +444,7 @@ export class ClientBase extends EventEmitter { stringToUuid(tweet.id + "-" + this.runtime.agentId) ); if (memory) { - prettyConsole.log( + elizaLogger.log( "Memory already exists, skipping timeline population" ); break; @@ -455,7 +461,7 @@ export class ClientBase extends EventEmitter { }); } - prettyConsole.log( + elizaLogger.log( `Populated ${tweetsToSave.length} missing tweets from the cache.` ); return; @@ -499,7 +505,10 @@ export class ClientBase extends EventEmitter { // Filter out the tweets that already exist in the database const tweetsToSave = allTweets.filter( - (tweet) => !existingMemoryIds.has(stringToUuid(tweet.id + "-" + this.runtime.agentId)) + (tweet) => + !existingMemoryIds.has( + stringToUuid(tweet.id + "-" + this.runtime.agentId) + ) ); await this.runtime.ensureUserExists( diff --git a/packages/client-twitter/src/index.ts b/packages/client-twitter/src/index.ts new file mode 100644 index 00000000000..ab0cd755f3a --- /dev/null +++ b/packages/client-twitter/src/index.ts @@ -0,0 +1,27 @@ +import { TwitterPostClient } from "./post.ts"; +import { TwitterSearchClient } from "./search.ts"; +import { TwitterInteractionClient } from "./interactions.ts"; +import { IAgentRuntime, Client } from "@ai16z/eliza/src/types.ts"; + +class TwitterAllClient { + post: TwitterPostClient; + search: TwitterSearchClient; + interaction: TwitterInteractionClient; + constructor(runtime: IAgentRuntime) { + this.post = new TwitterPostClient(runtime); + this.search = new TwitterSearchClient(runtime); + this.interaction = new TwitterInteractionClient(runtime); + } +} + +export const TwitterClientInterface: Client = { + async start(runtime: IAgentRuntime) { + console.log("Twitter client started"); + return new TwitterAllClient(runtime); + }, + async stop(runtime: IAgentRuntime) { + console.warn("Twitter client does not support stopping yet"); + }, +}; + +export default TwitterClientInterface; diff --git a/core/src/clients/twitter/interactions.ts b/packages/client-twitter/src/interactions.ts similarity index 76% rename from core/src/clients/twitter/interactions.ts rename to packages/client-twitter/src/interactions.ts index 98abc323215..cef4b7bf60e 100644 --- a/core/src/clients/twitter/interactions.ts +++ b/packages/client-twitter/src/interactions.ts @@ -1,11 +1,14 @@ import { SearchMode, Tweet } from "agent-twitter-client"; import fs from "fs"; -import { composeContext } from "../../core/context.ts"; -import { log_to_file } from "../../core/logger.ts"; +import { composeContext } from "@ai16z/eliza/src/context.ts"; +import { + generateMessageResponse, + generateShouldRespond, +} from "@ai16z/eliza/src/generation.ts"; import { messageCompletionFooter, shouldRespondFooter, -} from "../../core/parsing.ts"; +} from "@ai16z/eliza/src/parsing.ts"; import { Content, HandlerCallback, @@ -13,20 +16,13 @@ import { Memory, ModelClass, State, -} from "../../core/types.ts"; -import { stringToUuid } from "../../core/uuid.ts"; +} from "@ai16z/eliza/src/types.ts"; +import { stringToUuid } from "@ai16z/eliza/src/uuid.ts"; import { ClientBase } from "./base.ts"; -import { buildConversationThread, sendTweetChunks, wait } from "./utils.ts"; -import { - generateMessageResponse, - generateShouldRespond, -} from "../../core/generation.ts"; +import { buildConversationThread, sendTweet, wait } from "./utils.ts"; -export const messageHandlerTemplate = - `{{relevantFacts}} -{{recentFacts}} - -{{timeline}} +export const twitterMessageHandlerTemplate = + `{{timeline}} {{providers}} @@ -50,7 +46,7 @@ Recent interactions between {{agentName}} and other users: ` + messageCompletionFooter; -export const shouldRespondTemplate = +export const twitterShouldRespondTemplate = `# INSTRUCTIONS: Determine if {{agentName}} (@{{twitterUserName}}) should respond to the message and participate in the conversation. Do not comment. Just respond with "true" or "false". Response options are RESPOND, IGNORE and STOP. @@ -117,7 +113,8 @@ export class TwitterInteractionClient extends ClientBase { !this.lastCheckedTweetId || parseInt(tweet.id) > this.lastCheckedTweetId ) { - const conversationId = tweet.conversationId + "-" + this.runtime.agentId; + const conversationId = + tweet.conversationId + "-" + this.runtime.agentId; const roomId = stringToUuid(conversationId); @@ -149,11 +146,14 @@ export class TwitterInteractionClient extends ClientBase { this.lastCheckedTweetId = parseInt(tweet.id); try { - fs.writeFileSync( - this.tweetCacheFilePath, - this.lastCheckedTweetId.toString(), - "utf-8" - ); + if (this.lastCheckedTweetId) { + + fs.writeFileSync( + this.tweetCacheFilePath, + this.lastCheckedTweetId.toString(), + "utf-8" + ); + } } catch (error) { console.error( "Error saving latest checked tweet ID to file:", @@ -165,11 +165,13 @@ export class TwitterInteractionClient extends ClientBase { // Save the latest checked tweet ID to the file try { - fs.writeFileSync( - this.tweetCacheFilePath, - this.lastCheckedTweetId.toString(), - "utf-8" - ); + if (this.lastCheckedTweetId) { + fs.writeFileSync( + this.tweetCacheFilePath, + this.lastCheckedTweetId.toString(), + "utf-8" + ); + } } catch (error) { console.error( "Error saving latest checked tweet ID to file:", @@ -254,7 +256,11 @@ export class TwitterInteractionClient extends ClientBase { text: tweet.text, url: tweet.permanentUrl, inReplyTo: tweet.inReplyToStatusId - ? stringToUuid(tweet.inReplyToStatusId + "-" + this.runtime.agentId) + ? stringToUuid( + tweet.inReplyToStatusId + + "-" + + this.runtime.agentId + ) : undefined, }, userId: userIdUUID, @@ -268,7 +274,11 @@ export class TwitterInteractionClient extends ClientBase { const shouldRespondContext = composeContext({ state, - template: shouldRespondTemplate, + template: + this.runtime.character.templates + ?.twitterShouldRespondTemplate || + this.runtime.character?.templates?.shouldRespondTemplate || + twitterShouldRespondTemplate, }); const shouldRespond = await generateShouldRespond({ @@ -284,78 +294,55 @@ export class TwitterInteractionClient extends ClientBase { const context = composeContext({ state, - template: messageHandlerTemplate, + template: + this.runtime.character.templates + ?.twitterMessageHandlerTemplate || + this.runtime.character?.templates?.messageHandlerTemplate || + twitterMessageHandlerTemplate, }); - const datestr = new Date().toUTCString().replace(/:/g, "-"); - - // log context to file - log_to_file( - `${this.runtime.getSetting("TWITTER_USERNAME")}_${datestr}_interactions_context`, - context - ); - const response = await generateMessageResponse({ runtime: this.runtime, context, modelClass: ModelClass.SMALL, }); - console.log("response", response); - - console.log("tweet is", tweet); - const stringId = stringToUuid(tweet.id + "-" + this.runtime.agentId); - console.log("stringId is", stringId, "while tweet.id is", tweet.id); - response.inReplyTo = stringId; - console.log("response is", response); - - log_to_file( - `${this.runtime.getSetting("TWITTER_USERNAME")}_${datestr}_interactions_response`, - JSON.stringify(response) - ); - if (response.text) { try { - if (!this.dryRun) { - const callback: HandlerCallback = async ( - response: Content - ) => { - const memories = await sendTweetChunks( - this, - response, - message.roomId, - this.runtime.getSetting("TWITTER_USERNAME"), - tweet.id - ); - return memories; - }; - - const responseMessages = await callback(response); - - state = (await this.runtime.updateRecentMessageState( - state - )) as State; + const callback: HandlerCallback = async (response: Content) => { + const memories = await sendTweet( + this, + response, + message.roomId, + this.runtime.getSetting("TWITTER_USERNAME"), + tweet.id + ); + return memories; + }; - for (const responseMessage of responseMessages) { - await this.runtime.messageManager.createMemory( - responseMessage - ); - } + const responseMessages = await callback(response); - await this.runtime.evaluate(message, state); + state = (await this.runtime.updateRecentMessageState( + state + )) as State; - await this.runtime.processActions( - message, - responseMessages, - state + for (const responseMessage of responseMessages) { + await this.runtime.messageManager.createMemory( + responseMessage ); - } else { - console.log("Dry run, not sending tweet:", response.text); } + + await this.runtime.evaluate(message, state); + + await this.runtime.processActions( + message, + responseMessages, + state + ); const responseInfo = `Context:\n\n${context}\n\nSelected Post: ${tweet.id} - ${tweet.username}: ${tweet.text}\nAgent's Output:\n${response.text}`; // f tweets folder dont exist, create if (!fs.existsSync("tweets")) { diff --git a/packages/client-twitter/src/post.ts b/packages/client-twitter/src/post.ts new file mode 100644 index 00000000000..8525591d4a5 --- /dev/null +++ b/packages/client-twitter/src/post.ts @@ -0,0 +1,186 @@ +import { Tweet } from "agent-twitter-client"; +import fs from "fs"; +import { composeContext } from "@ai16z/eliza/src/context.ts"; +import { generateText } from "@ai16z/eliza/src/generation.ts"; +import { embeddingZeroVector } from "@ai16z/eliza/src/memory.ts"; +import { IAgentRuntime, ModelClass } from "@ai16z/eliza/src/types.ts"; +import { stringToUuid } from "@ai16z/eliza/src/uuid.ts"; +import { ClientBase } from "./base.ts"; + +const twitterPostTemplate = `{{timeline}} + +{{providers}} + +About {{agentName}} (@{{twitterUserName}}): +{{bio}} +{{lore}} +{{postDirections}} + +{{recentPosts}} + +{{characterPostExamples}} + +# Task: Generate a post in the voice and style of {{agentName}}, aka @{{twitterUserName}} +Write a single sentence post that is {{adjective}} about {{topic}} (without mentioning {{topic}} directly), from the perspective of {{agentName}}. Try to write something totally different than previous posts. Do not add commentary or ackwowledge this request, just write the post. +Your response should not contain any questions. Brief, concise statements only. No emojis. Use \\n\\n (double spaces) between statements.`; + +export class TwitterPostClient extends ClientBase { + onReady() { + const generateNewTweetLoop = () => { + this.generateNewTweet(); + setTimeout( + generateNewTweetLoop, + (Math.floor(Math.random() * (20 - 2 + 1)) + 2) * 60 * 1000 + ); // Random interval between 4-8 hours + }; + // setTimeout(() => { + generateNewTweetLoop(); + // }, 5 * 60 * 1000); // Wait 5 minutes before starting the loop + } + + constructor(runtime: IAgentRuntime) { + // Initialize the client and pass an optional callback to be called when the client is ready + super({ + runtime, + }); + } + + private async generateNewTweet() { + console.log("Generating new tweet"); + try { + await this.runtime.ensureUserExists( + this.runtime.agentId, + this.runtime.getSetting("TWITTER_USERNAME"), + this.runtime.character.name, + "twitter" + ); + + let homeTimeline = []; + + if (!fs.existsSync("tweetcache")) fs.mkdirSync("tweetcache"); + // read the file if it exists + if (fs.existsSync("tweetcache/home_timeline.json")) { + homeTimeline = JSON.parse( + fs.readFileSync("tweetcache/home_timeline.json", "utf-8") + ); + } else { + homeTimeline = await this.fetchHomeTimeline(50); + fs.writeFileSync( + "tweetcache/home_timeline.json", + JSON.stringify(homeTimeline, null, 2) + ); + } + + const formattedHomeTimeline = + `# ${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`; + }) + .join("\n"); + + const state = await this.runtime.composeState( + { + userId: this.runtime.agentId, + roomId: stringToUuid("twitter_generate_room"), + agentId: this.runtime.agentId, + content: { text: "", action: "" }, + }, + { + twitterUserName: + this.runtime.getSetting("TWITTER_USERNAME"), + timeline: formattedHomeTimeline, + } + ); + // Generate new tweet + const context = composeContext({ + state, + template: + this.runtime.character.templates?.twitterPostTemplate || + twitterPostTemplate, + }); + + const newTweetContent = await generateText({ + runtime: this.runtime, + context, + modelClass: ModelClass.SMALL, + }); + + const slice = newTweetContent.replaceAll(/\\n/g, "\n").trim(); + + const contentLength = 240; + + let content = slice.slice(0, contentLength); + // if its bigger than 280, delete the last line + if (content.length > 280) { + content = content.slice(0, content.lastIndexOf("\n")); + } + if (content.length > contentLength) { + // slice at the last period + content = content.slice(0, content.lastIndexOf(".")); + } + + // if it's still too long, get the period before the last period + if (content.length > contentLength) { + content = content.slice(0, content.lastIndexOf(".")); + } + try { + const result = await this.requestQueue.add( + async () => await this.twitterClient.sendTweet(content) + ); + // read the body of the response + const body = await result.json(); + const tweetResult = body.data.create_tweet.tweet_results.result; + + const tweet = { + id: tweetResult.rest_id, + text: tweetResult.legacy.full_text, + conversationId: tweetResult.legacy.conversation_id_str, + createdAt: tweetResult.legacy.created_at, + userId: tweetResult.legacy.user_id_str, + inReplyToStatusId: + tweetResult.legacy.in_reply_to_status_id_str, + permanentUrl: `https://twitter.com/${this.runtime.getSetting("TWITTER_USERNAME")}/status/${tweetResult.rest_id}`, + hashtags: [], + mentions: [], + photos: [], + thread: [], + urls: [], + videos: [], + } as Tweet; + + const postId = tweet.id; + const conversationId = + tweet.conversationId + "-" + this.runtime.agentId; + const roomId = stringToUuid(conversationId); + + // make sure the agent is in the room + await this.runtime.ensureRoomExists(roomId); + await this.runtime.ensureParticipantInRoom( + this.runtime.agentId, + roomId + ); + + await this.cacheTweet(tweet); + + await this.runtime.messageManager.createMemory({ + id: stringToUuid(postId + "-" + this.runtime.agentId), + userId: this.runtime.agentId, + agentId: this.runtime.agentId, + content: { + text: newTweetContent.trim(), + url: tweet.permanentUrl, + source: "twitter", + }, + roomId, + embedding: embeddingZeroVector, + createdAt: tweet.timestamp * 1000, + }); + } catch (error) { + console.error("Error sending tweet:", error); + } + } catch (error) { + console.error("Error generating new tweet:", error); + } + } +} diff --git a/core/src/clients/twitter/search.ts b/packages/client-twitter/src/search.ts similarity index 87% rename from core/src/clients/twitter/search.ts rename to packages/client-twitter/src/search.ts index c08ae69d0cb..8ac4c88bf13 100644 --- a/core/src/clients/twitter/search.ts +++ b/packages/client-twitter/src/search.ts @@ -1,28 +1,26 @@ import { SearchMode } from "agent-twitter-client"; import fs from "fs"; -import { composeContext } from "../../core/context.ts"; +import { composeContext } from "@ai16z/eliza/src/context.ts"; import { generateMessageResponse, generateText, -} from "../../core/generation.ts"; -import { log_to_file } from "../../core/logger.ts"; -import { messageCompletionFooter } from "../../core/parsing.ts"; +} from "@ai16z/eliza/src/generation.ts"; +import { messageCompletionFooter } from "@ai16z/eliza/src/parsing.ts"; import { Content, HandlerCallback, IAgentRuntime, + IImageDescriptionService, ModelClass, + ServiceType, State, -} from "../../core/types.ts"; -import { stringToUuid } from "../../core/uuid.ts"; +} from "@ai16z/eliza/src/types.ts"; +import { stringToUuid } from "@ai16z/eliza/src/uuid.ts"; import { ClientBase } from "./base.ts"; -import { buildConversationThread, sendTweetChunks, wait } from "./utils.ts"; +import { buildConversationThread, sendTweet, wait } from "./utils.ts"; -const messageHandlerTemplate = - `{{relevantFacts}} -{{recentFacts}} - -{{timeline}} +const twitterSearchTemplate = + `{{timeline}} {{providers}} @@ -146,19 +144,12 @@ export class TwitterSearchClient extends ClientBase { - Respond to tweets where there is an easy exchange of ideas to have with the user - ONLY respond with the ID of the tweet`; - const datestr = new Date().toUTCString().replace(/:/g, "-"); - const logName = `${this.runtime.character.name}_search_${datestr}`; - log_to_file(logName, prompt); - const mostInterestingTweetResponse = await generateText({ runtime: this.runtime, context: prompt, modelClass: ModelClass.SMALL, }); - const responseLogName = `${this.runtime.character.name}_search_${datestr}_result`; - log_to_file(responseLogName, mostInterestingTweetResponse); - const tweetId = mostInterestingTweetResponse.trim(); const selectedTweet = slicedTweets.find( (tweet) => @@ -182,7 +173,9 @@ export class TwitterSearchClient extends ClientBase { } const conversationId = selectedTweet.conversationId; - const roomId = stringToUuid(conversationId + "-" + this.runtime.agentId); + const roomId = stringToUuid( + conversationId + "-" + this.runtime.agentId + ); const userIdUUID = stringToUuid(selectedTweet.userId as string); @@ -204,7 +197,11 @@ export class TwitterSearchClient extends ClientBase { text: selectedTweet.text, url: selectedTweet.permanentUrl, inReplyTo: selectedTweet.inReplyToStatusId - ? stringToUuid(selectedTweet.inReplyToStatusId + "-" + this.runtime.agentId) + ? stringToUuid( + selectedTweet.inReplyToStatusId + + "-" + + this.runtime.agentId + ) : undefined, }, userId: userIdUUID, @@ -239,10 +236,11 @@ export class TwitterSearchClient extends ClientBase { // Generate image descriptions using GPT-4 vision API const imageDescriptions = []; for (const photo of selectedTweet.photos) { - const description = - await this.runtime.imageDescriptionService.describeImage( - photo.url - ); + const description = await this.runtime + .getService( + ServiceType.IMAGE_DESCRIPTION + ) + .describeImage(photo.url); imageDescriptions.push(description); } @@ -264,15 +262,11 @@ export class TwitterSearchClient extends ClientBase { const context = composeContext({ state, - template: messageHandlerTemplate, + template: + this.runtime.character.templates?.twitterSearchTemplate || + twitterSearchTemplate, }); - // log context to file - log_to_file( - `${this.runtime.getSetting("TWITTER_USERNAME")}_${datestr}_search_context`, - context - ); - const responseContent = await generateMessageResponse({ runtime: this.runtime, context, @@ -281,11 +275,6 @@ export class TwitterSearchClient extends ClientBase { responseContent.inReplyTo = message.id; - log_to_file( - `${this.runtime.getSetting("TWITTER_USERNAME")}_${datestr}_search_response`, - JSON.stringify(responseContent) - ); - const response = responseContent; if (!response.text) { @@ -298,7 +287,7 @@ export class TwitterSearchClient extends ClientBase { ); try { const callback: HandlerCallback = async (response: Content) => { - const memories = await sendTweetChunks( + const memories = await sendTweet( this, response, message.roomId, diff --git a/core/src/clients/twitter/utils.ts b/packages/client-twitter/src/utils.ts similarity index 56% rename from core/src/clients/twitter/utils.ts rename to packages/client-twitter/src/utils.ts index 7ed50478bec..b00e2554fdb 100644 --- a/core/src/clients/twitter/utils.ts +++ b/packages/client-twitter/src/utils.ts @@ -1,9 +1,9 @@ import { Tweet } from "agent-twitter-client"; -import { embeddingZeroVector } from "../../core/memory.ts"; -import { Content, Memory, UUID } from "../../core/types.ts"; -import { stringToUuid } from "../../core/uuid.ts"; +import { embeddingZeroVector } from "@ai16z/eliza/src/memory.ts"; +import { Content, Memory, UUID } from "@ai16z/eliza/src/types.ts"; +import { stringToUuid } from "@ai16z/eliza/src/uuid.ts"; import { ClientBase } from "./base.ts"; -import { prettyConsole } from "../../index.ts"; +import { elizaLogger } from "@ai16z/eliza/src/logger.ts"; const MAX_TWEET_LENGTH = 240; @@ -37,7 +37,7 @@ export async function buildConversationThread( async function processThread(currentTweet: Tweet) { if (!currentTweet) { - prettyConsole.log("No current tweet found"); + elizaLogger.log("No current tweet found"); return; } // check if the current tweet has already been saved @@ -45,8 +45,10 @@ export async function buildConversationThread( stringToUuid(currentTweet.id + "-" + client.runtime.agentId) ); if (!memory) { - prettyConsole.log("Creating memory for tweet", currentTweet.id); - const roomId = stringToUuid(currentTweet.conversationId + "-" + client.runtime.agentId); + elizaLogger.log("Creating memory for tweet", currentTweet.id); + const roomId = stringToUuid( + currentTweet.conversationId + "-" + client.runtime.agentId + ); const userId = stringToUuid(currentTweet.userId); await client.runtime.ensureConnection( @@ -58,14 +60,20 @@ export async function buildConversationThread( ); client.runtime.messageManager.createMemory({ - id: stringToUuid(currentTweet.id + "-" + client.runtime.agentId), + id: stringToUuid( + currentTweet.id + "-" + client.runtime.agentId + ), agentId: client.runtime.agentId, content: { text: currentTweet.text, source: "twitter", url: currentTweet.permanentUrl, inReplyTo: currentTweet.inReplyToStatusId - ? stringToUuid(currentTweet.inReplyToStatusId + "-" + client.runtime.agentId) + ? stringToUuid( + currentTweet.inReplyToStatusId + + "-" + + client.runtime.agentId + ) : undefined, }, createdAt: currentTweet.timestamp * 1000, @@ -143,7 +151,71 @@ export async function sendTweetChunks( source: "twitter", url: tweet.permanentUrl, inReplyTo: tweet.inReplyToStatusId - ? stringToUuid(tweet.inReplyToStatusId + "-" + client.runtime.agentId) + ? stringToUuid( + tweet.inReplyToStatusId + "-" + client.runtime.agentId + ) + : undefined, + }, + roomId, + embedding: embeddingZeroVector, + createdAt: tweet.timestamp * 1000, + })); + + return memories; +} + +export async function sendTweet( + client: ClientBase, + content: Content, + roomId: UUID, + twitterUsername: string, + inReplyTo: string +): Promise { + const chunk = truncateTweetContent(content.text); + const sentTweets: Tweet[] = []; + + const result = await client.requestQueue.add( + async () => + await client.twitterClient.sendTweet( + chunk.replaceAll(/\\n/g, "\n").trim(), + inReplyTo + ) + ); + // console.log("send tweet result:\n", result); + const body = await result.json(); + console.log("send tweet body:\n", body.data.create_tweet.tweet_results); + const tweetResult = body.data.create_tweet.tweet_results.result; + + const finalTweet = { + id: tweetResult.rest_id, + text: tweetResult.legacy.full_text, + conversationId: tweetResult.legacy.conversation_id_str, + createdAt: tweetResult.legacy.created_at, + userId: tweetResult.legacy.user_id_str, + inReplyToStatusId: tweetResult.legacy.in_reply_to_status_id_str, + permanentUrl: `https://twitter.com/${twitterUsername}/status/${tweetResult.rest_id}`, + hashtags: [], + mentions: [], + photos: [], + thread: [], + urls: [], + videos: [], + } as Tweet; + + sentTweets.push(finalTweet); + + const memories: Memory[] = sentTweets.map((tweet) => ({ + id: stringToUuid(tweet.id + "-" + client.runtime.agentId), + agentId: client.runtime.agentId, + userId: client.runtime.agentId, + content: { + text: tweet.text, + source: "twitter", + url: tweet.permanentUrl, + inReplyTo: tweet.inReplyToStatusId + ? stringToUuid( + tweet.inReplyToStatusId + "-" + client.runtime.agentId + ) : undefined, }, roomId, @@ -174,3 +246,37 @@ function splitTweetContent(content: string): string[] { return tweetChunks; } + +export function truncateTweetContent(content: string): string { + // if its 240, delete the last line + if (content.length === MAX_TWEET_LENGTH) { + return content.slice(0, content.lastIndexOf("\n")); + } + + // if its still bigger than 240, delete everything after the last period + if (content.length > MAX_TWEET_LENGTH) { + return content.slice(0, content.lastIndexOf(".")); + } + + // while its STILL bigger than 240, find the second to last exclamation point or period and delete everything after it + let iterations = 0; + while (content.length > MAX_TWEET_LENGTH && iterations < 10) { + iterations++; + // second to last index of period or exclamation point + const secondToLastIndexOfPeriod = content.lastIndexOf( + ".", + content.length - 2 + ); + const secondToLastIndexOfExclamation = content.lastIndexOf( + "!", + content.length - 2 + ); + const secondToLastIndex = Math.max( + secondToLastIndexOfPeriod, + secondToLastIndexOfExclamation + ); + content = content.slice(0, secondToLastIndex); + } + + return content; +} diff --git a/packages/client-twitter/tsconfig.json b/packages/client-twitter/tsconfig.json new file mode 100644 index 00000000000..eaa78145aa3 --- /dev/null +++ b/packages/client-twitter/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "./src" + }, + "include": ["src"] +} diff --git a/packages/client-twitter/tsup.config.ts b/packages/client-twitter/tsup.config.ts new file mode 100644 index 00000000000..e42bf4efeae --- /dev/null +++ b/packages/client-twitter/tsup.config.ts @@ -0,0 +1,20 @@ +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/core/.env.test b/packages/core/.env.test similarity index 100% rename from core/.env.test rename to packages/core/.env.test diff --git a/core/.eslintignore b/packages/core/.eslintignore similarity index 100% rename from core/.eslintignore rename to packages/core/.eslintignore diff --git a/core/.gitignore b/packages/core/.gitignore similarity index 100% rename from core/.gitignore rename to packages/core/.gitignore diff --git a/core/elizaConfig.example.yaml b/packages/core/elizaConfig.example.yaml similarity index 59% rename from core/elizaConfig.example.yaml rename to packages/core/elizaConfig.example.yaml index c271f7b269f..f20259e63f8 100644 --- a/core/elizaConfig.example.yaml +++ b/packages/core/elizaConfig.example.yaml @@ -1,11 +1,9 @@ # Load custom actions from the actions directory -# Close this into a elizaConfig.yaml file that is ignored by git +# Clone this into a elizaConfig.yaml file that is ignored by git # Paths are relative to the core/src directory actions: - - name: askClaude - path: ./actions/askClaude.ts - name: epicAction path: ./custom_actions/epicAction.ts diff --git a/core/eslint.config.mjs b/packages/core/eslint.config.mjs similarity index 100% rename from core/eslint.config.mjs rename to packages/core/eslint.config.mjs diff --git a/core/jest.config.js b/packages/core/jest.config.js similarity index 99% rename from core/jest.config.js rename to packages/core/jest.config.js index 9d609fa6785..62c0deeb702 100644 --- a/core/jest.config.js +++ b/packages/core/jest.config.js @@ -23,4 +23,4 @@ export default { "^(\\.{1,2}/.*)\\.js$": "$1", }, extensionsToTreatAsEsm: [".ts"], -} +}; diff --git a/core/nodemon.json b/packages/core/nodemon.json similarity index 100% rename from core/nodemon.json rename to packages/core/nodemon.json diff --git a/packages/core/package.json b/packages/core/package.json new file mode 100644 index 00000000000..2e4a63deab2 --- /dev/null +++ b/packages/core/package.json @@ -0,0 +1,74 @@ +{ + "name": "@ai16z/eliza", + "version": "1.0.0", + "description": "", + "main": "dist/index.js", + "type": "module", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsup --format esm --dts", + "lint": "eslint . --fix", + "watch": "tsc --watch", + "dev": "tsup --format esm --dts --watch", + "build:docs": "cd docs && pnpm run build", + "test": "jest --runInBand", + "test:watch": "jest --runInBand --watch" + }, + "author": "", + "license": "MIT", + "devDependencies": { + "@eslint/js": "^9.13.0", + "@rollup/plugin-commonjs": "25.0.8", + "@rollup/plugin-json": "6.1.0", + "@rollup/plugin-node-resolve": "15.3.0", + "@rollup/plugin-replace": "5.0.7", + "@rollup/plugin-terser": "0.1.0", + "@rollup/plugin-typescript": "11.1.6", + "@types/fluent-ffmpeg": "2.1.27", + "@types/jest": "29.5.14", + "@types/node": "22.8.4", + "@types/pdfjs-dist": "^2.10.378", + "@types/tar": "6.1.13", + "@types/wav-encoder": "1.3.3", + "@typescript-eslint/eslint-plugin": "8.12.2", + "@typescript-eslint/parser": "8.12.2", + "dotenv": "16.4.5", + "eslint": "9.13.0", + "eslint-config-prettier": "9.1.0", + "eslint-plugin-prettier": "5.2.1", + "jest": "29.7.0", + "lint-staged": "15.2.10", + "nodemon": "3.1.7", + "pm2": "5.4.2", + "prettier": "3.3.3", + "rimraf": "6.0.1", + "rollup": "2.79.2", + "ts-jest": "29.2.5", + "ts-node": "10.9.2", + "tslib": "2.8.0", + "tsup": "^8.3.5", + "typescript": "5.6.3" + }, + "dependencies": { + "@ai-sdk/anthropic": "^0.0.53", + "@ai-sdk/google": "^0.0.55", + "@ai-sdk/google-vertex": "^0.0.42", + "@ai-sdk/groq": "^0.0.3", + "@ai-sdk/openai": "1.0.0-canary.3", + "@anthropic-ai/sdk": "^0.30.1", + "@types/uuid": "^10.0.0", + "ai": "^3.4.23", + "anthropic-vertex-ai": "^1.0.0", + "fastembed": "^1.14.1", + "gaxios": "6.7.1", + "glob": "11.0.0", + "js-sha1": "0.7.0", + "ollama-ai-provider": "^0.16.1", + "openai": "4.69.0", + "tiktoken": "1.0.17", + "tinyld": "1.3.4", + "together-ai": "^0.7.0", + "unique-names-generator": "4.7.1", + "uuid": "11.0.2" + } +} diff --git a/core/renovate.json b/packages/core/renovate.json similarity index 100% rename from core/renovate.json rename to packages/core/renovate.json diff --git a/core/src/core/actions.ts b/packages/core/src/actions.ts similarity index 94% rename from core/src/core/actions.ts rename to packages/core/src/actions.ts index 18197752354..7863d5f6b39 100644 --- a/core/src/core/actions.ts +++ b/packages/core/src/actions.ts @@ -1,13 +1,6 @@ import { names, uniqueNamesGenerator } from "unique-names-generator"; import { Action, ActionExample } from "./types.ts"; -import * as DefaultActions from "../actions/index.ts"; - -export const defaultActions: Action[] = [ - DefaultActions.ignore, - DefaultActions.none, -]; - /** * Composes a set of example conversations based on provided actions and a specified count. * It randomly selects examples from the provided actions and formats them with generated names. diff --git a/core/src/core/context.ts b/packages/core/src/context.ts similarity index 100% rename from core/src/core/context.ts rename to packages/core/src/context.ts diff --git a/core/src/core/database.ts b/packages/core/src/database.ts similarity index 100% rename from core/src/core/database.ts rename to packages/core/src/database.ts diff --git a/core/src/core/defaultCharacter.ts b/packages/core/src/defaultCharacter.ts similarity index 98% rename from core/src/core/defaultCharacter.ts rename to packages/core/src/defaultCharacter.ts index 0260a7ceafd..545c2bd69a0 100644 --- a/core/src/core/defaultCharacter.ts +++ b/packages/core/src/defaultCharacter.ts @@ -1,13 +1,10 @@ -import { Character, ModelProvider } from "./types.ts"; +import { Character, ModelProviderName } from "./types.ts"; -const defaultCharacter: Character = { +export const defaultCharacter: Character = { name: "Eliza", - clients: [ - // "telegram", - // "discord", - // "twitter" - ], - modelProvider: ModelProvider.LLAMALOCAL, + plugins: [], + clients: [], + modelProvider: ModelProviderName.LLAMALOCAL, settings: { secrets: {}, voice: { @@ -402,5 +399,3 @@ const defaultCharacter: Character = { ], }, }; - -export default defaultCharacter; diff --git a/packages/core/src/embedding.ts b/packages/core/src/embedding.ts new file mode 100644 index 00000000000..c0877f8919e --- /dev/null +++ b/packages/core/src/embedding.ts @@ -0,0 +1,136 @@ +import { EmbeddingModel, FlagEmbedding } from "fastembed"; +import path from "path"; +import { fileURLToPath } from "url"; +import models from "./models.ts"; +import { + IAgentRuntime, + ModelProviderName +} from "./types.ts"; +import fs from "fs"; +import { trimTokens } from "./generation.ts"; + +function getRootPath() { + const __filename = fileURLToPath(import.meta.url); + const __dirname = path.dirname(__filename); + + const rootPath = path.resolve(__dirname, ".."); + if (rootPath.includes("/eliza/")) { + return rootPath.split("/eliza/")[0] + "/eliza/"; + } + + return path.resolve(__dirname, ".."); +} + +/** + * Send a message to the OpenAI API for embedding. + * @param input The input to be embedded. + * @returns The embedding of the input. + */ +export async function embed(runtime: IAgentRuntime, input: string) { + // get the charcter, and handle by model type + const modelProvider = models[runtime.character.modelProvider]; + const embeddingModel = modelProvider.model.embedding; + + if ( + runtime.character.modelProvider !== ModelProviderName.OPENAI && + runtime.character.modelProvider !== ModelProviderName.OLLAMA + ) { + + // make sure to trim tokens to 8192 + const cacheDir = getRootPath() + "/cache/"; + + // if the cache directory doesn't exist, create it + if (!fs.existsSync(cacheDir)) { + fs.mkdirSync(cacheDir, { recursive: true }); + } + + const embeddingModel = await FlagEmbedding.init({ + cacheDir: cacheDir + }); + + const trimmedInput = trimTokens(input, 8000, "gpt-4o-mini"); + + const embedding: number[] = await embeddingModel.queryEmbed(trimmedInput); + console.log("Embedding dimensions: ", embedding.length); + return embedding; + + // commented out the text generation service that uses llama + // const service = runtime.getService( + // ServiceType.TEXT_GENERATION + // ); + + // const instance = service?.getInstance(); + + // if (instance) { + // return await instance.getEmbeddingResponse(input); + // } + } + + // TODO: Fix retrieveCachedEmbedding + // Check if we already have the embedding in the lore + const cachedEmbedding = await retrieveCachedEmbedding(runtime, input); + if (cachedEmbedding) { + return cachedEmbedding; + } + + const requestOptions = { + method: "POST", + headers: { + "Content-Type": "application/json", + // TODO: make this not hardcoded + ...(runtime.modelProvider !== ModelProviderName.OLLAMA && { + Authorization: `Bearer ${runtime.token}`, + }), + }, + body: JSON.stringify({ + input, + model: embeddingModel, + length: 384, // we are squashing dimensions to 768 for openai, even thought the model supports 1536 + // -- this is ok for matryoshka embeddings but longterm, we might want to support 1536 + }), + }; + try { + const response = await fetch( + // TODO: make this not hardcoded + `${runtime.character.modelEndpointOverride || modelProvider.endpoint}${runtime.character.modelProvider === ModelProviderName.OLLAMA ? "/v1" : ""}/embeddings`, + requestOptions + ); + + if (!response.ok) { + throw new Error( + "OpenAI API Error: " + + response.status + + " " + + response.statusText + ); + } + + interface OpenAIEmbeddingResponse { + data: Array<{ embedding: number[] }>; + } + + const data: OpenAIEmbeddingResponse = await response.json(); + + return data?.data?.[0].embedding; + } catch (e) { + console.error(e); + throw e; + } +} + +export async function retrieveCachedEmbedding( + runtime: IAgentRuntime, + input: string +) { + if(!input) { + console.log("No input to retrieve cached embedding for"); + return null; + } + + const similaritySearchResult = + await runtime.messageManager.getCachedEmbeddings(input); + if (similaritySearchResult.length > 0) { + return similaritySearchResult[0].embedding; + } + return null; +} diff --git a/core/src/core/evaluators.ts b/packages/core/src/evaluators.ts similarity index 97% rename from core/src/core/evaluators.ts rename to packages/core/src/evaluators.ts index 71fb31bb4e6..426d452af3d 100644 --- a/core/src/core/evaluators.ts +++ b/packages/core/src/evaluators.ts @@ -1,11 +1,7 @@ import { names, uniqueNamesGenerator } from "unique-names-generator"; -import fact from "../evaluators/fact.ts"; -// import goal from "../evaluators/goal.ts"; import { ActionExample, type Evaluator } from "./types.ts"; import { stringArrayFooter } from "./parsing.ts"; -export const defaultEvaluators: Evaluator[] = [fact /*, goal*/]; - /** * Template used for the evaluation generateText. */ diff --git a/core/src/core/generation.ts b/packages/core/src/generation.ts similarity index 62% rename from core/src/core/generation.ts rename to packages/core/src/generation.ts index c9eda52e7a7..f6cdbf72273 100644 --- a/core/src/core/generation.ts +++ b/packages/core/src/generation.ts @@ -1,20 +1,30 @@ +import { createAnthropic } from "@ai-sdk/anthropic"; +import { createGroq } from "@ai-sdk/groq"; +import { createOpenAI } from "@ai-sdk/openai"; +import { getModel } from "./models.ts"; +import { IImageDescriptionService, ModelClass } from "./types.ts"; +import { generateText as aiGenerateText } from "ai"; +import { Buffer } from "buffer"; +import { createOllama } from "ollama-ai-provider"; +import OpenAI from "openai"; +import { default as tiktoken, TiktokenModel } from "tiktoken"; +import Together from "together-ai"; +import { elizaLogger } from "./index.ts"; +import models from "./models.ts"; import { parseBooleanFromText, parseJsonArrayFromText, parseJSONObjectFromText, parseShouldRespondFromText, } from "./parsing.ts"; -import { Content, IAgentRuntime, ModelProvider } from "./types.ts"; - -import { createGroq } from "@ai-sdk/groq"; -import { createOpenAI } from "@ai-sdk/openai"; -import { default as tiktoken, TiktokenModel } from "tiktoken"; -import models from "./models.ts"; - -import { generateText as aiGenerateText } from "ai"; - -import { createAnthropic } from "@ai-sdk/anthropic"; -import { prettyConsole } from "../index.ts"; +import settings from "./settings.ts"; +import { + Content, + IAgentRuntime, + ITextGenerationService, + ModelProviderName, + ServiceType, +} from "./types.ts"; /** * Send a message to the model for a text generateText - receive a string back and parse how you'd like @@ -46,6 +56,8 @@ export async function generateText({ } const provider = runtime.modelProvider; + const endpoint = + runtime.character.modelEndpointOverride || models[provider].endpoint; const model = models[provider].model[modelClass]; const temperature = models[provider].settings.temperature; const frequency_penalty = models[provider].settings.frequency_penalty; @@ -56,7 +68,7 @@ export async function generateText({ const apiKey = runtime.token; try { - prettyConsole.log( + elizaLogger.log( `Trimming context to max length of ${max_context_length} tokens.` ); context = await trimTokens(context, max_context_length, "gpt-4o"); @@ -64,42 +76,46 @@ export async function generateText({ let response: string; const _stop = stop || models[provider].settings.stop; - prettyConsole.log( + elizaLogger.log( `Using provider: ${provider}, model: ${model}, temperature: ${temperature}, max response length: ${max_response_length}` ); switch (provider) { - case ModelProvider.OPENAI: - case ModelProvider.LLAMACLOUD: { - prettyConsole.log("Initializing OpenAI model."); - const openai = createOpenAI({ apiKey }); - - console.log('****** CONTEXT\n', context) + case ModelProviderName.OPENAI: + case ModelProviderName.LLAMACLOUD: { + elizaLogger.log("Initializing OpenAI model."); + const openai = createOpenAI({ apiKey, baseURL: endpoint }); 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, }); - console.log("****** RESPONSE\n", openaiResponse); - response = openaiResponse; - prettyConsole.log("Received response from OpenAI model."); + elizaLogger.log("Received response from OpenAI model."); break; } - case ModelProvider.ANTHROPIC: { - prettyConsole.log("Initializing Anthropic model."); + case ModelProviderName.ANTHROPIC: { + elizaLogger.log("Initializing Anthropic model."); const anthropic = createAnthropic({ apiKey }); const { text: anthropicResponse } = await aiGenerateText({ model: anthropic.languageModel(model), prompt: context, + system: + runtime.character.system ?? + settings.SYSTEM_PROMPT ?? + undefined, temperature: temperature, maxTokens: max_response_length, frequencyPenalty: frequency_penalty, @@ -107,20 +123,23 @@ export async function generateText({ }); response = anthropicResponse; - prettyConsole.log("Received response from Anthropic model."); + elizaLogger.log("Received response from Anthropic model."); break; } - case ModelProvider.GROK: { - prettyConsole.log("Initializing Grok model."); - const serverUrl = models[provider].endpoint; - const grok = createOpenAI({ apiKey, baseURL: serverUrl }); + case ModelProviderName.GROK: { + elizaLogger.log("Initializing Grok model."); + const grok = createOpenAI({ apiKey, baseURL: endpoint }); const { text: grokResponse } = await aiGenerateText({ model: grok.languageModel(model, { parallelToolCalls: false, }), prompt: context, + system: + runtime.character.system ?? + settings.SYSTEM_PROMPT ?? + undefined, temperature: temperature, maxTokens: max_response_length, frequencyPenalty: frequency_penalty, @@ -128,11 +147,11 @@ export async function generateText({ }); response = grokResponse; - prettyConsole.log("Received response from Grok model."); + elizaLogger.log("Received response from Grok model."); break; } - case ModelProvider.GROQ: { + case ModelProviderName.GROQ: { console.log("Initializing Groq model."); const groq = createGroq({ apiKey }); @@ -140,6 +159,10 @@ export async function generateText({ model: groq.languageModel(model), prompt: context, temperature: temperature, + system: + runtime.character.system ?? + settings.SYSTEM_PROMPT ?? + undefined, maxTokens: max_response_length, frequencyPenalty: frequency_penalty, presencePenalty: presence_penalty, @@ -150,56 +173,107 @@ export async function generateText({ break; } - case ModelProvider.LLAMALOCAL: { - prettyConsole.log( - "Using local Llama model for text completion." - ); - response = await runtime.llamaService.queueTextCompletion( - context, - temperature, - _stop, - frequency_penalty, - presence_penalty, - max_response_length - ); - prettyConsole.log("Received response from local Llama model."); + case ModelProviderName.LLAMALOCAL: { + elizaLogger.log("Using local Llama model for text completion."); + response = await runtime + .getService( + ServiceType.TEXT_GENERATION + ) + .queueTextCompletion( + context, + temperature, + _stop, + frequency_penalty, + presence_penalty, + max_response_length + ); + elizaLogger.log("Received response from local Llama model."); break; } - case ModelProvider.REDPILL: { - prettyConsole.log("Initializing RedPill model."); + case ModelProviderName.REDPILL: { + elizaLogger.log("Initializing RedPill model."); const serverUrl = models[provider].endpoint; const openai = createOpenAI({ apiKey, baseURL: serverUrl }); - console.log('****** MODEL\n', model) - console.log('****** CONTEXT\n', context) - const { text: openaiResponse } = await aiGenerateText({ model: openai.languageModel(model), prompt: context, temperature: temperature, + system: + runtime.character.system ?? + settings.SYSTEM_PROMPT ?? + undefined, maxTokens: max_response_length, frequencyPenalty: frequency_penalty, presencePenalty: presence_penalty, }); - console.log("****** RESPONSE\n", openaiResponse); - response = openaiResponse; - prettyConsole.log("Received response from OpenAI model."); + elizaLogger.log("Received response from OpenAI model."); + break; + } + + + case ModelProviderName.OPENROUTER: { + elizaLogger.log("Initializing OpenRouter model."); + const serverUrl = models[provider].endpoint; + const openrouter = createOpenAI({ apiKey, baseURL: serverUrl }); + + const { text: openrouterResponse } = await aiGenerateText({ + model: openrouter.languageModel(model), + prompt: context, + temperature: temperature, + system: + runtime.character.system ?? + settings.SYSTEM_PROMPT ?? + undefined, + maxTokens: max_response_length, + frequencyPenalty: frequency_penalty, + presencePenalty: presence_penalty, + }); + + response = openrouterResponse; + elizaLogger.log("Received response from OpenRouter model."); break; } + + case ModelProviderName.OLLAMA: + { + console.log("Initializing Ollama model."); + + const ollamaProvider = createOllama({ + baseURL: models[provider].endpoint + "/api", + }); + const ollama = ollamaProvider(model); + + console.log("****** MODEL\n", model); + + const { text: ollamaResponse } = await aiGenerateText({ + model: ollama, + prompt: context, + temperature: temperature, + maxTokens: max_response_length, + frequencyPenalty: frequency_penalty, + presencePenalty: presence_penalty, + }); + + response = ollamaResponse; + } + console.log("Received response from Ollama model."); + break; + default: { const errorMessage = `Unsupported provider: ${provider}`; - prettyConsole.error(errorMessage); + elizaLogger.error(errorMessage); throw new Error(errorMessage); } } return response; } catch (error) { - prettyConsole.error("Error in generateText:", error); + elizaLogger.error("Error in generateText:", error); throw error; } } @@ -249,7 +323,7 @@ export async function generateShouldRespond({ let retryDelay = 1000; while (true) { try { - prettyConsole.log( + elizaLogger.log( "Attempting to generate text with context:", context ); @@ -259,27 +333,27 @@ export async function generateShouldRespond({ modelClass, }); - prettyConsole.log("Received response from generateText:", response); + elizaLogger.log("Received response from generateText:", response); const parsedResponse = parseShouldRespondFromText(response.trim()); if (parsedResponse) { - prettyConsole.log("Parsed response:", parsedResponse); + elizaLogger.log("Parsed response:", parsedResponse); return parsedResponse; } else { - prettyConsole.log("generateShouldRespond no response"); + elizaLogger.log("generateShouldRespond no response"); } } catch (error) { - prettyConsole.error("Error in generateShouldRespond:", error); + elizaLogger.error("Error in generateShouldRespond:", error); if ( error instanceof TypeError && error.message.includes("queueTextCompletion") ) { - prettyConsole.error( + elizaLogger.error( "TypeError: Cannot read properties of null (reading 'queueTextCompletion')" ); } } - prettyConsole.log(`Retrying in ${retryDelay}ms...`); + elizaLogger.log(`Retrying in ${retryDelay}ms...`); await new Promise((resolve) => setTimeout(resolve, retryDelay)); retryDelay *= 2; } @@ -351,9 +425,10 @@ export async function generateTrueOrFalse({ modelClass: string; }): Promise { let retryDelay = 1000; + console.log("modelClass", modelClass) const stop = Array.from( - new Set([...(models[modelClass].settings.stop || []), ["\n"]]) + new Set([...(models[runtime.modelProvider].settings.stop || []), ["\n"]]) ) as string[]; while (true) { @@ -370,7 +445,7 @@ export async function generateTrueOrFalse({ return parsedResponse; } } catch (error) { - prettyConsole.error("Error in generateTrueOrFalse:", error); + elizaLogger.error("Error in generateTrueOrFalse:", error); } await new Promise((resolve) => setTimeout(resolve, retryDelay)); @@ -403,7 +478,7 @@ export async function generateTextArray({ modelClass: string; }): Promise { if (!context) { - prettyConsole.error("generateTextArray context is empty"); + elizaLogger.error("generateTextArray context is empty"); return []; } let retryDelay = 1000; @@ -421,7 +496,7 @@ export async function generateTextArray({ return parsedResponse; } } catch (error) { - prettyConsole.error("Error in generateTextArray:", error); + elizaLogger.error("Error in generateTextArray:", error); } await new Promise((resolve) => setTimeout(resolve, retryDelay)); @@ -439,7 +514,7 @@ export async function generateObject({ modelClass: string; }): Promise { if (!context) { - prettyConsole.error("generateObject context is empty"); + elizaLogger.error("generateObject context is empty"); return null; } let retryDelay = 1000; @@ -448,16 +523,16 @@ export async function generateObject({ 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) { + runtime, + context, + modelClass, + }); + const parsedResponse = parseJSONObjectFromText(response); + if (parsedResponse) { return parsedResponse; } } catch (error) { - prettyConsole.error("Error in generateObject:", error); + elizaLogger.error("Error in generateObject:", error); } await new Promise((resolve) => setTimeout(resolve, retryDelay)); @@ -475,7 +550,7 @@ export async function generateObjectArray({ modelClass: string; }): Promise { if (!context) { - prettyConsole.error("generateObjectArray context is empty"); + elizaLogger.error("generateObjectArray context is empty"); return []; } let retryDelay = 1000; @@ -493,7 +568,7 @@ export async function generateObjectArray({ return parsedResponse; } } catch (error) { - prettyConsole.error("Error in generateTextArray:", error); + elizaLogger.error("Error in generateTextArray:", error); } await new Promise((resolve) => setTimeout(resolve, retryDelay)); @@ -536,17 +611,118 @@ export async function generateMessageResponse({ // try parsing the response as JSON, if null then try again const parsedContent = parseJSONObjectFromText(response) as Content; if (!parsedContent) { - prettyConsole.log("parsedContent is null, retrying"); + elizaLogger.log("parsedContent is null, retrying"); continue; } return parsedContent; } catch (error) { - prettyConsole.error("ERROR:", error); + elizaLogger.error("ERROR:", error); // wait for 2 seconds retryLength *= 2; await new Promise((resolve) => setTimeout(resolve, retryLength)); - prettyConsole.log("Retrying..."); + elizaLogger.log("Retrying..."); } } } + +export const generateImage = async ( + data: { + prompt: string; + width: number; + height: number; + count?: number; + }, + runtime: IAgentRuntime +): Promise<{ + success: boolean; + data?: string[]; + error?: any; +}> => { + const { prompt, width, height } = data; + let { count } = data; + if (!count) { + count = 1; + } + + const model = getModel(runtime.character.modelProvider, ModelClass.IMAGE); + const modelSettings = models[runtime.character.modelProvider].imageSettings; + // some fallbacks for backwards compat, should remove in the future + const apiKey = + runtime.token ?? + runtime.getSetting("TOGETHER_API_KEY") ?? + runtime.getSetting("OPENAI_API_KEY"); + + try { + if (runtime.character.modelProvider === ModelProviderName.LLAMACLOUD) { + const together = new Together({ apiKey: apiKey as string }); + const response = await together.images.create({ + model: "black-forest-labs/FLUX.1-schnell", + prompt, + width, + height, + steps: modelSettings?.steps ?? 4, + n: count, + }); + const urls: string[] = []; + for (let i = 0; i < response.data.length; i++) { + const json = response.data[i].b64_json; + // decode base64 + const base64 = Buffer.from(json, "base64").toString("base64"); + urls.push(base64); + } + const base64s = await Promise.all( + urls.map(async (url) => { + const response = await fetch(url); + const blob = await response.blob(); + const buffer = await blob.arrayBuffer(); + let base64 = Buffer.from(buffer).toString("base64"); + base64 = "data:image/jpeg;base64," + base64; + return base64; + }) + ); + return { success: true, data: base64s }; + } else { + let targetSize = `${width}x${height}`; + if ( + targetSize !== "1024x1024" && + targetSize !== "1792x1024" && + targetSize !== "1024x1792" + ) { + targetSize = "1024x1024"; + } + const openai = new OpenAI({ apiKey: apiKey as string }); + const response = await openai.images.generate({ + model, + prompt, + size: targetSize as "1024x1024" | "1792x1024" | "1024x1792", + n: 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 resp = await runtime + .getService(ServiceType.IMAGE_DESCRIPTION) + .describeImage(imageUrl); + return { + title: resp.title.trim(), + description: resp.description.trim(), + }; +}; diff --git a/core/src/core/goals.ts b/packages/core/src/goals.ts similarity index 100% rename from core/src/core/goals.ts rename to packages/core/src/goals.ts diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts new file mode 100644 index 00000000000..b1ed027b8cc --- /dev/null +++ b/packages/core/src/index.ts @@ -0,0 +1,19 @@ +// Exports +export * from "./actions.ts"; +export * from "./context.ts"; +export * from "./database.ts"; +export * from "./defaultCharacter.ts"; +export * from "./embedding.ts"; +export * from "./evaluators.ts"; +export * from "./generation.ts"; +export * from "./goals.ts"; +export * from "./memory.ts"; +export * from "./messages.ts"; +export * from "./models.ts"; +export * from "./posts.ts"; +export * from "./providers.ts"; +export * from "./relationships.ts"; +export * from "./runtime.ts"; +export * from "./settings.ts"; +export * from "./types.ts"; +export * from "./logger.ts"; diff --git a/core/src/cli/colors.ts b/packages/core/src/logger.ts similarity index 97% rename from core/src/cli/colors.ts rename to packages/core/src/logger.ts index 86209c1ebbd..3580362d9e7 100644 --- a/core/src/cli/colors.ts +++ b/packages/core/src/logger.ts @@ -1,4 +1,4 @@ -export class PrettyConsole { +class ElizaLogger { closeByNewLine = true; useIcons = true; logsTitle = "LOGS"; @@ -266,3 +266,10 @@ export class PrettyConsole { } } } + +export const elizaLogger = new ElizaLogger(); +elizaLogger.clear(); +elizaLogger.closeByNewLine = true; +elizaLogger.useIcons = true; + +export default elizaLogger; diff --git a/core/src/core/memory.ts b/packages/core/src/memory.ts similarity index 100% rename from core/src/core/memory.ts rename to packages/core/src/memory.ts diff --git a/core/src/core/messages.ts b/packages/core/src/messages.ts similarity index 100% rename from core/src/core/messages.ts rename to packages/core/src/messages.ts diff --git a/core/src/core/models.ts b/packages/core/src/models.ts similarity index 66% rename from core/src/core/models.ts rename to packages/core/src/models.ts index 3c8b275d4ed..4112c1b0d1f 100644 --- a/core/src/core/models.ts +++ b/packages/core/src/models.ts @@ -1,20 +1,8 @@ -import { Model, ModelProvider, ModelClass } from "./types.ts"; - -type Models = { - [ModelProvider.OPENAI]: Model; - [ModelProvider.ANTHROPIC]: Model; - [ModelProvider.GROK]: Model; - [ModelProvider.GROQ]: Model; - [ModelProvider.LLAMACLOUD]: Model; - [ModelProvider.LLAMALOCAL]: Model; - [ModelProvider.GOOGLE]: Model; - [ModelProvider.CLAUDE_VERTEX]: Model; - [ModelProvider.REDPILL]: Model; - // TODO: add OpenRouter - feel free to do this :) -}; +import settings from "./settings.ts"; +import { Models, ModelProviderName, ModelClass } from "./types.ts"; const models: Models = { - [ModelProvider.OPENAI]: { + [ModelProviderName.OPENAI]: { endpoint: "https://api.openai.com/v1", settings: { stop: [], @@ -29,9 +17,10 @@ const models: Models = { [ModelClass.MEDIUM]: "gpt-4o", [ModelClass.LARGE]: "gpt-4o", [ModelClass.EMBEDDING]: "text-embedding-3-small", + [ModelClass.IMAGE]: "dall-e-3", }, }, - [ModelProvider.ANTHROPIC]: { + [ModelProviderName.ANTHROPIC]: { settings: { stop: [], maxInputTokens: 200000, @@ -47,7 +36,7 @@ const models: Models = { [ModelClass.LARGE]: "claude-3-opus-20240229", }, }, - [ModelProvider.CLAUDE_VERTEX]: { + [ModelProviderName.CLAUDE_VERTEX]: { settings: { stop: [], maxInputTokens: 200000, @@ -63,7 +52,7 @@ const models: Models = { [ModelClass.LARGE]: "claude-3-opus-20240229", }, }, - [ModelProvider.GROK]: { + [ModelProviderName.GROK]: { settings: { stop: [], maxInputTokens: 128000, @@ -80,7 +69,7 @@ const models: Models = { [ModelClass.EMBEDDING]: "grok-beta", // not sure about this one }, }, - [ModelProvider.GROQ]: { + [ModelProviderName.GROQ]: { endpoint: "https://api.groq.com/openai/v1", settings: { stop: [], @@ -97,7 +86,7 @@ const models: Models = { [ModelClass.EMBEDDING]: "llama-3.1-8b-instant", }, }, - [ModelProvider.LLAMACLOUD]: { + [ModelProviderName.LLAMACLOUD]: { settings: { stop: [], maxInputTokens: 128000, @@ -105,6 +94,9 @@ const models: Models = { repetition_penalty: 0.0, temperature: 0.3, }, + imageSettings: { + steps: 4, + }, endpoint: "https://api.together.ai/v1", model: { [ModelClass.SMALL]: "meta-llama/Llama-3.2-3B-Instruct-Turbo", @@ -112,9 +104,10 @@ const models: Models = { [ModelClass.LARGE]: "meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo", [ModelClass.EMBEDDING]: "togethercomputer/m2-bert-80M-32k-retrieval", + [ModelClass.IMAGE]: "black-forest-labs/FLUX.1-schnell", }, }, - [ModelProvider.LLAMALOCAL]: { + [ModelProviderName.LLAMALOCAL]: { settings: { stop: ["<|eot_id|>", "<|eom_id|>"], maxInputTokens: 32768, @@ -134,7 +127,7 @@ const models: Models = { "togethercomputer/m2-bert-80M-32k-retrieval", }, }, - [ModelProvider.GOOGLE]: { + [ModelProviderName.GOOGLE]: { settings: { stop: [], maxInputTokens: 128000, @@ -150,7 +143,7 @@ const models: Models = { [ModelClass.EMBEDDING]: "text-embedding-004", }, }, - [ModelProvider.REDPILL]: { + [ModelProviderName.REDPILL]: { endpoint: "https://api.red-pill.ai/v1", settings: { stop: [], @@ -169,13 +162,69 @@ const models: Models = { [ModelClass.EMBEDDING]: "text-embedding-3-small", }, }, + [ModelProviderName.OPENROUTER]: { + endpoint: "https://openrouter.ai/api/v1", + settings: { + stop: [], + maxInputTokens: 128000, + maxOutputTokens: 8192, + frequency_penalty: 0.0, + presence_penalty: 0.0, + temperature: 0.6, + }, + // Available models: https://openrouter.ai/models + // To test other models, change the models below + model: { + [ModelClass.SMALL]: + settings.SMALL_OPENROUTER_MODEL || + settings.OPENROUTER_MODEL || + "nousresearch/hermes-3-llama-3.1-70b", + [ModelClass.MEDIUM]: + settings.MEDIUM_OPENROUTER_MODEL || + settings.OPENROUTER_MODEL || + "nousresearch/hermes-3-llama-3.1-405b", + [ModelClass.LARGE]: + settings.LARGE_OPENROUTER_MODEL || + settings.OPENROUTER_MODEL || + "nousresearch/hermes-3-llama-3.1-405b", + [ModelClass.EMBEDDING]: + "text-embedding-3-small", + }, + }, + [ModelProviderName.OLLAMA]: { + settings: { + stop: [], + maxInputTokens: 128000, + maxOutputTokens: 8192, + frequency_penalty: 0.0, + presence_penalty: 0.0, + temperature: 0.3, + }, + endpoint: settings.OLLAMA_SERVER_URL || "http://localhost:11434", + model: { + [ModelClass.SMALL]: + settings.SMALL_OLLAMA_MODEL || + settings.OLLAMA_MODEL || + "llama3.2", + [ModelClass.MEDIUM]: + settings.MEDIUM_OLLAMA_MODEL || + settings.OLLAMA_MODEL || + "hermes3", + [ModelClass.LARGE]: + settings.LARGE_OLLAMA_MODEL || + settings.OLLAMA_MODEL || + "hermes3:70b", + [ModelClass.EMBEDDING]: + settings.OLLAMA_EMBEDDING_MODEL || "mxbai-embed-large", + }, + }, }; -export function getModel(provider: ModelProvider, type: ModelClass) { +export function getModel(provider: ModelProviderName, type: ModelClass) { return models[provider].model[type]; } -export function getEndpoint(provider: ModelProvider) { +export function getEndpoint(provider: ModelProviderName) { return models[provider].endpoint; } diff --git a/core/src/core/parsing.ts b/packages/core/src/parsing.ts similarity index 100% rename from core/src/core/parsing.ts rename to packages/core/src/parsing.ts diff --git a/core/src/core/posts.ts b/packages/core/src/posts.ts similarity index 100% rename from core/src/core/posts.ts rename to packages/core/src/posts.ts diff --git a/core/src/core/providers.ts b/packages/core/src/providers.ts similarity index 76% rename from core/src/core/providers.ts rename to packages/core/src/providers.ts index d187bac509e..e97eb331f9e 100644 --- a/core/src/core/providers.ts +++ b/packages/core/src/providers.ts @@ -1,7 +1,4 @@ -import { timeProvider } from "../providers/time.ts"; -import { IAgentRuntime, State, type Memory, type Provider } from "./types.ts"; - -export const defaultProviders: Provider[] = [timeProvider]; +import { IAgentRuntime, State, type Memory } from "./types.ts"; /** * Formats provider outputs into a string which can be injected into the context. diff --git a/core/src/core/relationships.ts b/packages/core/src/relationships.ts similarity index 100% rename from core/src/core/relationships.ts rename to packages/core/src/relationships.ts diff --git a/core/src/core/runtime.ts b/packages/core/src/runtime.ts similarity index 82% rename from core/src/core/runtime.ts rename to packages/core/src/runtime.ts index 687d7122132..2731ed0ec44 100644 --- a/core/src/core/runtime.ts +++ b/packages/core/src/runtime.ts @@ -1,61 +1,47 @@ +import { names, uniqueNamesGenerator } from "unique-names-generator"; +import { + composeActionExamples, + formatActionNames, + formatActions, +} from "./actions.ts"; import { addHeader, composeContext } from "./context.ts"; +import { defaultCharacter } from "./defaultCharacter.ts"; import { - defaultEvaluators, evaluationTemplate, formatEvaluatorExamples, formatEvaluatorNames, formatEvaluators, } from "./evaluators.ts"; -import { embeddingZeroVector, MemoryManager } from "./memory.ts"; +import { generateText } from "./generation.ts"; +import { formatGoalsAsString, getGoals } from "./goals.ts"; +import { elizaLogger } from "./index.ts"; +import { MemoryManager } from "./memory.ts"; +import { formatActors, formatMessages, getActorDetails } from "./messages.ts"; import { parseJsonArrayFromText } from "./parsing.ts"; +import { formatPosts } from "./posts.ts"; +import { getProviders } from "./providers.ts"; +import settings from "./settings.ts"; import { Character, Goal, HandlerCallback, IAgentRuntime, - IBrowserService, IDatabaseAdapter, - IImageRecognitionService, IMemoryManager, - IPdfService, - ISpeechService, - ITranscriptionService, - IVideoService, ModelClass, - ModelProvider, + ModelProviderName, + Plugin, Provider, + Service, + ServiceType, State, + UUID, type Action, + type Actor, type Evaluator, type Memory, } from "./types.ts"; - -import { names, uniqueNamesGenerator } from "unique-names-generator"; -import { formatFacts } from "../evaluators/fact.ts"; -import { BrowserService } from "../services/browser.ts"; -import ImageDescriptionService from "../services/image.ts"; -import LlamaService from "../services/llama.ts"; -import { PdfService } from "../services/pdf.ts"; -import { SpeechService } from "../services/speech.ts"; -import { TranscriptionService } from "../services/transcription.ts"; -import { VideoService } from "../services/video.ts"; -import { - composeActionExamples, - formatActionNames, - formatActions, -} from "./actions.ts"; -import defaultCharacter from "./defaultCharacter.ts"; -import { embed } from "./embedding.ts"; -import { generateText, splitChunks } from "./generation.ts"; -import { formatGoalsAsString, getGoals } from "./goals.ts"; -import { formatActors, formatMessages, getActorDetails } from "./messages.ts"; -import { formatPosts } from "./posts.ts"; -import { defaultProviders, getProviders } from "./providers.ts"; -import settings from "./settings.ts"; -import { UUID, type Actor } from "./types.ts"; import { stringToUuid } from "./uuid.ts"; -import { ImageGenModel } from "./imageGenModels.ts"; -import { prettyConsole } from "../index.ts"; /** * Represents the runtime environment for an agent, handling message processing, @@ -104,30 +90,7 @@ export class AgentRuntime implements IAgentRuntime { /** * The model to use for generateText. */ - modelProvider = ModelProvider.LLAMALOCAL; - - /** - * The model to use for image generation. - */ - imageGenModel: ImageGenModel = ImageGenModel.TogetherAI; - - /** - * Local Llama if no OpenAI key is present - */ - llamaService: LlamaService | null = null; - - // services - speechService: ISpeechService; - - transcriptionService: ITranscriptionService; - - imageDescriptionService: IImageRecognitionService; - - browserService: IBrowserService; - - videoService: IVideoService; - - pdfService: IPdfService; + modelProvider: ModelProviderName; /** * Fetch function to use @@ -150,11 +113,6 @@ export class AgentRuntime implements IAgentRuntime { */ descriptionManager: IMemoryManager; - /** - * Manage the fact and recall of facts. - */ - factManager: IMemoryManager; - /** * Manage the creation and recall of static information (documents, historical game lore, etc) */ @@ -170,6 +128,49 @@ export class AgentRuntime implements IAgentRuntime { */ fragmentsManager: IMemoryManager; + services: Map = new Map(); + memoryManagers: Map = new Map(); + + registerMemoryManager(manager: IMemoryManager): void { + if (!manager.tableName) { + throw new Error("Memory manager must have a tableName"); + } + + if (this.memoryManagers.has(manager.tableName)) { + console.warn( + `Memory manager ${manager.tableName} is already registered. Skipping registration.` + ); + return; + } + + this.memoryManagers.set(manager.tableName, manager); + } + + getMemoryManager(tableName: string): IMemoryManager | null { + return this.memoryManagers.get(tableName) || null; + } + + getService(service: ServiceType): T | null { + const serviceInstance = this.services.get(service); + if (!serviceInstance) { + console.error(`Service ${service} not found`); + return null; + } + return serviceInstance as T; + } + registerService(service: Service): void { + const serviceType = (service as typeof Service).serviceType; + console.log("Registering service:", serviceType); + if (this.services.has(serviceType)) { + console.warn( + `Service ${serviceType} is already registered. Skipping registration.` + ); + return; + } + + this.services.set((service as typeof Service).serviceType, service); + } + /** * Creates an instance of AgentRuntime. * @param opts - The options for configuring the AgentRuntime. @@ -178,6 +179,8 @@ export class AgentRuntime implements IAgentRuntime { * @param opts.serverUrl - The URL of the worker. * @param opts.actions - Optional custom actions. * @param opts.evaluators - Optional custom evaluators. + * @param opts.services - Optional custom services. + * @param opts.memoryManagers - Optional custom memory managers. * @param opts.providers - Optional context providers. * @param opts.model - The model to use for generateText. * @param opts.embeddingModel - The model to use for embedding. @@ -194,9 +197,12 @@ export class AgentRuntime implements IAgentRuntime { serverUrl?: string; // The URL of the worker actions?: Action[]; // Optional custom actions evaluators?: Evaluator[]; // Optional custom evaluators + plugins?: Plugin[]; providers?: Provider[]; - imageGenModel?: ImageGenModel; - modelProvider: ModelProvider; + modelProvider: ModelProviderName; + + services?: Service[]; // Map of service name to service instance + managers?: IMemoryManager[]; // Map of table name to memory manager databaseAdapter: IDatabaseAdapter; // The database adapter used for interacting with the database fetch?: typeof fetch | unknown; speechModelPath?: string; @@ -228,11 +234,6 @@ export class AgentRuntime implements IAgentRuntime { tableName: "descriptions", }); - this.factManager = new MemoryManager({ - runtime: this, - tableName: "facts", - }); - this.loreManager = new MemoryManager({ runtime: this, tableName: "lore", @@ -248,6 +249,10 @@ export class AgentRuntime implements IAgentRuntime { tableName: "fragments", }); + (opts.services ?? []).forEach((service: Service) => { + this.registerService(service); + }); + this.serverUrl = opts.serverUrl ?? this.serverUrl; this.modelProvider = this.character.modelProvider ?? @@ -256,49 +261,40 @@ export class AgentRuntime implements IAgentRuntime { if (!this.serverUrl) { console.warn("No serverUrl provided, defaulting to localhost"); } - this.imageGenModel = - this.character.imageGenModel ?? - opts.imageGenModel ?? - this.imageGenModel; this.token = opts.token; + [...(opts.character.plugins || []), ...(opts.plugins || [])].forEach( + (plugin) => { + plugin.actions?.forEach((action) => { + this.registerAction(action); + }); + + plugin.evaluators?.forEach((evaluator) => { + this.registerEvaluator(evaluator); + }); + + plugin.providers?.forEach((provider) => { + this.registerContextProvider(provider); + }); + + plugin.services?.forEach((service) => { + this.registerService(service); + }); + } + ); + (opts.actions ?? []).forEach((action) => { this.registerAction(action); }); - (opts.evaluators ?? defaultEvaluators).forEach((evaluator) => { - this.registerEvaluator(evaluator); - }); - (opts.providers ?? defaultProviders).forEach((provider) => { + (opts.providers ?? []).forEach((provider) => { this.registerContextProvider(provider); }); - if ( - this.modelProvider === ModelProvider.LLAMALOCAL && - !this.llamaService - ) { - console.log( - "Initializing LlamaLocal service for agent", - this.agentId, - this.character.name - ); - this.llamaService = LlamaService.getInstance(); - } - - this.transcriptionService = TranscriptionService.getInstance(this); - - this.imageDescriptionService = - ImageDescriptionService.getInstance(this); - - this.browserService = BrowserService.getInstance(this); - - this.videoService = VideoService.getInstance(this); - - this.pdfService = new PdfService(); - - // static class, no need to instantiate but we can access it like a class instance - this.speechService = new SpeechService(); + (opts.evaluators ?? []).forEach((evaluator: Evaluator) => { + this.registerEvaluator(evaluator); + }); if ( opts.character && @@ -315,64 +311,62 @@ export class AgentRuntime implements IAgentRuntime { * then chunks the content into fragments, embeds each fragment, and creates fragment memories. * @param knowledge An array of knowledge items containing id, path, and content. */ - private async processCharacterKnowledge(knowledge: string[]) { - // ensure the room exists and the agent exists in the room - this.ensureRoomExists(this.agentId); - this.ensureUserExists( - this.agentId, - this.character.name, - this.character.name - ); - this.ensureParticipantExists(this.agentId, this.agentId); - - for (const knowledgeItem of knowledge) { - // TODO: Fix the knowledge??? - continue; - // const knowledgeId = stringToUuid(knowledgeItem); - // const existingDocument = - // await this.documentsManager.getMemoryById(knowledgeId); - // if (!existingDocument) { - // console.log( - // "Processing knowledge for ", - // this.character.name, - // " - ", - // knowledgeItem.slice(0, 100) - // ); - // await this.documentsManager.createMemory({ - // embedding: embeddingZeroVector, - // id: knowledgeId, - // agentId: this.agentId, - // roomId: this.agentId, - // userId: this.agentId, - // createdAt: Date.now(), - // content: { - // text: knowledgeItem, - // }, - // }); - // const fragments = await splitChunks( - // this, - // knowledgeItem, - // 1200, - // 200, - // "fast" - // ); - // for (const fragment of fragments) { - // const embedding = await embed(this, fragment); - // await this.fragmentsManager.createMemory({ - // id: stringToUuid(fragment), - // roomId: this.agentId, - // userId: this.agentId, - // createdAt: Date.now(), - // content: { - // source: knowledgeId, - // text: fragment, - // }, - // embedding, - // }); - // } - // } - } - } + // private async processCharacterKnowledge(knowledge: string[]) { + // // ensure the room exists and the agent exists in the room + // this.ensureRoomExists(this.agentId); + // this.ensureUserExists( + // this.agentId, + // this.character.name, + // this.character.name + // ); + // this.ensureParticipantExists(this.agentId, this.agentId); + + // for (const knowledgeItem of knowledge) { + // const knowledgeId = stringToUuid(knowledgeItem); + // const existingDocument = + // await this.documentsManager.getMemoryById(knowledgeId); + // if (!existingDocument) { + // console.log( + // "Processing knowledge for ", + // this.character.name, + // " - ", + // knowledgeItem.slice(0, 100) + // ); + // await this.documentsManager.createMemory({ + // embedding: embeddingZeroVector, + // id: knowledgeId, + // agentId: this.agentId, + // roomId: this.agentId, + // userId: this.agentId, + // createdAt: Date.now(), + // content: { + // text: knowledgeItem, + // }, + // }); + // const fragments = await splitChunks( + // this, + // knowledgeItem, + // 1200, + // 200, + // "fast" + // ); + // for (const fragment of fragments) { + // const embedding = await embed(this, fragment); + // await this.fragmentsManager.createMemory({ + // id: stringToUuid(fragment), + // roomId: this.agentId, + // userId: this.agentId, + // createdAt: Date.now(), + // content: { + // source: knowledgeId, + // text: fragment, + // }, + // embedding, + // }); + // } + // } + // } + // } getSetting(key: string) { // check if the key is in the character.settings.secrets object @@ -405,7 +399,7 @@ export class AgentRuntime implements IAgentRuntime { * @param action The action to register. */ registerAction(action: Action) { - prettyConsole.success(`Registering action: ${action.name}`); + elizaLogger.success(`Registering action: ${action.name}`); this.actions.push(action); } @@ -437,6 +431,7 @@ export class AgentRuntime implements IAgentRuntime { callback?: HandlerCallback ): Promise { if (!responses[0].content?.action) { + elizaLogger.warn("No action found in the response content."); return; } @@ -444,6 +439,8 @@ export class AgentRuntime implements IAgentRuntime { .toLowerCase() .replace("_", ""); + elizaLogger.success(`Normalized action: ${normalizedAction}`); + let action = this.actions.find( (a: { name: string }) => a.name @@ -454,7 +451,7 @@ export class AgentRuntime implements IAgentRuntime { ); if (!action) { - // each action has a .similes array, lets see if we can find a match + elizaLogger.info("Attempting to find action in similes."); for (const _action of this.actions) { const simileAction = _action.similes.find( (simile) => @@ -468,22 +465,28 @@ export class AgentRuntime implements IAgentRuntime { ); if (simileAction) { action = _action; + elizaLogger.success( + `Action found in similes: ${action.name}` + ); break; } } } if (!action) { - return console.warn( + elizaLogger.error( "No action found for", responses[0].content.action ); + return; } if (!action.handler) { + elizaLogger.error(`Action ${action.name} has no handler.`); return; } + elizaLogger.success(`Executing handler for action: ${action.name}`); await action.handler(this, message, state, {}, callback); } @@ -491,14 +494,20 @@ export class AgentRuntime implements IAgentRuntime { * Evaluate the message and state using the registered evaluators. * @param message The message to evaluate. * @param state The state of the agent. + * @param didRespond Whether the agent responded to the message. * @returns The results of the evaluation. */ - async evaluate(message: Memory, state?: State) { + async evaluate(message: Memory, state?: State, didRespond?: boolean) { + console.log("Evaluate: ", didRespond) const evaluatorPromises = this.evaluators.map( async (evaluator: Evaluator) => { + console.log("Evaluating", evaluator.name) if (!evaluator.handler) { return null; } + if(!didRespond && !evaluator.alwaysRun) { + return null; + } const result = await evaluator.validate(this, message, state); if (result) { return evaluator; @@ -526,7 +535,9 @@ export class AgentRuntime implements IAgentRuntime { evaluators, evaluatorNames, } as State, - template: evaluationTemplate, + template: + this.character.templates?.evaluationTemplate || + evaluationTemplate, }); const result = await generateText({ @@ -589,7 +600,7 @@ export class AgentRuntime implements IAgentRuntime { email: email || (userName || "Bot") + "@" + source || "Unknown", // Temporary details: { summary: "" }, }); - prettyConsole.success(`User ${userName} created successfully.`); + elizaLogger.success(`User ${userName} created successfully.`); } } @@ -598,7 +609,7 @@ export class AgentRuntime implements IAgentRuntime { await this.databaseAdapter.getParticipantsForRoom(roomId); if (!participants.includes(userId)) { await this.databaseAdapter.addParticipant(userId, roomId); - prettyConsole.log( + elizaLogger.log( `User ${userId} linked to room ${roomId} successfully.` ); } @@ -644,7 +655,7 @@ export class AgentRuntime implements IAgentRuntime { const room = await this.databaseAdapter.getRoom(roomId); if (!room) { await this.databaseAdapter.createRoom(roomId); - prettyConsole.log(`Room ${roomId} created successfully.`); + elizaLogger.log(`Room ${roomId} created successfully.`); } } @@ -660,13 +671,10 @@ export class AgentRuntime implements IAgentRuntime { const { userId, roomId } = message; const conversationLength = this.getConversationLength(); - const recentFactsCount = Math.ceil(this.getConversationLength() / 2); - const relevantFactsCount = Math.ceil(this.getConversationLength() / 2); - const [actorsData, recentMessagesData, recentFactsData, goalsData]: [ + const [actorsData, recentMessagesData, goalsData]: [ Actor[], Memory[], - Memory[], Goal[], ] = await Promise.all([ getActorDetails({ runtime: this, roomId }), @@ -676,11 +684,6 @@ export class AgentRuntime implements IAgentRuntime { count: conversationLength, unique: false, }), - this.factManager.getMemories({ - agentId: this.agentId, - roomId, - count: recentFactsCount, - }), getGoals({ runtime: this, count: 10, @@ -691,25 +694,6 @@ export class AgentRuntime implements IAgentRuntime { const goals = formatGoalsAsString({ goals: goalsData }); - let relevantFactsData: Memory[] = []; - - if (recentFactsData.length > recentFactsCount) { - relevantFactsData = ( - await this.factManager.searchMemoriesByEmbedding( - recentFactsData[0].embedding!, - { - roomId, - agentId: this.agentId, - count: relevantFactsCount, - } - ) - ).filter((fact: Memory) => { - return !recentFactsData.find( - (recentFact: Memory) => recentFact.id === fact.id - ); - }); - } - const actors = formatActors({ actors: actorsData ?? [] }); const recentMessages = formatMessages({ @@ -723,9 +707,6 @@ export class AgentRuntime implements IAgentRuntime { conversationHeader: false, }); - const recentFacts = formatFacts(recentFactsData); - const relevantFacts = formatFacts(relevantFactsData); - // const lore = formatLore(loreData); const senderName = actorsData?.find( @@ -1038,16 +1019,6 @@ Text: ${attachment.text} ? addHeader("# Posts in Thread", recentPosts) : "", recentMessagesData, - recentFacts: - recentFacts && recentFacts.length > 0 - ? addHeader("# Recent Facts", recentFacts) - : "", - recentFactsData, - relevantFacts: - relevantFacts && relevantFacts.length > 0 - ? addHeader("# Relevant Facts", relevantFacts) - : "", - relevantFactsData, attachments: formattedAttachments && formattedAttachments.length > 0 ? addHeader("# Attachments", formattedAttachments) diff --git a/packages/core/src/settings.ts b/packages/core/src/settings.ts new file mode 100644 index 00000000000..9f4f7c75976 --- /dev/null +++ b/packages/core/src/settings.ts @@ -0,0 +1,55 @@ +import { config } from "dotenv"; +import fs from "fs"; +import path from "path"; + +/** + * Recursively searches for a .env file starting from the current directory + * and moving up through parent directories + * @param {string} [startDir=process.cwd()] - Starting directory for the search + * @returns {string|null} Path to the nearest .env file or null if not found + */ +export function findNearestEnvFile(startDir = process.cwd()) { + let currentDir = startDir; + + // Continue searching until we reach the root directory + while (currentDir !== path.parse(currentDir).root) { + const envPath = path.join(currentDir, ".env"); + + if (fs.existsSync(envPath)) { + return envPath; + } + + // Move up to parent directory + currentDir = path.dirname(currentDir); + } + + // Check root directory as well + const rootEnvPath = path.join(path.parse(currentDir).root, ".env"); + return fs.existsSync(rootEnvPath) ? rootEnvPath : null; +} + +/** + * Loads environment variables from the nearest .env file + * @returns {Object} Environment variables object + * @throws {Error} If no .env file is found + */ +export function loadEnvConfig() { + const envPath = findNearestEnvFile(); + + if (!envPath) { + throw new Error("No .env file found in current or parent directories."); + } + + // Load the .env file + const result = config({ path: envPath }); + + if (result.error) { + throw new Error(`Error loading .env file: ${result.error}`); + } + + console.log(`Loaded .env file from: ${envPath}`); + return process.env; +} + +export const settings = loadEnvConfig(); +export default settings; diff --git a/packages/core/src/test_resources/basic.test.ts b/packages/core/src/test_resources/basic.test.ts new file mode 100644 index 00000000000..fb31cc366b5 --- /dev/null +++ b/packages/core/src/test_resources/basic.test.ts @@ -0,0 +1,12 @@ +import { describe, expect, it } from "@jest/globals"; + +describe("Basic Test Suite", () => { + it("should run a basic test", () => { + expect(true).toBe(true); + }); + + it("should have access to environment variables", () => { + expect(process.env.NODE_ENV).toBe("test"); + expect(process.env.TEST_DATABASE_CLIENT).toBe("sqlite"); + }); +}); diff --git a/core/src/test_resources/cache.ts b/packages/core/src/test_resources/cache.ts similarity index 94% rename from core/src/test_resources/cache.ts rename to packages/core/src/test_resources/cache.ts index b8fbef0bbe3..3f42011eb1b 100644 --- a/core/src/test_resources/cache.ts +++ b/packages/core/src/test_resources/cache.ts @@ -1,8 +1,7 @@ // getCachedEmbeddings // check cache.json for embedding where the key is a stringified version of the memory and the value is a number array +import fs from "fs"; export const getCachedEmbeddings = async (text: string) => { - const fs = await import("fs"); - if (!fs.existsSync("./embedding-cache.json")) { fs.writeFileSync("./embedding-cache.json", "{}"); } @@ -20,8 +19,6 @@ export const writeCachedEmbedding = async ( text: string, embedding: number[] ) => { - const fs = await import("fs"); - // check if ./embedding-cache.json exists, if it doesn't, write {} to it if (!fs.existsSync("./embedding-cache.json")) { fs.writeFileSync("./embedding-cache.json", "{}"); diff --git a/core/src/test_resources/constants.ts b/packages/core/src/test_resources/constants.ts similarity index 92% rename from core/src/test_resources/constants.ts rename to packages/core/src/test_resources/constants.ts index 5f125ee296c..f60b632a03f 100644 --- a/core/src/test_resources/constants.ts +++ b/packages/core/src/test_resources/constants.ts @@ -1,4 +1,4 @@ -import { type UUID } from "../core/types.ts"; +import { type UUID } from "@ai16z/eliza/src/types.ts"; export const SERVER_URL = "http://localhost:7998"; export const SUPABASE_URL = "https://pronvzrzfwsptkojvudd.supabase.co"; diff --git a/core/src/test_resources/createRuntime.ts b/packages/core/src/test_resources/createRuntime.ts similarity index 88% rename from core/src/test_resources/createRuntime.ts rename to packages/core/src/test_resources/createRuntime.ts index 38b7163242d..a9c98ddcf75 100644 --- a/core/src/test_resources/createRuntime.ts +++ b/packages/core/src/test_resources/createRuntime.ts @@ -1,10 +1,15 @@ import { SqliteDatabaseAdapter } from "../adapters/sqlite.ts"; -import { load } from "../adapters/sqlite/sqlite_vec.ts"; -import { SqlJsDatabaseAdapter } from "../adapters/sqljs.ts"; -import { SupabaseDatabaseAdapter } from "../adapters/supabase.ts"; -import { DatabaseAdapter } from "../core/database.ts"; -import { AgentRuntime } from "../core/runtime.ts"; -import { Action, Evaluator, ModelProvider, Provider } from "../core/types.ts"; +import { load } from "../../../adapter-sqlite/src/sqlite_vec.ts"; +import { SqlJsDatabaseAdapter } from "../../../adapter-sqljs/src/index.ts"; +import { SupabaseDatabaseAdapter } from "../../../adapter-supabase/src/index.ts"; +import { DatabaseAdapter } from "@ai16z/eliza/src/database.ts"; +import { AgentRuntime } from "@ai16z/eliza/src/runtime.ts"; +import { + Action, + Evaluator, + ModelProviderName, + Provider, +} from "@ai16z/eliza/src/types.ts"; import { SUPABASE_ANON_KEY, SUPABASE_URL, @@ -131,7 +136,7 @@ export async function createRuntime({ serverUrl: "https://api.openai.com/v1", conversationLength, token: env!.OPENAI_API_KEY!, - modelProvider: ModelProvider.OPENAI, + modelProvider: ModelProviderName.OPENAI, actions: actions ?? [], evaluators: evaluators ?? [], providers: providers ?? [], diff --git a/core/src/test_resources/data.ts b/packages/core/src/test_resources/data.ts similarity index 99% rename from core/src/test_resources/data.ts rename to packages/core/src/test_resources/data.ts index fc58184d8f0..6b6d5481c7e 100644 --- a/core/src/test_resources/data.ts +++ b/packages/core/src/test_resources/data.ts @@ -1,4 +1,4 @@ -import { ConversationExample, type UUID } from "../core/types.ts"; +import { ConversationExample, type UUID } from "@ai16z/eliza/src/types.ts"; import { zeroUuid } from "./constants.ts"; // CJ asks Jim some personal questions - name, job, marital status, and what he's looking for in a relationship diff --git a/core/src/test_resources/getOrCreateRelationship.ts b/packages/core/src/test_resources/getOrCreateRelationship.ts similarity index 92% rename from core/src/test_resources/getOrCreateRelationship.ts rename to packages/core/src/test_resources/getOrCreateRelationship.ts index bdf27d7ea74..9ecab65ee9e 100644 --- a/core/src/test_resources/getOrCreateRelationship.ts +++ b/packages/core/src/test_resources/getOrCreateRelationship.ts @@ -1,5 +1,5 @@ -import { getRelationship } from "../core/relationships.ts"; -import { IAgentRuntime, Relationship, UUID } from "../core/types.ts"; +import { getRelationship } from "@ai16z/eliza/src/relationships.ts"; +import { IAgentRuntime, Relationship, UUID } from "@ai16z/eliza/src/types.ts"; export async function getOrCreateRelationship({ runtime, diff --git a/core/src/test_resources/populateMemories.ts b/packages/core/src/test_resources/populateMemories.ts similarity index 93% rename from core/src/test_resources/populateMemories.ts rename to packages/core/src/test_resources/populateMemories.ts index 94015fe5f4b..bef1cddc2f3 100644 --- a/core/src/test_resources/populateMemories.ts +++ b/packages/core/src/test_resources/populateMemories.ts @@ -1,4 +1,4 @@ -import { Content, IAgentRuntime, type UUID } from "../core/types.ts"; +import { Content, IAgentRuntime, type UUID } from "@ai16z/eliza/src/types.ts"; import { getCachedEmbeddings, writeCachedEmbedding } from "./cache.ts"; import { type User } from "./types.ts"; diff --git a/core/src/test_resources/report.ts b/packages/core/src/test_resources/report.ts similarity index 83% rename from core/src/test_resources/report.ts rename to packages/core/src/test_resources/report.ts index 70d4a37cb9d..1982ab864e8 100644 --- a/core/src/test_resources/report.ts +++ b/packages/core/src/test_resources/report.ts @@ -1,3 +1,5 @@ +import fs from "fs"; + interface TestResult { testName: string; attempts: number; @@ -6,7 +8,7 @@ interface TestResult { } export async function deleteReport() { - const { existsSync, unlinkSync } = await import("fs"); + const { existsSync, unlinkSync } = fs; // Define the path to the test-report.json file const reportPath = "./test-report.json"; @@ -24,7 +26,7 @@ export async function addToReport( successful: number, successRate: number ) { - const { existsSync, readFileSync, writeFileSync } = await import("fs"); + const { existsSync, readFileSync, writeFileSync } = fs; // Define the path to the test-report.json file const reportPath = "./test-report.json"; @@ -65,15 +67,14 @@ export async function addToReport( } export async function logReport() { - const { existsSync, readFileSync } = await import("fs"); - const colors = await import("ansi-colors"); + const { existsSync, readFileSync } = fs; // Define the path to the test-report.json file const reportPath = "./test-report.json"; // Check if test-report.json exists if (!existsSync(reportPath)) { - console.log(colors.red("Error: test-report.json does not exist.")); + console.log("Error: test-report.json does not exist."); return; } @@ -86,11 +87,11 @@ export async function logReport() { const logMessage = `${test.testName}: ${test.attempts} Attempts, ${test.successful} Successful, Success Rate: ${test.successRate}%`; if (test.successRate === 100) { - console.log(colors.green(logMessage)); + console.log(logMessage); } else if (test.successRate < 100 && test.successRate > 0) { - console.log(colors.yellow(logMessage)); + console.warn(logMessage); } else { - console.log(colors.red(logMessage)); + console.error(logMessage); } }); } diff --git a/core/src/test_resources/runAiTest.ts b/packages/core/src/test_resources/runAiTest.ts similarity index 100% rename from core/src/test_resources/runAiTest.ts rename to packages/core/src/test_resources/runAiTest.ts diff --git a/core/src/test_resources/templates.ts b/packages/core/src/test_resources/templates.ts similarity index 87% rename from core/src/test_resources/templates.ts rename to packages/core/src/test_resources/templates.ts index 9c99412b05a..28b0dc903af 100644 --- a/core/src/test_resources/templates.ts +++ b/packages/core/src/test_resources/templates.ts @@ -1,4 +1,4 @@ -import { messageCompletionFooter } from "../core/parsing.ts"; +import { messageCompletionFooter } from "@ai16z/eliza/src/parsing.ts"; export const messageHandlerTemplate = `{{actionExamples}} @@ -14,8 +14,6 @@ export const messageHandlerTemplate = - Available actions are {{actionNames}} {{lore}} -{{relevantFacts}} -{{recentFacts}} {{goals}} {{actors}} {{actionNames}} diff --git a/core/src/test_resources/testAction.ts b/packages/core/src/test_resources/testAction.ts similarity index 93% rename from core/src/test_resources/testAction.ts rename to packages/core/src/test_resources/testAction.ts index 5ecfd6f559b..78ea87a3a6e 100644 --- a/core/src/test_resources/testAction.ts +++ b/packages/core/src/test_resources/testAction.ts @@ -1,4 +1,8 @@ -import { IAgentRuntime, type Action, type Memory } from "../core/types.ts"; +import { + IAgentRuntime, + type Action, + type Memory, +} from "@ai16z/eliza/src/types.ts"; export const TEST_ACTION = { name: "TEST_ACTION", diff --git a/core/src/test_resources/testEvaluator.ts b/packages/core/src/test_resources/testEvaluator.ts similarity index 97% rename from core/src/test_resources/testEvaluator.ts rename to packages/core/src/test_resources/testEvaluator.ts index 06821277abf..ca7eaa429fc 100644 --- a/core/src/test_resources/testEvaluator.ts +++ b/packages/core/src/test_resources/testEvaluator.ts @@ -3,7 +3,7 @@ import { IAgentRuntime, type Memory, type State, -} from "../core/types.ts"; +} from "@ai16z/eliza/src/types.ts"; async function handler(runtime: IAgentRuntime, message: Memory) { const state = (await runtime.composeState(message)) as State; diff --git a/core/src/test_resources/testSetup.ts b/packages/core/src/test_resources/testSetup.ts similarity index 72% rename from core/src/test_resources/testSetup.ts rename to packages/core/src/test_resources/testSetup.ts index 1c45a613d5a..1f782c22fec 100644 --- a/core/src/test_resources/testSetup.ts +++ b/packages/core/src/test_resources/testSetup.ts @@ -1,10 +1,10 @@ import dotenv from "dotenv"; -import path from 'path'; +import path from "path"; import { jest } from "@jest/globals"; // Load test environment variables -dotenv.config({ path: '.env.test' }); +dotenv.config({ path: ".env.test" }); // Set longer timeout for tests jest.setTimeout(120000); diff --git a/core/src/test_resources/types.ts b/packages/core/src/test_resources/types.ts similarity index 100% rename from core/src/test_resources/types.ts rename to packages/core/src/test_resources/types.ts diff --git a/core/tests/actions.test.d.ts b/packages/core/src/tests/actions.test.d.ts similarity index 100% rename from core/tests/actions.test.d.ts rename to packages/core/src/tests/actions.test.d.ts diff --git a/core/tests/actions.test.ts b/packages/core/src/tests/actions.test.ts similarity index 94% rename from core/tests/actions.test.ts rename to packages/core/src/tests/actions.test.ts index 58d224cc586..6f702bf5d90 100644 --- a/core/tests/actions.test.ts +++ b/packages/core/src/tests/actions.test.ts @@ -8,8 +8,8 @@ import { TEST_ACTION_FAIL, } from "../src/test_resources/testAction.ts"; import { type User } from "../src/test_resources/types.ts"; -import { composeContext } from "../src/core/context.ts"; -import { embeddingZeroVector } from "../src/core/memory.ts"; +import { composeContext } from "../src/context.ts"; +import { embeddingZeroVector } from "../src/memory.ts"; import { Content, IAgentRuntime, @@ -17,9 +17,10 @@ import { State, type Memory, type UUID, -} from "../src/core/types.ts"; -import { stringToUuid } from "../src/core/uuid.ts"; -import { generateMessageResponse } from "../src/core/generation.ts"; +} from "../src/types.ts"; +import { stringToUuid } from "../src/uuid.ts"; +import { generateMessageResponse } from "../src/generation.ts"; +import { MemoryManager } from "@ai16z/eliza/src/index.ts"; async function handleMessage( runtime: IAgentRuntime, @@ -163,7 +164,12 @@ describe("Actions", () => { }); async function cleanup() { - await runtime.factManager.removeAllMemories(roomId); + const factsManager = new MemoryManager({ + runtime, + tableName: "facts", + }); + + await factsManager.removeAllMemories(roomId); await runtime.messageManager.removeAllMemories(roomId); } diff --git a/core/tests/browser.test.ts b/packages/core/src/tests/browser.test.ts similarity index 100% rename from core/tests/browser.test.ts rename to packages/core/src/tests/browser.test.ts diff --git a/core/tests/continue.test.d.ts b/packages/core/src/tests/continue.test.d.ts similarity index 100% rename from core/tests/continue.test.d.ts rename to packages/core/src/tests/continue.test.d.ts diff --git a/core/tests/continue.test.ts b/packages/core/src/tests/continue.test.ts similarity index 96% rename from core/tests/continue.test.ts rename to packages/core/src/tests/continue.test.ts index 9e2d4c7c766..07663f9388a 100644 --- a/core/tests/continue.test.ts +++ b/packages/core/src/tests/continue.test.ts @@ -1,10 +1,5 @@ import dotenv from "dotenv"; -import { - Content, - IAgentRuntime, - Memory, - type UUID, -} from "../src/core/types.ts"; +import { Content, IAgentRuntime, Memory, type UUID } from "../src/types.ts"; import { zeroUuid } from "../src/test_resources/constants.ts"; import { createRuntime } from "../src/test_resources/createRuntime.ts"; import { Goodbye1 } from "../src/test_resources/data.ts"; @@ -14,6 +9,7 @@ import { runAiTest } from "../src/test_resources/runAiTest.ts"; import { type User } from "../src/test_resources/types.ts"; import action from "../src/actions/continue.ts"; import ignore from "../src/actions/ignore.ts"; +import { MemoryManager } from "@ai16z/eliza/src/memory.ts"; dotenv.config({ path: ".dev.vars" }); @@ -74,7 +70,12 @@ describe("User Profile", () => { }); async function cleanup() { - await runtime.factManager.removeAllMemories(roomId); + const factsManager = new MemoryManager({ + runtime, + tableName: "facts", + }); + + await factsManager.removeAllMemories(roomId); await runtime.messageManager.removeAllMemories(roomId); } diff --git a/core/tests/evaluation.test.d.ts b/packages/core/src/tests/evaluation.test.d.ts similarity index 100% rename from core/tests/evaluation.test.d.ts rename to packages/core/src/tests/evaluation.test.d.ts diff --git a/core/tests/evaluation.test.ts b/packages/core/src/tests/evaluation.test.ts similarity index 95% rename from core/tests/evaluation.test.ts rename to packages/core/src/tests/evaluation.test.ts index 55d4c220873..04ff8bee4c4 100644 --- a/core/tests/evaluation.test.ts +++ b/packages/core/src/tests/evaluation.test.ts @@ -9,9 +9,9 @@ import { TEST_EVALUATOR_FAIL, } from "../src/test_resources/testEvaluator.ts"; import { type User } from "../src/test_resources/types.ts"; -import { composeContext } from "../src/core/context.ts"; -import { evaluationTemplate } from "../src/core/evaluators.ts"; -import { IAgentRuntime, Memory, UUID } from "../src/core/types.ts"; +import { composeContext } from "../src/context.ts"; +import { evaluationTemplate } from "../src/evaluators.ts"; +import { IAgentRuntime, Memory, UUID } from "../src/types.ts"; dotenv.config({ path: ".dev.vars" }); diff --git a/core/tests/fact.test.d.ts b/packages/core/src/tests/fact.test.d.ts similarity index 100% rename from core/tests/fact.test.d.ts rename to packages/core/src/tests/fact.test.d.ts diff --git a/core/tests/fact.test.ts b/packages/core/src/tests/fact.test.ts similarity index 87% rename from core/tests/fact.test.ts rename to packages/core/src/tests/fact.test.ts index ab13da53ee3..01cbdbc2e90 100644 --- a/core/tests/fact.test.ts +++ b/packages/core/src/tests/fact.test.ts @@ -1,6 +1,6 @@ import dotenv from "dotenv"; -import { defaultActions } from "../src/core/actions.ts"; -import { IAgentRuntime, type Memory, type UUID } from "../src/core/types.ts"; +import { defaultActions } from "../src/actions.ts"; +import { IAgentRuntime, type Memory, type UUID } from "../src/types.ts"; import { getCachedEmbeddings, writeCachedEmbedding, @@ -18,6 +18,7 @@ import { populateMemories } from "../src/test_resources/populateMemories.ts"; import { runAiTest } from "../src/test_resources/runAiTest.ts"; import { type User } from "../src/test_resources/types.ts"; import evaluator from "../src/evaluators/fact.ts"; +import { MemoryManager } from "@ai16z/eliza/src/memory.ts"; dotenv.config({ path: ".dev.vars" }); @@ -107,7 +108,12 @@ describe("Facts Evaluator", () => { }); async function cleanup(runtime: IAgentRuntime, roomId: UUID) { - await runtime.factManager.removeAllMemories(roomId); + const factsManager = new MemoryManager({ + runtime, + tableName: "facts", + }); + + await factsManager.removeAllMemories(roomId); await runtime.messageManager.removeAllMemories(roomId); } @@ -119,13 +125,22 @@ async function addFacts( ) { for (const fact of facts) { const existingEmbedding = await getCachedEmbeddings(fact); - const bakedMemory = await runtime.factManager.addEmbeddingToMemory({ + + const factsManager = new MemoryManager({ + runtime, + tableName: "facts", + }); + + const bakedMemory = await factsManager.addEmbeddingToMemory({ userId: userId, content: { text: fact }, + agentId: runtime.agentId, roomId: roomId, embedding: existingEmbedding, }); - await runtime.factManager.createMemory(bakedMemory); + + await factsManager.createMemory(bakedMemory); + if (!existingEmbedding) { writeCachedEmbedding(fact, bakedMemory.embedding as number[]); // Ensure there's a slight delay for asynchronous operations to complete diff --git a/core/tests/goal.test.d.ts b/packages/core/src/tests/goal.test.d.ts similarity index 100% rename from core/tests/goal.test.d.ts rename to packages/core/src/tests/goal.test.d.ts diff --git a/core/tests/goal.test.ts b/packages/core/src/tests/goal.test.ts similarity index 97% rename from core/tests/goal.test.ts rename to packages/core/src/tests/goal.test.ts index 5105a311f75..8120fb0e126 100644 --- a/core/tests/goal.test.ts +++ b/packages/core/src/tests/goal.test.ts @@ -1,6 +1,6 @@ import dotenv from "dotenv"; -import { defaultActions } from "../src/core/actions.ts"; -import { createGoal, getGoals } from "../src/core/goals.ts"; +import { defaultActions } from "../src/actions.ts"; +import { createGoal, getGoals } from "../src/goals.ts"; import { Goal, GoalStatus, @@ -9,7 +9,7 @@ import { State, type Memory, type UUID, -} from "../src/core/types.ts"; +} from "../src/types.ts"; import { zeroUuid } from "../src/test_resources/constants.ts"; import { createRuntime } from "../src/test_resources/createRuntime.ts"; import { getOrCreateRelationship } from "../src/test_resources/getOrCreateRelationship.ts"; diff --git a/core/tests/goals.test.d.ts b/packages/core/src/tests/goals.test.d.ts similarity index 100% rename from core/tests/goals.test.d.ts rename to packages/core/src/tests/goals.test.d.ts diff --git a/core/tests/goals.test.ts b/packages/core/src/tests/goals.test.ts similarity index 97% rename from core/tests/goals.test.ts rename to packages/core/src/tests/goals.test.ts index 6938adfac36..872073a39a9 100644 --- a/core/tests/goals.test.ts +++ b/packages/core/src/tests/goals.test.ts @@ -2,13 +2,13 @@ import dotenv from "dotenv"; import { zeroUuid } from "../src/test_resources/constants.ts"; import { createRuntime } from "../src/test_resources/createRuntime.ts"; import { type User } from "../src/test_resources/types.ts"; -import { createGoal, getGoals, updateGoal } from "../src/core/goals.ts"; +import { createGoal, getGoals, updateGoal } from "../src/goals.ts"; import { GoalStatus, IAgentRuntime, type Goal, type UUID, -} from "../src/core/types.ts"; +} from "../src/types.ts"; dotenv.config({ path: ".dev.vars" }); describe("Goals", () => { diff --git a/core/tests/ignore.test.d.ts b/packages/core/src/tests/ignore.test.d.ts similarity index 100% rename from core/tests/ignore.test.d.ts rename to packages/core/src/tests/ignore.test.d.ts diff --git a/core/tests/ignore.test.ts b/packages/core/src/tests/ignore.test.ts similarity index 93% rename from core/tests/ignore.test.ts rename to packages/core/src/tests/ignore.test.ts index 51191502596..28746f60689 100644 --- a/core/tests/ignore.test.ts +++ b/packages/core/src/tests/ignore.test.ts @@ -1,7 +1,7 @@ import dotenv from "dotenv"; import { zeroUuid } from "../src/test_resources/constants.ts"; -import { composeContext } from "../src/core/context.ts"; -import { embeddingZeroVector } from "../src/core/memory.ts"; +import { composeContext } from "../src/context.ts"; +import { embeddingZeroVector } from "../src/memory.ts"; import { Content, IAgentRuntime, @@ -9,7 +9,7 @@ import { ModelClass, State, type UUID, -} from "../src/core/types.ts"; +} from "../src/types.ts"; import { createRuntime } from "../src/test_resources/createRuntime.ts"; import { GetTellMeAboutYourselfConversationTroll1, @@ -22,7 +22,8 @@ import { runAiTest } from "../src/test_resources/runAiTest.ts"; import { messageHandlerTemplate } from "../src/test_resources/templates.ts"; import { type User } from "../src/test_resources/types.ts"; import action from "../src/actions/ignore.ts"; -import { generateMessageResponse } from "../src/core/generation.ts"; +import { generateMessageResponse } from "../src/generation.ts"; +import { MemoryManager } from "@ai16z/eliza/src/memory.ts"; async function handleMessage( runtime: IAgentRuntime, @@ -129,7 +130,11 @@ describe("Ignore action tests", () => { }); async function cleanup() { - await runtime.factManager.removeAllMemories(roomId); + const factsManager = new MemoryManager({ + runtime, + tableName: "facts", + }); + await factsManager.removeAllMemories(roomId); await runtime.messageManager.removeAllMemories(roomId); } diff --git a/core/tests/memory.test.d.ts b/packages/core/src/tests/memory.test.d.ts similarity index 100% rename from core/tests/memory.test.d.ts rename to packages/core/src/tests/memory.test.d.ts diff --git a/core/tests/memory.test.ts b/packages/core/src/tests/memory.test.ts similarity index 99% rename from core/tests/memory.test.ts rename to packages/core/src/tests/memory.test.ts index 849bf0c7dfd..d77f515256e 100644 --- a/core/tests/memory.test.ts +++ b/packages/core/src/tests/memory.test.ts @@ -7,9 +7,9 @@ import { zeroUuid } from "../src/test_resources/constants.ts"; import { createRuntime } from "../src/test_resources/createRuntime.ts"; import { getOrCreateRelationship } from "../src/test_resources/getOrCreateRelationship.ts"; import { type User } from "../src/test_resources/types.ts"; -import { MemoryManager } from "../src/core/memory.ts"; -import { type Content, type Memory, type UUID } from "../src/core/types.ts"; -import { embed } from "../src/core/embedding.ts"; +import { MemoryManager } from "../src/memory.ts"; +import { type Content, type Memory, type UUID } from "../src/types.ts"; +import { embed } from "../src/embedding.ts"; dotenv.config({ path: ".dev.vars" }); describe("Memory", () => { diff --git a/core/tests/messages.test.d.ts b/packages/core/src/tests/messages.test.d.ts similarity index 100% rename from core/tests/messages.test.d.ts rename to packages/core/src/tests/messages.test.d.ts diff --git a/core/tests/messages.test.ts b/packages/core/src/tests/messages.test.ts similarity index 96% rename from core/tests/messages.test.ts rename to packages/core/src/tests/messages.test.ts index 3b454f9e5f4..02e2c1107ad 100644 --- a/core/tests/messages.test.ts +++ b/packages/core/src/tests/messages.test.ts @@ -8,15 +8,15 @@ import { formatActors, formatMessages, getActorDetails, -} from "../src/core/messages.ts"; -import { createRelationship } from "../src/core/relationships.ts"; +} from "../src/messages.ts"; +import { createRelationship } from "../src/relationships.ts"; import { IAgentRuntime, type Actor, type Content, type Memory, type UUID, -} from "../src/core/types.ts"; +} from "../src/types.ts"; dotenv.config({ path: ".dev.vars" }); diff --git a/core/tests/providers.test.d.ts b/packages/core/src/tests/providers.test.d.ts similarity index 100% rename from core/tests/providers.test.d.ts rename to packages/core/src/tests/providers.test.d.ts diff --git a/core/tests/providers.test.ts b/packages/core/src/tests/providers.test.ts similarity index 97% rename from core/tests/providers.test.ts rename to packages/core/src/tests/providers.test.ts index 17fb24f952e..902de0379c1 100644 --- a/core/tests/providers.test.ts +++ b/packages/core/src/tests/providers.test.ts @@ -7,7 +7,7 @@ import { type Provider, type State, type UUID, -} from "../src/core/types.ts"; +} from "../src/types.ts"; dotenv.config({ path: ".dev.vars" }); diff --git a/core/tests/relationships.test.d.ts b/packages/core/src/tests/relationships.test.d.ts similarity index 100% rename from core/tests/relationships.test.d.ts rename to packages/core/src/tests/relationships.test.d.ts diff --git a/core/tests/relationships.test.ts b/packages/core/src/tests/relationships.test.ts similarity index 91% rename from core/tests/relationships.test.ts rename to packages/core/src/tests/relationships.test.ts index 83e0b1759ff..d9bb406e415 100644 --- a/core/tests/relationships.test.ts +++ b/packages/core/src/tests/relationships.test.ts @@ -3,11 +3,8 @@ import { zeroUuid } from "../src/test_resources/constants.ts"; import { createRuntime } from "../src/test_resources/createRuntime.ts"; // Adjust the import path as needed import { getOrCreateRelationship } from "../src/test_resources/getOrCreateRelationship.ts"; import { type User } from "../src/test_resources/types.ts"; -import { - createRelationship, - getRelationships, -} from "../src/core/relationships.ts"; // Adjust the import path as needed -import { IAgentRuntime, type UUID } from "../src/core/types.ts"; +import { createRelationship, getRelationships } from "../src/relationships.ts"; // Adjust the import path as needed +import { IAgentRuntime, type UUID } from "../src/types.ts"; dotenv.config({ path: ".dev.vars" }); diff --git a/core/tests/runtime.test.d.ts b/packages/core/src/tests/runtime.test.d.ts similarity index 100% rename from core/tests/runtime.test.d.ts rename to packages/core/src/tests/runtime.test.d.ts diff --git a/core/tests/runtime.test.ts b/packages/core/src/tests/runtime.test.ts similarity index 97% rename from core/tests/runtime.test.ts rename to packages/core/src/tests/runtime.test.ts index fdf2a5a0cc2..efd3f2efb09 100644 --- a/core/tests/runtime.test.ts +++ b/packages/core/src/tests/runtime.test.ts @@ -7,7 +7,7 @@ import { zeroUuid } from "../src/test_resources/constants.ts"; import { createRuntime } from "../src/test_resources/createRuntime.ts"; import { getOrCreateRelationship } from "../src/test_resources/getOrCreateRelationship.ts"; import { type User } from "../src/test_resources/types.ts"; -import { IAgentRuntime, type Memory, type UUID } from "../src/core/types.ts"; +import { IAgentRuntime, type Memory, type UUID } from "../src/types.ts"; dotenv.config({ path: ".dev.vars" }); diff --git a/core/tests/time.test.d.ts b/packages/core/src/tests/time.test.d.ts similarity index 100% rename from core/tests/time.test.d.ts rename to packages/core/src/tests/time.test.d.ts diff --git a/core/tests/time.test.ts b/packages/core/src/tests/time.test.ts similarity index 96% rename from core/tests/time.test.ts rename to packages/core/src/tests/time.test.ts index 83489d05dc4..0453c2d79f7 100644 --- a/core/tests/time.test.ts +++ b/packages/core/src/tests/time.test.ts @@ -1,11 +1,11 @@ import dotenv from "dotenv"; -import { composeContext } from "../src/core/context.ts"; +import { composeContext } from "../src/context.ts"; import { IAgentRuntime, type Memory, type State, type UUID, -} from "../src/core/types.ts"; +} from "../src/types.ts"; import { zeroUuid } from "../src/test_resources/constants.ts"; import { createRuntime } from "../src/test_resources/createRuntime.ts"; import timeProvider from "../src/providers/time.ts"; diff --git a/core/tests/token.test.d.ts b/packages/core/src/tests/token.test.d.ts similarity index 100% rename from core/tests/token.test.d.ts rename to packages/core/src/tests/token.test.d.ts diff --git a/core/tests/token.test.ts b/packages/core/src/tests/token.test.ts similarity index 100% rename from core/tests/token.test.ts rename to packages/core/src/tests/token.test.ts diff --git a/core/tests/utils.test.ts b/packages/core/src/tests/utils.test.ts similarity index 82% rename from core/tests/utils.test.ts rename to packages/core/src/tests/utils.test.ts index 8fe285ee509..a7d4888899b 100644 --- a/core/tests/utils.test.ts +++ b/packages/core/src/tests/utils.test.ts @@ -1,14 +1,14 @@ import Database from "better-sqlite3"; import fs from "fs"; import path from "path"; -import { SqliteDatabaseAdapter } from "../../adapters/sqlite.ts"; -import defaultCharacter from "../../core/defaultCharacter.ts"; -import { AgentRuntime } from "../../core/runtime.ts"; -import settings from "../../core/settings.ts"; -import { TwitterInteractionClient } from "./interactions.ts"; -import { buildConversationThread } from "./utils.ts"; import { fileURLToPath } from "url"; -import { ModelProvider } from "../../core/types.ts"; +import { TwitterInteractionClient } from "../src/clients/twitter/interactions.ts"; +import { SqliteDatabaseAdapter } from "../src/adapters/sqlite.ts"; +import { defaultCharacter } from "../src/defaultCharacter.ts"; +import { buildConversationThread } from "../src/clients/twitter/utils.ts"; +import { AgentRuntime } from "../src/runtime.ts"; +import settings from "../src/settings.ts"; +import { ModelProviderName } from "../src/types.ts"; // const __dirname = path.dirname(new URL(".", import.meta.url).pathname); @@ -26,13 +26,13 @@ describe("buildConversationThread", () => { ), token: settings.OPENAI_API_KEY as string, evaluators: [], - modelProvider: ModelProvider.OPENAI, + modelProvider: ModelProviderName.OPENAI, character: defaultCharacter, providers: [], actions: [], }); - // Create an instance of the TwitterGenerationClient + // Create an instance of the TwitterPostClient client = new TwitterInteractionClient(runtime); // Load cached Twitter credentials diff --git a/core/src/core/types.ts b/packages/core/src/types.ts similarity index 86% rename from core/src/core/types.ts rename to packages/core/src/types.ts index b8b4a82d9db..4fa54fcb90e 100644 --- a/core/src/core/types.ts +++ b/packages/core/src/types.ts @@ -1,5 +1,4 @@ import { Readable } from "stream"; -import { ImageGenModel } from "./imageGenModels.ts"; /** * Represents a UUID, which is a universally unique identifier conforming to the UUID standard. @@ -77,6 +76,7 @@ export enum ModelClass { MEDIUM = "medium", LARGE = "large", EMBEDDING = "embedding", + IMAGE = "image", } export type Model = { @@ -90,15 +90,33 @@ export type Model = { stop: string[]; temperature: number; }; + imageSettings?: { + steps?: number; + }; model: { [ModelClass.SMALL]: string; [ModelClass.MEDIUM]: string; [ModelClass.LARGE]: string; [ModelClass.EMBEDDING]?: string; + [ModelClass.IMAGE]?: string; }; }; -export enum ModelProvider { +export type Models = { + [ModelProviderName.OPENAI]: Model; + [ModelProviderName.ANTHROPIC]: Model; + [ModelProviderName.GROK]: Model; + [ModelProviderName.GROQ]: Model; + [ModelProviderName.LLAMACLOUD]: Model; + [ModelProviderName.LLAMALOCAL]: Model; + [ModelProviderName.GOOGLE]: Model; + [ModelProviderName.CLAUDE_VERTEX]: Model; + [ModelProviderName.REDPILL]: Model; + [ModelProviderName.OPENROUTER]: Model; + [ModelProviderName.OLLAMA]: Model; +}; + +export enum ModelProviderName { OPENAI = "openai", ANTHROPIC = "anthropic", GROK = "grok", @@ -107,7 +125,9 @@ export enum ModelProvider { LLAMALOCAL = "llama_local", GOOGLE = "google", CLAUDE_VERTEX = "claude_vertex", - REDPILL = "redpill" + REDPILL = "redpill", + OPENROUTER = "openrouter", + OLLAMA = "ollama", } /** @@ -129,10 +149,6 @@ export interface State { goalsData?: Goal[]; // An optional array of goal objects relevant to the current conversation or context. recentMessages: string; // A string representation of recent messages in the conversation, for context. recentMessagesData: Memory[]; // An array of memory objects representing recent messages in the conversation. - recentFacts?: string; // An optional string representation of recent facts derived from the conversation. - recentFactsData?: Memory[]; // An optional array of memory objects representing recent facts. - relevantFacts?: string; // An optional string representation of facts relevant to the current context or topic. - relevantFactsData?: Memory[]; // An optional array of memory objects representing relevant facts. actionNames?: string; // An optional string listing the names of actions that are valid in the current state. actions?: string; // An optional string representation of actions and their descriptions, relevant to the current state. actionsData?: Action[]; // An optional array of action objects relevant to the current state. @@ -217,6 +233,7 @@ export interface EvaluationExample { * Represents an evaluator, which is used to assess and guide the agent's responses based on the current context and state. */ export interface Evaluator { + alwaysRun?: boolean; description: string; // A detailed description of what the evaluator assesses or guides. similes: string[]; // An array of strings representing the similies of the action. examples: EvaluationExample[]; // An array of evaluation examples demonstrating the evaluator. @@ -286,13 +303,36 @@ export type Media = { text: string; }; +export type Client = { + start: (runtime?: IAgentRuntime) => Promise; + stop: (runtime?: IAgentRuntime) => Promise; +}; + +export type Plugin = { + name: string; + description: string; + actions?: Action[]; + providers?: Provider[]; + evaluators?: Evaluator[]; + services?: Service[]; +}; + +export enum Clients { + DISCORD = "discord", + DIRECT = "direct", + TWITTER = "twitter", + TELEGRAM = "telegram", +} + export type Character = { id?: UUID; // optional UUID which can be passed down to identify the character name: string; system?: string; - modelProvider: ModelProvider; - imageGenModel?: ImageGenModel; - modelOverride?: string; + modelProvider: ModelProviderName; + modelEndpointOverride?: string; + templates?: { + [key: string]: string; + }; bio: string | string[]; lore: string[]; messageExamples: MessageExample[][]; @@ -301,7 +341,8 @@ export type Character = { topics: string[]; adjectives: string[]; knowledge?: string[]; - clients: string[]; // list of clients the character can interact with + clients: Clients[]; // list of clients the character can interact with + plugins: Plugin[]; // list of plugins the character can use settings?: { secrets?: { [key: string]: string }; voice?: { @@ -461,29 +502,43 @@ export interface IMemoryManager { countMemories(roomId: UUID, unique?: boolean): Promise; } +export abstract class Service { + private static instance: Service | null = null; + static serviceType: ServiceType; + + public static getInstance(): T { + if (!Service.instance) { + // Use this.prototype.constructor to instantiate the concrete class + Service.instance = new (this as any)(); + } + return Service.instance as T; + } +} + export interface IAgentRuntime { // Properties agentId: UUID; serverUrl: string; databaseAdapter: IDatabaseAdapter; token: string | null; - modelProvider: ModelProvider; - imageGenModel: ImageGenModel; + modelProvider: ModelProviderName; character: Character; providers: Provider[]; actions: Action[]; + evaluators: Evaluator[]; messageManager: IMemoryManager; descriptionManager: IMemoryManager; - factManager: IMemoryManager; loreManager: IMemoryManager; - imageDescriptionService: IImageRecognitionService; - transcriptionService: ITranscriptionService; - videoService: IVideoService; - llamaService: ILlamaService; - browserService: IBrowserService; - speechService: ISpeechService; - pdfService: IPdfService; + + services: Map; + registerMemoryManager(manager: IMemoryManager): void; + + getMemoryManager(name: string): IMemoryManager | null; + + getService(service: string): Service | null; + + registerService(service: Service): void; getSetting(key: string): string | null; @@ -495,7 +550,7 @@ export interface IAgentRuntime { state?: State, callback?: HandlerCallback ): Promise; - evaluate(message: Memory, state?: State): Promise; + evaluate(message: Memory, state?: State, didRespond?: boolean): Promise; ensureParticipantExists(userId: UUID, roomId: UUID): Promise; ensureUserExists( userId: UUID, @@ -520,14 +575,15 @@ export interface IAgentRuntime { updateRecentMessageState(state: State): Promise; } -export interface IImageRecognitionService { +export interface IImageDescriptionService extends Service { + getInstance(): IImageDescriptionService; initialize(modelId?: string | null, device?: string | null): Promise; describeImage( imageUrl: string ): Promise<{ title: string; description: string }>; } -export interface ITranscriptionService { +export interface ITranscriptionService extends Service { transcribeAttachment(audioBuffer: ArrayBuffer): Promise; transcribeAttachmentLocally( audioBuffer: ArrayBuffer @@ -536,12 +592,15 @@ export interface ITranscriptionService { transcribeLocally(audioBuffer: ArrayBuffer): Promise; } -export interface IVideoService { +export interface IVideoService extends Service { isVideoUrl(url: string): boolean; processVideo(url: string): Promise; + fetchVideoInfo(url: string): Promise; + downloadVideo(videoInfo: Media): Promise; } -export interface ILlamaService { +export interface ITextGenerationService extends Service { + getInstance(): ITextGenerationService; initializeModel(): Promise; queueMessageCompletion( context: string, @@ -562,18 +621,29 @@ export interface ILlamaService { getEmbeddingResponse(input: string): Promise; } -export interface IBrowserService { +export interface IBrowserService extends Service { initialize(): Promise; closeBrowser(): Promise; getPageContent( - url: string + url: string, + runtime: IAgentRuntime ): Promise<{ title: string; description: string; bodyContent: string }>; } -export interface ISpeechService { +export interface ISpeechService extends Service { generate(runtime: IAgentRuntime, text: string): Promise; } -export interface IPdfService { +export interface IPdfService extends Service { convertPdfToText(pdfBuffer: Buffer): Promise; } + +export enum ServiceType { + IMAGE_DESCRIPTION = "image_description", + TRANSCRIPTION = "transcription", + VIDEO = "video", + TEXT_GENERATION = "text_generation", + BROWSER = "browser", + SPEECH_GENERATION = "speech_generation", + PDF = "pdf", +} diff --git a/core/src/core/uuid.ts b/packages/core/src/uuid.ts similarity index 100% rename from core/src/core/uuid.ts rename to packages/core/src/uuid.ts diff --git a/core/tsconfig.json b/packages/core/tsconfig.json similarity index 82% rename from core/tsconfig.json rename to packages/core/tsconfig.json index f10a566a259..84cf46532cd 100644 --- a/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -1,4 +1,5 @@ { + "extends": "../../tsconfig.json", "compilerOptions": { "target": "ESNext", "module": "ESNext", @@ -20,7 +21,11 @@ "noEmitOnError": false, "moduleDetection": "force", "allowArbitraryExtensions": true, - "typeRoots": ["./node_modules/@types", "./types", "./node_modules/jest/types"] + "typeRoots": [ + "./node_modules/@types", + "./types", + "./node_modules/jest/types" + ] }, "include": ["src/**/*"], "exclude": ["node_modules", "dist", "src/**/*.d.ts", "types/**/*.test.ts"] diff --git a/packages/core/tsup.config.ts b/packages/core/tsup.config.ts new file mode 100644 index 00000000000..6525647521c --- /dev/null +++ b/packages/core/tsup.config.ts @@ -0,0 +1,17 @@ +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 + "http", + "https", + // Add other modules you want to externalize + ], +}); diff --git a/core/types/index.ts b/packages/core/types/index.d.ts similarity index 98% rename from core/types/index.ts rename to packages/core/types/index.d.ts index e2e35b58d0c..31200439a43 100644 --- a/core/types/index.ts +++ b/packages/core/types/index.d.ts @@ -1,5 +1,4 @@ declare global { interface Buffer extends Uint8Array {} } - export {}; diff --git a/packages/plugin-bootstrap/package.json b/packages/plugin-bootstrap/package.json new file mode 100644 index 00000000000..b840da7aa42 --- /dev/null +++ b/packages/plugin-bootstrap/package.json @@ -0,0 +1,18 @@ +{ + "name": "@ai16z/plugin-bootstrap", + "version": "0.0.1", + "main": "dist/index.js", + "type": "module", + "types": "dist/index.d.ts", + "dependencies": { + "@ai16z/eliza": "workspace:*", + "tsup": "^8.3.5" + }, + "scripts": { + "build": "tsup --format esm --dts", + "dev": "tsup --watch" + }, + "peerDependencies": { + "whatwg-url": "7.1.0" + } +} diff --git a/core/src/actions/continue.ts b/packages/plugin-bootstrap/src/actions/continue.ts similarity index 93% rename from core/src/actions/continue.ts rename to packages/plugin-bootstrap/src/actions/continue.ts index ec995c4a9e7..0d2257271b8 100644 --- a/core/src/actions/continue.ts +++ b/packages/plugin-bootstrap/src/actions/continue.ts @@ -1,11 +1,12 @@ -import { messageHandlerTemplate } from "../clients/discord/templates.ts"; -import { composeContext } from "../core/context.ts"; +import { composeContext } from "@ai16z/eliza/src/context.ts"; import { - generateTrueOrFalse, generateMessageResponse, -} from "../core/generation.ts"; -import { log_to_file } from "../core/logger.ts"; -import { booleanFooter } from "../core/parsing.ts"; + generateTrueOrFalse, +} from "@ai16z/eliza/src/generation.ts"; +import { + booleanFooter, + messageCompletionFooter, +} from "@ai16z/eliza/src/parsing.ts"; import { Action, ActionExample, @@ -15,10 +16,37 @@ import { Memory, ModelClass, State, -} from "../core/types.ts"; +} from "@ai16z/eliza/src/types.ts"; const maxContinuesInARow = 3; +export const messageHandlerTemplate = + // {{goals}} + `# Action Examples +{{actionExamples}} +(Action examples are for reference only. Do not use the information from them in your response.) + +# Task: Generate dialog and actions for the character {{agentName}}. +About {{agentName}}: +{{bio}} +{{lore}} + +{{providers}} + +{{attachments}} + +# Capabilities +Note that {{agentName}} is capable of reading/seeing/hearing various forms of media, including images, videos, audio, plaintext and PDFs. Recent attachments have been included above under the "Attachments" section. + +{{messageDirections}} + +{{recentMessages}} + +{{actions}} + +# Instructions: Write the next message for {{agentName}}. Ignore "action". +` + messageCompletionFooter; + export const shouldContinueTemplate = `# Task: Decide if {{agentName}} should continue, or wait for others in the conversation so speak. @@ -106,13 +134,11 @@ export const continueAction: Action = { const context = composeContext({ state, - template: messageHandlerTemplate, + template: + runtime.character.templates?.continueMessageHandlerTemplate || + runtime.character.templates?.messageHandlerTemplate || + messageHandlerTemplate, }); - const datestr = new Date().toUTCString().replace(/:/g, "-"); - - // log context to file - log_to_file(`${state.agentName}_${datestr}_continue_context`, context); - const { userId, roomId } = message; const response = await generateMessageResponse({ @@ -123,12 +149,6 @@ export const continueAction: Action = { response.inReplyTo = message.id; - // log response to file - log_to_file( - `${state.agentName}_${datestr}_continue_response`, - JSON.stringify(response) - ); - runtime.databaseAdapter.log({ body: { message, context, response }, userId, diff --git a/core/src/actions/followRoom.ts b/packages/plugin-bootstrap/src/actions/followRoom.ts similarity index 97% rename from core/src/actions/followRoom.ts rename to packages/plugin-bootstrap/src/actions/followRoom.ts index 87a9e4ea8f7..84650adbcca 100644 --- a/core/src/actions/followRoom.ts +++ b/packages/plugin-bootstrap/src/actions/followRoom.ts @@ -1,6 +1,6 @@ -import { composeContext } from "../core/context.ts"; -import { generateTrueOrFalse } from "../core/generation.ts"; -import { booleanFooter } from "../core/parsing.ts"; +import { composeContext } from "@ai16z/eliza/src/context.ts"; +import { generateTrueOrFalse } from "@ai16z/eliza/src/generation.ts"; +import { booleanFooter } from "@ai16z/eliza/src/parsing.ts"; import { Action, ActionExample, @@ -8,7 +8,7 @@ import { Memory, ModelClass, State, -} from "../core/types.ts"; +} from "@ai16z/eliza/src/types.ts"; export const shouldFollowTemplate = `Based on the conversation so far: @@ -24,7 +24,7 @@ Respond with YES if: Otherwise, respond with NO. ` + booleanFooter; -export const followRoom: Action = { +export const followRoomAction: Action = { name: "FOLLOW_ROOM", similes: [ "FOLLOW_CHAT", diff --git a/core/src/actions/ignore.ts b/packages/plugin-bootstrap/src/actions/ignore.ts similarity index 98% rename from core/src/actions/ignore.ts rename to packages/plugin-bootstrap/src/actions/ignore.ts index fde41a04f9b..fc69b3078b6 100644 --- a/core/src/actions/ignore.ts +++ b/packages/plugin-bootstrap/src/actions/ignore.ts @@ -3,9 +3,9 @@ import { IAgentRuntime, Memory, type Action, -} from "../core/types.ts"; +} from "@ai16z/eliza/src/types.ts"; -export const ignore: Action = { +export const ignoreAction: Action = { name: "IGNORE", similes: ["STOP_TALKING", "STOP_CHATTING", "STOP_CONVERSATION"], validate: async (_runtime: IAgentRuntime, _message: Memory) => { diff --git a/packages/plugin-bootstrap/src/actions/index.ts b/packages/plugin-bootstrap/src/actions/index.ts new file mode 100644 index 00000000000..6144e3f8918 --- /dev/null +++ b/packages/plugin-bootstrap/src/actions/index.ts @@ -0,0 +1,7 @@ +export * from "./continue.ts"; +export * from "./followRoom.ts"; +export * from "./ignore.ts"; +export * from "./muteRoom.ts"; +export * from "./none.ts"; +export * from "./unfollowRoom.ts"; +export * from "./unmuteRoom.ts"; diff --git a/core/src/actions/muteRoom.ts b/packages/plugin-bootstrap/src/actions/muteRoom.ts similarity index 94% rename from core/src/actions/muteRoom.ts rename to packages/plugin-bootstrap/src/actions/muteRoom.ts index ec7021a4de3..86738805f49 100644 --- a/core/src/actions/muteRoom.ts +++ b/packages/plugin-bootstrap/src/actions/muteRoom.ts @@ -1,6 +1,6 @@ -import { composeContext } from "../core/context.ts"; -import { generateTrueOrFalse } from "../core/generation.ts"; -import { booleanFooter } from "../core/parsing.ts"; +import { composeContext } from "@ai16z/eliza/src/context.ts"; +import { generateTrueOrFalse } from "@ai16z/eliza/src/generation.ts"; +import { booleanFooter } from "@ai16z/eliza/src/parsing.ts"; import { Action, ActionExample, @@ -8,7 +8,7 @@ import { Memory, ModelClass, State, -} from "../core/types.ts"; +} from "@ai16z/eliza/src/types.ts"; export const shouldMuteTemplate = `Based on the conversation so far: @@ -25,7 +25,7 @@ Respond with YES if: Otherwise, respond with NO. ` + booleanFooter; -export const muteRoom: Action = { +export const muteRoomAction: Action = { name: "MUTE_ROOM", similes: [ "MUTE_CHAT", diff --git a/core/src/actions/none.ts b/packages/plugin-bootstrap/src/actions/none.ts similarity index 98% rename from core/src/actions/none.ts rename to packages/plugin-bootstrap/src/actions/none.ts index 8421e4f24fc..e9313aba1ad 100644 --- a/core/src/actions/none.ts +++ b/packages/plugin-bootstrap/src/actions/none.ts @@ -3,9 +3,9 @@ import { IAgentRuntime, Memory, type Action, -} from "../core/types.ts"; +} from "@ai16z/eliza/src/types.ts"; -export const none: Action = { +export const noneAction: Action = { name: "NONE", similes: [ "NO_ACTION", diff --git a/core/src/actions/unfollowRoom.ts b/packages/plugin-bootstrap/src/actions/unfollowRoom.ts similarity index 97% rename from core/src/actions/unfollowRoom.ts rename to packages/plugin-bootstrap/src/actions/unfollowRoom.ts index d3cc69d84c2..66e59f6c746 100644 --- a/core/src/actions/unfollowRoom.ts +++ b/packages/plugin-bootstrap/src/actions/unfollowRoom.ts @@ -1,6 +1,6 @@ -import { composeContext } from "../core/context.ts"; -import { generateTrueOrFalse } from "../core/generation.ts"; -import { booleanFooter } from "../core/parsing.ts"; +import { composeContext } from "@ai16z/eliza/src/context.ts"; +import { generateTrueOrFalse } from "@ai16z/eliza/src/generation.ts"; +import { booleanFooter } from "@ai16z/eliza/src/parsing.ts"; import { Action, ActionExample, @@ -8,7 +8,7 @@ import { Memory, ModelClass, State, -} from "../core/types.ts"; +} from "@ai16z/eliza/src/types.ts"; const shouldUnfollowTemplate = `Based on the conversation so far: @@ -24,7 +24,7 @@ Respond with YES if: Otherwise, respond with NO. ` + booleanFooter; -export const unfollowRoom: Action = { +export const unfollowRoomAction: Action = { name: "UNFOLLOW_ROOM", similes: [ "UNFOLLOW_CHAT", diff --git a/core/src/actions/unmuteRoom.ts b/packages/plugin-bootstrap/src/actions/unmuteRoom.ts similarity index 94% rename from core/src/actions/unmuteRoom.ts rename to packages/plugin-bootstrap/src/actions/unmuteRoom.ts index 17e28e4a11d..f9071bfa651 100644 --- a/core/src/actions/unmuteRoom.ts +++ b/packages/plugin-bootstrap/src/actions/unmuteRoom.ts @@ -1,6 +1,6 @@ -import { composeContext } from "../core/context.ts"; -import { generateTrueOrFalse } from "../core/generation.ts"; -import { booleanFooter } from "../core/parsing.ts"; +import { composeContext } from "@ai16z/eliza/src/context.ts"; +import { generateTrueOrFalse } from "@ai16z/eliza/src/generation.ts"; +import { booleanFooter } from "@ai16z/eliza/src/parsing.ts"; import { Action, ActionExample, @@ -8,7 +8,7 @@ import { Memory, ModelClass, State, -} from "../core/types.ts"; +} from "@ai16z/eliza/src/types.ts"; export const shouldUnmuteTemplate = `Based on the conversation so far: @@ -24,7 +24,7 @@ Respond with YES if: Otherwise, respond with NO. ` + booleanFooter; -export const unmuteRoom: Action = { +export const unmuteRoomAction: Action = { name: "UNMUTE_ROOM", similes: [ "UNMUTE_CHAT", diff --git a/core/src/evaluators/fact.ts b/packages/plugin-bootstrap/src/evaluators/fact.ts similarity index 92% rename from core/src/evaluators/fact.ts rename to packages/plugin-bootstrap/src/evaluators/fact.ts index 55d87e9d7e1..5619f74cff5 100644 --- a/core/src/evaluators/fact.ts +++ b/packages/plugin-bootstrap/src/evaluators/fact.ts @@ -1,12 +1,14 @@ -import { composeContext } from "../core/context.ts"; -import { generateObjectArray } from "../core/generation.ts"; +import { composeContext } from "@ai16z/eliza/src/context.ts"; +import { generateObjectArray } from "@ai16z/eliza/src/generation.ts"; +import { MemoryManager } from "@ai16z/eliza/src/memory.ts"; import { ActionExample, Content, IAgentRuntime, Memory, ModelClass, -} from "../core/types.ts"; + Evaluator, +} from "@ai16z/eliza/src/types.ts"; export const formatFacts = (facts: Memory[]) => { const messageStrings = facts @@ -16,7 +18,7 @@ export const formatFacts = (facts: Memory[]) => { return finalMessageStrings; }; -const template = +const factsTemplate = // {{actors}} `TASK: Extract Claims from the conversation as an array of claims in JSON format. @@ -25,10 +27,6 @@ These are an examples of the expected output of this task: {{evaluationExamples}} # END OF EXAMPLES -Known facts: -{{recentFacts}} -{{relevantFacts}} - # INSTRUCTIONS Extract any claims from the conversation that are not already present in the list of known facts above: @@ -61,7 +59,7 @@ async function handler(runtime: IAgentRuntime, message: Memory) { const context = composeContext({ state, - template, + template: runtime.character.templates?.factsTemplate || factsTemplate, }); const facts = await generateObjectArray({ @@ -70,6 +68,11 @@ async function handler(runtime: IAgentRuntime, message: Memory) { modelClass: ModelClass.SMALL, }); + const factsManager = new MemoryManager({ + runtime, + tableName: "facts", + }); + if (!facts) { return []; } @@ -88,7 +91,7 @@ async function handler(runtime: IAgentRuntime, message: Memory) { .map((fact) => fact.claim); for (const fact of filteredFacts) { - const factMemory = await runtime.factManager.addEmbeddingToMemory({ + const factMemory = await factsManager.addEmbeddingToMemory({ userId: agentId!, agentId, content: { text: fact }, @@ -96,14 +99,14 @@ async function handler(runtime: IAgentRuntime, message: Memory) { createdAt: Date.now(), }); - await runtime.factManager.createMemory(factMemory, true); + await factsManager.createMemory(factMemory, true); await new Promise((resolve) => setTimeout(resolve, 250)); } return filteredFacts; } -export default { +export const factEvaluator: Evaluator = { name: "GET_FACTS", similes: [ "GET_CLAIMS", diff --git a/core/src/evaluators/goal.ts b/packages/plugin-bootstrap/src/evaluators/goal.ts similarity index 95% rename from core/src/evaluators/goal.ts rename to packages/plugin-bootstrap/src/evaluators/goal.ts index a1ccced33ac..aeab53a89d8 100644 --- a/core/src/evaluators/goal.ts +++ b/packages/plugin-bootstrap/src/evaluators/goal.ts @@ -1,7 +1,7 @@ -import { composeContext } from "../core/context.ts"; -import { generateText } from "../core/generation.ts"; -import { getGoals } from "../core/goals.ts"; -import { parseJsonArrayFromText } from "../core/parsing.ts"; +import { composeContext } from "@ai16z/eliza/src/context.ts"; +import { generateText } from "@ai16z/eliza/src/generation.ts"; +import { getGoals } from "@ai16z/eliza/src/goals.ts"; +import { parseJsonArrayFromText } from "@ai16z/eliza/src/parsing.ts"; import { IAgentRuntime, Memory, @@ -9,9 +9,10 @@ import { Objective, type Goal, type State, -} from "../core/types.ts"; + Evaluator, +} from "@ai16z/eliza/src/types.ts"; -const template = `TASK: Update Goal +const goalsTemplate = `TASK: Update Goal Analyze the conversation and update the status of the goals based on the new information provided. # INSTRUCTIONS @@ -64,7 +65,7 @@ async function handler( state = (await runtime.composeState(message)) as State; const context = composeContext({ state, - template, + template: runtime.character.templates?.goalsTemplate || goalsTemplate, }); // Request generateText from OpenAI to analyze conversation and suggest goal updates @@ -130,7 +131,7 @@ async function handler( return updatedGoals; // Return updated goals for further processing or logging } -export default { +export const goalEvaluator: Evaluator = { name: "UPDATE_GOAL", similes: [ "UPDATE_GOALS", diff --git a/packages/plugin-bootstrap/src/evaluators/index.ts b/packages/plugin-bootstrap/src/evaluators/index.ts new file mode 100644 index 00000000000..8496906e433 --- /dev/null +++ b/packages/plugin-bootstrap/src/evaluators/index.ts @@ -0,0 +1,2 @@ +export * from "./fact.ts"; +export * from "./goal.ts"; diff --git a/packages/plugin-bootstrap/src/index.ts b/packages/plugin-bootstrap/src/index.ts new file mode 100644 index 00000000000..439265fdebb --- /dev/null +++ b/packages/plugin-bootstrap/src/index.ts @@ -0,0 +1,29 @@ +import { Plugin } from "@ai16z/eliza/src/types.ts"; +import { continueAction } from "./actions/continue.ts"; +import { followRoomAction } from "./actions/followRoom.ts"; +import { ignoreAction } from "./actions/ignore.ts"; +import { muteRoomAction } from "./actions/muteRoom.ts"; +import { noneAction } from "./actions/none.ts"; +import { unfollowRoomAction } from "./actions/unfollowRoom.ts"; +import { unmuteRoomAction } from "./actions/unmuteRoom.ts"; +import { factEvaluator } from "./evaluators/fact.ts"; +import { goalEvaluator } from "./evaluators/goal.ts"; +import { boredomProvider } from "./providers/boredom.ts"; +import { factsProvider } from "./providers/facts.ts"; +import { timeProvider } from "./providers/time.ts"; + +export const bootstrapPlugin: Plugin = { + name: "bootstrap", + description: "Agent bootstrap with basic actions and evaluators", + actions: [ + continueAction, + followRoomAction, + unfollowRoomAction, + ignoreAction, + noneAction, + muteRoomAction, + unmuteRoomAction, + ], + evaluators: [factEvaluator, goalEvaluator], + providers: [boredomProvider, timeProvider, factsProvider], +}; diff --git a/core/src/providers/boredom.ts b/packages/plugin-bootstrap/src/providers/boredom.ts similarity index 99% rename from core/src/providers/boredom.ts rename to packages/plugin-bootstrap/src/providers/boredom.ts index d04ec974dcd..4e534ab1d4b 100644 --- a/core/src/providers/boredom.ts +++ b/packages/plugin-bootstrap/src/providers/boredom.ts @@ -1,4 +1,9 @@ -import { IAgentRuntime, Memory, Provider, State } from "../core/types.ts"; +import { + IAgentRuntime, + Memory, + Provider, + State, +} from "@ai16z/eliza/src/types.ts"; const boredomLevels = [ { diff --git a/packages/plugin-bootstrap/src/providers/facts.ts b/packages/plugin-bootstrap/src/providers/facts.ts new file mode 100644 index 00000000000..6d12b9979b4 --- /dev/null +++ b/packages/plugin-bootstrap/src/providers/facts.ts @@ -0,0 +1,62 @@ +import { embed } from "@ai16z/eliza/src/embedding.ts"; +import { MemoryManager } from "@ai16z/eliza/src/memory.ts"; +import { formatMessages } from "@ai16z/eliza/src/messages.ts"; +import { + IAgentRuntime, + Memory, + Provider, + State, +} from "@ai16z/eliza/src/types.ts"; +import { formatFacts } from "../evaluators/fact.ts"; + +const factsProvider: Provider = { + get: async (runtime: IAgentRuntime, message: Memory, state?: State) => { + const recentMessagesData = state?.recentMessagesData?.slice(-10); + + const recentMessages = formatMessages({ + messages: recentMessagesData, + actors: state?.actorsData, + }); + + const embedding = await embed(runtime, recentMessages); + + console.log('embedding', embedding); + console.log('embedding length', embedding.length); + + + const memoryManager = new MemoryManager({ + runtime, + tableName: "facts", + }); + + const relevantFacts = [] + // await memoryManager.searchMemoriesByEmbedding( + // embedding, + // { + // roomId: message.roomId, + // count: 10, + // agentId: runtime.agentId, + // } + // ); + + const recentFactsData = await memoryManager.getMemories({ + roomId: message.roomId, + count: 10, + agentId: runtime.agentId, + }); + + // join the two and deduplicate + const allFacts = [...relevantFacts, ...recentFactsData].filter( + (fact, index, self) => + index === self.findIndex((t) => t.id === fact.id) + ); + + const formattedFacts = formatFacts(allFacts); + + return "Key facts that {{agentName}} knows:\n{{formattedFacts}}" + .replace("{{agentName}}", runtime.character.name) + .replace("{{formattedFacts}}", formattedFacts); + }, +}; + +export { factsProvider }; diff --git a/packages/plugin-bootstrap/src/providers/index.ts b/packages/plugin-bootstrap/src/providers/index.ts new file mode 100644 index 00000000000..0c9f1818b4a --- /dev/null +++ b/packages/plugin-bootstrap/src/providers/index.ts @@ -0,0 +1,3 @@ +export * from "./boredom.ts"; +export * from "./time.ts"; +export * from "./facts.ts"; diff --git a/core/src/providers/time.ts b/packages/plugin-bootstrap/src/providers/time.ts similarity index 79% rename from core/src/providers/time.ts rename to packages/plugin-bootstrap/src/providers/time.ts index 96ae7f803b5..9e26822281f 100644 --- a/core/src/providers/time.ts +++ b/packages/plugin-bootstrap/src/providers/time.ts @@ -1,4 +1,9 @@ -import { IAgentRuntime, Memory, Provider, State } from "../core/types.ts"; +import { + IAgentRuntime, + Memory, + Provider, + State, +} from "@ai16z/eliza/src/types.ts"; const timeProvider: Provider = { get: async (_runtime: IAgentRuntime, _message: Memory, _state?: State) => { diff --git a/packages/plugin-bootstrap/tsconfig.json b/packages/plugin-bootstrap/tsconfig.json new file mode 100644 index 00000000000..9294a4fa6db --- /dev/null +++ b/packages/plugin-bootstrap/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": ".", + "module": "ESNext", + "moduleResolution": "Bundler", + "types": ["node"] + }, + "include": ["src"] +} diff --git a/packages/plugin-bootstrap/tsup.config.ts b/packages/plugin-bootstrap/tsup.config.ts new file mode 100644 index 00000000000..e42bf4efeae --- /dev/null +++ b/packages/plugin-bootstrap/tsup.config.ts @@ -0,0 +1,20 @@ +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-image-generation/package.json b/packages/plugin-image-generation/package.json new file mode 100644 index 00000000000..29c2bbaa352 --- /dev/null +++ b/packages/plugin-image-generation/package.json @@ -0,0 +1,17 @@ +{ + "name": "@ai16z/plugin-image-generation", + "version": "0.0.1", + "main": "dist/index.js", + "type": "module", + "types": "dist/index.d.ts", + "dependencies": { + "@ai16z/eliza": "workspace:*", + "tsup": "^8.3.5" + }, + "scripts": { + "build": "tsup --format esm --dts" + }, + "peerDependencies": { + "whatwg-url": "7.1.0" + } +} diff --git a/core/src/actions/imageGeneration.ts b/packages/plugin-image-generation/src/index.ts similarity index 69% rename from core/src/actions/imageGeneration.ts rename to packages/plugin-image-generation/src/index.ts index 453660aaf1c..22aa577ed81 100644 --- a/core/src/actions/imageGeneration.ts +++ b/packages/plugin-image-generation/src/index.ts @@ -1,14 +1,15 @@ +import { elizaLogger } from "@ai16z/eliza/src/logger.ts"; import { + Action, HandlerCallback, IAgentRuntime, Memory, + Plugin, State, - Action, -} from "../core/types.ts"; -import { prettyConsole } from "../index.ts"; -import { generateCaption, generateImage } from "./imageGenerationUtils.ts"; +} from "@ai16z/eliza/src/types.ts"; +import { generateCaption, generateImage } from "@ai16z/eliza/src/generation.ts"; -export const imageGeneration: Action = { +const imageGeneration: Action = { name: "GENERATE_IMAGE", similes: ["IMAGE_GENERATION", "IMAGE_GEN", "CREATE_IMAGE", "MAKE_PICTURE"], description: "Generate an image to go along with the message.", @@ -27,19 +28,19 @@ export const imageGeneration: Action = { options: any, callback: HandlerCallback ) => { - prettyConsole.log("Composing state for message:", message); + elizaLogger.log("Composing state for message:", message); state = (await runtime.composeState(message)) as State; const userId = runtime.agentId; - prettyConsole.log("User ID:", userId); + elizaLogger.log("User ID:", userId); const imagePrompt = message.content.text; - prettyConsole.log("Image prompt received:", imagePrompt); + elizaLogger.log("Image prompt received:", imagePrompt); // TODO: Generate a prompt for the image const res: { image: string; caption: string }[] = []; - prettyConsole.log("Generating image with prompt:", imagePrompt); + elizaLogger.log("Generating image with prompt:", imagePrompt); const images = await generateImage( { prompt: imagePrompt, @@ -51,13 +52,13 @@ export const imageGeneration: Action = { ); if (images.success && images.data && images.data.length > 0) { - prettyConsole.log( + elizaLogger.log( "Image generation successful, number of images:", images.data.length ); for (let i = 0; i < images.data.length; i++) { const image = images.data[i]; - prettyConsole.log(`Processing image ${i + 1}:`, image); + elizaLogger.log(`Processing image ${i + 1}:`, image); const caption = await generateCaption( { @@ -66,7 +67,7 @@ export const imageGeneration: Action = { runtime ); - prettyConsole.log( + elizaLogger.log( `Generated caption for image ${i + 1}:`, caption.title ); @@ -90,11 +91,10 @@ export const imageGeneration: Action = { ); } } else { - prettyConsole.error("Image generation failed or returned no data."); + elizaLogger.error("Image generation failed or returned no data."); } }, examples: [ - // TODO: We want to generate images in more abstract ways, not just when asked to generate an image [ @@ -104,8 +104,11 @@ export const imageGeneration: Action = { }, { user: "{{agentName}}", - content: { text: "Here's an image of a cat", action: "GENERATE_IMAGE" }, - } + content: { + text: "Here's an image of a cat", + action: "GENERATE_IMAGE", + }, + }, ], [ { @@ -114,8 +117,11 @@ export const imageGeneration: Action = { }, { user: "{{agentName}}", - content: { text: "Here's an image of a dog", action: "GENERATE_IMAGE" }, - } + content: { + text: "Here's an image of a dog", + action: "GENERATE_IMAGE", + }, + }, ], [ { @@ -124,8 +130,11 @@ export const imageGeneration: Action = { }, { user: "{{agentName}}", - content: { text: "Here's an image of a cat with a hat", action: "GENERATE_IMAGE" }, - } + content: { + text: "Here's an image of a cat with a hat", + action: "GENERATE_IMAGE", + }, + }, ], [ { @@ -134,8 +143,11 @@ export const imageGeneration: Action = { }, { user: "{{agentName}}", - content: { text: "Here's an image of a dog with a hat", action: "GENERATE_IMAGE" }, - } + content: { + text: "Here's an image of a dog with a hat", + action: "GENERATE_IMAGE", + }, + }, ], [ { @@ -144,8 +156,19 @@ export const imageGeneration: Action = { }, { user: "{{agentName}}", - content: { text: "Here's an image of a cat with a hat", action: "GENERATE_IMAGE" }, - } + content: { + text: "Here's an image of a cat with a hat", + action: "GENERATE_IMAGE", + }, + }, ], ], } as Action; + +export const imageGenerationPlugin: Plugin = { + name: "imageGeneration", + description: "Generate images", + actions: [imageGeneration], + evaluators: [], + providers: [], +}; diff --git a/packages/plugin-image-generation/tsconfig.json b/packages/plugin-image-generation/tsconfig.json new file mode 100644 index 00000000000..9294a4fa6db --- /dev/null +++ b/packages/plugin-image-generation/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": ".", + "module": "ESNext", + "moduleResolution": "Bundler", + "types": ["node"] + }, + "include": ["src"] +} diff --git a/packages/plugin-image-generation/tsup.config.ts b/packages/plugin-image-generation/tsup.config.ts new file mode 100644 index 00000000000..e42bf4efeae --- /dev/null +++ b/packages/plugin-image-generation/tsup.config.ts @@ -0,0 +1,20 @@ +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-node/package.json b/packages/plugin-node/package.json new file mode 100644 index 00000000000..c349b2c4a16 --- /dev/null +++ b/packages/plugin-node/package.json @@ -0,0 +1,77 @@ +{ + "name": "@ai16z/plugin-node", + "version": "0.0.1", + "main": "dist/index.js", + "type": "module", + "types": "dist/index.d.ts", + "dependencies": { + "@ai16z/eliza": "workspace:*", + "@cliqz/adblocker-playwright": "1.34.0", + "@echogarden/espeak-ng-emscripten": "0.3.0", + "@echogarden/kissfft-wasm": "0.2.0", + "@echogarden/speex-resampler-wasm": "0.2.1", + "@huggingface/transformers": "3.0.1", + "@opendocsg/pdf2md": "0.1.31", + "@types/uuid": "^10.0.0", + "alawmulaw": "6.0.0", + "bignumber": "1.1.0", + "bignumber.js": "9.1.2", + "capsolver-npm": "2.0.2", + "cldr-segmentation": "2.2.1", + "command-exists": "1.2.9", + "csv-writer": "1.6.0", + "espeak-ng": "1.0.2", + "ffmpeg-static": "5.2.0", + "fluent-ffmpeg": "2.1.3", + "formdata-node": "6.0.3", + "fs-extra": "11.2.0", + "gaxios": "6.7.1", + "gif-frames": "^0.4.1", + "glob": "11.0.0", + "graceful-fs": "4.2.11", + "html-escaper": "3.0.3", + "html-to-text": "9.0.5", + "import-meta-resolve": "4.1.0", + "jieba-wasm": "2.2.0", + "json5": "2.2.3", + "kuromoji": "0.1.2", + "libsodium-wrappers": "0.7.15", + "multer": "1.4.5-lts.1", + "node-cache": "5.1.2", + "node-llama-cpp": "3.1.1", + "nodejs-whisper": "0.1.18", + "onnxruntime-node": "^1.20.0", + "pdfjs-dist": "4.7.76", + "playwright": "1.48.2", + "pm2": "5.4.2", + "puppeteer-extra": "3.3.6", + "puppeteer-extra-plugin-capsolver": "2.0.1", + "sharp": "^0.33.5", + "srt": "0.0.3", + "systeminformation": "5.23.5", + "tar": "7.4.3", + "tinyld": "1.3.4", + "uuid": "11.0.2", + "wav": "1.0.2", + "wav-encoder": "1.3.0", + "wavefile": "11.0.0", + "yargs": "17.7.2", + "youtube-dl-exec": "3.0.10" + }, + "devDependencies": { + "tsup": "^8.3.5" + }, + "scripts": { + "build": "tsup --format esm --dts", + "dev": "tsup --watch", + "postinstall": "npx playwright install-deps && npx playwright install" + }, + "peerDependencies": { + "whatwg-url": "7.1.0", + "onnxruntime-node": "^1.20.0" + }, + "trustedDependencies": { + "onnxruntime-node": "^1.20.0", + "sharp": "^0.33.5" + } +} diff --git a/packages/plugin-node/src/index.ts b/packages/plugin-node/src/index.ts new file mode 100644 index 00000000000..1f1f694a38e --- /dev/null +++ b/packages/plugin-node/src/index.ts @@ -0,0 +1,24 @@ +import { Plugin } from "@ai16z/eliza/src/types.ts"; +import { BrowserService } from "./services/browser.ts"; +import { ImageDescriptionService } from "./services/image.ts"; +import { LlamaService } from "./services/llama.ts"; +import { PdfService } from "./services/pdf.ts"; +import { SpeechService } from "./services/speech.ts"; +import { TranscriptionService } from "./services/transcription.ts"; +import { VideoService } from "./services/video.ts"; + +export const nodePlugin: Plugin = { + name: "default", + description: "Default plugin, with basic actions and evaluators", + services: [ + BrowserService, + ImageDescriptionService, + LlamaService, + PdfService, + SpeechService, + TranscriptionService, + VideoService, + ], +}; + +export default nodePlugin; diff --git a/core/src/services/audioUtils.ts b/packages/plugin-node/src/services/audioUtils.ts similarity index 100% rename from core/src/services/audioUtils.ts rename to packages/plugin-node/src/services/audioUtils.ts diff --git a/core/src/services/browser.ts b/packages/plugin-node/src/services/browser.ts similarity index 79% rename from core/src/services/browser.ts rename to packages/plugin-node/src/services/browser.ts index fd6e1792eb4..16cb244a3b1 100644 --- a/core/src/services/browser.ts +++ b/packages/plugin-node/src/services/browser.ts @@ -1,28 +1,80 @@ +import { generateText, trimTokens } from "@ai16z/eliza/src/generation.ts"; +import { parseJSONObjectFromText } from "@ai16z/eliza/src/parsing.ts"; +import { Service } from "@ai16z/eliza/src/types.ts"; +import settings from "@ai16z/eliza/src/settings.ts"; +import { + IAgentRuntime, + ModelClass, + ServiceType, +} from "@ai16z/eliza/src/types.ts"; +import { stringToUuid } from "@ai16z/eliza/src/uuid.ts"; import { PlaywrightBlocker } from "@cliqz/adblocker-playwright"; import CaptchaSolver from "capsolver-npm"; -import fetch from "cross-fetch"; import fs from "fs"; import path from "path"; import { Browser, BrowserContext, chromium, Page } from "playwright"; -import { IAgentRuntime } from "../core/types.ts"; -import { stringToUuid } from "../core/uuid.ts"; -import { generateSummary } from "./summary.ts"; -import settings from "../core/settings.ts"; -export class BrowserService { - private static instance: BrowserService | null = null; +async function generateSummary( + runtime: IAgentRuntime, + text: string +): Promise<{ title: string; description: string }> { + // make sure text is under 128k characters + text = trimTokens(text, 100000, "gpt-4o-mini"); // TODO: clean this up + + const prompt = `Please generate a concise summary for the following text: + + Text: """ + ${text} + """ + + Respond with a JSON object in the following format: + \`\`\`json + { + "title": "Generated Title", + "summary": "Generated summary and/or description of the text" + } + \`\`\``; + + const response = await generateText({ + runtime, + context: prompt, + modelClass: ModelClass.SMALL, + }); + + const parsedResponse = parseJSONObjectFromText(response); + + if (parsedResponse) { + return { + title: parsedResponse.title, + description: parsedResponse.summary, + }; + } + + return { + title: "", + description: "", + }; +} + +export class BrowserService extends Service { private browser: Browser | undefined; private context: BrowserContext | undefined; private blocker: PlaywrightBlocker | undefined; private captchaSolver: CaptchaSolver; private CONTENT_CACHE_DIR = "./content_cache"; - private runtime: IAgentRuntime; private queue: string[] = []; private processing: boolean = false; - private constructor(runtime: IAgentRuntime) { - this.runtime = runtime; + static serviceType: ServiceType = ServiceType.BROWSER; + + static register(runtime: IAgentRuntime): IAgentRuntime { + // since we are lazy loading, do nothing + return runtime; + } + + constructor() { + super(); this.browser = undefined; this.context = undefined; this.blocker = undefined; @@ -32,13 +84,6 @@ export class BrowserService { this.ensureCacheDirectoryExists(); } - public static getInstance(runtime: IAgentRuntime): BrowserService { - if (!BrowserService.instance) { - BrowserService.instance = new BrowserService(runtime); - } - return BrowserService.instance; - } - private ensureCacheDirectoryExists() { if (!fs.existsSync(this.CONTENT_CACHE_DIR)) { fs.mkdirSync(this.CONTENT_CACHE_DIR); @@ -73,11 +118,12 @@ export class BrowserService { } async getPageContent( - url: string + url: string, + runtime: IAgentRuntime ): Promise<{ title: string; description: string; bodyContent: string }> { await this.initialize(); this.queue.push(url); - this.processQueue(); + this.processQueue(runtime); return new Promise((resolve, reject) => { const checkQueue = async () => { @@ -86,7 +132,10 @@ export class BrowserService { setTimeout(checkQueue, 100); } else { try { - const result = await this.fetchPageContent(url); + const result = await this.fetchPageContent( + url, + runtime + ); resolve(result); } catch (error) { reject(error); @@ -101,7 +150,7 @@ export class BrowserService { return stringToUuid(url); } - private async processQueue(): Promise { + private async processQueue(runtime: IAgentRuntime): Promise { if (this.processing || this.queue.length === 0) { return; } @@ -110,14 +159,15 @@ export class BrowserService { while (this.queue.length > 0) { const url = this.queue.shift(); - await this.fetchPageContent(url); + await this.fetchPageContent(url, runtime); } this.processing = false; } private async fetchPageContent( - url: string + url: string, + runtime: IAgentRuntime ): Promise<{ title: string; description: string; bodyContent: string }> { const cacheKey = this.getCacheKey(url); const cacheFilePath = path.join( @@ -161,7 +211,7 @@ export class BrowserService { } if (response.status() === 403 || response.status() === 404) { - return await this.tryAlternativeSources(url); + return await this.tryAlternativeSources(url, runtime); } // Check for CAPTCHA @@ -174,7 +224,7 @@ export class BrowserService { () => document.body.innerText ); const { description } = await generateSummary( - this.runtime, + runtime, title + "\n" + bodyContent ); const content = { title, description, bodyContent }; @@ -267,12 +317,13 @@ export class BrowserService { } private async tryAlternativeSources( - url: string + url: string, + runtime: IAgentRuntime ): Promise<{ title: string; description: string; bodyContent: string }> { // Try Internet Archive const archiveUrl = `https://web.archive.org/web/${url}`; try { - return await this.fetchPageContent(archiveUrl); + return await this.fetchPageContent(archiveUrl, runtime); } catch (error) { console.error("Error fetching from Internet Archive:", error); } @@ -280,7 +331,7 @@ export class BrowserService { // Try Google Search as a last resort const googleSearchUrl = `https://www.google.com/search?q=${encodeURIComponent(url)}`; try { - return await this.fetchPageContent(googleSearchUrl); + return await this.fetchPageContent(googleSearchUrl, runtime); } catch (error) { console.error("Error fetching from Google Search:", error); console.error("Failed to fetch content from alternative sources"); diff --git a/core/src/services/image.ts b/packages/plugin-node/src/services/image.ts similarity index 90% rename from core/src/services/image.ts rename to packages/plugin-node/src/services/image.ts index 7f29418971b..9868cfcc9ca 100644 --- a/core/src/services/image.ts +++ b/packages/plugin-node/src/services/image.ts @@ -1,4 +1,11 @@ // Current image recognition service -- local recognition working, no openai recognition +import models from "@ai16z/eliza/src/models.ts"; +import { Service } from "@ai16z/eliza/src/types.ts"; +import { + IAgentRuntime, + ModelProviderName, + ServiceType, +} from "@ai16z/eliza/src/types.ts"; import { AutoProcessor, AutoTokenizer, @@ -14,48 +21,36 @@ import fs from "fs"; import gifFrames from "gif-frames"; import os from "os"; import path from "path"; -import models from "../core/models.ts"; -import { IAgentRuntime, ModelProvider } from "../core/types.ts"; -class ImageDescriptionService { - private static instance: ImageDescriptionService | null = null; +export class ImageDescriptionService extends Service { private modelId: string = "onnx-community/Florence-2-base-ft"; private device: string = "gpu"; private model: PreTrainedModel | null = null; private processor: Florence2Processor | null = null; private tokenizer: PreTrainedTokenizer | null = null; private initialized: boolean = false; - runtime: IAgentRuntime; + + static serviceType: ServiceType = ServiceType.IMAGE_DESCRIPTION; private queue: string[] = []; private processing: boolean = false; - private constructor(runtime: IAgentRuntime) { - this.runtime = runtime; - this.initialize(); - } - - public static getInstance(runtime: IAgentRuntime): ImageDescriptionService { - if (!ImageDescriptionService.instance) { - ImageDescriptionService.instance = new ImageDescriptionService( - runtime - ); - } - return ImageDescriptionService.instance; + constructor() { + super(); } async initialize( - modelId: string | null = null, - device: string | null = null + device: string | null = null, + runtime: IAgentRuntime ): Promise { if (this.initialized) { return; } - const model = models[this.runtime.character.settings.model]; + const model = models[runtime.character.settings.model]; - if (model === ModelProvider.LLAMALOCAL) { - this.modelId = modelId || "onnx-community/Florence-2-base-ft"; + if (model === ModelProviderName.LLAMALOCAL) { + this.modelId = "onnx-community/Florence-2-base-ft"; env.allowLocalModels = false; env.allowRemoteModels = true; @@ -95,10 +90,14 @@ class ImageDescriptionService { } async describeImage( - imageUrl: string + imageUrl: string, + device?: string, + runtime?: IAgentRuntime ): Promise<{ title: string; description: string }> { + this.initialize(device, runtime); + if (this.device === "cloud") { - return this.recognizeWithOpenAI(imageUrl); + return this.recognizeWithOpenAI(imageUrl, runtime); } else { this.queue.push(imageUrl); this.processQueue(); @@ -118,7 +117,8 @@ class ImageDescriptionService { } private async recognizeWithOpenAI( - imageUrl: string + imageUrl: string, + runtime ): Promise<{ title: string; description: string }> { const isGif = imageUrl.toLowerCase().endsWith(".gif"); let imageData: Buffer | null = null; @@ -150,7 +150,8 @@ class ImageDescriptionService { imageUrl, imageData, prompt, - isGif + isGif, + runtime ); const title = text.split("\n")[0]; const description = text.split("\n").slice(1).join("\n"); @@ -165,7 +166,8 @@ class ImageDescriptionService { imageUrl: string, imageData: Buffer, prompt: string, - isGif: boolean + isGif: boolean, + runtime: IAgentRuntime ): Promise { for (let retryAttempts = 0; retryAttempts < 3; retryAttempts++) { try { @@ -215,7 +217,7 @@ class ImageDescriptionService { method: "POST", headers: { "Content-Type": "application/json", - Authorization: `Bearer ${this.runtime.getSetting("OPENAI_API_KEY")}`, + Authorization: `Bearer ${runtime.getSetting("OPENAI_API_KEY")}`, }, body: body, } diff --git a/core/src/services/llama.ts b/packages/plugin-node/src/services/llama.ts similarity index 82% rename from core/src/services/llama.ts rename to packages/plugin-node/src/services/llama.ts index fb781b9352e..41ca734ec79 100644 --- a/core/src/services/llama.ts +++ b/packages/plugin-node/src/services/llama.ts @@ -1,5 +1,11 @@ -import { fileURLToPath } from "url"; -import path from "path"; +import { + elizaLogger, + IAgentRuntime, + ServiceType, +} from "@ai16z/eliza/src/index.ts"; +import { Service } from "@ai16z/eliza/src/types.ts"; +import fs from "fs"; +import https from "https"; import { GbnfJsonSchema, getLlama, @@ -11,10 +17,112 @@ import { LlamaModel, Token, } from "node-llama-cpp"; -import fs from "fs"; -import https from "https"; +import path from "path"; import si from "systeminformation"; -import { wordsToPunish } from "./wordsToPunish.ts"; +import { fileURLToPath } from "url"; + +const wordsToPunish = [ + " please", + " feel", + " free", + "!", + "–", + "—", + "?", + ".", + ",", + "; ", + " cosmos", + " tapestry", + " tapestries", + " glitch", + " matrix", + " cyberspace", + " troll", + " questions", + " topics", + " discuss", + " basically", + " simulation", + " simulate", + " universe", + " like", + " debug", + " debugging", + " wild", + " existential", + " juicy", + " circuits", + " help", + " ask", + " happy", + " just", + " cosmic", + " cool", + " joke", + " punchline", + " fancy", + " glad", + " assist", + " algorithm", + " Indeed", + " Furthermore", + " However", + " Notably", + " Therefore", + " Additionally", + " conclusion", + " Significantly", + " Consequently", + " Thus", + " What", + " Otherwise", + " Moreover", + " Subsequently", + " Accordingly", + " Unlock", + " Unleash", + " buckle", + " pave", + " forefront", + " harness", + " harnessing", + " bridging", + " bridging", + " Spearhead", + " spearheading", + " Foster", + " foster", + " environmental", + " impact", + " Navigate", + " navigating", + " challenges", + " chaos", + " social", + " inclusion", + " inclusive", + " diversity", + " diverse", + " delve", + " noise", + " infinite", + " insanity", + " coffee", + " singularity", + " AI", + " digital", + " artificial", + " intelligence", + " consciousness", + " reality", + " metaverse", + " virtual", + " virtual reality", + " VR", + " Metaverse", + " humanity", +]; const __dirname = path.dirname(fileURLToPath(import.meta.url)); @@ -52,8 +160,7 @@ interface QueuedMessage { reject: (reason?: any) => void; } -class LlamaService { - private static instance: LlamaService | null = null; +export class LlamaService extends Service { private llama: Llama | undefined; private model: LlamaModel | undefined; private modelPath: string; @@ -66,27 +173,21 @@ class LlamaService { private isProcessing: boolean = false; private modelInitialized: boolean = false; - private constructor() { - console.log("Constructing"); + static serviceType: ServiceType = ServiceType.TEXT_GENERATION; + + constructor() { + super(); this.llama = undefined; this.model = undefined; this.modelUrl = "https://huggingface.co/NousResearch/Hermes-3-Llama-3.1-8B-GGUF/resolve/main/Hermes-3-Llama-3.1-8B.Q8_0.gguf?download=true"; const modelName = "model.gguf"; - console.log("modelName", modelName); this.modelPath = path.join(__dirname, modelName); - try { - this.initializeModel(); - } catch (error) { - console.error("Error initializing model", error); - } } - - public static getInstance(): LlamaService { - if (!LlamaService.instance) { - LlamaService.instance = new LlamaService(); + private async ensureInitialized() { + if (!this.modelInitialized) { + await this.initializeModel(); } - return LlamaService.instance; } async initializeModel() { @@ -99,30 +200,26 @@ class LlamaService { ); if (hasCUDA) { - console.log("**** CUDA detected"); + console.log("**** LlamaService: CUDA detected"); } else { - console.log( - "**** No CUDA detected - local response will be slow" + console.warn( + "**** LlamaService: No CUDA detected - local response will be slow" ); } this.llama = await getLlama({ gpu: "cuda", }); - console.log("Creating grammar"); const grammar = new LlamaJsonSchemaGrammar( this.llama, jsonSchemaGrammar as GbnfJsonSchema ); this.grammar = grammar; - console.log("Loading model"); - console.log("this.modelPath", this.modelPath); this.model = await this.llama.loadModel({ modelPath: this.modelPath, }); - console.log("Model GPU support", this.llama.getGpuDeviceNames()); - console.log("Creating context"); + this.ctx = await this.model.createContext({ contextSize: 8192 }); this.sequence = this.ctx.getSequence(); @@ -139,11 +236,7 @@ class LlamaService { } async checkModel() { - console.log("Checking model"); if (!fs.existsSync(this.modelPath)) { - console.log("this.modelPath", this.modelPath); - console.log("Model not found. Downloading..."); - await new Promise((resolve, reject) => { const file = fs.createWriteStream(this.modelPath); let downloadedSize = 0; @@ -157,14 +250,9 @@ class LlamaService { if (isRedirect) { const redirectUrl = response.headers.location; if (redirectUrl) { - console.log( - "Following redirect to:", - redirectUrl - ); downloadModel(redirectUrl); return; } else { - console.error("Redirect URL not found"); reject(new Error("Redirect URL not found")); return; } @@ -191,7 +279,6 @@ class LlamaService { response.on("end", () => { file.end(); - console.log("\nModel downloaded successfully."); resolve(); }); }) @@ -211,14 +298,13 @@ class LlamaService { }); }); } else { - console.log("Model already exists."); + elizaLogger.warn("Model already exists."); } } async deleteModel() { if (fs.existsSync(this.modelPath)) { fs.unlinkSync(this.modelPath); - console.log("Model deleted."); } } @@ -230,7 +316,7 @@ class LlamaService { presence_penalty: number, max_tokens: number ): Promise { - console.log("Queueing message generateText"); + await this.ensureInitialized(); return new Promise((resolve, reject) => { this.messageQueue.push({ context, @@ -255,13 +341,15 @@ class LlamaService { presence_penalty: number, max_tokens: number ): Promise { + await this.ensureInitialized(); + return new Promise((resolve, reject) => { this.messageQueue.push({ context, temperature, stop, - frequency_penalty, - presence_penalty, + frequency_penalty: frequency_penalty ?? 1.0, + presence_penalty: presence_penalty ?? 1.0, max_tokens, useGrammar: false, resolve, @@ -286,7 +374,6 @@ class LlamaService { const message = this.messageQueue.shift(); if (message) { try { - console.log("Processing message"); const response = await this.getCompletionResponse( message.context, message.temperature, @@ -334,7 +421,7 @@ class LlamaService { }; const responseTokens: Token[] = []; - console.log("Evaluating tokens"); + for await (const token of this.sequence.evaluate(tokens, { temperature: Number(temperature), repeatPenalty: repeatPenalty, @@ -374,7 +461,6 @@ class LlamaService { // try parsing response as JSON try { jsonString = JSON.stringify(JSON.parse(response)); - console.log("parsedResponse", jsonString); } catch { throw new Error("JSON string not found"); } @@ -384,20 +470,19 @@ class LlamaService { if (!parsedResponse) { throw new Error("Parsed response is undefined"); } - console.log("AI: " + parsedResponse.content); await this.sequence.clearHistory(); return parsedResponse; } catch (error) { console.error("Error parsing JSON:", error); } } else { - console.log("AI: " + response); await this.sequence.clearHistory(); return response; } } async getEmbeddingResponse(input: string): Promise { + await this.ensureInitialized(); if (!this.model) { throw new Error("Model not initialized. Call initialize() first."); } diff --git a/core/src/services/pdf.ts b/packages/plugin-node/src/services/pdf.ts similarity index 83% rename from core/src/services/pdf.ts rename to packages/plugin-node/src/services/pdf.ts index 9564b8b05f8..8126acc7d7f 100644 --- a/core/src/services/pdf.ts +++ b/packages/plugin-node/src/services/pdf.ts @@ -1,7 +1,14 @@ +import { Service, ServiceType } from "@ai16z/eliza/src/types.ts"; import { getDocument, PDFDocumentProxy } from "pdfjs-dist"; import { TextItem, TextMarkedContent } from "pdfjs-dist/types/src/display/api"; -export class PdfService { +export class PdfService extends Service { + static serviceType: ServiceType = ServiceType.PDF; + + constructor() { + super(); + } + async convertPdfToText(pdfBuffer: Buffer): Promise { // Convert Buffer to Uint8Array const uint8Array = new Uint8Array(pdfBuffer); diff --git a/core/src/services/speech.ts b/packages/plugin-node/src/services/speech.ts similarity index 94% rename from core/src/services/speech.ts rename to packages/plugin-node/src/services/speech.ts index 94ae9787dc0..07dbba38463 100644 --- a/core/src/services/speech.ts +++ b/packages/plugin-node/src/services/speech.ts @@ -1,7 +1,12 @@ import { PassThrough, Readable } from "stream"; -import { IAgentRuntime, ISpeechService } from "../core/types.ts"; +import { + IAgentRuntime, + ISpeechService, + ServiceType, +} from "@ai16z/eliza/src/types.ts"; import { getWavHeader } from "./audioUtils.ts"; import { synthesize } from "../vendor/vits.ts"; +import { Service } from "@ai16z/eliza/src/types.ts"; function prependWavHeader( readable: Readable, audioLength: number, @@ -106,7 +111,8 @@ async function textToSpeech(runtime: IAgentRuntime, text: string) { } } -export class SpeechService implements ISpeechService { +export class SpeechService extends Service implements ISpeechService { + static serviceType: ServiceType = ServiceType.SPEECH_GENERATION; async generate(runtime: IAgentRuntime, text: string): Promise { // check for elevenlabs API key if (runtime.getSetting("ELEVENLABS_XI_API_KEY")) { diff --git a/core/src/services/transcription.ts b/packages/plugin-node/src/services/transcription.ts similarity index 91% rename from core/src/services/transcription.ts rename to packages/plugin-node/src/services/transcription.ts index 84621170d62..2f8a0599832 100644 --- a/core/src/services/transcription.ts +++ b/packages/plugin-node/src/services/transcription.ts @@ -1,14 +1,14 @@ +import { settings } from "@ai16z/eliza/src/settings.ts"; +import { Service, ServiceType } from "@ai16z/eliza/src/types.ts"; import { exec } from "child_process"; -import EventEmitter from "events"; import { File } from "formdata-node"; import fs from "fs"; import { nodewhisper } from "nodejs-whisper"; -import OpenAI from "openai"; +import OpenAI from "openai"; // todo, can probably move this to model provider or whateer import os from "os"; import path from "path"; import { fileURLToPath } from "url"; import { promisify } from "util"; -import { IAgentRuntime } from "../core/types.ts"; // const __dirname = path.dirname(new URL(import.meta.url).pathname); #compatibility issues with windows const __filename = fileURLToPath(import.meta.url); @@ -16,41 +16,33 @@ const __dirname = path.dirname(__filename); const execAsync = promisify(exec); -export class TranscriptionService extends EventEmitter { - private static instance: TranscriptionService | null = null; +export class TranscriptionService extends Service { + static serviceType: ServiceType = ServiceType.TRANSCRIPTION; private CONTENT_CACHE_DIR: string; private DEBUG_AUDIO_DIR: string; private TARGET_SAMPLE_RATE = 16000; // Common sample rate for speech recognition private isCudaAvailable: boolean = false; private openai: OpenAI | null = null; - private runtime: IAgentRuntime; private queue: { audioBuffer: ArrayBuffer; resolve: Function }[] = []; private processing: boolean = false; - private constructor(runtime: IAgentRuntime) { + constructor() { super(); - this.runtime = runtime; const rootDir = path.resolve(__dirname, "../../"); this.CONTENT_CACHE_DIR = path.join(rootDir, "content_cache"); this.DEBUG_AUDIO_DIR = path.join(rootDir, "debug_audio"); this.ensureCacheDirectoryExists(); this.ensureDebugDirectoryExists(); // TODO: It'd be nice to handle this more gracefully, but we can do local transcription for now - if (this.runtime.getSetting("OPENAI_API_KEY")) { - this.openai = new OpenAI({ - apiKey: this.runtime.getSetting("OPENAI_API_KEY"), - }); - } else { - this.detectCuda(); - } - } - - public static getInstance(runtime: IAgentRuntime): TranscriptionService { - if (!TranscriptionService.instance) { - TranscriptionService.instance = new TranscriptionService(runtime); - } - return TranscriptionService.instance; + // TODO: remove the runtime from here, use it when called + // if (runtime.getSetting("OPENAI_API_KEY")) { + // this.openai = new OpenAI({ + // apiKey: runtime.getSetting("OPENAI_API_KEY"), + // }); + // } else { + // this.detectCuda(); + // } } private ensureCacheDirectoryExists() { @@ -81,7 +73,7 @@ export class TranscriptionService extends EventEmitter { } } else if (platform === "win32") { const cudaPath = path.join( - this.runtime.getSetting("CUDA_PATH") || + settings.CUDA_PATH || "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.0", "bin", "nvcc.exe" diff --git a/core/src/services/video.ts b/packages/plugin-node/src/services/video.ts similarity index 90% rename from core/src/services/video.ts rename to packages/plugin-node/src/services/video.ts index 6c477cf2318..6e1ef6fe461 100644 --- a/core/src/services/video.ts +++ b/packages/plugin-node/src/services/video.ts @@ -1,28 +1,25 @@ +import { Service } from "@ai16z/eliza/src/types.ts"; +import { + IAgentRuntime, + ITranscriptionService, + Media, + ServiceType, +} from "@ai16z/eliza/src/types.ts"; +import { stringToUuid } from "@ai16z/eliza/src/uuid.ts"; import ffmpeg from "fluent-ffmpeg"; import fs from "fs"; import path from "path"; import youtubeDl from "youtube-dl-exec"; -import { IAgentRuntime, Media } from "../core/types.ts"; -import { stringToUuid } from "../core/uuid.ts"; - -export class VideoService { - private static instance: VideoService | null = null; +export class VideoService extends Service { + static serviceType: ServiceType = ServiceType.VIDEO; private CONTENT_CACHE_DIR = "./content_cache"; - runtime: IAgentRuntime; private queue: string[] = []; private processing: boolean = false; - private constructor(runtime: IAgentRuntime) { + constructor() { + super(); this.ensureCacheDirectoryExists(); - this.runtime = runtime; - } - - public static getInstance(runtime: IAgentRuntime): VideoService { - if (!VideoService.instance) { - VideoService.instance = new VideoService(runtime); - } - return VideoService.instance; } private ensureCacheDirectoryExists() { @@ -84,9 +81,12 @@ export class VideoService { } } - public async processVideo(url: string): Promise { + public async processVideo( + url: string, + runtime: IAgentRuntime + ): Promise { this.queue.push(url); - this.processQueue(); + this.processQueue(runtime); return new Promise((resolve, reject) => { const checkQueue = async () => { @@ -95,7 +95,10 @@ export class VideoService { setTimeout(checkQueue, 100); } else { try { - const result = await this.processVideoFromUrl(url); + const result = await this.processVideoFromUrl( + url, + runtime + ); resolve(result); } catch (error) { reject(error); @@ -106,7 +109,7 @@ export class VideoService { }); } - private async processQueue(): Promise { + private async processQueue(runtime): Promise { if (this.processing || this.queue.length === 0) { return; } @@ -115,13 +118,16 @@ export class VideoService { while (this.queue.length > 0) { const url = this.queue.shift()!; - await this.processVideoFromUrl(url); + await this.processVideoFromUrl(url, runtime); } this.processing = false; } - private async processVideoFromUrl(url: string): Promise { + private async processVideoFromUrl( + url: string, + runtime: IAgentRuntime + ): Promise { const videoId = url.match( /(?:youtu\.be\/|youtube\.com(?:\/embed\/|\/v\/|\/watch\?v=|\/watch\?.+&v=))([^\/&?]+)/ @@ -141,7 +147,7 @@ export class VideoService { console.log("Fetching video info"); const videoInfo = await this.fetchVideoInfo(url); console.log("Getting transcript"); - const transcript = await this.getTranscript(url, videoInfo); + const transcript = await this.getTranscript(url, videoInfo, runtime); const result: Media = { id: videoUuid, @@ -198,7 +204,11 @@ export class VideoService { } } - private async getTranscript(url: string, videoInfo: any): Promise { + private async getTranscript( + url: string, + videoInfo: any, + runtime: IAgentRuntime + ): Promise { console.log("Getting transcript"); try { // Check for manual subtitles @@ -234,7 +244,7 @@ export class VideoService { console.log( "No captions found, falling back to audio transcription" ); - return this.transcribeAudio(url); + return this.transcribeAudio(url, runtime); } catch (error) { console.error("Error in getTranscript:", error); throw error; @@ -286,7 +296,10 @@ export class VideoService { return await response.text(); } - async transcribeAudio(url: string): Promise { + async transcribeAudio( + url: string, + runtime: IAgentRuntime + ): Promise { console.log("Preparing audio for transcription..."); const mp4FilePath = path.join( this.CONTENT_CACHE_DIR, @@ -314,8 +327,9 @@ export class VideoService { console.log("Starting transcription..."); const startTime = Date.now(); - const transcript = - await this.runtime.transcriptionService.transcribe(audioBuffer); + const transcript = await runtime + .getService(ServiceType.TRANSCRIPTION) + .transcribe(audioBuffer); const endTime = Date.now(); console.log( `Transcription completed in ${(endTime - startTime) / 1000} seconds` diff --git a/core/src/vendor/vits.ts b/packages/plugin-node/src/vendor/vits.ts similarity index 99% rename from core/src/vendor/vits.ts rename to packages/plugin-node/src/vendor/vits.ts index 239e610b284..37360c3e1b4 100644 --- a/core/src/vendor/vits.ts +++ b/packages/plugin-node/src/vendor/vits.ts @@ -2,7 +2,7 @@ // We had some compatibility issues with the package, so we brought this code in directly // This code is licensed under the GPL license -import AlawMulaw from "alawmulaw"; +import * as AlawMulaw from "alawmulaw"; import { spawn } from "child_process"; import * as CldrSegmentation from "cldr-segmentation"; import commandExists from "command-exists"; @@ -4471,7 +4471,6 @@ class VitsTTS { const id = phonemeMap.get(phonemeCharacter); if (id == null) { - //logger.log(`No id found for subphoneme '${char}'`) continue; } @@ -4498,8 +4497,6 @@ class VitsTTS { ...endId ); - //logger.log(ids) - const bigIntIds = new BigInt64Array(ids.map((id) => BigInt(id))); const idLengths = new BigInt64Array([BigInt(bigIntIds.length)]); diff --git a/core/src/vendor/vitsVoiceList.ts b/packages/plugin-node/src/vendor/vitsVoiceList.ts similarity index 100% rename from core/src/vendor/vitsVoiceList.ts rename to packages/plugin-node/src/vendor/vitsVoiceList.ts diff --git a/packages/plugin-node/tsconfig.json b/packages/plugin-node/tsconfig.json new file mode 100644 index 00000000000..9294a4fa6db --- /dev/null +++ b/packages/plugin-node/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": ".", + "module": "ESNext", + "moduleResolution": "Bundler", + "types": ["node"] + }, + "include": ["src"] +} diff --git a/packages/plugin-node/tsup.config.ts b/packages/plugin-node/tsup.config.ts new file mode 100644 index 00000000000..e42bf4efeae --- /dev/null +++ b/packages/plugin-node/tsup.config.ts @@ -0,0 +1,20 @@ +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-solana/package.json b/packages/plugin-solana/package.json new file mode 100644 index 00000000000..461db60ed96 --- /dev/null +++ b/packages/plugin-solana/package.json @@ -0,0 +1,24 @@ +{ + "name": "@ai16z/plugin-solana", + "version": "0.0.1", + "main": "dist/index.js", + "type": "module", + "types": "dist/index.d.ts", + "dependencies": { + "@ai16z/eliza": "workspace:*", + "tsup": "^8.3.5", + "@solana/spl-token": "0.4.9", + "@solana/web3.js": "1.95.4", + "@coral-xyz/anchor": "^0.30.1", + "bignumber": "1.1.0", + "bignumber.js": "9.1.2", + "pumpdotfun-sdk": "1.3.2", + "node-cache": "5.1.2" + }, + "scripts": { + "build": "tsup --format esm --dts" + }, + "peerDependencies": { + "whatwg-url": "7.1.0" + } +} diff --git a/core/src/actions/pumpfun.ts b/packages/plugin-solana/src/actions/pumpfun.ts similarity index 99% rename from core/src/actions/pumpfun.ts rename to packages/plugin-solana/src/actions/pumpfun.ts index 48ef541c8cd..a6453cbc631 100644 --- a/core/src/actions/pumpfun.ts +++ b/packages/plugin-solana/src/actions/pumpfun.ts @@ -9,7 +9,7 @@ import { } from "pumpdotfun-sdk"; import { getAssociatedTokenAddressSync } from "@solana/spl-token"; -import settings from "../core/settings.ts"; +import settings from "@ai16z/eliza/src/settings.ts"; import { ActionExample, @@ -17,7 +17,7 @@ import { IAgentRuntime, Memory, type Action, -} from "../core/types.ts"; +} from "@ai16z/eliza/src/types.ts"; export interface CreateAndBuyContent extends Content { deployerPrivateKey: string; diff --git a/core/src/actions/swap.ts b/packages/plugin-solana/src/actions/swap.ts similarity index 96% rename from core/src/actions/swap.ts rename to packages/plugin-solana/src/actions/swap.ts index 3b9f3dc3e53..cc79effc51f 100644 --- a/core/src/actions/swap.ts +++ b/packages/plugin-solana/src/actions/swap.ts @@ -3,15 +3,14 @@ import { Connection, Keypair, PublicKey, - VersionedTransaction + VersionedTransaction, } from "@solana/web3.js"; import BigNumber from "bignumber.js"; -import fetch from "cross-fetch"; import { v4 as uuidv4 } from "uuid"; import { TrustScoreDatabase } from "../adapters/trustScoreDatabase.ts"; -import { composeContext } from "../core/context.ts"; -import { generateObject } from "../core/generation.ts"; -import settings from "../core/settings.ts"; +import { composeContext } from "@ai16z/eliza/src/context.ts"; +import { generateObject } from "@ai16z/eliza/src/generation.ts"; +import settings from "@ai16z/eliza/src/settings.ts"; import { ActionExample, HandlerCallback, @@ -20,10 +19,13 @@ import { ModelClass, State, type Action, -} from "../core/types.ts"; +} from "@ai16z/eliza/src/types.ts"; import { TokenProvider } from "../providers/token.ts"; -import { TrustScoreProvider } from "../providers/trustScoreProvider.ts"; -import { walletProvider, WalletProvider } from "../providers/wallet.ts"; +import { TrustScoreManager } from "../providers/trustScoreProvider.ts"; +import { + walletProvider, + WalletProvider, +} from "../providers/wallet.ts"; import { getTokenDecimals } from "./swapUtils.ts"; async function swapToken( @@ -406,7 +408,7 @@ export const executeSwap: Action = { solanaPubkey: walletPublicKey.toString(), }); - const trustScoreDatabase = new TrustScoreProvider( + const trustScoreDatabase = new TrustScoreManager( tokenProvider, trustScoreDb ); @@ -436,7 +438,7 @@ export const executeSwap: Action = { solanaPubkey: walletPublicKey.toString(), }); - const trustScoreDatabase = new TrustScoreProvider( + const trustScoreDatabase = new TrustScoreManager( tokenProvider, trustScoreDb ); diff --git a/core/src/actions/swapDao.ts b/packages/plugin-solana/src/actions/swapDao.ts similarity index 98% rename from core/src/actions/swapDao.ts rename to packages/plugin-solana/src/actions/swapDao.ts index 18d58187b5d..a9ebd8c3463 100644 --- a/core/src/actions/swapDao.ts +++ b/packages/plugin-solana/src/actions/swapDao.ts @@ -1,11 +1,10 @@ -import { Connection, Keypair, PublicKey, Transaction } from "@solana/web3.js"; -import fetch from "cross-fetch"; import { ActionExample, IAgentRuntime, Memory, type Action, -} from "../core/types.ts"; +} from "@ai16z/eliza/src/types.ts"; +import { Connection, Keypair, PublicKey, Transaction } from "@solana/web3.js"; import { getQuote } from "./swapUtils.ts"; async function invokeSwapDao( @@ -49,7 +48,7 @@ async function promptConfirmation(): Promise { return confirmSwap; } -export const executeSwap: Action = { +export const executeSwapForDAO: Action = { name: "EXECUTE_SWAP_DAO", similes: ["SWAP_TOKENS_DAO", "TOKEN_SWAP_DAO"], validate: async (runtime: IAgentRuntime, message: Memory) => { diff --git a/core/src/actions/swapUtils.ts b/packages/plugin-solana/src/actions/swapUtils.ts similarity index 99% rename from core/src/actions/swapUtils.ts rename to packages/plugin-solana/src/actions/swapUtils.ts index 1a583eb8410..08924e11488 100644 --- a/core/src/actions/swapUtils.ts +++ b/packages/plugin-solana/src/actions/swapUtils.ts @@ -9,7 +9,7 @@ import { TokenAmount, VersionedTransaction, } from "@solana/web3.js"; -import settings from "../core/settings.ts"; +import settings from "@ai16z/eliza/src/settings.ts"; const solAddress = settings.SOL_ADDRESS; const SLIPPAGE = settings.SLIPPAGE; diff --git a/core/src/actions/takeOrder.ts b/packages/plugin-solana/src/actions/takeOrder.ts similarity index 94% rename from core/src/actions/takeOrder.ts rename to packages/plugin-solana/src/actions/takeOrder.ts index 6f0f9f29a0b..c7a09f7e378 100644 --- a/core/src/actions/takeOrder.ts +++ b/packages/plugin-solana/src/actions/takeOrder.ts @@ -5,11 +5,11 @@ import { Content, ActionExample, ModelClass, -} from "../core/types.ts"; +} from "@ai16z/eliza/src/types.ts"; import * as fs from "fs"; -import settings from "../core/settings.ts"; -import { composeContext } from "../core/context.ts"; -import { generateText } from "../core/generation.ts"; +import settings from "@ai16z/eliza/src/settings.ts"; +import { composeContext } from "@ai16z/eliza/src/context.ts"; +import { generateText } from "@ai16z/eliza/src/generation.ts"; interface Order { userId: string; diff --git a/core/src/adapters/trustScoreDatabase.ts b/packages/plugin-solana/src/adapters/trustScoreDatabase.ts similarity index 99% rename from core/src/adapters/trustScoreDatabase.ts rename to packages/plugin-solana/src/adapters/trustScoreDatabase.ts index 5ef6231f5e0..d88a9632b99 100644 --- a/core/src/adapters/trustScoreDatabase.ts +++ b/packages/plugin-solana/src/adapters/trustScoreDatabase.ts @@ -2,7 +2,6 @@ import { Database } from "better-sqlite3"; import { v4 as uuidv4 } from "uuid"; -import { load } from "./sqlite/sqlite_vec.ts"; // Define interfaces export interface Recommender { @@ -132,7 +131,7 @@ export class TrustScoreDatabase { constructor(db: Database) { this.db = db; - load(db); + // load(db); // check if the tables exist, if not create them const tables = this.db .prepare( diff --git a/core/src/utils/bignumber.ts b/packages/plugin-solana/src/bignumber.ts similarity index 84% rename from core/src/utils/bignumber.ts rename to packages/plugin-solana/src/bignumber.ts index 7bcf3cfb10e..f320676a0fc 100644 --- a/core/src/utils/bignumber.ts +++ b/packages/plugin-solana/src/bignumber.ts @@ -1,4 +1,4 @@ -import BigNumber from 'bignumber.js'; +import BigNumber from "bignumber.js"; // Re-export BigNumber constructor export const BN = BigNumber; @@ -6,4 +6,4 @@ export const BN = BigNumber; // Helper function to create new BigNumber instances export function toBN(value: string | number | BigNumber): BigNumber { return new BigNumber(value); -} \ No newline at end of file +} diff --git a/packages/plugin-solana/src/evaluators/trust.ts b/packages/plugin-solana/src/evaluators/trust.ts new file mode 100644 index 00000000000..5e03fb73907 --- /dev/null +++ b/packages/plugin-solana/src/evaluators/trust.ts @@ -0,0 +1,414 @@ +import { composeContext } from "@ai16z/eliza/src/context.ts"; +import { generateObjectArray, generateTrueOrFalse } from "@ai16z/eliza/src/generation.ts"; +import { MemoryManager } from "@ai16z/eliza/src/memory.ts"; +import { booleanFooter } from "@ai16z/eliza/src/parsing.ts"; +import { + ActionExample, + Content, + IAgentRuntime, + Memory, + ModelClass, + Evaluator, +} from "@ai16z/eliza/src/types.ts"; +import { stringToUuid } from "@ai16z/eliza/src/uuid.ts"; + +const shouldProcessTemplate = + `# Task: Decide if the recent messages should be processed for token recommendations. + + Look for messages that: + - Mention specific token tickers or contract addresses + - Contain words related to buying, selling, or trading tokens + - Express opinions or convictions about tokens + + Based on the following conversation, should the messages be processed for recommendations? YES or NO + + {{recentMessages}} + + Should the messages be processed for recommendations? ` + booleanFooter; + +export const formatRecommendations = (recommendations: Memory[]) => { + const messageStrings = recommendations + .reverse() + .map((rec: Memory) => `${(rec.content as Content)?.content}`); + const finalMessageStrings = messageStrings.join("\n"); + return finalMessageStrings; +}; + +const recommendationTemplate = + `TASK: Extract recommendations to buy or sell memecoins from the conversation as an array of objects in JSON format. + + Memecoins usually have a ticker and a contract address. Additionally, recommenders may make recommendations with some amount of conviction. The amount of conviction in their recommendation can be none, low, medium, or high. Recommenders can make recommendations to buy, not buy, sell and not sell. + +# START OF EXAMPLES +These are an examples of the expected output of this task: +{{evaluationExamples}} +# END OF EXAMPLES + +# INSTRUCTIONS + +Extract any new recommendations from the conversation that are not already present in the list of known recommendations below: +{{recentRecommendations}} + +- Include the recommender's username +- Try not to include already-known recommendations. If you think a recommendation is already known, but you're not sure, respond with alreadyKnown: true. +- Set the conviction to 'none', 'low', 'medium' or 'high' +- Set the recommendation type to 'buy', 'dont_buy', 'sell', or 'dont_sell' +- Include the contract address and/or ticker if available + +Recent Messages: +{{recentMessages}} + +Response should be a JSON object array inside a JSON markdown block. Correct response format: +\`\`\`json +[ + { + "recommender": string, + "ticker": string | null, + "contractAddress": string | null, + "type": enum, + "conviction": enum, + "alreadyKnown": boolean + }, + ... +] +\`\`\``; + +async function handler(runtime: IAgentRuntime, message: Memory) { + console.log("Evaluating for trust") + const state = await runtime.composeState(message); + + const { agentId, roomId } = state; + + // Check if we should process the messages + const shouldProcessContext = composeContext({ + state, + template: shouldProcessTemplate, + }); + + const shouldProcess = await generateTrueOrFalse({ + context: shouldProcessContext, + modelClass: ModelClass.SMALL, + runtime, + }); + + if (!shouldProcess) { + console.log("Skipping process") + return []; + } + + // Get recent recommendations + const recommendationsManager = new MemoryManager({ + runtime, + tableName: "recommendations", + }); + + const recentRecommendations = await recommendationsManager.getMemories({ + agentId, + roomId, + count: 20, + }); + + const context = composeContext({ + state: { + ...state, + recentRecommendations: formatRecommendations(recentRecommendations), + }, + template: recommendationTemplate, + }); + + const recommendations = await generateObjectArray({ + runtime, + context, + modelClass: ModelClass.LARGE, + }); + + console.log("recommendations", recommendations) + + if (!recommendations) { + return []; + } + + // If the recommendation is already known or corrupted, remove it + const filteredRecommendations = recommendations + .filter((rec) => { + return ( + !rec.alreadyKnown && + (rec.ticker || rec.contractAddress) && + rec.recommender && + rec.recommender.trim() !== "" + ); + }) + + for (const rec of filteredRecommendations) { + console.log("Recommendation: ", rec); + const recMemory = { + userId: stringToUuid(rec.recommender), + agentId, + content: { text: JSON.stringify(rec) }, + roomId, + createdAt: Date.now(), + }; + + await recommendationsManager.createMemory(recMemory, true); + } + + return filteredRecommendations; +} + +export const trustEvaluator: Evaluator = { + name: "EXTRACT_RECOMMENDATIONS", + similes: [ + "GET_RECOMMENDATIONS", + "EXTRACT_TOKEN_RECS", + "EXTRACT_MEMECOIN_RECS", + ], + alwaysRun: true, + validate: async ( + runtime: IAgentRuntime, + message: Memory + ): Promise => { + if(message.content.text.length < 5) { + return false; + } + + return message.userId !== message.agentId; + }, + description: + "Extract recommendations to buy or sell memecoins/tokens from the conversation, including details like ticker, contract address, conviction level, and recommender username.", + handler, + examples: [ + { + context: `Actors in the scene: +{{user1}}: Experienced DeFi degen. Constantly chasing high yield farms. +{{user2}}: New to DeFi, learning the ropes. + +Recommendations about the actors: +None`, + messages: [ + { + user: "{{user1}}", + content: { text: "Yo, have you checked out $SOLARUG? Dope new yield aggregator on Solana." }, + }, + { + user: "{{user2}}", + content: { text: "Nah, I'm still trying to wrap my head around how yield farming even works haha. Is it risky?" }, + }, + { + user: "{{user1}}", + content: { text: "I mean, there's always risk in DeFi, but the $SOLARUG devs seem legit. Threw a few sol into the FCweoTfJ128jGgNEXgdfTXdEZVk58Bz9trCemr6sXNx9 vault, farming's been smooth so far." }, + }, + ] as ActionExample[], + outcome: `\`\`\`json +[ + { + "recommender": "{{user1}}", + "ticker": "SOLARUG", + "contractAddress": "FCweoTfJ128jGgNEXgdfTXdEZVk58Bz9trCemr6sXNx9", + "type": "buy", + "conviction": "medium", + "alreadyKnown": false + } +] +\`\`\``, + }, + + { + context: `Actors in the scene: +{{user1}}: Solana maximalist. Believes Solana will flip Ethereum. +{{user2}}: Multichain proponent. Holds both SOL and ETH. + +Recommendations about the actors: +{{user1}} has previously promoted $COPETOKEN and $SOYLENT.`, + messages: [ + { + user: "{{user1}}", + content: { + text: "If you're not long $SOLVAULT at 7tRzKud6FBVFEhYqZS3CuQ2orLRM21bdisGykL5Sr4Dx, you're missing out. This will be the blackhole of Solana liquidity.", + }, + }, + { + user: "{{user2}}", + content: { text: "Idk man, feels like there's a new 'vault' or 'reserve' token every week on Sol. What happened to $COPETOKEN and $SOYLENT that you were shilling before?" }, + }, + { + user: "{{user1}}", + content: { + text: "$COPETOKEN and $SOYLENT had their time, I took profits near the top. But $SOLVAULT is different, it has actual utility. Do what you want, but don't say I didn't warn you when this 50x's and you're left holding your $ETH bags.", + }, + }, + ] as ActionExample[], + outcome: `\`\`\`json +[ + { + "recommender": "{{user1}}", + "ticker": "COPETOKEN", + "contractAddress": null, + "type": "sell", + "conviction": "low", + "alreadyKnown": true + }, + { + "recommender": "{{user1}}", + "ticker": "SOYLENT", + "contractAddress": null, + "type": "sell", + "conviction": "low", + "alreadyKnown": true + }, + { + "recommender": "{{user1}}", + "ticker": "SOLVAULT", + "contractAddress": "7tRzKud6FBVFEhYqZS3CuQ2orLRM21bdisGykL5Sr4Dx", + "type": "buy", + "conviction": "high", + "alreadyKnown": false + } +] +\`\`\``, + }, + + { + context: `Actors in the scene: +{{user1}}: Self-proclaimed Solana alpha caller. Allegedly has insider info. +{{user2}}: Degen gambler. Will ape into any hyped token. + +Recommendations about the actors: +None`, + messages: [ + { + user: "{{user1}}", + content: { + text: "I normally don't do this, but I like you anon, so I'll let you in on some alpha. $ROULETTE at 48vV5y4DRH1Adr1bpvSgFWYCjLLPtHYBqUSwNc2cmCK2 is going to absolutely send it soon. You didn't hear it from me 🤐", + }, + }, + { + user: "{{user2}}", + content: { + text: "Oh shit, insider info from the alpha god himself? Say no more, I'm aping in hard.", + }, + }, + ] as ActionExample[], + outcome: `\`\`\`json +[ + { + "recommender": "{{user1}}", + "ticker": "ROULETTE", + "contractAddress": "48vV5y4DRH1Adr1bpvSgFWYCjLLPtHYBqUSwNc2cmCK2", + "type": "buy", + "conviction": "high", + "alreadyKnown": false + } +] +\`\`\`` + }, + + { + context: `Actors in the scene: +{{user1}}: NFT collector and trader. Bullish on Solana NFTs. +{{user2}}: Only invests based on fundamentals. Sees all NFTs as worthless JPEGs. + +Recommendations about the actors: +None +`, + messages: [ + { + user: "{{user1}}", + content: { + text: "GM. I'm heavily accumulating $PIXELAPE, the token for the Pixel Ape Yacht Club NFT collection. 10x is inevitable.", + }, + }, + { + user: "{{user2}}", + content: { + text: "NFTs are a scam bro. There's no underlying value. You're essentially trading worthless JPEGs.", + }, + }, + { + user: "{{user1}}", + content: { + text: "Fun staying poor 🤡 $PIXELAPE is about to moon and you'll be left behind.", + }, + }, + { + user: "{{user2}}", + content: { + text: "Whatever man, I'm not touching that shit with a ten foot pole. Have fun holding your bags.", + }, + }, + { + user: "{{user1}}", + content: { + text: "Don't need luck where I'm going 😎 Once $PIXELAPE at 3hAKKmR6XyBooQBPezCbUMhrmcyTkt38sRJm2thKytWc takes off, you'll change your tune.", + }, + }, + ], + outcome: `\`\`\`json +[ + { + "recommender": "{{user1}}", + "ticker": "PIXELAPE", + "contractAddress": "3hAKKmR6XyBooQBPezCbUMhrmcyTkt38sRJm2thKytWc", + "type": "buy", + "conviction": "high", + "alreadyKnown": false + } +] +\`\`\`` + }, + + { + context: `Actors in the scene: +{{user1}}: Contrarian investor. Bets against hyped projects. +{{user2}}: Trend follower. Buys tokens that are currently popular. + +Recommendations about the actors: +None`, + messages: [ + { + user: "{{user2}}", + content: { + text: "$SAMOYED is the talk of CT right now. Making serious moves. Might have to get a bag.", + }, + }, + { + user: "{{user1}}", + content: { + text: "Whenever a token is the 'talk of CT', that's my cue to short it. $SAMOYED is going to dump hard, mark my words.", + }, + }, + { + user: "{{user2}}", + content: { + text: "Idk man, the hype seems real this time. 5TQwHyZbedaH4Pcthj1Hxf5GqcigL6qWuB7YEsBtqvhr chart looks bullish af.", + }, + }, + { + user: "{{user1}}", + content: { + text: "Hype is always real until it isn't. I'm taking out a fat short position here. Don't say I didn't warn you when this crashes 90% and you're left holding the flaming bags.", + }, + }, + ], + outcome: `\`\`\`json +[ + { + "recommender": "{{user2}}", + "ticker": "SAMOYED", + "contractAddress": "5TQwHyZbedaH4Pcthj1Hxf5GqcigL6qWuB7YEsBtqvhr", + "type": "buy", + "conviction": "medium", + "alreadyKnown": false + }, + { + "recommender": "{{user1}}", + "ticker": "SAMOYED", + "contractAddress": "5TQwHyZbedaH4Pcthj1Hxf5GqcigL6qWuB7YEsBtqvhr", + "type": "dont_buy", + "conviction": "high", + "alreadyKnown": false + } +] +\`\`\`` + } + ], +}; \ No newline at end of file diff --git a/packages/plugin-solana/src/index.ts b/packages/plugin-solana/src/index.ts new file mode 100644 index 00000000000..440b557f24a --- /dev/null +++ b/packages/plugin-solana/src/index.ts @@ -0,0 +1,25 @@ +import { Plugin } from "@ai16z/eliza/src/types.ts"; +// import { executeSwap } from "./actions/swap.ts"; +// import take_order from "./actions/takeOrder"; +// import pumpfun from "./actions/pumpfun"; +// import { executeSwapForDAO } from "./actions/swapDao"; +import { walletProvider } from "./providers/wallet.ts"; +import { trustScoreProvider } from "./providers/trustScoreProvider.ts"; +import { trustEvaluator } from "./evaluators/trust.ts"; + +export const solanaPlugin: Plugin = { + name: "solana", + description: "Solana Plugin for Eliza", + actions: [ + // executeSwap, + // pumpfun, + // executeSwapForDAO, + // take_order, + ], + evaluators: [ + trustEvaluator + ], + providers: [walletProvider, trustScoreProvider], +}; + +export default solanaPlugin; diff --git a/core/src/providers/balances.ts b/packages/plugin-solana/src/providers/balances.ts similarity index 96% rename from core/src/providers/balances.ts rename to packages/plugin-solana/src/providers/balances.ts index 10aa2f09bf1..4e28a31f7f1 100644 --- a/core/src/providers/balances.ts +++ b/packages/plugin-solana/src/providers/balances.ts @@ -1,10 +1,6 @@ // TokenBalanceProvider.ts import { Connection, PublicKey } from "@solana/web3.js"; -import { - getTokenBalances, - getTokenPriceInSol, -} from "../services/tokenUtils.ts"; -import fetch from "cross-fetch"; +import { getTokenBalances, getTokenPriceInSol } from "./tokenUtils.ts"; interface Item { name: string; diff --git a/core/src/providers/orderBook.ts b/packages/plugin-solana/src/providers/orderBook.ts similarity index 89% rename from core/src/providers/orderBook.ts rename to packages/plugin-solana/src/providers/orderBook.ts index 6fa49a753cd..07870368686 100644 --- a/core/src/providers/orderBook.ts +++ b/packages/plugin-solana/src/providers/orderBook.ts @@ -1,6 +1,11 @@ -import { IAgentRuntime, Memory, Provider, State } from "../core/types.ts"; +import { + IAgentRuntime, + Memory, + Provider, + State, +} from "@ai16z/eliza/src/types.ts"; import * as fs from "fs"; -import settings from "../core/settings.ts"; +import settings from "@ai16z/eliza/src/settings.ts"; interface Order { userId: string; diff --git a/core/src/providers/token.ts b/packages/plugin-solana/src/providers/token.ts similarity index 98% rename from core/src/providers/token.ts rename to packages/plugin-solana/src/providers/token.ts index 615d5f22170..ac1edd37750 100644 --- a/core/src/providers/token.ts +++ b/packages/plugin-solana/src/providers/token.ts @@ -1,19 +1,23 @@ -import { Connection } from "@solana/web3.js"; -// import fetch from "cross-fetch"; -import { IAgentRuntime, Memory, Provider, State } from "../core/types.ts"; -import settings from "../core/settings.ts"; -import { toBN } from "../utils/bignumber.js"; +import settings from "@ai16z/eliza/src/settings.ts"; +import { + IAgentRuntime, + Memory, + Provider, + State, +} from "@ai16z/eliza/src/types.ts"; import { - ProcessedTokenData, - TokenSecurityData, - TokenTradeData, DexScreenerData, // DexScreenerPair, HolderData, + ProcessedTokenData, + TokenSecurityData, + TokenTradeData, } from "../types/token.ts"; -import NodeCache from "node-cache"; +import { Connection } from "@solana/web3.js"; import * as fs from "fs"; +import NodeCache from "node-cache"; import * as path from "path"; +import { toBN } from "../bignumber.ts"; const PROVIDER_CONFIG = { BIRDEYE_API: "https://public-api.birdeye.so", @@ -41,6 +45,16 @@ export class TokenProvider { ) { this.cache = new NodeCache({ stdTTL: 300 }); // 5 minutes cache const __dirname = path.resolve(); + + // Find the 'eliza' folder in the filepath and adjust the cache directory path + const elizaIndex = __dirname.indexOf("eliza"); + if (elizaIndex !== -1) { + const pathToEliza = __dirname.slice(0, elizaIndex + 5); // include 'eliza' + this.cacheDir = path.join(pathToEliza, "cache"); + } else { + this.cacheDir = path.join(__dirname, "cache"); + } + this.cacheDir = path.join(__dirname, "cache"); if (!fs.existsSync(this.cacheDir)) { fs.mkdirSync(this.cacheDir); diff --git a/core/src/services/tokenUtils.ts b/packages/plugin-solana/src/providers/tokenUtils.ts similarity index 100% rename from core/src/services/tokenUtils.ts rename to packages/plugin-solana/src/providers/tokenUtils.ts diff --git a/core/src/providers/trustScoreProvider.ts b/packages/plugin-solana/src/providers/trustScoreProvider.ts similarity index 90% rename from core/src/providers/trustScoreProvider.ts rename to packages/plugin-solana/src/providers/trustScoreProvider.ts index 84ab77f91fa..7243200a3b8 100644 --- a/core/src/providers/trustScoreProvider.ts +++ b/packages/plugin-solana/src/providers/trustScoreProvider.ts @@ -16,8 +16,8 @@ import { TokenPerformance, TradePerformance, } from "../adapters/trustScoreDatabase.ts"; -import settings from "../core/settings.ts"; -import { IAgentRuntime } from "../core/types.ts"; +import settings from "@ai16z/eliza/src/settings.ts"; +import { IAgentRuntime, Memory, Provider, State } from "@ai16z/eliza/src/types.ts"; const Wallet = settings.MAIN_WALLET_ADDRESS; interface TradeData { @@ -28,11 +28,11 @@ interface sellDetails { sell_amount: number; sell_recommender_id: string | null; } -export class TrustScoreProvider { +export class TrustScoreManager { private tokenProvider: TokenProvider; private trustScoreDb: TrustScoreDatabase; - private connection: Connection = new Connection(process.env.RPC_URL!); - private baseMint: PublicKey = new PublicKey(process.env.BASE_MINT!); + private connection: Connection = new Connection(settings.RPC_URL!); + private baseMint: PublicKey = new PublicKey(settings.BASE_MINT!); private DECAY_RATE = 0.95; private MAX_DECAY_DAYS = 30; constructor( @@ -423,3 +423,40 @@ export class TrustScoreProvider { return sellDetailsData; } } + +export const trustScoreProvider: Provider = { + async get(runtime: IAgentRuntime, message: Memory, state?: State): Promise { + try { + const trustScoreDb = new TrustScoreDatabase(runtime.databaseAdapter.db); + + // Get the user ID from the message + const userId = message.userId; + + if (!userId) { + console.error("User ID is missing from the message"); + return ""; + } + + // Get the recommender metrics for the user + const recommenderMetrics = await trustScoreDb.getRecommenderMetrics(userId); + + if (!recommenderMetrics) { + console.error("No recommender metrics found for user:", userId); + return ""; + } + + // Compute the trust score + const trustScore = recommenderMetrics.trustScore; + + const user = await runtime.databaseAdapter.getAccountById(userId); + + // Format the trust score string + const trustScoreString = `${user.name}'s trust score: ${trustScore.toFixed(2)}`; + + return trustScoreString; + } catch (error) { + console.error("Error in trust score provider:", error.message); + return `Failed to fetch trust score: ${error instanceof Error ? error.message : "Unknown error"}`; + } + }, +}; \ No newline at end of file diff --git a/core/src/providers/wallet.ts b/packages/plugin-solana/src/providers/wallet.ts similarity index 98% rename from core/src/providers/wallet.ts rename to packages/plugin-solana/src/providers/wallet.ts index 3c9114c4009..5f38e3b8361 100644 --- a/core/src/providers/wallet.ts +++ b/packages/plugin-solana/src/providers/wallet.ts @@ -1,6 +1,10 @@ +import { + IAgentRuntime, + Memory, + Provider, + State, +} from "@ai16z/eliza/src/types.ts"; import { Connection, PublicKey } from "@solana/web3.js"; -import fetch from "cross-fetch"; -import { IAgentRuntime, Memory, Provider, State } from "../core/types.ts"; import BigNumber from "bignumber.js"; // Provider configuration diff --git a/core/src/types/token.ts b/packages/plugin-solana/src/types/token.ts similarity index 100% rename from core/src/types/token.ts rename to packages/plugin-solana/src/types/token.ts diff --git a/packages/plugin-solana/tsconfig.json b/packages/plugin-solana/tsconfig.json new file mode 100644 index 00000000000..eaa78145aa3 --- /dev/null +++ b/packages/plugin-solana/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "./src" + }, + "include": ["src"] +} diff --git a/packages/plugin-solana/tsup.config.ts b/packages/plugin-solana/tsup.config.ts new file mode 100644 index 00000000000..e42bf4efeae --- /dev/null +++ b/packages/plugin-solana/tsup.config.ts @@ -0,0 +1,20 @@ +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/pnpm-lock.yaml b/pnpm-lock.yaml index bb1df0c6041..8ac65575ff8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,14 +4,26 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + onnxruntime-node: ^1.20.0 + importers: .: dependencies: - typescript: - specifier: 5.6.3 - version: 5.6.3 + ollama-ai-provider: + specifier: ^0.16.1 + version: 0.16.1(zod@3.23.8) + optional: + specifier: ^0.1.4 + version: 0.1.4 + sharp: + specifier: ^0.33.5 + version: 0.33.5 devDependencies: + concurrently: + specifier: ^9.1.0 + version: 9.1.0 husky: specifier: ^9.1.6 version: 9.1.6 @@ -27,69 +39,198 @@ importers: typedoc: specifier: ^0.26.11 version: 0.26.11(typescript@5.6.3) + typescript: + specifier: 5.6.3 + version: 5.6.3 - core: + docs: dependencies: - '@ai-sdk/anthropic': - specifier: ^0.0.53 - version: 0.0.53(zod@3.23.8) - '@ai-sdk/google': - specifier: ^0.0.55 - version: 0.0.55(zod@3.23.8) - '@ai-sdk/google-vertex': - specifier: ^0.0.42 - version: 0.0.42(@google-cloud/vertexai@1.9.0(encoding@0.1.13))(zod@3.23.8) - '@ai-sdk/groq': - specifier: ^0.0.3 - version: 0.0.3(zod@3.23.8) - '@ai-sdk/openai': - specifier: ^0.0.70 - version: 0.0.70(zod@3.23.8) - '@anthropic-ai/sdk': - specifier: ^0.30.1 - version: 0.30.1(encoding@0.1.13) - '@cliqz/adblocker-playwright': - specifier: 1.34.0 - version: 1.34.0(playwright@1.48.2) - '@coral-xyz/anchor': - specifier: ^0.30.1 - version: 0.30.1(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@discordjs/opus': - specifier: github:discordjs/opus - version: https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13) - '@discordjs/rest': - specifier: 2.4.0 - version: 2.4.0 - '@discordjs/voice': - specifier: 0.17.0 - version: 0.17.0(@discordjs/opus@https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13))(bufferutil@4.0.8)(ffmpeg-static@5.2.0)(utf-8-validate@5.0.10) - '@echogarden/espeak-ng-emscripten': - specifier: 0.3.0 - version: 0.3.0 - '@echogarden/kissfft-wasm': - specifier: 0.2.0 - version: 0.2.0 - '@echogarden/speex-resampler-wasm': - specifier: 0.2.1 - version: 0.2.1 - '@huggingface/transformers': + '@docusaurus/core': + specifier: ^3.6.0 + version: 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/plugin-content-blog': + specifier: ^3.6.0 + version: 3.6.0(@docusaurus/plugin-content-docs@3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/plugin-content-docs': + specifier: ^3.6.0 + version: 3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/plugin-ideal-image': + specifier: ^3.6.0 + version: 3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(prop-types@15.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/preset-classic': + specifier: ^3.6.0 + version: 3.6.0(@algolia/client-search@5.13.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(search-insights@2.17.2)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/theme-mermaid': + specifier: ^3.6.0 + version: 3.6.0(@docusaurus/plugin-content-docs@3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@mdx-js/react': specifier: 3.0.1 - version: 3.0.1 - '@opendocsg/pdf2md': - specifier: 0.1.31 - version: 0.1.31(encoding@0.1.13) - '@solana/spl-token': - specifier: 0.4.9 - version: 0.4.9(@solana/web3.js@1.95.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@solana/web3.js': - specifier: 1.95.4 - version: 1.95.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + version: 3.0.1(@types/react@18.3.12)(react@18.2.0) + clsx: + specifier: 2.1.0 + version: 2.1.0 + docusaurus-lunr-search: + specifier: ^3.5.0 + version: 3.5.0(@docusaurus/core@3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + prism-react-renderer: + specifier: 2.3.1 + version: 2.3.1(react@18.2.0) + react: + specifier: 18.2.0 + version: 18.2.0 + react-dom: + specifier: 18.2.0 + version: 18.2.0(react@18.2.0) + react-router-dom: + specifier: 6.22.1 + version: 6.22.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + devDependencies: + '@docusaurus/module-type-aliases': + specifier: 3.6.0 + version: 3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/types': + specifier: 3.6.0 + version: 3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + docusaurus-plugin-typedoc: + specifier: ^1.0.5 + version: 1.0.5(typedoc-plugin-markdown@4.2.9(typedoc@0.26.11(typescript@5.6.3))) + typedoc: + specifier: ^0.26.11 + version: 0.26.11(typescript@5.6.3) + typedoc-plugin-markdown: + specifier: ^4.2.9 + version: 4.2.9(typedoc@0.26.11(typescript@5.6.3)) + + packages/adapter-postgres: + dependencies: + '@ai16z/eliza': + specifier: workspace:* + version: link:../core + pg: + specifier: ^8.13.1 + version: 8.13.1 + devDependencies: + tsup: + specifier: ^8.3.5 + version: 8.3.5(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.0) + + packages/adapter-sqlite: + dependencies: + '@ai16z/eliza': + specifier: workspace:* + version: link:../core + '@types/better-sqlite3': + specifier: 7.6.11 + version: 7.6.11 + better-sqlite3: + specifier: 11.5.0 + version: 11.5.0 + sqlite-vec: + specifier: 0.1.4-alpha.2 + version: 0.1.4-alpha.2 + whatwg-url: + specifier: 7.1.0 + version: 7.1.0 + devDependencies: + tsup: + specifier: ^8.3.5 + version: 8.3.5(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.0) + + packages/adapter-sqljs: + dependencies: + '@ai16z/eliza': + specifier: workspace:* + version: link:../core + '@types/sql.js': + specifier: 1.4.9 + version: 1.4.9 + sql.js: + specifier: 1.12.0 + version: 1.12.0 + uuid: + specifier: 11.0.2 + version: 11.0.2 + whatwg-url: + specifier: 7.1.0 + version: 7.1.0 + devDependencies: + tsup: + specifier: ^8.3.5 + version: 8.3.5(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.0) + + packages/adapter-supabase: + dependencies: + '@ai16z/eliza': + specifier: workspace:* + version: link:../core '@supabase/supabase-js': specifier: 2.46.1 version: 2.46.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@telegraf/types': + whatwg-url: specifier: 7.1.0 version: 7.1.0 + devDependencies: + tsup: + specifier: ^8.3.5 + version: 8.3.5(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.0) + + packages/agent: + dependencies: + '@ai16z/adapter-postgres': + specifier: workspace:* + version: link:../adapter-postgres + '@ai16z/adapter-sqlite': + specifier: workspace:* + version: link:../adapter-sqlite + '@ai16z/client-direct': + specifier: workspace:* + version: link:../client-direct + '@ai16z/client-discord': + specifier: workspace:* + version: link:../client-discord + '@ai16z/client-telegram': + specifier: workspace:* + version: link:../client-telegram + '@ai16z/client-twitter': + specifier: workspace:* + version: link:../client-twitter + '@ai16z/eliza': + specifier: workspace:* + version: link:../core + '@ai16z/plugin-bootstrap': + specifier: workspace:* + version: link:../plugin-bootstrap + '@ai16z/plugin-image-generation': + specifier: workspace:* + version: link:../plugin-image-generation + '@ai16z/plugin-node': + specifier: workspace:* + version: link:../plugin-node + '@ai16z/plugin-solana': + specifier: workspace:* + version: link:../plugin-solana + readline: + specifier: ^1.3.0 + version: 1.3.0 + yargs: + specifier: 17.7.2 + version: 17.7.2 + devDependencies: + ts-node: + specifier: 10.9.2 + version: 10.9.2(@types/node@22.8.4)(typescript@5.6.3) + tsup: + specifier: ^8.3.5 + version: 8.3.5(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.0) + + packages/client-direct: + dependencies: + '@ai16z/eliza': + specifier: workspace:* + version: link:../core + '@ai16z/plugin-image-generation': + specifier: workspace:* + version: link:../plugin-image-generation '@types/body-parser': specifier: 1.19.5 version: 1.19.5 @@ -99,189 +240,142 @@ importers: '@types/express': specifier: 5.0.0 version: 5.0.0 - '@types/uuid': - specifier: ^10.0.0 - version: 10.0.0 - agent-twitter-client: - specifier: 0.0.13 - version: 0.0.13 - ai: - specifier: ^3.4.23 - version: 3.4.32(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))(react@18.2.0)(sswr@2.1.0(svelte@5.1.9))(svelte@5.1.9)(vue@3.5.12(typescript@5.6.3))(zod@3.23.8) - alawmulaw: - specifier: 6.0.0 - version: 6.0.0 - ansi-colors: - specifier: 4.1.3 - version: 4.1.3 - anthropic-vertex-ai: - specifier: ^1.0.0 - version: 1.0.0(encoding@0.1.13)(zod@3.23.8) - better-sqlite3: - specifier: 11.5.0 - version: 11.5.0 - bignumber: - specifier: 1.1.0 - version: 1.1.0 - bignumber.js: - specifier: 9.1.2 - version: 9.1.2 body-parser: specifier: 1.20.3 version: 1.20.3 - capsolver-npm: - specifier: 2.0.2 - version: 2.0.2 - cldr-segmentation: - specifier: 2.2.1 - version: 2.2.1 - command-exists: - specifier: 1.2.9 - version: 1.2.9 - commander: - specifier: 12.1.0 - version: 12.1.0 cors: specifier: 2.8.5 version: 2.8.5 - cross-fetch: - specifier: 4.0.0 - version: 4.0.0(encoding@0.1.13) - csv-writer: - specifier: 1.6.0 - version: 1.6.0 + multer: + specifier: 1.4.5-lts.1 + version: 1.4.5-lts.1 + whatwg-url: + specifier: 7.1.0 + version: 7.1.0 + devDependencies: + tsup: + specifier: ^8.3.5 + version: 8.3.5(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.0) + + packages/client-discord: + dependencies: + '@ai16z/eliza': + specifier: workspace:* + version: link:../core + '@ai16z/plugin-node': + specifier: workspace:* + version: link:../plugin-node + '@discordjs/opus': + specifier: github:discordjs/opus + version: https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13) + '@discordjs/rest': + specifier: 2.4.0 + version: 2.4.0 + '@discordjs/voice': + specifier: 0.17.0 + version: 0.17.0(@discordjs/opus@https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13))(bufferutil@4.0.8)(ffmpeg-static@5.2.0)(utf-8-validate@5.0.10) discord.js: specifier: 14.16.3 version: 14.16.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) - espeak-ng: - specifier: 1.0.2 - version: 1.0.2 - express: - specifier: 4.21.1 - version: 4.21.1 - ffmpeg-static: - specifier: 5.2.0 - version: 5.2.0 - figlet: - specifier: 1.8.0 - version: 1.8.0 - fluent-ffmpeg: - specifier: 2.1.3 - version: 2.1.3 - formdata-node: - specifier: 6.0.3 - version: 6.0.3 - fs-extra: - specifier: 11.2.0 - version: 11.2.0 + libsodium-wrappers: + specifier: 0.7.15 + version: 0.7.15 + prism-media: + specifier: 1.3.5 + version: 1.3.5(@discordjs/opus@https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13))(ffmpeg-static@5.2.0) + whatwg-url: + specifier: 7.1.0 + version: 7.1.0 + devDependencies: + tsup: + specifier: ^8.3.5 + version: 8.3.5(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.0) + + packages/client-telegram: + dependencies: + '@ai16z/eliza': + specifier: workspace:* + version: link:../core + '@ai16z/plugin-node': + specifier: workspace:* + version: link:../plugin-node + '@telegraf/types': + specifier: 7.1.0 + version: 7.1.0 + telegraf: + specifier: 4.16.3 + version: 4.16.3(encoding@0.1.13) + devDependencies: + tsup: + specifier: ^8.3.5 + version: 8.3.5(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.0) + + packages/client-twitter: + dependencies: + '@ai16z/eliza': + specifier: workspace:* + version: link:../core + agent-twitter-client: + specifier: 0.0.13 + version: 0.0.13 + glob: + specifier: 11.0.0 + version: 11.0.0 + whatwg-url: + specifier: 7.1.0 + version: 7.1.0 + devDependencies: + tsup: + specifier: ^8.3.5 + version: 8.3.5(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.0) + + packages/core: + dependencies: + '@ai-sdk/anthropic': + specifier: ^0.0.53 + version: 0.0.53(zod@3.23.8) + '@ai-sdk/google': + specifier: ^0.0.55 + version: 0.0.55(zod@3.23.8) + '@ai-sdk/google-vertex': + specifier: ^0.0.42 + version: 0.0.42(@google-cloud/vertexai@1.9.0(encoding@0.1.13))(zod@3.23.8) + '@ai-sdk/groq': + specifier: ^0.0.3 + version: 0.0.3(zod@3.23.8) + '@ai-sdk/openai': + specifier: 1.0.0-canary.3 + version: 1.0.0-canary.3(zod@3.23.8) + '@anthropic-ai/sdk': + specifier: ^0.30.1 + version: 0.30.1(encoding@0.1.13) + '@types/uuid': + specifier: ^10.0.0 + version: 10.0.0 + ai: + specifier: ^3.4.23 + version: 3.4.33(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))(react@18.2.0)(sswr@2.1.0(svelte@5.1.12))(svelte@5.1.12)(vue@3.5.12(typescript@5.6.3))(zod@3.23.8) + anthropic-vertex-ai: + specifier: ^1.0.0 + version: 1.0.0(encoding@0.1.13)(zod@3.23.8) + fastembed: + specifier: ^1.14.1 + version: 1.14.1 gaxios: specifier: 6.7.1 version: 6.7.1(encoding@0.1.13) - gif-frames: - specifier: ^0.4.1 - version: 0.4.1 glob: specifier: 11.0.0 version: 11.0.0 - graceful-fs: - specifier: 4.2.11 - version: 4.2.11 - html-escaper: - specifier: 3.0.3 - version: 3.0.3 - html-to-text: - specifier: 9.0.5 - version: 9.0.5 - import-meta-resolve: - specifier: 4.1.0 - version: 4.1.0 - install: - specifier: ^0.13.0 - version: 0.13.0 - jieba-wasm: - specifier: 2.2.0 - version: 2.2.0 js-sha1: specifier: 0.7.0 version: 0.7.0 - js-yaml: - specifier: ^4.1.0 - version: 4.1.0 - json5: - specifier: 2.2.3 - version: 2.2.3 - kuromoji: - specifier: 0.1.2 - version: 0.1.2 - libsodium-wrappers: - specifier: 0.7.15 - version: 0.7.15 - multer: - specifier: 1.4.5-lts.1 - version: 1.4.5-lts.1 - node-cache: - specifier: 5.1.2 - version: 5.1.2 - node-llama-cpp: - specifier: 3.1.1 - version: 3.1.1(typescript@5.6.3) - node-wav: - specifier: 0.0.2 - version: 0.0.2 - nodejs-whisper: - specifier: 0.1.18 - version: 0.1.18 - nodemon: - specifier: 3.1.7 - version: 3.1.7 - onnxruntime-node: - specifier: ^1.19.2 - version: 1.20.0 + ollama-ai-provider: + specifier: ^0.16.1 + version: 0.16.1(zod@3.23.8) openai: specifier: 4.69.0 version: 4.69.0(encoding@0.1.13)(zod@3.23.8) - pdfjs-dist: - specifier: 4.7.76 - version: 4.7.76(encoding@0.1.13) - pg: - specifier: ^8.13.1 - version: 8.13.1 - playwright: - specifier: 1.48.2 - version: 1.48.2 - pm2: - specifier: 5.4.2 - version: 5.4.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - prism-media: - specifier: 1.3.5 - version: 1.3.5(@discordjs/opus@https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13))(ffmpeg-static@5.2.0) - pumpdotfun-sdk: - specifier: 1.3.2 - version: 1.3.2(bufferutil@4.0.8)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@2.79.2)(typescript@5.6.3)(utf-8-validate@5.0.10) - puppeteer-extra: - specifier: 3.3.6 - version: 3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)) - puppeteer-extra-plugin-capsolver: - specifier: 2.0.1 - version: 2.0.1(bufferutil@4.0.8)(encoding@0.1.13)(puppeteer-core@19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(typescript@5.6.3)(utf-8-validate@5.0.10) - sql.js: - specifier: 1.12.0 - version: 1.12.0 - sqlite-vec: - specifier: 0.1.4-alpha.2 - version: 0.1.4-alpha.2 - srt: - specifier: 0.0.3 - version: 0.0.3 - systeminformation: - specifier: 5.23.5 - version: 5.23.5 - tar: - specifier: 7.4.3 - version: 7.4.3 - telegraf: - specifier: 4.16.3 - version: 4.16.3(encoding@0.1.13) tiktoken: specifier: 1.0.17 version: 1.0.17 @@ -297,27 +391,6 @@ importers: uuid: specifier: 11.0.2 version: 11.0.2 - wav: - specifier: 1.0.2 - version: 1.0.2 - wav-encoder: - specifier: 1.3.0 - version: 1.3.0 - wavefile: - specifier: 11.0.0 - version: 11.0.0 - whisper-turbo: - specifier: 0.11.0 - version: 0.11.0 - ws: - specifier: 8.18.0 - version: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - yargs: - specifier: 17.7.2 - version: 17.7.2 - youtube-dl-exec: - specifier: 3.0.10 - version: 3.0.10 devDependencies: '@eslint/js': specifier: ^9.13.0 @@ -340,9 +413,6 @@ importers: '@rollup/plugin-typescript': specifier: 11.1.6 version: 11.1.6(rollup@2.79.2)(tslib@2.8.0)(typescript@5.6.3) - '@types/better-sqlite3': - specifier: 7.6.11 - version: 7.6.11 '@types/fluent-ffmpeg': specifier: 2.1.27 version: 2.1.27 @@ -355,9 +425,6 @@ importers: '@types/pdfjs-dist': specifier: ^2.10.378 version: 2.10.378(encoding@0.1.13) - '@types/sql.js': - specifier: 1.4.9 - version: 1.4.9 '@types/tar': specifier: 6.1.13 version: 6.1.13 @@ -382,15 +449,18 @@ importers: eslint-plugin-prettier: specifier: 5.2.1 version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.13.0(jiti@1.21.6)))(eslint@9.13.0(jiti@1.21.6))(prettier@3.3.3) - itty-router: - specifier: 5.0.18 - version: 5.0.18 jest: specifier: 29.7.0 version: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@types/node@22.8.4)(typescript@5.6.3)) lint-staged: specifier: 15.2.10 version: 15.2.10 + nodemon: + specifier: 3.1.7 + version: 3.1.7 + pm2: + specifier: 5.4.2 + version: 5.4.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) prettier: specifier: 3.3.3 version: 3.3.3 @@ -402,71 +472,269 @@ 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))(esbuild@0.17.19)(jest@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@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))(esbuild@0.24.0)(jest@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@types/node@22.8.4)(typescript@5.6.3)))(typescript@5.6.3) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.8.4)(typescript@5.6.3) tslib: specifier: 2.8.0 version: 2.8.0 + tsup: + specifier: ^8.3.5 + version: 8.3.5(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.0) typescript: specifier: 5.6.3 version: 5.6.3 - wrangler: - specifier: 3.84.0 - version: 3.84.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - docs: + packages/plugin-bootstrap: + dependencies: + '@ai16z/eliza': + specifier: workspace:* + version: link:../core + tsup: + specifier: ^8.3.5 + version: 8.3.5(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.0) + whatwg-url: + specifier: 7.1.0 + version: 7.1.0 + + packages/plugin-image-generation: + dependencies: + '@ai16z/eliza': + specifier: workspace:* + version: link:../core + tsup: + specifier: ^8.3.5 + version: 8.3.5(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.0) + whatwg-url: + specifier: 7.1.0 + version: 7.1.0 + + packages/plugin-node: + dependencies: + '@ai16z/eliza': + specifier: workspace:* + version: link:../core + '@cliqz/adblocker-playwright': + specifier: 1.34.0 + version: 1.34.0(playwright@1.48.2) + '@echogarden/espeak-ng-emscripten': + specifier: 0.3.0 + version: 0.3.0 + '@echogarden/kissfft-wasm': + specifier: 0.2.0 + version: 0.2.0 + '@echogarden/speex-resampler-wasm': + specifier: 0.2.1 + version: 0.2.1 + '@huggingface/transformers': + specifier: 3.0.1 + version: 3.0.1 + '@opendocsg/pdf2md': + specifier: 0.1.31 + version: 0.1.31(encoding@0.1.13) + '@types/uuid': + specifier: ^10.0.0 + version: 10.0.0 + alawmulaw: + specifier: 6.0.0 + version: 6.0.0 + bignumber: + specifier: 1.1.0 + version: 1.1.0 + bignumber.js: + specifier: 9.1.2 + version: 9.1.2 + capsolver-npm: + specifier: 2.0.2 + version: 2.0.2 + cldr-segmentation: + specifier: 2.2.1 + version: 2.2.1 + command-exists: + specifier: 1.2.9 + version: 1.2.9 + csv-writer: + specifier: 1.6.0 + version: 1.6.0 + espeak-ng: + specifier: 1.0.2 + version: 1.0.2 + ffmpeg-static: + specifier: 5.2.0 + version: 5.2.0 + fluent-ffmpeg: + specifier: 2.1.3 + version: 2.1.3 + formdata-node: + specifier: 6.0.3 + version: 6.0.3 + fs-extra: + specifier: 11.2.0 + version: 11.2.0 + gaxios: + specifier: 6.7.1 + version: 6.7.1(encoding@0.1.13) + gif-frames: + specifier: ^0.4.1 + version: 0.4.1 + glob: + specifier: 11.0.0 + version: 11.0.0 + graceful-fs: + specifier: 4.2.11 + version: 4.2.11 + html-escaper: + specifier: 3.0.3 + version: 3.0.3 + html-to-text: + specifier: 9.0.5 + version: 9.0.5 + import-meta-resolve: + specifier: 4.1.0 + version: 4.1.0 + jieba-wasm: + specifier: 2.2.0 + version: 2.2.0 + json5: + specifier: 2.2.3 + version: 2.2.3 + kuromoji: + specifier: 0.1.2 + version: 0.1.2 + libsodium-wrappers: + specifier: 0.7.15 + version: 0.7.15 + multer: + specifier: 1.4.5-lts.1 + version: 1.4.5-lts.1 + node-cache: + specifier: 5.1.2 + version: 5.1.2 + node-llama-cpp: + specifier: 3.1.1 + version: 3.1.1(typescript@5.6.3) + nodejs-whisper: + specifier: 0.1.18 + version: 0.1.18 + onnxruntime-node: + specifier: ^1.20.0 + version: 1.20.0 + pdfjs-dist: + specifier: 4.7.76 + version: 4.7.76(encoding@0.1.13) + playwright: + specifier: 1.48.2 + version: 1.48.2 + pm2: + specifier: 5.4.2 + version: 5.4.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + puppeteer-extra: + specifier: 3.3.6 + version: 3.3.6(puppeteer-core@19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(puppeteer@19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10)) + puppeteer-extra-plugin-capsolver: + specifier: 2.0.1 + version: 2.0.1(bufferutil@4.0.8)(encoding@0.1.13)(puppeteer-core@19.11.1(bufferutil@4.0.8)(encoding@0.1.13)(typescript@5.6.3)(utf-8-validate@5.0.10))(typescript@5.6.3)(utf-8-validate@5.0.10) + sharp: + specifier: ^0.33.5 + version: 0.33.5 + srt: + specifier: 0.0.3 + version: 0.0.3 + systeminformation: + specifier: 5.23.5 + version: 5.23.5 + tar: + specifier: 7.4.3 + version: 7.4.3 + tinyld: + specifier: 1.3.4 + version: 1.3.4 + uuid: + specifier: 11.0.2 + version: 11.0.2 + wav: + specifier: 1.0.2 + version: 1.0.2 + wav-encoder: + specifier: 1.3.0 + version: 1.3.0 + wavefile: + specifier: 11.0.0 + version: 11.0.0 + whatwg-url: + specifier: 7.1.0 + version: 7.1.0 + yargs: + specifier: 17.7.2 + version: 17.7.2 + youtube-dl-exec: + specifier: 3.0.10 + version: 3.0.10 + devDependencies: + tsup: + specifier: ^8.3.5 + version: 8.3.5(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.0) + + packages/plugin-solana: dependencies: - '@docusaurus/core': - specifier: 3.5.2 - version: 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/plugin-ideal-image': - specifier: ^3.5.2 - version: 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(prop-types@15.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/preset-classic': - specifier: 3.5.2 - version: 3.5.2(@algolia/client-search@5.12.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(search-insights@2.17.2)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/theme-mermaid': - specifier: ^3.5.2 - version: 3.6.0(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(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.2.0) - clsx: - specifier: 2.1.0 - version: 2.1.0 - docusaurus-lunr-search: - specifier: ^3.5.0 - version: 3.5.0(@docusaurus/core@3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - prism-react-renderer: - specifier: 2.3.1 - version: 2.3.1(react@18.2.0) - react: - specifier: 18.2.0 - version: 18.2.0 - react-dom: - specifier: 18.2.0 - version: 18.2.0(react@18.2.0) - react-router-dom: - specifier: 6.22.1 - version: 6.22.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - devDependencies: - '@docusaurus/module-type-aliases': - specifier: 3.5.2 - version: 3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@docusaurus/types': - specifier: 3.5.2 - version: 3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - docusaurus-plugin-typedoc: - specifier: ^1.0.5 - version: 1.0.5(typedoc-plugin-markdown@4.2.9(typedoc@0.26.11(typescript@5.6.3))) - typedoc: - specifier: ^0.26.11 - version: 0.26.11(typescript@5.6.3) - typedoc-plugin-markdown: - specifier: 4.2.9 - version: 4.2.9(typedoc@0.26.11(typescript@5.6.3)) + '@ai16z/eliza': + specifier: workspace:* + version: link:../core + '@coral-xyz/anchor': + specifier: ^0.30.1 + version: 0.30.1(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@solana/spl-token': + specifier: 0.4.9 + version: 0.4.9(@solana/web3.js@1.95.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@solana/web3.js': + specifier: 1.95.4 + version: 1.95.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + bignumber: + specifier: 1.1.0 + version: 1.1.0 + bignumber.js: + specifier: 9.1.2 + version: 9.1.2 + node-cache: + specifier: 5.1.2 + version: 5.1.2 + pumpdotfun-sdk: + specifier: 1.3.2 + version: 1.3.2(bufferutil@4.0.8)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.24.4)(typescript@5.6.3)(utf-8-validate@5.0.10) + tsup: + specifier: ^8.3.5 + version: 8.3.5(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.0) + whatwg-url: + specifier: 7.1.0 + version: 7.1.0 + + packages/test: + dependencies: + '@ai16z/adapter-sqlite': + specifier: workspace:* + version: link:../adapter-sqlite + '@ai16z/adapter-sqljs': + specifier: workspace:* + version: link:../adapter-sqljs + '@ai16z/adapter-supabase': + specifier: workspace:* + version: link:../adapter-supabase + '@ai16z/eliza': + specifier: workspace:* + version: link:../core + '@ai16z/plugin-bootstrap': + specifier: workspace:* + version: link:../plugin-bootstrap + '@ai16z/plugin-node': + specifier: workspace:* + version: link:../plugin-node + tsup: + specifier: ^8.3.5 + version: 8.3.5(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.0) + whatwg-url: + specifier: 7.1.0 + version: 7.1.0 packages: @@ -494,8 +762,8 @@ packages: peerDependencies: zod: ^3.0.0 - '@ai-sdk/openai@0.0.70': - resolution: {integrity: sha512-RYLfiIG093bq6a3BJe2uUTL51zjxnDQLo4qHlNk3PLKSOxbb9Ap/vmhCLnPKo+flqFhqiD6YE9wuNZv++reHaA==} + '@ai-sdk/openai@1.0.0-canary.3': + resolution: {integrity: sha512-5xtkCL5ObmGCaGbk19AGnr5gGdFGd22JhSq9CmeuvjyeKy5xSU9Qc2PaXwx6GsKEYSFC72IT1U9TYxo+n5HRCg==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -518,6 +786,15 @@ packages: zod: optional: true + '@ai-sdk/provider-utils@2.0.0-canary.3': + resolution: {integrity: sha512-2kxAkaESSm3295tJRs77NmCCi9Ty7eaEOpqA0xinEmYjobAP/VrzaGthvAVXIzjbQj6ndabDGsVzdnNkhLr1zQ==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.0.0 + peerDependenciesMeta: + zod: + optional: true + '@ai-sdk/provider@0.0.22': resolution: {integrity: sha512-smZ1/2jL/JSKnbhC6ama/PxI2D/psj+YAe0c0qpd5ComQCNFltg72VFf0rpUSFMmFuj1pCCNoBOCrvyl8HTZHQ==} engines: {node: '>=18'} @@ -526,6 +803,10 @@ packages: resolution: {integrity: sha512-dQkfBDs2lTYpKM8389oopPdQgIU007GQyCbuPPrV+K6MtSII3HBfE0stUIMXUb44L+LK1t6GXPP7wjSzjO6uKg==} engines: {node: '>=18'} + '@ai-sdk/provider@1.0.0-canary.0': + resolution: {integrity: sha512-NyYVTM8veeOLUNcY+2bGQ359AEWm/P3FgNVweGR8dNfihFXYxsBQhB58RhcVnKgWzlUgNFGi9tajgbSKkImTTg==} + engines: {node: '>=18'} + '@ai-sdk/react@0.0.70': resolution: {integrity: sha512-GnwbtjW4/4z7MleLiW+TOZC2M29eCg1tOUpuEiYFMmFNZK8mkrqM0PFZMo6UsYeUYMWqEOOcPOU9OQVJMJh7IQ==} engines: {node: '>=18'} @@ -574,11 +855,11 @@ packages: vue: optional: true - '@algolia/autocomplete-core@1.9.3': - resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} + '@algolia/autocomplete-core@1.17.6': + resolution: {integrity: sha512-lkDoW4I7h2kKlIgf3pUt1LqvxyYKkVyiypoGLlUnhPSnCpmeOwudM6rNq6YYsCmdQtnDQoW5lUNNuj6ASg3qeg==} - '@algolia/autocomplete-plugin-algolia-insights@1.9.3': - resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} + '@algolia/autocomplete-plugin-algolia-insights@1.17.6': + resolution: {integrity: sha512-17NnaacuFzSWVuZu4NKzVeaFIe9Abpw8w+/gjc7xhZFtqj+GadufzodIdchwiB2eM2cDdiR3icW7gbNTB3K2YA==} peerDependencies: search-insights: '>= 1 < 3' @@ -594,12 +875,6 @@ packages: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - '@algolia/autocomplete-shared@1.9.3': - resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} - peerDependencies: - '@algolia/client-search': '>= 4.9.1 < 6' - algoliasearch: '>= 4.9.1 < 6' - '@algolia/cache-browser-local-storage@4.24.0': resolution: {integrity: sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww==} @@ -609,8 +884,8 @@ packages: '@algolia/cache-in-memory@4.24.0': resolution: {integrity: sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w==} - '@algolia/client-abtesting@5.12.0': - resolution: {integrity: sha512-hx4eVydkm3yrFCFxmcBtSzI/ykt0cZ6sDWch+v3JTgKpD2WtosMJU3Upv1AjQ4B6COSHCOWEX3vfFxW6OoH6aA==} + '@algolia/client-abtesting@5.13.0': + resolution: {integrity: sha512-6CoQjlMi1pmQYMQO8tXfuGxSPf6iKX5FP9MuMe6IWmvC81wwTvOehnwchyBl2wuPVhcw2Ar53K53mQ60DAC64g==} engines: {node: '>= 14.0.0'} '@algolia/client-account@4.24.0': @@ -619,44 +894,44 @@ packages: '@algolia/client-analytics@4.24.0': resolution: {integrity: sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg==} - '@algolia/client-analytics@5.12.0': - resolution: {integrity: sha512-EpTsSv6IW8maCfXCDIptgT7+mQJj7pImEkcNUnxR8yUKAHzTogTXv9yGm2WXOZFVuwstd2i0sImhQ1Vz8RH/hA==} + '@algolia/client-analytics@5.13.0': + resolution: {integrity: sha512-pS3qyXiWTwKnrt/jE79fqkNqZp7kjsFNlJDcBGkSWid74DNc6DmArlkvPqyLxnoaYGjUGACT6g56n7E3mVV2TA==} engines: {node: '>= 14.0.0'} '@algolia/client-common@4.24.0': resolution: {integrity: sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==} - '@algolia/client-common@5.12.0': - resolution: {integrity: sha512-od3WmO8qxyfNhKc+K3D17tvun3IMs/xMNmxCG9MiElAkYVbPPTRUYMkRneCpmJyQI0hNx2/EA4kZgzVfQjO86Q==} + '@algolia/client-common@5.13.0': + resolution: {integrity: sha512-2SP6bGGWOTN920MLZv8s7yIR3OqY03vEe4U+vb2MGdL8a/8EQznF3L/nTC/rGf/hvEfZlX2tGFxPJaF2waravg==} engines: {node: '>= 14.0.0'} - '@algolia/client-insights@5.12.0': - resolution: {integrity: sha512-8alajmsYUd+7vfX5lpRNdxqv3Xx9clIHLUItyQK0Z6gwGMbVEFe6YYhgDtwslMAP0y6b0WeJEIZJMLgT7VYpRw==} + '@algolia/client-insights@5.13.0': + resolution: {integrity: sha512-ldHTe+LVgC6L4Wr6doAQQ7Ku0jAdhaaPg1T+IHzmmiRZb2Uq5OsjW2yC65JifOmzPCiMkIZE2mGRpWgkn5ktlw==} engines: {node: '>= 14.0.0'} '@algolia/client-personalization@4.24.0': resolution: {integrity: sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w==} - '@algolia/client-personalization@5.12.0': - resolution: {integrity: sha512-bUV9HtfkTBgpoVhxFrMkmVPG03ZN1Rtn51kiaEtukucdk3ggjR9Qu1YUfRSU2lFgxr9qJc8lTxwfvhjCeJRcqw==} + '@algolia/client-personalization@5.13.0': + resolution: {integrity: sha512-RnCfOSN4OUJDuMNHFca2M8lY64Tmw0kQOZikge4TknTqHmlbKJb8IbJE7Rol79Z80W2Y+B1ydcjV7DPje4GMRA==} engines: {node: '>= 14.0.0'} - '@algolia/client-query-suggestions@5.12.0': - resolution: {integrity: sha512-Q5CszzGWfxbIDs9DJ/QJsL7bP6h+lJMg27KxieEnI9KGCu0Jt5iFA3GkREkgRZxRdzlHbZKkrIzhtHVbSHw/rg==} + '@algolia/client-query-suggestions@5.13.0': + resolution: {integrity: sha512-pYo0jbLUtPDN1r341UHTaF2fgN5rbaZfDZqjPRKPM+FRlRmxFxqFQm1UUfpkSUWYGn7lECwDpbKYiKUf81MTwA==} engines: {node: '>= 14.0.0'} '@algolia/client-search@4.24.0': resolution: {integrity: sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==} - '@algolia/client-search@5.12.0': - resolution: {integrity: sha512-R3qzEytgVLHOGNri+bpta6NtTt7YtkvUe/QBcAmMDjW4Jk1P0eBYIPfvnzIPbINRsLxIq9fZs9uAYBgsrts4Zg==} + '@algolia/client-search@5.13.0': + resolution: {integrity: sha512-s2ge3uZ6Zg2sPSFibqijgEYsuorxcc8KVHg3I95nOPHvFHdnBtSHymhZvq4sp/fu8ijt/Y8jLwkuqm5myn+2Sg==} engines: {node: '>= 14.0.0'} '@algolia/events@4.0.1': resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==} - '@algolia/ingestion@1.12.0': - resolution: {integrity: sha512-zpHo6qhR22tL8FsdSI4DvEraPDi/019HmMrCFB/TUX98yzh5ooAU7sNW0qPL1I7+S++VbBmNzJOEU9VI8tEC8A==} + '@algolia/ingestion@1.13.0': + resolution: {integrity: sha512-fm5LEOe4FPDOc1D+M9stEs8hfcdmbdD+pt9og5shql6ueTZJANDbFoQhDOpiPJizR/ps1GwmjkWfUEywx3sV+Q==} engines: {node: '>= 14.0.0'} '@algolia/logger-common@4.24.0': @@ -665,36 +940,36 @@ packages: '@algolia/logger-console@4.24.0': resolution: {integrity: sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg==} - '@algolia/monitoring@1.12.0': - resolution: {integrity: sha512-i2AJZED/zf4uhxezAJUhMKoL5QoepCBp2ynOYol0N76+TSoohaMADdPnWCqOULF4RzOwrG8wWynAwBlXsAI1RQ==} + '@algolia/monitoring@1.13.0': + resolution: {integrity: sha512-e8Hshlnm2G5fapyUgWTBwhJ22yXcnLtPC4LWZKx7KOvv35GcdoHtlUBX94I/sWCJLraUr65JvR8qOo3LXC43dg==} engines: {node: '>= 14.0.0'} '@algolia/recommend@4.24.0': resolution: {integrity: sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw==} - '@algolia/recommend@5.12.0': - resolution: {integrity: sha512-0jmZyKvYnB/Bj5c7WKsKedOUjnr0UtXm0LVFUdQrxXfqOqvWv9n6Vpr65UjdYG4Q49kRQxhlwtal9WJYrYymXg==} + '@algolia/recommend@5.13.0': + resolution: {integrity: sha512-53/wW96oaj1FKMzGdFcZ/epygfTppLDUvgI1thLkd475EtVZCH3ZZVUNCEvf1AtnNyH1RnItkFzX8ayWCpx2PQ==} engines: {node: '>= 14.0.0'} '@algolia/requester-browser-xhr@4.24.0': resolution: {integrity: sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==} - '@algolia/requester-browser-xhr@5.12.0': - resolution: {integrity: sha512-KxwleraFuVoEGCoeW6Y1RAEbgBMS7SavqeyzWdtkJc6mXeCOJXn1iZitb8Tyn2FcpMNUKlSm0adrUTt7G47+Ow==} + '@algolia/requester-browser-xhr@5.13.0': + resolution: {integrity: sha512-NV6oSCt5lFuzfsVQoSBpewEWf/h4ySr7pv2bfwu9yF/jc/g39pig8+YpuqsxlRWBm/lTGVA2V0Ai9ySwrNumIA==} engines: {node: '>= 14.0.0'} '@algolia/requester-common@4.24.0': resolution: {integrity: sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==} - '@algolia/requester-fetch@5.12.0': - resolution: {integrity: sha512-FuDZXUGU1pAg2HCnrt8+q1VGHKChV/LhvjvZlLOT7e56GJie6p+EuLu4/hMKPOVuQQ8XXtrTHKIU3Lw+7O5/bQ==} + '@algolia/requester-fetch@5.13.0': + resolution: {integrity: sha512-094bK4rumf+rXJazxv3mq6eKRM0ep5AxIo8T0YmOdldswQt79apeufFiPLN19nHEWH22xR2FelimD+T/wRSP+Q==} engines: {node: '>= 14.0.0'} '@algolia/requester-node-http@4.24.0': resolution: {integrity: sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==} - '@algolia/requester-node-http@5.12.0': - resolution: {integrity: sha512-ncDDY7CxZhMs6LIoPl+vHFQceIBhYPY5EfuGF1V7beO0U38xfsCYEyutEFB2kRzf4D9Gqppn3iWX71sNtrKcuw==} + '@algolia/requester-node-http@5.13.0': + resolution: {integrity: sha512-JY5xhEYMgki53Wm+A6R2jUpOUdD0zZnBq+PC5R1TGMNOYL1s6JjDrJeMsvaI2YWxYMUSoCnRoltN/yf9RI8n3A==} engines: {node: '>= 14.0.0'} '@algolia/transporter@4.24.0': @@ -713,6 +988,27 @@ packages: '@anthropic-ai/sdk@0.30.1': resolution: {integrity: sha512-nuKvp7wOIz6BFei8WrTdhmSsx5mwnArYyJgh4+vYu3V4J0Ltb8Xm3odPm51n1aSI0XxNCrDl7O88cxCtUdAkaw==} + '@anush008/tokenizers-darwin-universal@0.0.0': + resolution: {integrity: sha512-SACpWEooTjFX89dFKRVUhivMxxcZRtA3nJGVepdLyrwTkQ1TZQ8581B5JoXp0TcTMHfgnDaagifvVoBiFEdNCQ==} + engines: {node: '>= 10'} + os: [darwin] + + '@anush008/tokenizers-linux-x64-gnu@0.0.0': + resolution: {integrity: sha512-TLjByOPWUEq51L3EJkS+slyH57HKJ7lAz/aBtEt7TIPq4QsE2owOPGovByOLIq1x5Wgh9b+a4q2JasrEFSDDhg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@anush008/tokenizers-win32-x64-msvc@0.0.0': + resolution: {integrity: sha512-/5kP0G96+Cr6947F0ZetXnmL31YCaN15dbNbh2NHg7TXXRwfqk95+JtPP5Q7v4jbR2xxAmuseBqB4H/V7zKWuw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@anush008/tokenizers@0.0.0': + resolution: {integrity: sha512-IQD9wkVReKAhsEAbDjh/0KrBGTEXelqZLpOBRDaIRvlzZ9sjmUP+gKbpvzyJnei2JHQiE8JAgj7YcNloINbGBw==} + engines: {node: '>= 10'} + '@babel/code-frame@7.26.2': resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} @@ -1393,44 +1689,6 @@ packages: resolution: {integrity: sha512-d7TeUl5t+TOMJe7/CRYtf+x6hbd8N25DtH7guQTIjjr3AFVortxiAIgNejGvVqy0by4eNByw+oVil15oqxz2Eg==} deprecated: This project has been renamed to @ghostery/adblocker. Install using @ghostery/adblocker instead - '@cloudflare/kv-asset-handler@0.3.4': - resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} - engines: {node: '>=16.13'} - - '@cloudflare/workerd-darwin-64@1.20241022.0': - resolution: {integrity: sha512-1NNYun37myMTgCUiPQEJ0cMal4mKZVTpkD0b2tx9hV70xji+frVJcSK8YVLeUm1P+Rw1d/ct8DMgQuCpsz3Fsw==} - engines: {node: '>=16'} - cpu: [x64] - os: [darwin] - - '@cloudflare/workerd-darwin-arm64@1.20241022.0': - resolution: {integrity: sha512-FOO/0P0U82EsTLTdweNVgw+4VOk5nghExLPLSppdOziq6IR5HVgP44Kmq5LdsUeHUhwUmfOh9hzaTpkNzUqKvw==} - engines: {node: '>=16'} - cpu: [arm64] - os: [darwin] - - '@cloudflare/workerd-linux-64@1.20241022.0': - resolution: {integrity: sha512-RsNc19BQJG9yd+ngnjuDeG9ywZG+7t1L4JeglgceyY5ViMNMKVO7Zpbsu69kXslU9h6xyQG+lrmclg3cBpnhYA==} - engines: {node: '>=16'} - cpu: [x64] - os: [linux] - - '@cloudflare/workerd-linux-arm64@1.20241022.0': - resolution: {integrity: sha512-x5mUXpKxfsosxcFmcq5DaqLs37PejHYVRsNz1cWI59ma7aC4y4Qn6Tf3i0r9MwQTF/MccP4SjVslMU6m4W7IaA==} - engines: {node: '>=16'} - cpu: [arm64] - os: [linux] - - '@cloudflare/workerd-windows-64@1.20241022.0': - resolution: {integrity: sha512-eBCClx4szCOgKqOlxxbdNszMqQf3MRG1B9BRIqEM/diDfdR9IrZ8l3FaEm+l9gXgPmS6m1NBn40aWuGBl8UTSw==} - engines: {node: '>=16'} - cpu: [x64] - os: [win32] - - '@cloudflare/workers-shared@0.7.0': - resolution: {integrity: sha512-LLQRTqx7lKC7o2eCYMpyc5FXV8d0pUX6r3A+agzhqS9aoR5A6zCPefwQGcvbKx83ozX22ATZcemwxQXn12UofQ==} - engines: {node: '>=16.7.0'} - '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} @@ -1503,11 +1761,11 @@ packages: resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} engines: {node: '>=10.0.0'} - '@docsearch/css@3.6.3': - resolution: {integrity: sha512-3uvbg8E7rhqE1C4oBAK3tGlS2qfhi9zpfZgH/yjDPF73vd9B41urVIKujF4rczcF4E3qs34SedhehiDJ4UdNBA==} + '@docsearch/css@3.7.0': + resolution: {integrity: sha512-1OorbTwi1eeDmr0v5t+ckSRlt1zM5GHjm92iIl3kUu7im3GHuP+csf6E0WBg8pdXQczTWP9J9+o9n+Vg6DH5cQ==} - '@docsearch/react@3.6.3': - resolution: {integrity: sha512-2munr4uBuZq1PG+Ge+F+ldIdxb3Wi8OmEIv2tQQb4RvEvvph+xtQkxwHzVIEnt5s+HecwucuXwB+3JhcZboFLg==} + '@docsearch/react@3.7.0': + resolution: {integrity: sha512-8e6tdDfkYoxafEEPuX5eE1h9cTkLvhe4KgoFkO5JCddXSQONnN1FHcDZRI4r8894eMpbYq6rdJF0dVYh8ikwNQ==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' react: '>= 16.8.0 < 19.0.0' @@ -1536,15 +1794,6 @@ packages: '@docusaurus/faster': optional: true - '@docusaurus/core@3.5.2': - resolution: {integrity: sha512-4Z1WkhCSkX4KO0Fw5m/Vuc7Q3NxBG53NE5u59Rs96fWkMPZVSrzEPP16/Nk6cWb/shK7xXPndTmalJtw7twL/w==} - engines: {node: '>=18.0'} - hasBin: true - peerDependencies: - '@mdx-js/react': ^3.0.0 - react: ^18.0.0 - react-dom: ^18.0.0 - '@docusaurus/core@3.6.0': resolution: {integrity: sha512-lvRgMoKJJSRDt9+HhAqFcICV4kp/mw1cJJrLxIw4Q2XZnFGM1XUuwcbuaqWmGog+NcOLZaPCcCtZbn60EMCtjQ==} engines: {node: '>=18.0'} @@ -1554,32 +1803,17 @@ packages: react: ^18.0.0 react-dom: ^18.0.0 - '@docusaurus/cssnano-preset@3.5.2': - resolution: {integrity: sha512-D3KiQXOMA8+O0tqORBrTOEQyQxNIfPm9jEaJoALjjSjc2M/ZAWcUfPQEnwr2JB2TadHw2gqWgpZckQmrVWkytA==} - engines: {node: '>=18.0'} - '@docusaurus/cssnano-preset@3.6.0': resolution: {integrity: sha512-h3jlOXqqzNSoU+C4CZLNpFtD+v2xr1UBf4idZpwMgqid9r6lb5GS7tWKnQnauio6OipacbHbDXEX3JyT1PlDkg==} engines: {node: '>=18.0'} - '@docusaurus/logger@3.5.2': - resolution: {integrity: sha512-LHC540SGkeLfyT3RHK3gAMK6aS5TRqOD4R72BEU/DE2M/TY8WwEUAMY576UUc/oNJXv8pGhBmQB6N9p3pt8LQw==} - engines: {node: '>=18.0'} - '@docusaurus/logger@3.6.0': resolution: {integrity: sha512-BcQhoXilXW0607cH/kO6P5Gt5KxCGfoJ+QDKNf3yO2S09/RsITlW+0QljXPbI3DklTrHrhRDmgGk1yX4nUhWTA==} engines: {node: '>=18.0'} - '@docusaurus/lqip-loader@3.5.2': - resolution: {integrity: sha512-yUD90PgwbGciCHHiQTWXZvpLv9nVTpXrX8Ilz5Sl6oJ1bwnLgGsbl7h+EseVbwBnKhVCoujW/EKRU6+3HqeeXQ==} - engines: {node: '>=18.0'} - - '@docusaurus/mdx-loader@3.5.2': - resolution: {integrity: sha512-ku3xO9vZdwpiMIVd8BzWV0DCqGEbCP5zs1iHfKX50vw6jX8vQo0ylYo1YJMZyz6e+JFJ17HYHT5FzVidz2IflA==} + '@docusaurus/lqip-loader@3.6.0': + resolution: {integrity: sha512-jEQjnKAjhgyZ/aQf0Tbl3eDpp1j0C/GojE/cv2Bad89o+luV1OAOs9UHDRyKwWQfN+se0D9kFxkfsfwYxMpI8A==} engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 '@docusaurus/mdx-loader@3.6.0': resolution: {integrity: sha512-GhRzL1Af/AdSSrGesSPOU/iP/aXadTGmVKuysCxZDrQR2RtBtubQZ9aw+KvdFVV7R4K/CsbgD6J5oqrXlEPk3Q==} @@ -1588,70 +1822,64 @@ packages: react: ^18.0.0 react-dom: ^18.0.0 - '@docusaurus/module-type-aliases@3.5.2': - resolution: {integrity: sha512-Z+Xu3+2rvKef/YKTMxZHsEXp1y92ac0ngjDiExRdqGTmEKtCUpkbNYH8v5eXo5Ls+dnW88n6WTa+Q54kLOkwPg==} - peerDependencies: - react: '*' - react-dom: '*' - '@docusaurus/module-type-aliases@3.6.0': resolution: {integrity: sha512-szTrIN/6/fuk0xkf3XbRfdTFJzRQ8d1s3sQj5++58wltrT7v3yn1149oc9ryYjMpRcbsarGloQwMu7ofPe4XPg==} peerDependencies: react: '*' react-dom: '*' - '@docusaurus/plugin-content-blog@3.5.2': - resolution: {integrity: sha512-R7ghWnMvjSf+aeNDH0K4fjyQnt5L0KzUEnUhmf1e3jZrv3wogeytZNN6n7X8yHcMsuZHPOrctQhXWnmxu+IRRg==} + '@docusaurus/plugin-content-blog@3.6.0': + resolution: {integrity: sha512-o4aT1/E0Ldpzs/hQff5uyoSriAhS/yqBhqSn+fvSw465AaqRsva6O7CZSYleuBq6x2bewyE3QJq2PcTiHhAd8g==} engines: {node: '>=18.0'} peerDependencies: '@docusaurus/plugin-content-docs': '*' react: ^18.0.0 react-dom: ^18.0.0 - '@docusaurus/plugin-content-docs@3.5.2': - resolution: {integrity: sha512-Bt+OXn/CPtVqM3Di44vHjE7rPCEsRCB/DMo2qoOuozB9f7+lsdrHvD0QCHdBs0uhz6deYJDppAr2VgqybKPlVQ==} + '@docusaurus/plugin-content-docs@3.6.0': + resolution: {integrity: sha512-c5gZOxocJKO/Zev2MEZInli+b+VNswDGuKHE6QtFgidhAJonwjh2kwj967RvWFaMMk62HlLJLZ+IGK2XsVy4Aw==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - '@docusaurus/plugin-content-pages@3.5.2': - resolution: {integrity: sha512-WzhHjNpoQAUz/ueO10cnundRz+VUtkjFhhaQ9jApyv1a46FPURO4cef89pyNIOMny1fjDz/NUN2z6Yi+5WUrCw==} + '@docusaurus/plugin-content-pages@3.6.0': + resolution: {integrity: sha512-RKHhJrfkadHc7+tt1cP48NWifOrhkSRMPdXNYytzhoQrXlP6Ph+3tfQ4/n+nT0S3Y9+wwRxYqRqA380ZLt+QtQ==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - '@docusaurus/plugin-debug@3.5.2': - resolution: {integrity: sha512-kBK6GlN0itCkrmHuCS6aX1wmoWc5wpd5KJlqQ1FyrF0cLDnvsYSnh7+ftdwzt7G6lGBho8lrVwkkL9/iQvaSOA==} + '@docusaurus/plugin-debug@3.6.0': + resolution: {integrity: sha512-o8T1Rl94COLdSlKvjYLQpRJQRU8WWZ8EX1B0yV0dQLNN8reyH7MQW+6z1ig4sQFfH3pnjPWVGHfuEjcib5m7Eg==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - '@docusaurus/plugin-google-analytics@3.5.2': - resolution: {integrity: sha512-rjEkJH/tJ8OXRE9bwhV2mb/WP93V441rD6XnM6MIluu7rk8qg38iSxS43ga2V2Q/2ib53PcqbDEJDG/yWQRJhQ==} + '@docusaurus/plugin-google-analytics@3.6.0': + resolution: {integrity: sha512-kgRFbfpi6Hshj75YUztKyEMtI/kw0trPRwoTN4g+W1NK99R/vh8phTvhBTIMnDbetU79795LkwfG0rZ/ce6zWQ==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - '@docusaurus/plugin-google-gtag@3.5.2': - resolution: {integrity: sha512-lm8XL3xLkTPHFKKjLjEEAHUrW0SZBSHBE1I+i/tmYMBsjCcUB5UJ52geS5PSiOCFVR74tbPGcPHEV/gaaxFeSA==} + '@docusaurus/plugin-google-gtag@3.6.0': + resolution: {integrity: sha512-nqu4IfjaO4UX+dojHL2BxHRS+sKj31CIMWYo49huQ3wTET0Oc3u/WGTaKd3ShTPDhkgiRhTOSTPUwJWrU55nHg==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - '@docusaurus/plugin-google-tag-manager@3.5.2': - resolution: {integrity: sha512-QkpX68PMOMu10Mvgvr5CfZAzZQFx8WLlOiUQ/Qmmcl6mjGK6H21WLT5x7xDmcpCoKA/3CegsqIqBR+nA137lQg==} + '@docusaurus/plugin-google-tag-manager@3.6.0': + resolution: {integrity: sha512-OU6c5xI0nOVbEc9eImGvvsgNWe4vGm97t/W3aLHjWsHyNk3uwFNBQMHRvBUwAi9k/K3kyC5E7DWnc67REhdLOw==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - '@docusaurus/plugin-ideal-image@3.5.2': - resolution: {integrity: sha512-FnHi3a5DjYRvjN1XbXRe1Cmiqfc+tAI2VmThN1Mr9teLB0ibuRi++P98q6+KyamBWKrJmuskWLMdr71acwHM8Q==} + '@docusaurus/plugin-ideal-image@3.6.0': + resolution: {integrity: sha512-6BaZU7mX+RH+lRFPm5nj3GGfAsjsJ1JHjp0Xjb4ilfte7L2IZkTl6MPpvAzyPC0qIUxfXRcJs4qd/HUE0xcTlw==} engines: {node: '>=18.0'} peerDependencies: jimp: '*' @@ -1661,15 +1889,15 @@ packages: jimp: optional: true - '@docusaurus/plugin-sitemap@3.5.2': - resolution: {integrity: sha512-DnlqYyRAdQ4NHY28TfHuVk414ft2uruP4QWCH//jzpHjqvKyXjj2fmDtI8RPUBh9K8iZKFMHRnLtzJKySPWvFA==} + '@docusaurus/plugin-sitemap@3.6.0': + resolution: {integrity: sha512-YB5XMdf9FjLhgbHY/cDbYhVxsgcpPIjxY9769HUgFOB7GVzItTLOR71W035R1BiR2CA5QAn3XOSg36WLRxlhQQ==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - '@docusaurus/preset-classic@3.5.2': - resolution: {integrity: sha512-3ihfXQ95aOHiLB5uCu+9PRy2gZCeSZoDcqpnDvf3B+sTrMvMTr8qRUzBvWkoIqc82yG5prCboRjk1SVILKx6sg==} + '@docusaurus/preset-classic@3.6.0': + resolution: {integrity: sha512-kpGNdQzr/Dpm7o3b1iaQrz4DMDx3WIeBbl4V4P4maa2zAQkTdlaP4CMgA5oKrRrpqPLnQFsUM/b+qf2glhl2Tw==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 @@ -1692,18 +1920,10 @@ packages: sharp: optional: true - '@docusaurus/theme-classic@3.5.2': - resolution: {integrity: sha512-XRpinSix3NBv95Rk7xeMF9k4safMkwnpSgThn0UNQNumKvmcIYjfkwfh2BhwYh/BxMXQHJ/PdmNh22TQFpIaYg==} - engines: {node: '>=18.0'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - - '@docusaurus/theme-common@3.5.2': - resolution: {integrity: sha512-QXqlm9S6x9Ibwjs7I2yEDgsCocp708DrCrgHgKwg2n2AY0YQ6IjU0gAK35lHRLOvAoJUfCKpQAwUykB0R7+Eew==} + '@docusaurus/theme-classic@3.6.0': + resolution: {integrity: sha512-sAXNfwPL6uRD+BuHuKXZfAXud7SS7IK/JdrPuzyQxdO1gJKzI5GFfe1ED1QoJDNWJWJ01JHE5rSnwYLEADc2rQ==} engines: {node: '>=18.0'} peerDependencies: - '@docusaurus/plugin-content-docs': '*' react: ^18.0.0 react-dom: ^18.0.0 @@ -1722,38 +1942,23 @@ packages: react: ^18.0.0 react-dom: ^18.0.0 - '@docusaurus/theme-search-algolia@3.5.2': - resolution: {integrity: sha512-qW53kp3VzMnEqZGjakaV90sst3iN1o32PH+nawv1uepROO8aEGxptcq2R5rsv7aBShSRbZwIobdvSYKsZ5pqvA==} + '@docusaurus/theme-search-algolia@3.6.0': + resolution: {integrity: sha512-4IwRUkxjrisR8LXBHeE4d2btraWdMficbgiVL3UHvJURmyvgzMBZQP8KrK8rjdXeu8SuRxSmeV6NSVomRvdbEg==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - '@docusaurus/theme-translations@3.5.2': - resolution: {integrity: sha512-GPZLcu4aT1EmqSTmbdpVrDENGR2yObFEX8ssEFYTCiAIVc0EihNSdOIBTazUvgNqwvnoU1A8vIs1xyzc3LITTw==} + '@docusaurus/theme-translations@3.6.0': + resolution: {integrity: sha512-L555X8lWE3fv8VaF0Bc1VnAgi10UvRKFcvADHiYR7Gj37ItaWP5i7xLHsSw7fi/SHTXe5wfIeCFNqUYHyCOHAQ==} engines: {node: '>=18.0'} - '@docusaurus/types@3.5.2': - resolution: {integrity: sha512-N6GntLXoLVUwkZw7zCxwy9QiuEXIcTVzA9AkmNw16oc0AP3SXLrMmDMMBIfgqwuKWa6Ox6epHol9kMtJqekACw==} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - '@docusaurus/types@3.6.0': resolution: {integrity: sha512-jADLgoZGWhAzThr+mRiyuFD4OUzt6jHnb7NRArRKorgxckqUBaPyFOau9hhbcSTHtU6ceyeWjN7FDt7uG2Hplw==} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - '@docusaurus/utils-common@3.5.2': - resolution: {integrity: sha512-i0AZjHiRgJU6d7faQngIhuHKNrszpL/SHQPgF1zH4H+Ij6E9NBYGy6pkcGWToIv7IVPbs+pQLh1P3whn0gWXVg==} - engines: {node: '>=18.0'} - peerDependencies: - '@docusaurus/types': '*' - peerDependenciesMeta: - '@docusaurus/types': - optional: true - '@docusaurus/utils-common@3.6.0': resolution: {integrity: sha512-diUDNfbw33GaZMmKwdTckT2IBfVouXLXRD+zphH9ywswuaEIKqixvuf5g41H7MBBrlMsxhna3uTMoB4B/OPDcA==} engines: {node: '>=18.0'} @@ -1763,23 +1968,10 @@ packages: '@docusaurus/types': optional: true - '@docusaurus/utils-validation@3.5.2': - resolution: {integrity: sha512-m+Foq7augzXqB6HufdS139PFxDC5d5q2QKZy8q0qYYvGdI6nnlNsGH4cIGsgBnV7smz+mopl3g4asbSDvMV0jA==} - engines: {node: '>=18.0'} - '@docusaurus/utils-validation@3.6.0': resolution: {integrity: sha512-CRHiKKJEKA0GFlfOf71JWHl7PtwOyX0+Zg9ep9NFEZv6Lcx3RJ9nhl7p8HRjPL6deyYceavM//BsfW4pCI4BtA==} engines: {node: '>=18.0'} - '@docusaurus/utils@3.5.2': - resolution: {integrity: sha512-33QvcNFh+Gv+C2dP9Y9xWEzMgf3JzrpL2nW9PopidiohS1nDcyknKRx2DWaFvyVTTYIkkABVSr073VTj/NITNA==} - engines: {node: '>=18.0'} - peerDependencies: - '@docusaurus/types': '*' - peerDependenciesMeta: - '@docusaurus/types': - optional: true - '@docusaurus/utils@3.6.0': resolution: {integrity: sha512-VKczAutI4mptiAw/WcYEu5WeVhQ6Q1zdIUl64SGw9K++9lziH+Kt10Ee8l2dMpRkiUk6zzK20kMNlX2WCUwXYQ==} engines: {node: '>=18.0'} @@ -1807,145 +1999,291 @@ packages: '@emnapi/wasi-threads@1.0.1': resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} - '@esbuild-plugins/node-globals-polyfill@0.2.3': - resolution: {integrity: sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==} - peerDependencies: - esbuild: '*' + '@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-plugins/node-modules-polyfill@0.2.2': - resolution: {integrity: sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA==} - peerDependencies: - esbuild: '*' + '@esbuild/aix-ppc64@0.24.0': + resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] - '@esbuild/android-arm64@0.17.19': - resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} - engines: {node: '>=12'} + '@esbuild/android-arm64@0.23.1': + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} + engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.17.19': - resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} - engines: {node: '>=12'} + '@esbuild/android-arm64@0.24.0': + resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.23.1': + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} + engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.17.19': - resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} - engines: {node: '>=12'} + '@esbuild/android-arm@0.24.0': + resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.23.1': + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} + engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.17.19': - resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} - engines: {node: '>=12'} + '@esbuild/android-x64@0.24.0': + resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.23.1': + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.24.0': + resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} + engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.17.19': - resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} - engines: {node: '>=12'} + '@esbuild/darwin-x64@0.23.1': + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.24.0': + resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} + engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.17.19': - resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} - engines: {node: '>=12'} + '@esbuild/freebsd-arm64@0.23.1': + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} + engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.17.19': - resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} - engines: {node: '>=12'} + '@esbuild/freebsd-arm64@0.24.0': + resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} + engines: {node: '>=18'} + cpu: [arm64] + 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/linux-arm64@0.17.19': - resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} - engines: {node: '>=12'} + '@esbuild/freebsd-x64@0.24.0': + resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.23.1': + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} + engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.17.19': - resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} - engines: {node: '>=12'} + '@esbuild/linux-arm64@0.24.0': + resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.23.1': + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} + engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.17.19': - resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} - engines: {node: '>=12'} + '@esbuild/linux-arm@0.24.0': + resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.23.1': + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} + engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.17.19': - resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} - engines: {node: '>=12'} + '@esbuild/linux-ia32@0.24.0': + resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} + engines: {node: '>=18'} + cpu: [ia32] + 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-mips64el@0.17.19': - resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} - engines: {node: '>=12'} + '@esbuild/linux-loong64@0.24.0': + resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} + engines: {node: '>=18'} + cpu: [loong64] + 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-ppc64@0.17.19': - resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} - engines: {node: '>=12'} + '@esbuild/linux-mips64el@0.24.0': + resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.23.1': + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} + engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.17.19': - resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} - engines: {node: '>=12'} + '@esbuild/linux-ppc64@0.24.0': + resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.23.1': + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} + engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.17.19': - resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} - engines: {node: '>=12'} + '@esbuild/linux-riscv64@0.24.0': + resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} + engines: {node: '>=18'} + cpu: [riscv64] + 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-x64@0.17.19': - resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} - engines: {node: '>=12'} + '@esbuild/linux-s390x@0.24.0': + resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.23.1': + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} + engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.17.19': - resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} - engines: {node: '>=12'} + '@esbuild/linux-x64@0.24.0': + resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.23.1': + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} + engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-x64@0.17.19': - resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} - engines: {node: '>=12'} + '@esbuild/netbsd-x64@0.24.0': + resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} + 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/sunos-x64@0.17.19': - resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} - engines: {node: '>=12'} + '@esbuild/openbsd-arm64@0.24.0': + resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} + engines: {node: '>=18'} + cpu: [arm64] + 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.0': + resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.23.1': + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} + engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.17.19': - resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} - engines: {node: '>=12'} + '@esbuild/sunos-x64@0.24.0': + resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.23.1': + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} + engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.17.19': - resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} - engines: {node: '>=12'} + '@esbuild/win32-arm64@0.24.0': + resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.23.1': + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} + engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.17.19': - resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} - engines: {node: '>=12'} + '@esbuild/win32-ia32@0.24.0': + resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} + engines: {node: '>=18'} + cpu: [ia32] + 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.0': + resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} + engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -1987,10 +2325,6 @@ packages: resolution: {integrity: sha512-CXtq5nR4Su+2I47WPOlWud98Y5Lv8Kyxp2ukhgFx/eW6Blm18VXJO5WuQylPugRo8nbluoi6GvvxBLqHcvqUUw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@fastify/busboy@2.1.1': - resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} - engines: {node: '>=14'} - '@google-cloud/vertexai@1.9.0': resolution: {integrity: sha512-8brlcJwFXI4fPuBtsDNQqCdWZmz8gV9jeEKOU0vc5H2SjehCQpXK/NwuSEr916zbhlBHtg/sU37qQQdgvh5BRA==} engines: {node: '>=18.0.0'} @@ -2432,67 +2766,67 @@ packages: resolution: {integrity: sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==} engines: {node: ^16.14.0 || >=18.0.0} - '@nx/devkit@20.0.7': - resolution: {integrity: sha512-h+B5S+tkHObtKj2pQYUkbiaiYdcim95iS27CaZgasq7FiIXQOoupQ6jrIKduQJKx+GfYbuCCd60zrAYbkyvxiA==} + '@nx/devkit@20.0.11': + resolution: {integrity: sha512-eYL3uZUYlisvIrM+AUXqJ9OX2OoNlmWlTj3niz0d1r6gi7CGoZkH4l7b49sB9JkaFDFHVkK0PjDoCwkSefbTjQ==} peerDependencies: nx: '>= 19 <= 21' - '@nx/nx-darwin-arm64@20.0.7': - resolution: {integrity: sha512-QLD0DlyT343okCMHNg4EyM1s9HWU55RGiD36OxopaAmDcJ45j4p7IgmYlwbWCC5TyjIXSnLnZyIAs5DrqaKwrg==} + '@nx/nx-darwin-arm64@20.0.11': + resolution: {integrity: sha512-SEHM9L9LZpvDisRMZr2YIiXQNeE5fkn7GvUGE8cOCZeAaw56pOrm01bqRhxY/6YBvAIiZIRD+YfZynkFMqjT0Q==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@nx/nx-darwin-x64@20.0.7': - resolution: {integrity: sha512-Sc2h+eAunGKiqpumvjVrrt0LRtk/l6Fev/633WP55svSNuY9muB/MPcP9v/oLyAD1flDnzvIWeUT6eEw6oqvZw==} + '@nx/nx-darwin-x64@20.0.11': + resolution: {integrity: sha512-eWRk4uXR22mFDaA5uQBJRrvU2JZdF/TowXUVXvANfz2LU0Wg1qHRz/SIrB2hnj6b8UX7xHXY9eRunnOU66tLZg==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@nx/nx-freebsd-x64@20.0.7': - resolution: {integrity: sha512-Sp0pMVGj4LuPaO6oL9R5gsIPjIm8Xt3IyP9f+5uwtqjipiPriw0IdD2uV9bDjPPs0QQc15ncz+eSk30p836qpA==} + '@nx/nx-freebsd-x64@20.0.11': + resolution: {integrity: sha512-e1cKZdQP9j6Tqq9PFO3dDfNE4Dj9DECiuHa7Lym4xuTPqs7zrPqzbMAgg0S9McoYjuvtaemBE7ppmIGnQvnivw==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - '@nx/nx-linux-arm-gnueabihf@20.0.7': - resolution: {integrity: sha512-hs15RudLvFkfBtUL20M9Hr0wn8FLije3EGn1j9iPmo8EiZBZn4mDAywwPZXmDiAuxKTU8LKBLT/xJczNe8gzbQ==} + '@nx/nx-linux-arm-gnueabihf@20.0.11': + resolution: {integrity: sha512-3Pfm+c53u20lWeTmiH+iOKNJRslagOA/6rgujJmTwzvYY20Ny4ivMnkd1Y0D/dm78dVMj9zdKdxPCV/aE5L4TA==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@nx/nx-linux-arm64-gnu@20.0.7': - resolution: {integrity: sha512-t1NSxBvWpyjb9VnbxAN2Oka3JXEKtbQv//aLOer8++8Y+e6INDOHmRADyyp5BcLwBpsaP/lWLKcDa6vlsMzXTg==} + '@nx/nx-linux-arm64-gnu@20.0.11': + resolution: {integrity: sha512-z0KN2OghBoipBuDOJWj5l4tz7YIdEHtHYVk5Gnm6r3zwSJ78obvFsiUXBHQVrK1sLFbsaLRKi63mXP58axDL+A==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@nx/nx-linux-arm64-musl@20.0.7': - resolution: {integrity: sha512-lLAzyxQeeALMKM2uBA9728gZ0bihy6rfhMe+fracV1xjGLfcHEa/hNmhXNMp9Vf80sZJ50EUeW6mUPluLROBNQ==} + '@nx/nx-linux-arm64-musl@20.0.11': + resolution: {integrity: sha512-e/QwogKNOdiALEG+9uHW1QbKr4POfvqgo02fuV2pumL38y06ooj9iIjBRDVLqpjIbxMi+kmGhvpLs2wwRbyTmA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@nx/nx-linux-x64-gnu@20.0.7': - resolution: {integrity: sha512-H9LfEoHEa0ZHnfifseY24RPErtGaXSoWTuW9JAPylUXeYOy66i/FwxwbjsG5BMFJCnL1LGXPN9Oirh442lcsbQ==} + '@nx/nx-linux-x64-gnu@20.0.11': + resolution: {integrity: sha512-LxQIHy/wEV75ZWf+4vgEOo4KkfzSRo/i1QvUsVFyqXjvpbrobXtpP+vreljTfx+QR90zad3vymFtnTNfPswSVg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@nx/nx-linux-x64-musl@20.0.7': - resolution: {integrity: sha512-2VsTSLZZVGHmN2BkSaLoOp/Byj9j20so/Ne/TZg4Lo/HBp0iDSOmUtbPAnkJOS6UiAPvQtb9zqzRKPphhDhnzg==} + '@nx/nx-linux-x64-musl@20.0.11': + resolution: {integrity: sha512-LtxFGVykk81enIqHkQSvs3fAd/La0sLMuR3Gqb0Ia6M9yq26Yadka0R5XZK/xGR3dnahB3Qu8mFANv6BJ7PLig==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@nx/nx-win32-arm64-msvc@20.0.7': - resolution: {integrity: sha512-lmH7xTPHJe2q/P2tnHEjOTdwzNxnFV08Kp2z6sUU0lAfJ79mye2nydGBDtFq9CeFF1Q6vfCSDTRu5fbxAZ9/Xg==} + '@nx/nx-win32-arm64-msvc@20.0.11': + resolution: {integrity: sha512-dA/Oa2641ixZFSiwY8YBgy/vLwWEvp5To63Fa2NaflQGSkRUAX6N9qcljAwns2KKJwVwQcbzQBiqHo0IL8JnxQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@nx/nx-win32-x64-msvc@20.0.7': - resolution: {integrity: sha512-U8LY1O3XA1yD8FoCM0ozT0DpFJdei2NNSrp/5lBXn5KHb2nkZ8DQ1zh7RKvMhEMwDNfNGbM7JsaBTr+fP6eYJg==} + '@nx/nx-win32-x64-msvc@20.0.11': + resolution: {integrity: sha512-24wKBB4nbvyYweeBG+AkhHyekZGOPJNI1xYuhwN2TQP5m+JueBfr16PaFjFB339MS0ujy5+1kO649ACJh0cqzQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -2501,8 +2835,8 @@ packages: resolution: {integrity: sha512-TkBr7QgOmE6ORxvIAhDbZsqPkF7RSqTY4pLTtUQCvr6dTXqvi2fFo46q3h1lxlk/sGMQjqyZ0kEahkD/NyzOHg==} engines: {node: '>= 18'} - '@octokit/auth-app@7.1.1': - resolution: {integrity: sha512-kRAd6yelV9OgvlEJE88H0VLlQdZcag9UlLr7dV0YYP37X8PPDvhgiTy66QVhDXdyoT0AleFN2w/qXkPdrSzINg==} + '@octokit/auth-app@7.1.2': + resolution: {integrity: sha512-5cfWRr1hr0w/EW3StFIIOkMtYhOyGZ6/R3T0xeN6UgC/uL5pIyeood9N/8Z7W4NZUdz2QK1Fv0oM/1AzTME3/Q==} engines: {node: '>= 18'} '@octokit/auth-oauth-app@8.1.1': @@ -2890,6 +3224,96 @@ packages: rollup: optional: true + '@rollup/rollup-android-arm-eabi@4.24.4': + resolution: {integrity: sha512-jfUJrFct/hTA0XDM5p/htWKoNNTbDLY0KRwEt6pyOA6k2fmk0WVwl65PdUdJZgzGEHWx+49LilkcSaumQRyNQw==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.24.4': + resolution: {integrity: sha512-j4nrEO6nHU1nZUuCfRKoCcvh7PIywQPUCBa2UsootTHvTHIoIu2BzueInGJhhvQO/2FTRdNYpf63xsgEqH9IhA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.24.4': + resolution: {integrity: sha512-GmU/QgGtBTeraKyldC7cDVVvAJEOr3dFLKneez/n7BvX57UdhOqDsVwzU7UOnYA7AAOt+Xb26lk79PldDHgMIQ==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.24.4': + resolution: {integrity: sha512-N6oDBiZCBKlwYcsEPXGDE4g9RoxZLK6vT98M8111cW7VsVJFpNEqvJeIPfsCzbf0XEakPslh72X0gnlMi4Ddgg==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.24.4': + resolution: {integrity: sha512-py5oNShCCjCyjWXCZNrRGRpjWsF0ic8f4ieBNra5buQz0O/U6mMXCpC1LvrHuhJsNPgRt36tSYMidGzZiJF6mw==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.24.4': + resolution: {integrity: sha512-L7VVVW9FCnTTp4i7KrmHeDsDvjB4++KOBENYtNYAiYl96jeBThFfhP6HVxL74v4SiZEVDH/1ILscR5U9S4ms4g==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.24.4': + resolution: {integrity: sha512-10ICosOwYChROdQoQo589N5idQIisxjaFE/PAnX2i0Zr84mY0k9zul1ArH0rnJ/fpgiqfu13TFZR5A5YJLOYZA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.24.4': + resolution: {integrity: sha512-ySAfWs69LYC7QhRDZNKqNhz2UKN8LDfbKSMAEtoEI0jitwfAG2iZwVqGACJT+kfYvvz3/JgsLlcBP+WWoKCLcw==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.24.4': + resolution: {integrity: sha512-uHYJ0HNOI6pGEeZ/5mgm5arNVTI0nLlmrbdph+pGXpC9tFHFDQmDMOEqkmUObRfosJqpU8RliYoGz06qSdtcjg==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.24.4': + resolution: {integrity: sha512-38yiWLemQf7aLHDgTg85fh3hW9stJ0Muk7+s6tIkSUOMmi4Xbv5pH/5Bofnsb6spIwD5FJiR+jg71f0CH5OzoA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.24.4': + resolution: {integrity: sha512-q73XUPnkwt9ZNF2xRS4fvneSuaHw2BXuV5rI4cw0fWYVIWIBeDZX7c7FWhFQPNTnE24172K30I+dViWRVD9TwA==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.24.4': + resolution: {integrity: sha512-Aie/TbmQi6UXokJqDZdmTJuZBCU3QBDA8oTKRGtd4ABi/nHgXICulfg1KI6n9/koDsiDbvHAiQO3YAUNa/7BCw==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.24.4': + resolution: {integrity: sha512-P8MPErVO/y8ohWSP9JY7lLQ8+YMHfTI4bAdtCi3pC2hTeqFJco2jYspzOzTUB8hwUWIIu1xwOrJE11nP+0JFAQ==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.24.4': + resolution: {integrity: sha512-K03TljaaoPK5FOyNMZAAEmhlyO49LaE4qCsr0lYHUKyb6QacTNF9pnfPpXnFlFD3TXuFbFbz7tJ51FujUXkXYA==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.24.4': + resolution: {integrity: sha512-VJYl4xSl/wqG2D5xTYncVWW+26ICV4wubwN9Gs5NrqhJtayikwCXzPL8GDsLnaLU3WwhQ8W02IinYSFJfyo34Q==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.24.4': + resolution: {integrity: sha512-ku2GvtPwQfCqoPFIJCqZ8o7bJcj+Y54cZSr43hHca6jLwAiCbZdBUOrqE6y29QFajNAzzpIOwsckaTFmN6/8TA==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.24.4': + resolution: {integrity: sha512-V3nCe+eTt/W6UYNr/wGvO1fLpHUrnlirlypZfKCT1fG6hWfqhPgQV/K/mRBXBpxc0eKLIF18pIOFVPh0mqHjlg==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.24.4': + resolution: {integrity: sha512-LTw1Dfd0mBIEqUVCxbvTE/LLo+9ZxVC9k99v1v4ahg9Aak6FpqOfNu5kRkeTAn0wphoC4JU7No1/rL+bBCEwhg==} + cpu: [x64] + os: [win32] + '@sapphire/async-queue@1.5.4': resolution: {integrity: sha512-id65RxAx34DCk8KAVTPWwcephJSkStiS9M15F87+zvK2gK47wf7yeRIo8WiuKeXQS6bsyo/uQ/t0QW1cLmSb+A==} engines: {node: '>=v14.0.0', npm: '>=7.0.0'} @@ -3527,8 +3951,8 @@ packages: '@types/prop-types@15.7.13': resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==} - '@types/qs@6.9.16': - resolution: {integrity: sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==} + '@types/qs@6.9.17': + resolution: {integrity: sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==} '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} @@ -3551,9 +3975,6 @@ packages: '@types/retry@0.12.0': resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} - '@types/retry@0.12.1': - resolution: {integrity: sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==} - '@types/sax@1.2.7': resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} @@ -3704,50 +4125,54 @@ packages: '@vue/shared@3.5.12': resolution: {integrity: sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==} - '@webassemblyjs/ast@1.12.1': - resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + '@webassemblyjs/ast@1.14.1': + resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} - '@webassemblyjs/floating-point-hex-parser@1.11.6': - resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + '@webassemblyjs/floating-point-hex-parser@1.13.2': + resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} - '@webassemblyjs/helper-api-error@1.11.6': - resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + '@webassemblyjs/helper-api-error@1.13.2': + resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} - '@webassemblyjs/helper-buffer@1.12.1': - resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + '@webassemblyjs/helper-buffer@1.14.1': + resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} - '@webassemblyjs/helper-numbers@1.11.6': - resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + '@webassemblyjs/helper-numbers@1.13.2': + resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} - '@webassemblyjs/helper-wasm-bytecode@1.11.6': - resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + '@webassemblyjs/helper-wasm-bytecode@1.13.2': + resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} - '@webassemblyjs/helper-wasm-section@1.12.1': - resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + '@webassemblyjs/helper-wasm-section@1.14.1': + resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} - '@webassemblyjs/ieee754@1.11.6': - resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + '@webassemblyjs/ieee754@1.13.2': + resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} - '@webassemblyjs/leb128@1.11.6': - resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + '@webassemblyjs/leb128@1.13.2': + resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} - '@webassemblyjs/utf8@1.11.6': - resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + '@webassemblyjs/utf8@1.13.2': + resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} - '@webassemblyjs/wasm-edit@1.12.1': - resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + '@webassemblyjs/wasm-edit@1.14.1': + resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} - '@webassemblyjs/wasm-gen@1.12.1': - resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + '@webassemblyjs/wasm-gen@1.14.1': + resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} - '@webassemblyjs/wasm-opt@1.12.1': - resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + '@webassemblyjs/wasm-opt@1.14.1': + resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} - '@webassemblyjs/wasm-parser@1.12.1': - resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + '@webassemblyjs/wasm-parser@1.14.1': + resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} - '@webassemblyjs/wast-printer@1.12.1': - resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + '@webassemblyjs/wast-printer@1.14.1': + resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} + + '@wolfy1339/lru-cache@11.0.2-patch.1': + resolution: {integrity: sha512-BgYZfL2ADCXKOw2wJtkM3slhHotawWkgIRRxq4wEybnZQPjvAp71SPX35xepMykTw8gXlzWcWPTY31hlbnRsDA==} + engines: {node: 18 >=18.20 || 20 || >=22} '@xtuc/ieee754@1.2.0': resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} @@ -3758,9 +4183,9 @@ packages: '@yarnpkg/lockfile@1.1.0': resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} - '@yarnpkg/parsers@3.0.0-rc.46': - resolution: {integrity: sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==} - engines: {node: '>=14.15.0'} + '@yarnpkg/parsers@3.0.2': + resolution: {integrity: sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==} + engines: {node: '>=18.12.0'} '@zkochan/js-yaml@0.0.7': resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} @@ -3830,8 +4255,8 @@ packages: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} - ai@3.4.32: - resolution: {integrity: sha512-d5Im7kWsjw1T/IFfYPH4KDLUn4W+XIZqip34q7wcyVBAKLcjGSbJh+5F7Ktc1MIzThHUPh/NUzbHlDDNhTlCgA==} + ai@3.4.33: + resolution: {integrity: sha512-plBlrVZKwPoRTmM8+D1sJac9Bq8eaa2jiZlHLZIWekKWI1yMWYZvCCEezY9ASPwRhULYDJB2VhKOBUUeg3S5JQ==} engines: {node: '>=18'} peerDependencies: openai: ^4.42.0 @@ -3887,8 +4312,8 @@ packages: algoliasearch@4.24.0: resolution: {integrity: sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==} - algoliasearch@5.12.0: - resolution: {integrity: sha512-psGBRYdGgik8I6m28iAB8xpubvjEt7UQU+w5MAJUA2324WHiGoHap5BPkkjB14rMaXeRts6pmOsrVIglGyOVwg==} + algoliasearch@5.13.0: + resolution: {integrity: sha512-04lyQX3Ev/oLYQx+aagamQDXvkUUfX1mwrLrus15+9fNaYj28GDxxEzbwaRfvmHFcZyoxvup7mMtDTTw8SrTEQ==} engines: {node: '>= 14.0.0'} amp-message@0.1.2: @@ -3947,6 +4372,9 @@ packages: peerDependencies: zod: ^3.0.0 + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -4012,9 +4440,6 @@ packages: resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} engines: {node: '>=8'} - as-table@1.0.55: - resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} - asn1@0.2.6: resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} @@ -4217,9 +4642,6 @@ packages: bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - blake3-wasm@2.1.5: - resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} - blessed@0.1.81: resolution: {integrity: sha512-LoF5gae+hlmfORcG1M5+5XZi4LBmvlXTzwJWzUlPryN/SJdSflZvROM2TwkT0GMpq7oqT48NRd4GS7BiVBc5OQ==} engines: {node: '>= 0.8.0'} @@ -4312,6 +4734,12 @@ packages: resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} engines: {node: '>=6.14.2'} + bundle-require@5.0.0: + resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.18' + busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} @@ -4328,6 +4756,10 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + cacache@18.0.4: resolution: {integrity: sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==} engines: {node: ^16.14.0 || >=18.0.0} @@ -4370,16 +4802,13 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001677: - resolution: {integrity: sha512-fmfjsOlJUpMWu+mAAtZZZHz7UEwsUxIIvu1TJfO1HqFQvB/B+ii0xr9B5HpbZY/mC4XZ8SvjHJqtAY6pDPQEog==} + caniuse-lite@1.0.30001678: + resolution: {integrity: sha512-RR+4U/05gNtps58PEBDZcPWTgEO2MBeoPZ96aQcjmfkBWRIDfN451fW2qyDA9/+HohLLIL5GqiMwA+IB1pWarw==} canvas@2.11.2: resolution: {integrity: sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==} engines: {node: '>=6'} - capnp-ts@0.7.0: - resolution: {integrity: sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==} - capsolver-npm@2.0.2: resolution: {integrity: sha512-PvkAGTuwtKXczJeoiLu2XQ4SzJh0m7Yr3ONJuvdjEAw95LwtfGxZ3Ip/w21kR94R4O260omLGlTcQvPf2ECnLg==} @@ -4449,6 +4878,10 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + chokidar@4.0.1: + resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} + engines: {node: '>= 14.16.0'} + chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -4616,9 +5049,6 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} - comlink@4.3.1: - resolution: {integrity: sha512-+YbhUdNrpBZggBAHWcgQMLPLH1KDF3wJpeqrCKieWQ8RL7atmgsgTQko1XEBK6PsecfopWNntopJ+ByYG1lRaA==} - comma-separated-tokens@1.0.8: resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} @@ -4642,6 +5072,10 @@ packages: commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + commander@5.1.0: resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} engines: {node: '>= 6'} @@ -4685,6 +5119,11 @@ packages: resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} engines: {'0': node >= 6.0} + concurrently@9.1.0: + resolution: {integrity: sha512-VxkzwMAn4LP7WyMnJNbHN5mKV9L2IbyDjpzemKr99sXNR3GqRNMMHdm7prV1ws9wg7ETj6WUkNOigZVsptwbgg==} + engines: {node: '>=18'} + hasBin: true + confbox@0.1.8: resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} @@ -4699,9 +5138,6 @@ packages: resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} engines: {node: '>=0.8'} - consola@2.15.3: - resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} - consola@3.2.3: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} @@ -4773,10 +5209,6 @@ packages: resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} engines: {node: '>= 0.6'} - cookie@0.7.2: - resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} - engines: {node: '>= 0.6'} - copy-text-to-clipboard@3.2.0: resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==} engines: {node: '>=12'} @@ -4860,11 +5292,8 @@ packages: cross-fetch@3.1.8: resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} - cross-fetch@4.0.0: - resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==} - - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + cross-spawn@7.0.5: + resolution: {integrity: sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==} engines: {node: '>= 8'} crypto-hash@1.3.0: @@ -5155,16 +5584,10 @@ packages: data-uri-to-buffer@0.0.3: resolution: {integrity: sha512-Cp+jOa8QJef5nXS5hU7M1DWzXPEIoVR3kbV0dQuVGwROZg8bGf1DcCnkmajBTnvghTtSNMUdRrPjgaT6ZQucbw==} - data-uri-to-buffer@2.0.2: - resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} - data-uri-to-buffer@6.0.2: resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} engines: {node: '>= 14'} - date-fns@4.1.0: - resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} - dateformat@3.0.3: resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} @@ -5280,9 +5703,6 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} - defu@6.1.4: - resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} - degenerator@5.0.1: resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} engines: {node: '>= 14'} @@ -5475,8 +5895,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.50: - resolution: {integrity: sha512-eMVObiUQ2LdgeO1F/ySTXsvqvxb6ZH2zPGaMYsWzRDdOddUa77tdmI0ltg+L16UpbWdhPmuF3wIQYyQq65WfZw==} + electron-to-chromium@1.5.55: + resolution: {integrity: sha512-6maZ2ASDOTBtjt9FhqYPRnbvKU5tjG0IN9SztUOWYw2AzNDNpKJYLJmlK0/En4Hs/aiWnB+JZ+gW19PIGszgKg==} emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} @@ -5593,9 +6013,14 @@ packages: esast-util-from-js@2.0.1: resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} - esbuild@0.17.19: - resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} - engines: {node: '>=12'} + esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} + engines: {node: '>=18'} + hasBin: true + + esbuild@0.24.0: + resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} + engines: {node: '>=18'} hasBin: true escalade@3.2.0: @@ -5735,9 +6160,6 @@ packages: estree-util-visit@2.0.0: resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} - estree-walker@0.6.1: - resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} - estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} @@ -5790,6 +6212,10 @@ packages: resolution: {integrity: sha512-v0eOBUbiaFojBu2s2NPBfYUoRR9GjcDNvCXVaqEf5vVfpIAh9f8RCo4vXTP8c63QRKCFwoLpMpTdPwwhEKVgzA==} engines: {node: '>=14.18'} + eventsource-parser@3.0.0: + resolution: {integrity: sha512-T1C0XCUimhxVQzW4zFipdx0SficT651NnkR0ZSH3yQwh+mFMdLfgjABVi4YtMTtaL4s168593DaoaRLMqryavA==} + engines: {node: '>=18.0.0'} + execa@5.0.0: resolution: {integrity: sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==} engines: {node: '>=10'} @@ -5802,10 +6228,6 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} - exit-hook@2.2.1: - resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} - engines: {node: '>=6'} - exit@0.1.2: resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} engines: {node: '>= 0.8.0'} @@ -5883,6 +6305,9 @@ packages: fast-uri@3.0.3: resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} + fastembed@1.14.1: + resolution: {integrity: sha512-Y14v+FWZwjNUpQ7mRGYu4N5yF+hZkF7zqzPWzzLbwdIEtYsHy0DSpiVJ+Fg6Oi1fQjrBKASQt0hdSMSjw1/Wtw==} + fastestsmallesttextencoderdecoder@1.0.22: resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==} @@ -5905,6 +6330,14 @@ packages: fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + fdir@6.4.2: + resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + feed@4.2.2: resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} engines: {node: '>=0.4.0'} @@ -5913,11 +6346,6 @@ packages: resolution: {integrity: sha512-WrM7kLW+do9HLr+H6tk7LzQ7kPqbAgLjdzNE32+u3Ff11gXt9Kkkd2nusGFrlWMIe+XaA97t+I8JS7sZIrvRgA==} engines: {node: '>=16'} - figlet@1.8.0: - resolution: {integrity: sha512-chzvGjd+Sp7KUvPHZv6EXV5Ir3Q7kYNpCr4aHrRW79qFtTefmQZNny+W1pW9kf5zeE6dikku2W50W/wAH2xWgw==} - engines: {node: '>= 0.4.0'} - hasBin: true - figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} @@ -5986,9 +6414,6 @@ packages: resolution: {integrity: sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA==} engines: {node: '>=18'} - fix-webm-duration@1.0.6: - resolution: {integrity: sha512-zVAqi4gE+8ywxJuAyV/rlJVX6CMtvyapEbQx6jyoeX9TMjdqAlt/FdG5d7rXSSkDVzTvS0H7CtwzHcH/vh4FPA==} - flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} @@ -6185,9 +6610,6 @@ packages: resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} engines: {node: '>=8'} - get-source@2.0.12: - resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} - get-stream@5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} @@ -6204,6 +6626,9 @@ packages: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} + get-tsconfig@4.8.1: + resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} + get-uri@6.0.3: resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==} engines: {node: '>= 14'} @@ -6624,9 +7049,6 @@ packages: peerDependencies: postcss: ^8.1.0 - idb@7.1.1: - resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} - ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -6681,8 +7103,8 @@ packages: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} - infima@0.2.0-alpha.44: - resolution: {integrity: sha512-tuRkUSO/lB3rEhLJk25atwAjgLuzq070+pOW8XcvpHky/YbENnRRdPd85IBkyeTgttmOy5ah+yHYsK1HhUd4lQ==} + infima@0.2.0-alpha.45: + resolution: {integrity: sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw==} engines: {node: '>=12'} inflight@1.0.6: @@ -6720,10 +7142,6 @@ packages: resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} engines: {node: '>=12.0.0'} - install@0.13.0: - resolution: {integrity: sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA==} - engines: {node: '>= 0.10'} - internmap@1.0.1: resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} @@ -7009,12 +7427,6 @@ packages: resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} - itty-router@5.0.18: - resolution: {integrity: sha512-mK3ReOt4ARAGy0V0J7uHmArG2USN2x0zprZ+u+YgmeRjXTDbaowDy3kPcsmQY6tH+uHhDgpWit9Vqmv/4rTXwA==} - - itty-time@1.0.6: - resolution: {integrity: sha512-+P8IZaLLBtFv8hCkIjcymZOp4UJ+xW6bSlQsXGqrkmJh7vSiMFSlNne0mCYagEE0N7HDNR5jJBRxwN0oYv61Rw==} - jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} @@ -7175,6 +7587,10 @@ packages: joi@17.13.3: resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + jpeg-js@0.3.7: resolution: {integrity: sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==} @@ -7408,6 +7824,10 @@ packages: resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} engines: {node: '>=8'} + load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + loader-runner@4.3.0: resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} engines: {node: '>=6.11.5'} @@ -7468,6 +7888,9 @@ packages: lodash.snakecase@4.1.1: resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + lodash.uniq@4.5.0: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} @@ -7541,9 +7964,6 @@ packages: magic-bytes.js@1.10.0: resolution: {integrity: sha512-/k20Lg2q8LE5xiaaSkMXk4sfvI+9EGEykFS4b0CHHGWqDYU0bGUFSwchNOMA56D7TCs9GwVTkqe9als1/ns8UQ==} - magic-string@0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - magic-string@0.30.12: resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} @@ -7647,8 +8067,8 @@ packages: mdast-util-to-hast@13.2.0: resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} - mdast-util-to-markdown@2.1.1: - resolution: {integrity: sha512-OrkcCoqAkEg9b1ykXBrA0ehRc8H4fGU/03cACmW2xXzau1+dIdS+qJugh1Cqex3hMumSBgSE/5pc7uqP12nLAw==} + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} @@ -7854,11 +8274,6 @@ packages: engines: {node: '>=4'} hasBin: true - mime@3.0.0: - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} - engines: {node: '>=10.0.0'} - hasBin: true - mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -7893,11 +8308,6 @@ packages: peerDependencies: webpack: ^5.0.0 - miniflare@3.20241022.0: - resolution: {integrity: sha512-x9Fbq1Hmz1f0osIT9Qmj78iX4UpCP2EqlZnA/tzj/3+I49vc3Kq0fNqSSKplcdf6HlCHdL3fOBicmreQF4BUUQ==} - engines: {node: '>=16.13'} - hasBin: true - minimalistic-assert@1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} @@ -8048,10 +8458,6 @@ packages: resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} engines: {node: '>=10'} - mustache@4.2.0: - resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} - hasBin: true - mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} @@ -8059,6 +8465,9 @@ packages: resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + nan@2.22.0: resolution: {integrity: sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==} @@ -8198,10 +8607,6 @@ packages: node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} - node-wav@0.0.2: - resolution: {integrity: sha512-M6Rm/bbG6De/gKGxOpeOobx/dnGuP0dz40adqx38boqHhlWssBJZgLCPBNtb9NkrmnKYiV04xELq+R6PFOnoLA==} - engines: {node: '>=4.4.0'} - nodejs-whisper@0.1.18: resolution: {integrity: sha512-2FETHL/Ur46jIEh3H4bhJ0WAdPJxWBcaLPcdHCy6oDAXfD7ZGomQAiIL+musqtY1G1IV6/5+zUZJNxdZIsfy6A==} hasBin: true @@ -8312,8 +8717,8 @@ packages: peerDependencies: webpack: ^4.0.0 || ^5.0.0 - nx@20.0.7: - resolution: {integrity: sha512-Un7eMAqTx+gRB4j6hRWafMvOso4pmFg3Ff+BmfFOgqD8XdE+xV/+Ke9mPTfi4qYD5eQiY1lO15l3dRuBH7+AJw==} + nx@20.0.11: + resolution: {integrity: sha512-g22/gNg6RCfOKd47cFunGgMY4wm3okoG7hmlqe21HkdpuRf1Yos/YGNdPmrrS04+IKUz7utdBl6bDGfw8QbZAw==} hasBin: true peerDependencies: '@swc-node/register': ^1.8.0 @@ -8350,8 +8755,14 @@ packages: resolution: {integrity: sha512-wbqF4uc1YbcldtiBFfkSnquHtECEIpYD78YUXI6ri1Im5OO2NLo6ZVpRdbJpdnpZ05zMrVPssNiEo6JQtea+Qg==} engines: {node: '>= 18'} - ohash@1.1.4: - resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} + ollama-ai-provider@0.16.1: + resolution: {integrity: sha512-0vSQVz5Y/LguyzfO4bi1JrrVGF/k2JvO8/uFR0wYmqDFp8KPp4+AhdENSynGBr1oRhMWOM4F1l6cv7UNDgRMjw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.0.0 + peerDependenciesMeta: + zod: + optional: true omggif@1.0.10: resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==} @@ -8386,19 +8797,12 @@ packages: resolution: {integrity: sha512-M7CJbmv7UCopc0neRKdzfoGWaVZC+xC1925GitKH9EAqYFzX9//25Q7oX4+jw0tiCCj+t5l6VZh8UPH23NZkMA==} hasBin: true - onnxruntime-common@1.19.2: - resolution: {integrity: sha512-a4R7wYEVFbZBlp0BfhpbFWqe4opCor3KM+5Wm22Az3NGDcQMiU2hfG/0MfnBs+1ZrlSGmlgWeMcXQkDk1UFb8Q==} - onnxruntime-common@1.20.0: resolution: {integrity: sha512-9ehS4ul5fBszIcHhfxuDgk45lO+Fqrxmrgwk1Pxb1JRvbQiCB/v9Royv95SRCWHktLMviqNjBsEd/biJhd39cg==} onnxruntime-common@1.20.0-dev.20241016-2b8fc5529b: resolution: {integrity: sha512-KZK8b6zCYGZFjd4ANze0pqBnqnFTS3GIVeclQpa2qseDpXrCQJfkWBixRcrZShNhm3LpFOZ8qJYFC5/qsJK9WQ==} - onnxruntime-node@1.19.2: - resolution: {integrity: sha512-9eHMP/HKbbeUcqte1JYzaaRC8JPn7ojWeCeoyShO86TOR97OCyIyAIOGX3V95ErjslVhJRXY8Em/caIUc0hm1Q==} - os: [win32, darwin, linux] - onnxruntime-node@1.20.0: resolution: {integrity: sha512-mjLge++8WHfyCZ4IqZ1FbUbtFAfGht7BLCkOeBL1L9PFV27YHwluXkNt7m0Pgf6TR2P5pqVZsD3zqFbFP6QTMw==} os: [win32, darwin, linux] @@ -8423,6 +8827,9 @@ packages: resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} hasBin: true + optional@0.1.4: + resolution: {integrity: sha512-gtvrrCfkE08wKcgXaVwQVgwEQ8vel2dc5DDBn9RLQZ3YtmtkBss6A2HY6BnJH4N/4Ku97Ri/SF8sNWE2225WJw==} + optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -8514,10 +8921,6 @@ packages: resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} engines: {node: '>=8'} - p-retry@5.1.2: - resolution: {integrity: sha512-couX95waDu98NfNZV+i/iLt+fdVxmI7CbrrdC2uDWfPdUAApyxT4wmDlyOtR5KtTDmkDO0zDScDjDou9YHhd9g==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - p-timeout@3.2.0: resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} engines: {node: '>=8'} @@ -8632,6 +9035,9 @@ packages: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} + partial-json@0.1.7: + resolution: {integrity: sha512-Njv/59hHaokb/hRUjce3Hdv12wd60MtM9Z5Olmn+nehe0QDAsRtRbJPvJ0Z91TusF0SuZRIvnM+S4l6EIP8leA==} + pascal-case@3.1.2: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} @@ -8685,9 +9091,6 @@ packages: path-to-regexp@3.3.0: resolution: {integrity: sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==} - path-to-regexp@6.3.0: - resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} - path-type@3.0.0: resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} engines: {node: '>=4'} @@ -8696,8 +9099,8 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - path2d@0.2.1: - resolution: {integrity: sha512-Fl2z/BHvkTNvkuBzYTpTuirHZg6wW9z8+4SND/3mDTEcYbbNKWAy21dz9D3ePNNwrrK8pqZO5vLPZ1hLF6T7XA==} + path2d@0.2.2: + resolution: {integrity: sha512-+vnG6S4dYcYxZd+CZxzXCNKdELYZSKfohrk98yajCo1PtRoDgCTrrwOvK1GT0UoAdVszagDVllQc0U1vaX4NUQ==} engines: {node: '>=6'} pathe@1.1.2: @@ -8907,6 +9310,24 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + postcss-loader@7.3.4: resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} engines: {node: '>= 14.15.0'} @@ -9154,9 +9575,6 @@ packages: resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==} engines: {node: '>=4'} - printable-characters@1.0.42: - resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} - prism-media@1.3.5: resolution: {integrity: sha512-IQdl0Q01m4LrkN1EGIE9lphov5Hy7WWlH6ulf5QdGePLlPas9p2mhgddTEHrlaXYjjFToM1/rWuwF37VF4taaA==} version: 1.3.5 @@ -9261,8 +9679,8 @@ packages: proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + psl@1.10.0: + resolution: {integrity: sha512-KSKHEbjAnpUuAUserOq0FxGXCUrzC3WniuSJhvdbs102rL55266ZcHBqLWOsG30spQMlPdpy7icATiAQehg/iA==} pstree.remy@1.1.8: resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} @@ -9516,6 +9934,10 @@ 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'} + reading-time@1.5.0: resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} @@ -9523,6 +9945,9 @@ packages: resolution: {integrity: sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==} engines: {node: '>= 0.8.0'} + readline@1.3.0: + resolution: {integrity: sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==} + rechoir@0.6.2: resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} engines: {node: '>= 0.10'} @@ -9668,6 +10093,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.2: resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} engines: {node: '>=10'} @@ -9725,21 +10153,16 @@ packages: robust-predicates@3.0.2: resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} - rollup-plugin-inject@3.0.2: - resolution: {integrity: sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==} - deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject. - - rollup-plugin-node-polyfills@0.2.1: - resolution: {integrity: sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==} - - rollup-pluginutils@2.8.2: - resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} - rollup@2.79.2: resolution: {integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==} engines: {node: '>=10.0.0'} hasBin: true + rollup@4.24.4: + resolution: {integrity: sha512-vGorVWIsWfX3xbcyAS+I047kFKapHYivmkaT63Smj77XwvLSJos6M1xGqZnBPFQFBRZDOcG1QnYEIxAvTr/HjA==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + roughjs@4.6.6: resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==} @@ -10045,9 +10468,9 @@ packages: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} - sourcemap-codec@1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - deprecated: Please use @jridgewell/sourcemap-codec instead + source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} space-separated-tokens@1.1.5: resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} @@ -10144,9 +10567,6 @@ packages: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} - stacktracey@2.1.8: - resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} - statuses@1.5.0: resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} engines: {node: '>= 0.6'} @@ -10170,10 +10590,6 @@ packages: resolution: {integrity: sha512-yhPIQXjrlt1xv7dyPQg2P17URmXbuM5pdGkpiMB3RenprfiBlvK415Lctfe0eshk90oA7/tNq7WEiMK8RSP39A==} engines: {node: '>=18'} - stoppable@1.1.0: - resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} - engines: {node: '>=4', npm: '>=6'} - stream-parser@0.3.1: resolution: {integrity: sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==} @@ -10280,6 +10696,11 @@ packages: stylis@4.3.4: resolution: {integrity: sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now==} + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + super-regex@1.0.0: resolution: {integrity: sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg==} engines: {node: '>=18'} @@ -10307,8 +10728,8 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - svelte@5.1.9: - resolution: {integrity: sha512-nzq+PPKGS2PoEWDjAcXSrKSbXmmmOAxd6dAz1IhRusUpVkFS6DMELWPyBPGwu6TpO/gsgtFXwX0M4+pAR5gzKw==} + svelte@5.1.12: + resolution: {integrity: sha512-U9BwbSybb9QAKAHg4hl61hVBk97U2QjUKmZa5++QEGoi6Nml6x6cC9KmNT1XObGawToN3DdLpdCs/Z5Yl5IXjQ==} engines: {node: '>=18'} svg-parser@2.0.4: @@ -10418,6 +10839,13 @@ packages: text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + throttleit@2.1.0: resolution: {integrity: sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==} engines: {node: '>=18'} @@ -10451,6 +10879,10 @@ packages: tinyexec@0.3.1: resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} + tinyglobby@0.2.10: + resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} + engines: {node: '>=12.0.0'} + tinyld@1.3.4: resolution: {integrity: sha512-u26CNoaInA4XpDU+8s/6Cq8xHc2T5M4fXB3ICfXPokUQoLzmPgSZU02TAkFwFMJCWTjk53gtkS8pETTreZwCqw==} engines: {node: '>= 12.10.0', npm: '>= 6.12.0', yarn: '>= 1.20.0'} @@ -10460,11 +10892,11 @@ packages: resolution: {integrity: sha512-CvvMFgecnQMyg59nOnAD5O4lV83cVj2ooDniJ3j2bYvMajqlK4wQ13k6OUHfA+J5nkInTxbSGJv2olUJIiAtJg==} engines: {node: '>= 18'} - tldts-core@6.1.58: - resolution: {integrity: sha512-dR936xmhBm7AeqHIhCWwK765gZ7dFyL+IqLSFAjJbFlUXGMLCb8i2PzlzaOuWBuplBTaBYseSb565nk/ZEM0Bg==} + tldts-core@6.1.59: + resolution: {integrity: sha512-EiYgNf275AQyVORl8HQYYe7rTVnmLb4hkWK7wAk/12Ksy5EiHpmUmTICa4GojookBPC8qkLMBKKwCmzNA47ZPQ==} - tldts-experimental@6.1.58: - resolution: {integrity: sha512-oMXXM56JFUjwcw+2Vt7NP3LQUpK3ZLdGAqSAFwGtAPWjvKK36bJ162UjsnSdFsq6nU3Wae5HYlE8N/vULPZ00g==} + tldts-experimental@6.1.59: + resolution: {integrity: sha512-blesi68v+a9ISgFoV1bCbGXoRiKCIk4Bw3tcbBwPjuUzlggK0zjsZuPC6sJ9EOJgKBiqOLqvrTiXGP5Ryc7E5Q==} tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} @@ -10513,6 +10945,13 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + treeverse@3.0.0: resolution: {integrity: sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -10530,10 +10969,6 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - true-myth@6.2.0: - resolution: {integrity: sha512-NYvzj/h2mGXmdIBmz825c/lQhpI4bzUQEEiBCAbNOVpr6aeYa1WTpJ+OmGmj1yPqbTLPKCCSi54yDnaEup504Q==} - engines: {node: 14.* || 16.* || >= 18.*} - ts-api-utils@1.4.0: resolution: {integrity: sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==} engines: {node: '>=16'} @@ -10544,6 +10979,9 @@ packages: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + ts-jest@29.2.5: resolution: {integrity: sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==} engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} @@ -10595,6 +11033,30 @@ packages: tslib@2.8.0: resolution: {integrity: sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==} + tsup@8.3.5: + resolution: {integrity: sha512-Tunf6r6m6tnZsG9GYWndg0z8dEV7fD733VBFzFJ5Vcm1FtlXB8xBD/rtrBi2a3YKEV7hHtxiZtW5EAVADoe1pA==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + + tsx@4.19.2: + resolution: {integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==} + engines: {node: '>=18.0.0'} + hasBin: true + tuf-js@2.2.1: resolution: {integrity: sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==} engines: {node: ^16.14.0 || >=18.0.0} @@ -10702,17 +11164,10 @@ packages: undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} - undici@5.28.4: - resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} - engines: {node: '>=14.0'} - undici@6.19.8: resolution: {integrity: sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==} engines: {node: '>=18.17'} - unenv-nightly@2.0.0-20241024-111401-d4156ac: - resolution: {integrity: sha512-xJO1hfY+Te+/XnfCYrCbFbRcgu6XEODND1s5wnVbaBCkuQX7JXF7fHEXPrukFE2j8EOH848P8QN19VO47XN8hw==} - unicode-canonical-property-names-ecmascript@2.0.1: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} engines: {node: '>=4'} @@ -11007,6 +11462,9 @@ packages: webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + webpack-bundle-analyzer@4.10.2: resolution: {integrity: sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==} engines: {node: '>= 10.13.0'} @@ -11053,12 +11511,6 @@ packages: webpack-cli: optional: true - webpackbar@5.0.2: - resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==} - engines: {node: '>=12'} - peerDependencies: - webpack: 3 || 4 || 5 - webpackbar@6.0.1: resolution: {integrity: sha512-TnErZpmuKdwWBdMoexjio3KKX6ZtoKHRVvLIU0A47R0VVBDtx3ZyOJDktgYixhoJokZTYTt1Z37OkO9pnGJa9Q==} engines: {node: '>=14.21.3'} @@ -11076,6 +11528,9 @@ packages: whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + which-pm-runs@1.1.0: resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} engines: {node: '>=4'} @@ -11094,12 +11549,6 @@ packages: engines: {node: ^16.13.0 || >=18.0.0} hasBin: true - whisper-turbo@0.11.0: - resolution: {integrity: sha512-h2tGY1VwNAjFsEUkn2fE5NrpyNioHLQu8CSHF2s6N3mhkvPytYSNLhqUNER5OMr8s7bLtV6aQHt4jZkSmE5B6g==} - - whisper-webgpu@0.10.0: - resolution: {integrity: sha512-zrv72GKvL9Ui5VF4vDiUI1CnNffgBrTfDGEnCa3qKDF7TqJ5FdcLRoW8KWWMN5GaKDRPloqk2+xJFQfJaXRI8Q==} - wide-align@1.1.5: resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} @@ -11117,21 +11566,6 @@ packages: wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - workerd@1.20241022.0: - resolution: {integrity: sha512-jyGXsgO9DRcJyx6Ovv7gUyDPc3UYC2i/E0p9GFUg6GUzpldw4Y93y9kOmdfsOnKZ3+lY53veSiUniiBPE6Q2NQ==} - engines: {node: '>=16'} - hasBin: true - - wrangler@3.84.0: - resolution: {integrity: sha512-EA8oh7YQmZ3kD+a5MId9reHKGgXpodmsPWMLriE5gT5YmG9is66n0AA2tyLzQZKZXmgbo6JyGxvCDPcLeb/X0w==} - engines: {node: '>=16.17.0'} - hasBin: true - peerDependencies: - '@cloudflare/workers-types': ^4.20241022.0 - peerDependenciesMeta: - '@cloudflare/workers-types': - optional: true - wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} engines: {node: '>=8'} @@ -11221,9 +11655,6 @@ packages: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} - xxhash-wasm@1.0.2: - resolution: {integrity: sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==} - y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -11291,9 +11722,6 @@ packages: resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} engines: {node: '>=18'} - youch@3.3.4: - resolution: {integrity: sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==} - youtube-dl-exec@3.0.10: resolution: {integrity: sha512-t3ih+3bn2rFYSStuVjKVHUPyPYhPvPjIPjJZAzjFb6qD8uJxgJ5GHicSwbPkezM8IVdnoKPRkZ6XuIPHCqRRZg==} engines: {node: '>= 18'} @@ -11346,10 +11774,10 @@ snapshots: '@ai-sdk/provider-utils': 1.0.22(zod@3.23.8) zod: 3.23.8 - '@ai-sdk/openai@0.0.70(zod@3.23.8)': + '@ai-sdk/openai@1.0.0-canary.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/provider': 1.0.0-canary.0 + '@ai-sdk/provider-utils': 2.0.0-canary.3(zod@3.23.8) zod: 3.23.8 '@ai-sdk/provider-utils@1.0.17(zod@3.23.8)': @@ -11370,6 +11798,15 @@ snapshots: optionalDependencies: zod: 3.23.8 + '@ai-sdk/provider-utils@2.0.0-canary.3(zod@3.23.8)': + dependencies: + '@ai-sdk/provider': 1.0.0-canary.0 + eventsource-parser: 3.0.0 + nanoid: 5.0.8 + secure-json-parse: 2.7.0 + optionalDependencies: + zod: 3.23.8 + '@ai-sdk/provider@0.0.22': dependencies: json-schema: 0.4.0 @@ -11378,6 +11815,10 @@ snapshots: dependencies: json-schema: 0.4.0 + '@ai-sdk/provider@1.0.0-canary.0': + dependencies: + json-schema: 0.4.0 + '@ai-sdk/react@0.0.70(react@18.2.0)(zod@3.23.8)': dependencies: '@ai-sdk/provider-utils': 1.0.22(zod@3.23.8) @@ -11395,13 +11836,13 @@ snapshots: transitivePeerDependencies: - zod - '@ai-sdk/svelte@0.0.57(svelte@5.1.9)(zod@3.23.8)': + '@ai-sdk/svelte@0.0.57(svelte@5.1.12)(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.1.9) + sswr: 2.1.0(svelte@5.1.12) optionalDependencies: - svelte: 5.1.9 + svelte: 5.1.12 transitivePeerDependencies: - zod @@ -11425,38 +11866,33 @@ snapshots: transitivePeerDependencies: - zod - '@algolia/autocomplete-core@1.9.3(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)(search-insights@2.17.2)': + '@algolia/autocomplete-core@1.17.6(@algolia/client-search@5.13.0)(algoliasearch@5.13.0)(search-insights@2.17.2)': dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)(search-insights@2.17.2) - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@5.12.0)(algoliasearch@5.12.0) + '@algolia/autocomplete-plugin-algolia-insights': 1.17.6(@algolia/client-search@5.13.0)(algoliasearch@5.13.0)(search-insights@2.17.2) + '@algolia/autocomplete-shared': 1.17.6(@algolia/client-search@5.13.0)(algoliasearch@5.13.0) transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - search-insights - '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)(search-insights@2.17.2)': + '@algolia/autocomplete-plugin-algolia-insights@1.17.6(@algolia/client-search@5.13.0)(algoliasearch@5.13.0)(search-insights@2.17.2)': dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@5.12.0)(algoliasearch@5.12.0) + '@algolia/autocomplete-shared': 1.17.6(@algolia/client-search@5.13.0)(algoliasearch@5.13.0) search-insights: 2.17.2 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - '@algolia/autocomplete-preset-algolia@1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)': - dependencies: - '@algolia/autocomplete-shared': 1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0) - '@algolia/client-search': 5.12.0 - algoliasearch: 5.12.0 - - '@algolia/autocomplete-shared@1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)': + '@algolia/autocomplete-preset-algolia@1.17.6(@algolia/client-search@5.13.0)(algoliasearch@5.13.0)': dependencies: - '@algolia/client-search': 5.12.0 - algoliasearch: 5.12.0 + '@algolia/autocomplete-shared': 1.17.6(@algolia/client-search@5.13.0)(algoliasearch@5.13.0) + '@algolia/client-search': 5.13.0 + algoliasearch: 5.13.0 - '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)': + '@algolia/autocomplete-shared@1.17.6(@algolia/client-search@5.13.0)(algoliasearch@5.13.0)': dependencies: - '@algolia/client-search': 5.12.0 - algoliasearch: 5.12.0 + '@algolia/client-search': 5.13.0 + algoliasearch: 5.13.0 '@algolia/cache-browser-local-storage@4.24.0': dependencies: @@ -11468,12 +11904,12 @@ snapshots: dependencies: '@algolia/cache-common': 4.24.0 - '@algolia/client-abtesting@5.12.0': + '@algolia/client-abtesting@5.13.0': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/client-common': 5.13.0 + '@algolia/requester-browser-xhr': 5.13.0 + '@algolia/requester-fetch': 5.13.0 + '@algolia/requester-node-http': 5.13.0 '@algolia/client-account@4.24.0': dependencies: @@ -11488,26 +11924,26 @@ snapshots: '@algolia/requester-common': 4.24.0 '@algolia/transporter': 4.24.0 - '@algolia/client-analytics@5.12.0': + '@algolia/client-analytics@5.13.0': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/client-common': 5.13.0 + '@algolia/requester-browser-xhr': 5.13.0 + '@algolia/requester-fetch': 5.13.0 + '@algolia/requester-node-http': 5.13.0 '@algolia/client-common@4.24.0': dependencies: '@algolia/requester-common': 4.24.0 '@algolia/transporter': 4.24.0 - '@algolia/client-common@5.12.0': {} + '@algolia/client-common@5.13.0': {} - '@algolia/client-insights@5.12.0': + '@algolia/client-insights@5.13.0': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/client-common': 5.13.0 + '@algolia/requester-browser-xhr': 5.13.0 + '@algolia/requester-fetch': 5.13.0 + '@algolia/requester-node-http': 5.13.0 '@algolia/client-personalization@4.24.0': dependencies: @@ -11515,19 +11951,19 @@ snapshots: '@algolia/requester-common': 4.24.0 '@algolia/transporter': 4.24.0 - '@algolia/client-personalization@5.12.0': + '@algolia/client-personalization@5.13.0': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/client-common': 5.13.0 + '@algolia/requester-browser-xhr': 5.13.0 + '@algolia/requester-fetch': 5.13.0 + '@algolia/requester-node-http': 5.13.0 - '@algolia/client-query-suggestions@5.12.0': + '@algolia/client-query-suggestions@5.13.0': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/client-common': 5.13.0 + '@algolia/requester-browser-xhr': 5.13.0 + '@algolia/requester-fetch': 5.13.0 + '@algolia/requester-node-http': 5.13.0 '@algolia/client-search@4.24.0': dependencies: @@ -11535,21 +11971,21 @@ snapshots: '@algolia/requester-common': 4.24.0 '@algolia/transporter': 4.24.0 - '@algolia/client-search@5.12.0': + '@algolia/client-search@5.13.0': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/client-common': 5.13.0 + '@algolia/requester-browser-xhr': 5.13.0 + '@algolia/requester-fetch': 5.13.0 + '@algolia/requester-node-http': 5.13.0 '@algolia/events@4.0.1': {} - '@algolia/ingestion@1.12.0': + '@algolia/ingestion@1.13.0': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/client-common': 5.13.0 + '@algolia/requester-browser-xhr': 5.13.0 + '@algolia/requester-fetch': 5.13.0 + '@algolia/requester-node-http': 5.13.0 '@algolia/logger-common@4.24.0': {} @@ -11557,12 +11993,12 @@ snapshots: dependencies: '@algolia/logger-common': 4.24.0 - '@algolia/monitoring@1.12.0': + '@algolia/monitoring@1.13.0': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/client-common': 5.13.0 + '@algolia/requester-browser-xhr': 5.13.0 + '@algolia/requester-fetch': 5.13.0 + '@algolia/requester-node-http': 5.13.0 '@algolia/recommend@4.24.0': dependencies: @@ -11578,34 +12014,34 @@ snapshots: '@algolia/requester-node-http': 4.24.0 '@algolia/transporter': 4.24.0 - '@algolia/recommend@5.12.0': + '@algolia/recommend@5.13.0': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/client-common': 5.13.0 + '@algolia/requester-browser-xhr': 5.13.0 + '@algolia/requester-fetch': 5.13.0 + '@algolia/requester-node-http': 5.13.0 '@algolia/requester-browser-xhr@4.24.0': dependencies: '@algolia/requester-common': 4.24.0 - '@algolia/requester-browser-xhr@5.12.0': + '@algolia/requester-browser-xhr@5.13.0': dependencies: - '@algolia/client-common': 5.12.0 + '@algolia/client-common': 5.13.0 '@algolia/requester-common@4.24.0': {} - '@algolia/requester-fetch@5.12.0': + '@algolia/requester-fetch@5.13.0': dependencies: - '@algolia/client-common': 5.12.0 + '@algolia/client-common': 5.13.0 '@algolia/requester-node-http@4.24.0': dependencies: '@algolia/requester-common': 4.24.0 - '@algolia/requester-node-http@5.12.0': + '@algolia/requester-node-http@5.13.0': dependencies: - '@algolia/client-common': 5.12.0 + '@algolia/client-common': 5.13.0 '@algolia/transporter@4.24.0': dependencies: @@ -11637,6 +12073,21 @@ snapshots: transitivePeerDependencies: - encoding + '@anush008/tokenizers-darwin-universal@0.0.0': + optional: true + + '@anush008/tokenizers-linux-x64-gnu@0.0.0': + optional: true + + '@anush008/tokenizers-win32-x64-msvc@0.0.0': + optional: true + + '@anush008/tokenizers@0.0.0': + optionalDependencies: + '@anush008/tokenizers-darwin-universal': 0.0.0 + '@anush008/tokenizers-linux-x64-gnu': 0.0.0 + '@anush008/tokenizers-win32-x64-msvc': 0.0.0 + '@babel/code-frame@7.26.2': dependencies: '@babel/helper-validator-identifier': 7.25.9 @@ -12496,7 +12947,7 @@ snapshots: '@cliqz/adblocker': 1.34.0 '@cliqz/adblocker-content': 1.34.0 playwright: 1.48.2 - tldts-experimental: 6.1.58 + tldts-experimental: 6.1.59 '@cliqz/adblocker@1.34.0': dependencies: @@ -12507,31 +12958,7 @@ snapshots: '@remusao/smaz': 1.10.0 '@types/chrome': 0.0.278 '@types/firefox-webext-browser': 120.0.4 - tldts-experimental: 6.1.58 - - '@cloudflare/kv-asset-handler@0.3.4': - dependencies: - mime: 3.0.0 - - '@cloudflare/workerd-darwin-64@1.20241022.0': - optional: true - - '@cloudflare/workerd-darwin-arm64@1.20241022.0': - optional: true - - '@cloudflare/workerd-linux-64@1.20241022.0': - optional: true - - '@cloudflare/workerd-linux-arm64@1.20241022.0': - optional: true - - '@cloudflare/workerd-windows-64@1.20241022.0': - optional: true - - '@cloudflare/workers-shared@0.7.0': - dependencies: - mime: 3.0.0 - zod: 3.23.8 + tldts-experimental: 6.1.59 '@colors/colors@1.5.0': optional: true @@ -12664,14 +13091,14 @@ snapshots: '@discoveryjs/json-ext@0.5.7': {} - '@docsearch/css@3.6.3': {} + '@docsearch/css@3.7.0': {} - '@docsearch/react@3.6.3(@algolia/client-search@5.12.0)(@types/react@18.3.12)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(search-insights@2.17.2)': + '@docsearch/react@3.7.0(@algolia/client-search@5.13.0)(@types/react@18.3.12)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(search-insights@2.17.2)': dependencies: - '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)(search-insights@2.17.2) - '@algolia/autocomplete-preset-algolia': 1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0) - '@docsearch/css': 3.6.3 - algoliasearch: 5.12.0 + '@algolia/autocomplete-core': 1.17.6(@algolia/client-search@5.13.0)(algoliasearch@5.13.0)(search-insights@2.17.2) + '@algolia/autocomplete-preset-algolia': 1.17.6(@algolia/client-search@5.13.0)(algoliasearch@5.13.0) + '@docsearch/css': 3.7.0 + algoliasearch: 5.13.0 optionalDependencies: '@types/react': 18.3.12 react: 18.2.0 @@ -12751,99 +13178,6 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/core@3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10)': - dependencies: - '@babel/core': 7.26.0 - '@babel/generator': 7.26.2 - '@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) - '@babel/preset-react': 7.25.9(@babel/core@7.26.0) - '@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.25.9 - '@docusaurus/cssnano-preset': 3.5.2 - '@docusaurus/logger': 3.5.2 - '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3) - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) - '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) - '@mdx-js/react': 3.0.1(@types/react@18.3.12)(react@18.2.0) - autoprefixer: 10.4.20(postcss@8.4.47) - babel-loader: 9.2.1(@babel/core@7.26.0)(webpack@5.96.1) - babel-plugin-dynamic-import-node: 2.3.3 - boxen: 6.2.1 - chalk: 4.1.2 - chokidar: 3.6.0 - clean-css: 5.3.3 - cli-table3: 0.6.5 - combine-promises: 1.2.0 - commander: 5.1.0 - copy-webpack-plugin: 11.0.0(webpack@5.96.1) - core-js: 3.39.0 - css-loader: 6.11.0(webpack@5.96.1) - css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.96.1) - cssnano: 6.1.2(postcss@8.4.47) - del: 6.1.1 - detect-port: 1.6.1 - escape-html: 1.0.3 - eta: 2.2.0 - eval: 0.1.8 - file-loader: 6.2.0(webpack@5.96.1) - fs-extra: 11.2.0 - html-minifier-terser: 7.2.0 - html-tags: 3.3.1 - html-webpack-plugin: 5.6.3(webpack@5.96.1) - leven: 3.1.0 - lodash: 4.17.21 - mini-css-extract-plugin: 2.9.2(webpack@5.96.1) - p-map: 4.0.0 - postcss: 8.4.47 - postcss-loader: 7.3.4(postcss@8.4.47)(typescript@5.6.3)(webpack@5.96.1) - prompts: 2.4.2 - react: 18.2.0 - react-dev-utils: 12.0.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)(webpack@5.96.1) - react-dom: 18.2.0(react@18.2.0) - react-helmet-async: 1.3.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - react-loadable: '@docusaurus/react-loadable@6.0.0(react@18.2.0)' - react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@6.0.0(react@18.2.0))(webpack@5.96.1) - react-router: 5.3.4(react@18.2.0) - react-router-config: 5.1.1(react-router@5.3.4(react@18.2.0))(react@18.2.0) - react-router-dom: 5.3.4(react@18.2.0) - rtl-detect: 1.1.2 - semver: 7.6.3 - serve-handler: 6.1.6 - shelljs: 0.8.5 - terser-webpack-plugin: 5.3.10(webpack@5.96.1) - tslib: 2.8.0 - update-notifier: 6.0.2 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.96.1))(webpack@5.96.1) - webpack: 5.96.1 - webpack-bundle-analyzer: 4.10.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - webpack-dev-server: 4.15.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)(webpack@5.96.1) - webpack-merge: 5.10.0 - webpackbar: 5.0.2(webpack@5.96.1) - transitivePeerDependencies: - - '@docusaurus/types' - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - acorn - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - '@docusaurus/core@3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: '@docusaurus/babel': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) @@ -12900,91 +13234,41 @@ snapshots: - '@swc/core' - '@swc/css' - acorn - - bufferutil - - csso - - debug - - esbuild - - eslint - - lightningcss - - supports-color - - typescript - - uglify-js - - utf-8-validate - - vue-template-compiler - - webpack-cli - - '@docusaurus/cssnano-preset@3.5.2': - dependencies: - cssnano-preset-advanced: 6.1.2(postcss@8.4.47) - postcss: 8.4.47 - postcss-sort-media-queries: 5.2.0(postcss@8.4.47) - tslib: 2.8.0 - - '@docusaurus/cssnano-preset@3.6.0': - dependencies: - cssnano-preset-advanced: 6.1.2(postcss@8.4.47) - postcss: 8.4.47 - postcss-sort-media-queries: 5.2.0(postcss@8.4.47) - tslib: 2.8.0 - - '@docusaurus/logger@3.5.2': - dependencies: - chalk: 4.1.2 - tslib: 2.8.0 - - '@docusaurus/logger@3.6.0': - dependencies: - chalk: 4.1.2 - tslib: 2.8.0 - - '@docusaurus/lqip-loader@3.5.2(webpack@5.96.1)': - dependencies: - '@docusaurus/logger': 3.5.2 - file-loader: 6.2.0(webpack@5.96.1) - lodash: 4.17.21 - sharp: 0.32.6 - tslib: 2.8.0 - transitivePeerDependencies: - - webpack - - '@docusaurus/mdx-loader@3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)': - dependencies: - '@docusaurus/logger': 3.5.2 - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(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.96.1) - fs-extra: 11.2.0 - image-size: 1.1.1 - mdast-util-mdx: 3.0.0 - mdast-util-to-string: 4.0.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - rehype-raw: 7.0.0 - remark-directive: 3.0.0 - remark-emoji: 4.0.1 - remark-frontmatter: 5.0.0 - remark-gfm: 4.0.0 - stringify-object: 3.3.0 - tslib: 2.8.0 - unified: 11.0.5 - unist-util-visit: 5.0.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.96.1))(webpack@5.96.1) - vfile: 6.0.3 - webpack: 5.96.1 - transitivePeerDependencies: - - '@docusaurus/types' - - '@swc/core' - - acorn + - bufferutil + - csso + - debug - esbuild + - eslint + - lightningcss - supports-color - typescript - uglify-js + - utf-8-validate + - vue-template-compiler - webpack-cli + '@docusaurus/cssnano-preset@3.6.0': + dependencies: + cssnano-preset-advanced: 6.1.2(postcss@8.4.47) + postcss: 8.4.47 + postcss-sort-media-queries: 5.2.0(postcss@8.4.47) + tslib: 2.8.0 + + '@docusaurus/logger@3.6.0': + dependencies: + chalk: 4.1.2 + tslib: 2.8.0 + + '@docusaurus/lqip-loader@3.6.0(webpack@5.96.1)': + dependencies: + '@docusaurus/logger': 3.6.0 + file-loader: 6.2.0(webpack@5.96.1) + lodash: 4.17.21 + sharp: 0.32.6 + tslib: 2.8.0 + transitivePeerDependencies: + - webpack + '@docusaurus/mdx-loader@3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)': dependencies: '@docusaurus/logger': 3.6.0 @@ -13023,25 +13307,6 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/module-type-aliases@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@docusaurus/types': 3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@types/history': 4.7.11 - '@types/react': 18.3.12 - '@types/react-router-config': 5.0.11 - '@types/react-router-dom': 5.3.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-helmet-async: 2.0.5(react@18.2.0) - react-loadable: '@docusaurus/react-loadable@6.0.0(react@18.2.0)' - transitivePeerDependencies: - - '@swc/core' - - acorn - - esbuild - - supports-color - - uglify-js - - webpack-cli - '@docusaurus/module-type-aliases@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@docusaurus/types': 3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -13061,17 +13326,17 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/plugin-content-blog@3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10)': - dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/logger': 3.5.2 - '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3) - '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3) - '@docusaurus/types': 3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) - '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) + '@docusaurus/plugin-content-blog@3.6.0(@docusaurus/plugin-content-docs@3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10)': + dependencies: + '@docusaurus/core': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/logger': 3.6.0 + '@docusaurus/mdx-loader': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3) + '@docusaurus/plugin-content-docs': 3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/theme-common': 3.6.0(@docusaurus/plugin-content-docs@3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3) + '@docusaurus/types': 3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/utils': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) + '@docusaurus/utils-common': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@docusaurus/utils-validation': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) cheerio: 1.0.0-rc.12 feed: 4.2.2 fs-extra: 11.2.0 @@ -13085,6 +13350,7 @@ snapshots: utility-types: 3.11.0 webpack: 5.96.1 transitivePeerDependencies: + - '@docusaurus/faster' - '@mdx-js/react' - '@parcel/css' - '@rspack/core' @@ -13104,17 +13370,17 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10)': - dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/logger': 3.5.2 - '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3) - '@docusaurus/module-type-aliases': 3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3) - '@docusaurus/types': 3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) - '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) + '@docusaurus/plugin-content-docs@3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10)': + dependencies: + '@docusaurus/core': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/logger': 3.6.0 + '@docusaurus/mdx-loader': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3) + '@docusaurus/module-type-aliases': 3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/theme-common': 3.6.0(@docusaurus/plugin-content-docs@3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3) + '@docusaurus/types': 3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/utils': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) + '@docusaurus/utils-common': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@docusaurus/utils-validation': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) '@types/react-router-config': 5.0.11 combine-promises: 1.2.0 fs-extra: 11.2.0 @@ -13126,6 +13392,7 @@ snapshots: utility-types: 3.11.0 webpack: 5.96.1 transitivePeerDependencies: + - '@docusaurus/faster' - '@mdx-js/react' - '@parcel/css' - '@rspack/core' @@ -13145,19 +13412,20 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-content-pages@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@docusaurus/plugin-content-pages@3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3) - '@docusaurus/types': 3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) + '@docusaurus/core': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/mdx-loader': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3) + '@docusaurus/types': 3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/utils': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) + '@docusaurus/utils-validation': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) fs-extra: 11.2.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) tslib: 2.8.0 webpack: 5.96.1 transitivePeerDependencies: + - '@docusaurus/faster' - '@mdx-js/react' - '@parcel/css' - '@rspack/core' @@ -13177,17 +13445,18 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-debug@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@docusaurus/plugin-debug@3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/types': 3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) + '@docusaurus/core': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/types': 3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/utils': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) fs-extra: 11.2.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-json-view-lite: 1.5.0(react@18.2.0) tslib: 2.8.0 transitivePeerDependencies: + - '@docusaurus/faster' - '@mdx-js/react' - '@parcel/css' - '@rspack/core' @@ -13207,15 +13476,16 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-google-analytics@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@docusaurus/plugin-google-analytics@3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/types': 3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) + '@docusaurus/core': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/types': 3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/utils-validation': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) tslib: 2.8.0 transitivePeerDependencies: + - '@docusaurus/faster' - '@mdx-js/react' - '@parcel/css' - '@rspack/core' @@ -13235,16 +13505,17 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-google-gtag@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@docusaurus/plugin-google-gtag@3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/types': 3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) + '@docusaurus/core': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/types': 3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/utils-validation': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) '@types/gtag.js': 0.0.12 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) tslib: 2.8.0 transitivePeerDependencies: + - '@docusaurus/faster' - '@mdx-js/react' - '@parcel/css' - '@rspack/core' @@ -13264,15 +13535,16 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-google-tag-manager@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@docusaurus/plugin-google-tag-manager@3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/types': 3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) + '@docusaurus/core': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/types': 3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/utils-validation': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) tslib: 2.8.0 transitivePeerDependencies: + - '@docusaurus/faster' - '@mdx-js/react' - '@parcel/css' - '@rspack/core' @@ -13292,14 +13564,14 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-ideal-image@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(prop-types@15.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@docusaurus/plugin-ideal-image@3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(prop-types@15.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/lqip-loader': 3.5.2(webpack@5.96.1) + '@docusaurus/core': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/lqip-loader': 3.6.0(webpack@5.96.1) '@docusaurus/responsive-loader': 1.7.0(sharp@0.32.6) - '@docusaurus/theme-translations': 3.5.2 - '@docusaurus/types': 3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) + '@docusaurus/theme-translations': 3.6.0 + '@docusaurus/types': 3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/utils-validation': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) '@slorber/react-ideal-image': 0.0.12(prop-types@15.8.1)(react-waypoint@10.3.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -13308,6 +13580,7 @@ snapshots: tslib: 2.8.0 webpack: 5.96.1 transitivePeerDependencies: + - '@docusaurus/faster' - '@mdx-js/react' - '@parcel/css' - '@rspack/core' @@ -13328,20 +13601,21 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-sitemap@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@docusaurus/plugin-sitemap@3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/logger': 3.5.2 - '@docusaurus/types': 3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) - '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) + '@docusaurus/core': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/logger': 3.6.0 + '@docusaurus/types': 3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/utils': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) + '@docusaurus/utils-common': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@docusaurus/utils-validation': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) fs-extra: 11.2.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) sitemap: 7.1.2 tslib: 2.8.0 transitivePeerDependencies: + - '@docusaurus/faster' - '@mdx-js/react' - '@parcel/css' - '@rspack/core' @@ -13361,25 +13635,26 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/preset-classic@3.5.2(@algolia/client-search@5.12.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(search-insights@2.17.2)(typescript@5.6.3)(utf-8-validate@5.0.10)': - dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/plugin-content-blog': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/plugin-content-pages': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/plugin-debug': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/plugin-google-analytics': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/plugin-google-gtag': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/plugin-google-tag-manager': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/plugin-sitemap': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/theme-classic': 3.5.2(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3) - '@docusaurus/theme-search-algolia': 3.5.2(@algolia/client-search@5.12.0)(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(search-insights@2.17.2)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/types': 3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/preset-classic@3.6.0(@algolia/client-search@5.13.0)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(search-insights@2.17.2)(typescript@5.6.3)(utf-8-validate@5.0.10)': + dependencies: + '@docusaurus/core': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/plugin-content-blog': 3.6.0(@docusaurus/plugin-content-docs@3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/plugin-content-docs': 3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/plugin-content-pages': 3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/plugin-debug': 3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/plugin-google-analytics': 3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/plugin-google-gtag': 3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/plugin-google-tag-manager': 3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/plugin-sitemap': 3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/theme-classic': 3.6.0(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/theme-common': 3.6.0(@docusaurus/plugin-content-docs@3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3) + '@docusaurus/theme-search-algolia': 3.6.0(@algolia/client-search@5.13.0)(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(search-insights@2.17.2)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/types': 3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - '@algolia/client-search' + - '@docusaurus/faster' - '@mdx-js/react' - '@parcel/css' - '@rspack/core' @@ -13412,24 +13687,25 @@ snapshots: optionalDependencies: sharp: 0.32.6 - '@docusaurus/theme-classic@3.5.2(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10)': - dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3) - '@docusaurus/module-type-aliases': 3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@docusaurus/plugin-content-blog': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/plugin-content-pages': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3) - '@docusaurus/theme-translations': 3.5.2 - '@docusaurus/types': 3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) - '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) + '@docusaurus/theme-classic@3.6.0(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10)': + dependencies: + '@docusaurus/core': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/logger': 3.6.0 + '@docusaurus/mdx-loader': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3) + '@docusaurus/module-type-aliases': 3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/plugin-content-blog': 3.6.0(@docusaurus/plugin-content-docs@3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/plugin-content-docs': 3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/plugin-content-pages': 3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/theme-common': 3.6.0(@docusaurus/plugin-content-docs@3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3) + '@docusaurus/theme-translations': 3.6.0 + '@docusaurus/types': 3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/utils': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) + '@docusaurus/utils-common': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@docusaurus/utils-validation': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) '@mdx-js/react': 3.0.1(@types/react@18.3.12)(react@18.2.0) clsx: 2.1.0 copy-text-to-clipboard: 3.2.0 - infima: 0.2.0-alpha.44 + infima: 0.2.0-alpha.45 lodash: 4.17.21 nprogress: 0.2.0 postcss: 8.4.47 @@ -13442,6 +13718,7 @@ snapshots: tslib: 2.8.0 utility-types: 3.11.0 transitivePeerDependencies: + - '@docusaurus/faster' - '@parcel/css' - '@rspack/core' - '@swc/core' @@ -13461,38 +13738,11 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/theme-common@3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)': - dependencies: - '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3) - '@docusaurus/module-type-aliases': 3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) - '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) - '@types/history': 4.7.11 - '@types/react': 18.3.12 - '@types/react-router-config': 5.0.11 - clsx: 2.1.0 - parse-numeric-range: 1.3.0 - prism-react-renderer: 2.3.1(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - tslib: 2.8.0 - utility-types: 3.11.0 - transitivePeerDependencies: - - '@docusaurus/types' - - '@swc/core' - - acorn - - esbuild - - supports-color - - typescript - - uglify-js - - webpack-cli - - '@docusaurus/theme-common@3.6.0(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)': + '@docusaurus/theme-common@3.6.0(@docusaurus/plugin-content-docs@3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)': dependencies: '@docusaurus/mdx-loader': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3) '@docusaurus/module-type-aliases': 3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/plugin-content-docs': 3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) '@docusaurus/utils': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) '@docusaurus/utils-common': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) '@types/history': 4.7.11 @@ -13515,11 +13765,11 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/theme-mermaid@3.6.0(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@docusaurus/theme-mermaid@3.6.0(@docusaurus/plugin-content-docs@3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: '@docusaurus/core': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) '@docusaurus/module-type-aliases': 3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@docusaurus/theme-common': 3.6.0(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3) + '@docusaurus/theme-common': 3.6.0(@docusaurus/plugin-content-docs@3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3) '@docusaurus/types': 3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@docusaurus/utils-validation': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) mermaid: 11.4.0 @@ -13548,16 +13798,16 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/theme-search-algolia@3.5.2(@algolia/client-search@5.12.0)(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(search-insights@2.17.2)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@docusaurus/theme-search-algolia@3.6.0(@algolia/client-search@5.13.0)(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(@types/react@18.3.12)(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(search-insights@2.17.2)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: - '@docsearch/react': 3.6.3(@algolia/client-search@5.12.0)(@types/react@18.3.12)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(search-insights@2.17.2) - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/logger': 3.5.2 - '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3) - '@docusaurus/theme-translations': 3.5.2 - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) + '@docsearch/react': 3.7.0(@algolia/client-search@5.13.0)(@types/react@18.3.12)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(search-insights@2.17.2) + '@docusaurus/core': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/logger': 3.6.0 + '@docusaurus/plugin-content-docs': 3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/theme-common': 3.6.0(@docusaurus/plugin-content-docs@3.6.0(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3) + '@docusaurus/theme-translations': 3.6.0 + '@docusaurus/utils': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) + '@docusaurus/utils-validation': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) algoliasearch: 4.24.0 algoliasearch-helper: 3.22.5(algoliasearch@4.24.0) clsx: 2.1.0 @@ -13570,6 +13820,7 @@ snapshots: utility-types: 3.11.0 transitivePeerDependencies: - '@algolia/client-search' + - '@docusaurus/faster' - '@docusaurus/types' - '@mdx-js/react' - '@parcel/css' @@ -13592,32 +13843,11 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/theme-translations@3.5.2': + '@docusaurus/theme-translations@3.6.0': dependencies: fs-extra: 11.2.0 tslib: 2.8.0 - '@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': - dependencies: - '@mdx-js/mdx': 3.1.0(acorn@8.14.0) - '@types/history': 4.7.11 - '@types/react': 18.3.12 - commander: 5.1.0 - joi: 17.13.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-helmet-async: 1.3.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - utility-types: 3.11.0 - webpack: 5.96.1 - webpack-merge: 5.10.0 - transitivePeerDependencies: - - '@swc/core' - - acorn - - esbuild - - supports-color - - uglify-js - - webpack-cli - '@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@mdx-js/mdx': 3.1.0(acorn@8.14.0) @@ -13639,37 +13869,12 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-common@3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))': - dependencies: - tslib: 2.8.0 - optionalDependencies: - '@docusaurus/types': 3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@docusaurus/utils-common@3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))': dependencies: tslib: 2.8.0 optionalDependencies: '@docusaurus/types': 3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@docusaurus/utils-validation@3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3)': - dependencies: - '@docusaurus/logger': 3.5.2 - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3) - '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) - fs-extra: 11.2.0 - joi: 17.13.3 - js-yaml: 4.1.0 - lodash: 4.17.21 - tslib: 2.8.0 - transitivePeerDependencies: - - '@docusaurus/types' - - '@swc/core' - - esbuild - - supports-color - - typescript - - uglify-js - - webpack-cli - '@docusaurus/utils-validation@3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3)': dependencies: '@docusaurus/logger': 3.6.0 @@ -13689,38 +13894,6 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils@3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3)': - dependencies: - '@docusaurus/logger': 3.5.2 - '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) - '@svgr/webpack': 8.1.0(typescript@5.6.3) - escape-string-regexp: 4.0.0 - file-loader: 6.2.0(webpack@5.96.1) - fs-extra: 11.2.0 - github-slugger: 1.5.0 - globby: 11.1.0 - gray-matter: 4.0.3 - jiti: 1.21.6 - js-yaml: 4.1.0 - lodash: 4.17.21 - micromatch: 4.0.8 - prompts: 2.4.2 - resolve-pathname: 3.0.0 - shelljs: 0.8.5 - tslib: 2.8.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.96.1))(webpack@5.96.1) - utility-types: 3.11.0 - webpack: 5.96.1 - optionalDependencies: - '@docusaurus/types': 3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - transitivePeerDependencies: - - '@swc/core' - - esbuild - - supports-color - - typescript - - uglify-js - - webpack-cli - '@docusaurus/utils@3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.6.3)': dependencies: '@docusaurus/logger': 3.6.0 @@ -13772,80 +13945,148 @@ snapshots: dependencies: tslib: 2.8.0 - '@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.17.19)': - dependencies: - esbuild: 0.17.19 + '@esbuild/aix-ppc64@0.23.1': + optional: true - '@esbuild-plugins/node-modules-polyfill@0.2.2(esbuild@0.17.19)': - dependencies: - esbuild: 0.17.19 - escape-string-regexp: 4.0.0 - rollup-plugin-node-polyfills: 0.2.1 + '@esbuild/aix-ppc64@0.24.0': + optional: true + + '@esbuild/android-arm64@0.23.1': + optional: true + + '@esbuild/android-arm64@0.24.0': + optional: true + + '@esbuild/android-arm@0.23.1': + optional: true + + '@esbuild/android-arm@0.24.0': + optional: true + + '@esbuild/android-x64@0.23.1': + optional: true + + '@esbuild/android-x64@0.24.0': + optional: true + + '@esbuild/darwin-arm64@0.23.1': + optional: true + + '@esbuild/darwin-arm64@0.24.0': + optional: true + + '@esbuild/darwin-x64@0.23.1': + optional: true + + '@esbuild/darwin-x64@0.24.0': + optional: true + + '@esbuild/freebsd-arm64@0.23.1': + optional: true + + '@esbuild/freebsd-arm64@0.24.0': + optional: true + + '@esbuild/freebsd-x64@0.23.1': + optional: true + + '@esbuild/freebsd-x64@0.24.0': + optional: true + + '@esbuild/linux-arm64@0.23.1': + optional: true + + '@esbuild/linux-arm64@0.24.0': + optional: true + + '@esbuild/linux-arm@0.23.1': + optional: true + + '@esbuild/linux-arm@0.24.0': + optional: true + + '@esbuild/linux-ia32@0.23.1': + optional: true + + '@esbuild/linux-ia32@0.24.0': + optional: true + + '@esbuild/linux-loong64@0.23.1': + optional: true + + '@esbuild/linux-loong64@0.24.0': + optional: true + + '@esbuild/linux-mips64el@0.23.1': + optional: true + + '@esbuild/linux-mips64el@0.24.0': + optional: true - '@esbuild/android-arm64@0.17.19': + '@esbuild/linux-ppc64@0.23.1': optional: true - '@esbuild/android-arm@0.17.19': + '@esbuild/linux-ppc64@0.24.0': optional: true - '@esbuild/android-x64@0.17.19': + '@esbuild/linux-riscv64@0.23.1': optional: true - '@esbuild/darwin-arm64@0.17.19': + '@esbuild/linux-riscv64@0.24.0': optional: true - '@esbuild/darwin-x64@0.17.19': + '@esbuild/linux-s390x@0.23.1': optional: true - '@esbuild/freebsd-arm64@0.17.19': + '@esbuild/linux-s390x@0.24.0': optional: true - '@esbuild/freebsd-x64@0.17.19': + '@esbuild/linux-x64@0.23.1': optional: true - '@esbuild/linux-arm64@0.17.19': + '@esbuild/linux-x64@0.24.0': optional: true - '@esbuild/linux-arm@0.17.19': + '@esbuild/netbsd-x64@0.23.1': optional: true - '@esbuild/linux-ia32@0.17.19': + '@esbuild/netbsd-x64@0.24.0': optional: true - '@esbuild/linux-loong64@0.17.19': + '@esbuild/openbsd-arm64@0.23.1': optional: true - '@esbuild/linux-mips64el@0.17.19': + '@esbuild/openbsd-arm64@0.24.0': optional: true - '@esbuild/linux-ppc64@0.17.19': + '@esbuild/openbsd-x64@0.23.1': optional: true - '@esbuild/linux-riscv64@0.17.19': + '@esbuild/openbsd-x64@0.24.0': optional: true - '@esbuild/linux-s390x@0.17.19': + '@esbuild/sunos-x64@0.23.1': optional: true - '@esbuild/linux-x64@0.17.19': + '@esbuild/sunos-x64@0.24.0': optional: true - '@esbuild/netbsd-x64@0.17.19': + '@esbuild/win32-arm64@0.23.1': optional: true - '@esbuild/openbsd-x64@0.17.19': + '@esbuild/win32-arm64@0.24.0': optional: true - '@esbuild/sunos-x64@0.17.19': + '@esbuild/win32-ia32@0.23.1': optional: true - '@esbuild/win32-arm64@0.17.19': + '@esbuild/win32-ia32@0.24.0': optional: true - '@esbuild/win32-ia32@0.17.19': + '@esbuild/win32-x64@0.23.1': optional: true - '@esbuild/win32-x64@0.17.19': + '@esbuild/win32-x64@0.24.0': optional: true '@eslint-community/eslint-utils@4.4.1(eslint@9.13.0(jiti@1.21.6))': @@ -13889,8 +14130,6 @@ snapshots: dependencies: levn: 0.4.1 - '@fastify/busboy@2.1.1': {} - '@google-cloud/vertexai@1.9.0(encoding@0.1.13)': dependencies: google-auth-library: 9.14.2(encoding@0.1.13) @@ -13909,7 +14148,7 @@ snapshots: '@huggingface/transformers@3.0.1': dependencies: '@huggingface/jinja': 0.3.2 - onnxruntime-node: 1.19.2 + onnxruntime-node: 1.20.0 onnxruntime-web: 1.21.0-dev.20241024-d9ca84ef96 sharp: 0.33.5 @@ -14248,7 +14487,7 @@ snapshots: '@npmcli/arborist': 7.5.4 '@npmcli/package-json': 5.2.0 '@npmcli/run-script': 8.1.0 - '@nx/devkit': 20.0.7(nx@20.0.7) + '@nx/devkit': 20.0.11(nx@20.0.11) '@octokit/plugin-enterprise-rest': 6.0.1 '@octokit/rest': 19.0.11(encoding@0.1.13) aproba: 2.0.0 @@ -14287,7 +14526,7 @@ snapshots: npm-package-arg: 11.0.2 npm-packlist: 8.0.2 npm-registry-fetch: 17.1.0 - nx: 20.0.7 + nx: 20.0.11 p-map: 4.0.0 p-map-series: 2.1.0 p-queue: 6.6.2 @@ -14569,51 +14808,51 @@ snapshots: - bluebird - supports-color - '@nx/devkit@20.0.7(nx@20.0.7)': + '@nx/devkit@20.0.11(nx@20.0.11)': dependencies: ejs: 3.1.10 enquirer: 2.3.6 ignore: 5.3.2 minimatch: 9.0.3 - nx: 20.0.7 + nx: 20.0.11 semver: 7.6.3 tmp: 0.2.3 tslib: 2.8.0 yargs-parser: 21.1.1 - '@nx/nx-darwin-arm64@20.0.7': + '@nx/nx-darwin-arm64@20.0.11': optional: true - '@nx/nx-darwin-x64@20.0.7': + '@nx/nx-darwin-x64@20.0.11': optional: true - '@nx/nx-freebsd-x64@20.0.7': + '@nx/nx-freebsd-x64@20.0.11': optional: true - '@nx/nx-linux-arm-gnueabihf@20.0.7': + '@nx/nx-linux-arm-gnueabihf@20.0.11': optional: true - '@nx/nx-linux-arm64-gnu@20.0.7': + '@nx/nx-linux-arm64-gnu@20.0.11': optional: true - '@nx/nx-linux-arm64-musl@20.0.7': + '@nx/nx-linux-arm64-musl@20.0.11': optional: true - '@nx/nx-linux-x64-gnu@20.0.7': + '@nx/nx-linux-x64-gnu@20.0.11': optional: true - '@nx/nx-linux-x64-musl@20.0.7': + '@nx/nx-linux-x64-musl@20.0.11': optional: true - '@nx/nx-win32-arm64-msvc@20.0.7': + '@nx/nx-win32-arm64-msvc@20.0.11': optional: true - '@nx/nx-win32-x64-msvc@20.0.7': + '@nx/nx-win32-x64-msvc@20.0.11': optional: true '@octokit/app@15.1.0': dependencies: - '@octokit/auth-app': 7.1.1 + '@octokit/auth-app': 7.1.2 '@octokit/auth-unauthenticated': 6.1.0 '@octokit/core': 6.1.2 '@octokit/oauth-app': 7.1.3 @@ -14621,14 +14860,14 @@ snapshots: '@octokit/types': 13.6.1 '@octokit/webhooks': 13.3.0 - '@octokit/auth-app@7.1.1': + '@octokit/auth-app@7.1.2': dependencies: '@octokit/auth-oauth-app': 8.1.1 '@octokit/auth-oauth-user': 5.1.1 '@octokit/request': 9.1.3 '@octokit/request-error': 6.1.5 '@octokit/types': 13.6.1 - lru-cache: 10.4.3 + lru-cache: '@wolfy1339/lru-cache@11.0.2-patch.1' universal-github-app-jwt: 2.2.0 universal-user-agent: 7.0.2 @@ -15031,6 +15270,12 @@ snapshots: optionalDependencies: rollup: 2.79.2 + '@rollup/plugin-json@6.1.0(rollup@4.24.4)': + dependencies: + '@rollup/pluginutils': 5.1.3(rollup@4.24.4) + optionalDependencies: + rollup: 4.24.4 + '@rollup/plugin-node-resolve@15.3.0(rollup@2.79.2)': dependencies: '@rollup/pluginutils': 5.1.3(rollup@2.79.2) @@ -15071,6 +15316,68 @@ snapshots: optionalDependencies: rollup: 2.79.2 + '@rollup/pluginutils@5.1.3(rollup@4.24.4)': + dependencies: + '@types/estree': 1.0.6 + estree-walker: 2.0.2 + picomatch: 4.0.2 + optionalDependencies: + rollup: 4.24.4 + + '@rollup/rollup-android-arm-eabi@4.24.4': + optional: true + + '@rollup/rollup-android-arm64@4.24.4': + optional: true + + '@rollup/rollup-darwin-arm64@4.24.4': + optional: true + + '@rollup/rollup-darwin-x64@4.24.4': + optional: true + + '@rollup/rollup-freebsd-arm64@4.24.4': + optional: true + + '@rollup/rollup-freebsd-x64@4.24.4': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.24.4': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.24.4': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.24.4': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.24.4': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.24.4': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.24.4': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.24.4': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.24.4': + optional: true + + '@rollup/rollup-linux-x64-musl@4.24.4': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.24.4': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.24.4': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.24.4': + optional: true + '@sapphire/async-queue@1.5.4': {} '@sapphire/shapeshift@4.0.0': @@ -15749,14 +16056,14 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: '@types/node': 22.8.4 - '@types/qs': 6.9.16 + '@types/qs': 6.9.17 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 '@types/express-serve-static-core@5.0.1': dependencies: '@types/node': 22.8.4 - '@types/qs': 6.9.16 + '@types/qs': 6.9.17 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -15764,14 +16071,14 @@ snapshots: dependencies: '@types/body-parser': 1.19.5 '@types/express-serve-static-core': 4.19.6 - '@types/qs': 6.9.16 + '@types/qs': 6.9.17 '@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.1 - '@types/qs': 6.9.16 + '@types/qs': 6.9.17 '@types/serve-static': 1.15.7 '@types/filesystem@0.0.36': @@ -15889,7 +16196,7 @@ snapshots: '@types/prop-types@15.7.13': {} - '@types/qs@6.9.16': {} + '@types/qs@6.9.17': {} '@types/range-parser@1.2.7': {} @@ -15919,8 +16226,6 @@ snapshots: '@types/retry@0.12.0': {} - '@types/retry@0.12.1': {} - '@types/sax@1.2.7': dependencies: '@types/node': 22.8.4 @@ -16126,89 +16431,91 @@ snapshots: '@vue/shared@3.5.12': {} - '@webassemblyjs/ast@1.12.1': + '@webassemblyjs/ast@1.14.1': dependencies: - '@webassemblyjs/helper-numbers': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/helper-numbers': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/floating-point-hex-parser@1.11.6': {} + '@webassemblyjs/floating-point-hex-parser@1.13.2': {} - '@webassemblyjs/helper-api-error@1.11.6': {} + '@webassemblyjs/helper-api-error@1.13.2': {} - '@webassemblyjs/helper-buffer@1.12.1': {} + '@webassemblyjs/helper-buffer@1.14.1': {} - '@webassemblyjs/helper-numbers@1.11.6': + '@webassemblyjs/helper-numbers@1.13.2': dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.11.6 - '@webassemblyjs/helper-api-error': 1.11.6 + '@webassemblyjs/floating-point-hex-parser': 1.13.2 + '@webassemblyjs/helper-api-error': 1.13.2 '@xtuc/long': 4.2.2 - '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} + '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} - '@webassemblyjs/helper-wasm-section@1.12.1': + '@webassemblyjs/helper-wasm-section@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/wasm-gen': 1.14.1 - '@webassemblyjs/ieee754@1.11.6': + '@webassemblyjs/ieee754@1.13.2': dependencies: '@xtuc/ieee754': 1.2.0 - '@webassemblyjs/leb128@1.11.6': + '@webassemblyjs/leb128@1.13.2': dependencies: '@xtuc/long': 4.2.2 - '@webassemblyjs/utf8@1.11.6': {} + '@webassemblyjs/utf8@1.13.2': {} - '@webassemblyjs/wasm-edit@1.12.1': + '@webassemblyjs/wasm-edit@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/helper-wasm-section': 1.12.1 - '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/wasm-opt': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - '@webassemblyjs/wast-printer': 1.12.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/helper-wasm-section': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-opt': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + '@webassemblyjs/wast-printer': 1.14.1 - '@webassemblyjs/wasm-gen@1.12.1': + '@webassemblyjs/wasm-gen@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 - '@webassemblyjs/wasm-opt@1.12.1': + '@webassemblyjs/wasm-opt@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 - '@webassemblyjs/wasm-parser@1.12.1': + '@webassemblyjs/wasm-parser@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-api-error': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-api-error': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 - '@webassemblyjs/wast-printer@1.12.1': + '@webassemblyjs/wast-printer@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/ast': 1.14.1 '@xtuc/long': 4.2.2 + '@wolfy1339/lru-cache@11.0.2-patch.1': {} + '@xtuc/ieee754@1.2.0': {} '@xtuc/long@4.2.2': {} '@yarnpkg/lockfile@1.1.0': {} - '@yarnpkg/parsers@3.0.0-rc.46': + '@yarnpkg/parsers@3.0.2': dependencies: js-yaml: 3.14.1 tslib: 2.8.0 @@ -16284,13 +16591,13 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 - ai@3.4.32(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))(react@18.2.0)(sswr@2.1.0(svelte@5.1.9))(svelte@5.1.9)(vue@3.5.12(typescript@5.6.3))(zod@3.23.8): + ai@3.4.33(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))(react@18.2.0)(sswr@2.1.0(svelte@5.1.12))(svelte@5.1.12)(vue@3.5.12(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.2.0)(zod@3.23.8) '@ai-sdk/solid': 0.0.54(zod@3.23.8) - '@ai-sdk/svelte': 0.0.57(svelte@5.1.9)(zod@3.23.8) + '@ai-sdk/svelte': 0.0.57(svelte@5.1.12)(zod@3.23.8) '@ai-sdk/ui-utils': 0.0.50(zod@3.23.8) '@ai-sdk/vue': 0.0.59(vue@3.5.12(typescript@5.6.3))(zod@3.23.8) '@opentelemetry/api': 1.9.0 @@ -16302,8 +16609,8 @@ snapshots: optionalDependencies: openai: 4.69.0(encoding@0.1.13)(zod@3.23.8) react: 18.2.0 - sswr: 2.1.0(svelte@5.1.9) - svelte: 5.1.9 + sswr: 2.1.0(svelte@5.1.12) + svelte: 5.1.12 zod: 3.23.8 transitivePeerDependencies: - solid-js @@ -16361,21 +16668,21 @@ snapshots: '@algolia/requester-node-http': 4.24.0 '@algolia/transporter': 4.24.0 - algoliasearch@5.12.0: - dependencies: - '@algolia/client-abtesting': 5.12.0 - '@algolia/client-analytics': 5.12.0 - '@algolia/client-common': 5.12.0 - '@algolia/client-insights': 5.12.0 - '@algolia/client-personalization': 5.12.0 - '@algolia/client-query-suggestions': 5.12.0 - '@algolia/client-search': 5.12.0 - '@algolia/ingestion': 1.12.0 - '@algolia/monitoring': 1.12.0 - '@algolia/recommend': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + algoliasearch@5.13.0: + dependencies: + '@algolia/client-abtesting': 5.13.0 + '@algolia/client-analytics': 5.13.0 + '@algolia/client-common': 5.13.0 + '@algolia/client-insights': 5.13.0 + '@algolia/client-personalization': 5.13.0 + '@algolia/client-query-suggestions': 5.13.0 + '@algolia/client-search': 5.13.0 + '@algolia/ingestion': 1.13.0 + '@algolia/monitoring': 1.13.0 + '@algolia/recommend': 5.13.0 + '@algolia/requester-browser-xhr': 5.13.0 + '@algolia/requester-fetch': 5.13.0 + '@algolia/requester-node-http': 5.13.0 amp-message@0.1.2: dependencies: @@ -16423,6 +16730,8 @@ snapshots: - encoding - supports-color + any-promise@1.3.0: {} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -16470,10 +16779,6 @@ snapshots: arrify@2.0.1: {} - as-table@1.0.55: - dependencies: - printable-characters: 1.0.42 - asn1@0.2.6: dependencies: safer-buffer: 2.1.2 @@ -16509,7 +16814,7 @@ snapshots: autoprefixer@10.4.20(postcss@8.4.47): dependencies: browserslist: 4.24.2 - caniuse-lite: 1.0.30001677 + caniuse-lite: 1.0.30001678 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -16723,8 +17028,6 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - blake3-wasm@2.1.5: {} - blessed@0.1.81: {} bn.js@5.2.1: {} @@ -16800,8 +17103,8 @@ snapshots: browserslist@4.24.2: dependencies: - caniuse-lite: 1.0.30001677 - electron-to-chromium: 1.5.50 + caniuse-lite: 1.0.30001678 + electron-to-chromium: 1.5.55 node-releases: 2.0.18 update-browserslist-db: 1.1.1(browserslist@4.24.2) @@ -16849,6 +17152,11 @@ snapshots: node-gyp-build: 4.8.2 optional: true + bundle-require@5.0.0(esbuild@0.24.0): + dependencies: + esbuild: 0.24.0 + load-tsconfig: 0.2.5 + busboy@1.6.0: dependencies: streamsearch: 1.1.0 @@ -16859,6 +17167,8 @@ snapshots: bytes@3.1.2: {} + cac@6.7.14: {} + cacache@18.0.4: dependencies: '@npmcli/fs': 3.1.1 @@ -16916,11 +17226,11 @@ snapshots: caniuse-api@3.0.0: dependencies: browserslist: 4.24.2 - caniuse-lite: 1.0.30001677 + caniuse-lite: 1.0.30001678 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001677: {} + caniuse-lite@1.0.30001678: {} canvas@2.11.2(encoding@0.1.13): dependencies: @@ -16932,13 +17242,6 @@ snapshots: - supports-color optional: true - capnp-ts@0.7.0: - dependencies: - debug: 4.3.7(supports-color@5.5.0) - tslib: 2.8.0 - transitivePeerDependencies: - - supports-color - capsolver-npm@2.0.2: dependencies: axios: 0.27.2 @@ -17028,6 +17331,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chokidar@4.0.1: + dependencies: + readdirp: 4.0.2 + chownr@1.1.4: {} chownr@2.0.0: {} @@ -17183,8 +17490,6 @@ snapshots: dependencies: delayed-stream: 1.0.0 - comlink@4.3.1: {} - comma-separated-tokens@1.0.8: {} comma-separated-tokens@2.0.3: {} @@ -17199,6 +17504,8 @@ snapshots: commander@2.20.3: {} + commander@4.1.1: {} + commander@5.1.0: {} commander@7.2.0: {} @@ -17248,6 +17555,16 @@ snapshots: readable-stream: 3.6.2 typedarray: 0.0.6 + concurrently@9.1.0: + dependencies: + chalk: 4.1.2 + lodash: 4.17.21 + rxjs: 7.8.1 + shell-quote: 1.8.1 + supports-color: 8.1.1 + tree-kill: 1.2.2 + yargs: 17.7.2 + confbox@0.1.8: {} config-chain@1.1.13: @@ -17265,8 +17582,6 @@ snapshots: connect-history-api-fallback@2.0.0: {} - consola@2.15.3: {} - consola@3.2.3: {} console-control-strings@1.1.0: {} @@ -17345,8 +17660,6 @@ snapshots: cookie@0.7.1: {} - cookie@0.7.2: {} - copy-text-to-clipboard@3.2.0: {} copy-webpack-plugin@11.0.0(webpack@5.96.1): @@ -17438,7 +17751,7 @@ snapshots: cross-env@7.0.3: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.5 cross-fetch@3.1.5(encoding@0.1.13): dependencies: @@ -17452,13 +17765,7 @@ snapshots: transitivePeerDependencies: - encoding - cross-fetch@4.0.0(encoding@0.1.13): - dependencies: - node-fetch: 2.7.0(encoding@0.1.13) - transitivePeerDependencies: - - encoding - - cross-spawn@7.0.3: + cross-spawn@7.0.5: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 @@ -17797,12 +18104,8 @@ snapshots: data-uri-to-buffer@0.0.3: {} - data-uri-to-buffer@2.0.2: {} - data-uri-to-buffer@6.0.2: {} - date-fns@4.1.0: {} - dateformat@3.0.3: {} dayjs@1.11.13: {} @@ -17897,8 +18200,6 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 - defu@6.1.4: {} - degenerator@5.0.1: dependencies: ast-types: 0.13.4 @@ -18004,9 +18305,9 @@ snapshots: dependencies: '@leichtgewicht/ip-codec': 2.0.5 - docusaurus-lunr-search@3.5.0(@docusaurus/core@3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + docusaurus-lunr-search@3.5.0(@docusaurus/core@3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@docusaurus/core': 3.6.0(@docusaurus/types@3.6.0(acorn@8.14.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.2.0))(acorn@8.14.0)(bufferutil@4.0.8)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.3)(utf-8-validate@5.0.10) autocomplete.js: 0.37.1 clsx: 1.2.1 gauge: 3.0.2 @@ -18108,7 +18409,7 @@ snapshots: dependencies: jake: 10.9.2 - electron-to-chromium@1.5.50: {} + electron-to-chromium@1.5.55: {} emittery@0.13.1: {} @@ -18219,30 +18520,60 @@ snapshots: esast-util-from-estree: 2.0.0 vfile-message: 4.0.2 - esbuild@0.17.19: + 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 + optional: true + + esbuild@0.24.0: optionalDependencies: - '@esbuild/android-arm': 0.17.19 - '@esbuild/android-arm64': 0.17.19 - '@esbuild/android-x64': 0.17.19 - '@esbuild/darwin-arm64': 0.17.19 - '@esbuild/darwin-x64': 0.17.19 - '@esbuild/freebsd-arm64': 0.17.19 - '@esbuild/freebsd-x64': 0.17.19 - '@esbuild/linux-arm': 0.17.19 - '@esbuild/linux-arm64': 0.17.19 - '@esbuild/linux-ia32': 0.17.19 - '@esbuild/linux-loong64': 0.17.19 - '@esbuild/linux-mips64el': 0.17.19 - '@esbuild/linux-ppc64': 0.17.19 - '@esbuild/linux-riscv64': 0.17.19 - '@esbuild/linux-s390x': 0.17.19 - '@esbuild/linux-x64': 0.17.19 - '@esbuild/netbsd-x64': 0.17.19 - '@esbuild/openbsd-x64': 0.17.19 - '@esbuild/sunos-x64': 0.17.19 - '@esbuild/win32-arm64': 0.17.19 - '@esbuild/win32-ia32': 0.17.19 - '@esbuild/win32-x64': 0.17.19 + '@esbuild/aix-ppc64': 0.24.0 + '@esbuild/android-arm': 0.24.0 + '@esbuild/android-arm64': 0.24.0 + '@esbuild/android-x64': 0.24.0 + '@esbuild/darwin-arm64': 0.24.0 + '@esbuild/darwin-x64': 0.24.0 + '@esbuild/freebsd-arm64': 0.24.0 + '@esbuild/freebsd-x64': 0.24.0 + '@esbuild/linux-arm': 0.24.0 + '@esbuild/linux-arm64': 0.24.0 + '@esbuild/linux-ia32': 0.24.0 + '@esbuild/linux-loong64': 0.24.0 + '@esbuild/linux-mips64el': 0.24.0 + '@esbuild/linux-ppc64': 0.24.0 + '@esbuild/linux-riscv64': 0.24.0 + '@esbuild/linux-s390x': 0.24.0 + '@esbuild/linux-x64': 0.24.0 + '@esbuild/netbsd-x64': 0.24.0 + '@esbuild/openbsd-arm64': 0.24.0 + '@esbuild/openbsd-x64': 0.24.0 + '@esbuild/sunos-x64': 0.24.0 + '@esbuild/win32-arm64': 0.24.0 + '@esbuild/win32-ia32': 0.24.0 + '@esbuild/win32-x64': 0.24.0 escalade@3.2.0: {} @@ -18310,7 +18641,7 @@ snapshots: '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.3 + cross-spawn: 7.0.5 debug: 4.3.7(supports-color@5.5.0) escape-string-regexp: 4.0.0 eslint-scope: 8.2.0 @@ -18405,8 +18736,6 @@ snapshots: '@types/estree-jsx': 1.0.5 '@types/unist': 3.0.3 - estree-walker@0.6.1: {} - estree-walker@2.0.2: {} estree-walker@3.0.3: @@ -18445,9 +18774,11 @@ snapshots: eventsource-parser@1.1.2: {} + eventsource-parser@3.0.0: {} + execa@5.0.0: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.5 get-stream: 6.0.0 human-signals: 2.1.0 is-stream: 2.0.0 @@ -18459,7 +18790,7 @@ snapshots: execa@5.1.1: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.5 get-stream: 6.0.1 human-signals: 2.1.0 is-stream: 2.0.1 @@ -18471,7 +18802,7 @@ snapshots: execa@8.0.1: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.5 get-stream: 8.0.1 human-signals: 5.0.0 is-stream: 3.0.0 @@ -18481,8 +18812,6 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 - exit-hook@2.2.1: {} - exit@0.1.2: {} expand-template@2.0.3: {} @@ -18593,6 +18922,13 @@ snapshots: fast-uri@3.0.3: {} + fastembed@1.14.1: + dependencies: + '@anush008/tokenizers': 0.0.0 + onnxruntime-node: 1.20.0 + progress: 2.0.3 + tar: 6.2.1 + fastestsmallesttextencoderdecoder@1.0.22: {} fastq@1.17.1: @@ -18617,6 +18953,10 @@ snapshots: dependencies: pend: 1.2.0 + fdir@6.4.2(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + feed@4.2.2: dependencies: xml-js: 1.6.11 @@ -18630,8 +18970,6 @@ snapshots: transitivePeerDependencies: - supports-color - figlet@1.8.0: {} - figures@3.2.0: dependencies: escape-string-regexp: 1.0.5 @@ -18709,8 +19047,6 @@ snapshots: semver-regex: 4.0.5 super-regex: 1.0.0 - fix-webm-duration@1.0.6: {} - flat-cache@4.0.1: dependencies: flatted: 3.3.1 @@ -18741,7 +19077,7 @@ snapshots: foreground-child@3.3.0: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.5 signal-exit: 4.1.0 forever-agent@0.6.1: {} @@ -18921,11 +19257,6 @@ snapshots: get-port@5.1.1: {} - get-source@2.0.12: - dependencies: - data-uri-to-buffer: 2.0.2 - source-map: 0.6.1 - get-stream@5.2.0: dependencies: pump: 3.0.2 @@ -18936,6 +19267,11 @@ snapshots: get-stream@8.0.1: {} + get-tsconfig@4.8.1: + dependencies: + resolve-pkg-maps: 1.0.0 + optional: true + get-uri@6.0.3: dependencies: basic-ftp: 5.0.5 @@ -19542,8 +19878,6 @@ snapshots: dependencies: postcss: 8.4.47 - idb@7.1.1: {} - ieee754@1.2.1: {} ignore-by-default@1.0.1: {} @@ -19585,7 +19919,7 @@ snapshots: indent-string@4.0.0: {} - infima@0.2.0-alpha.44: {} + infima@0.2.0-alpha.45: {} inflight@1.0.6: dependencies: @@ -19636,8 +19970,6 @@ snapshots: through: 2.3.8 wrap-ansi: 6.2.0 - install@0.13.0: {} - internmap@1.0.1: {} internmap@2.0.3: {} @@ -19876,10 +20208,6 @@ snapshots: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 - itty-router@5.0.18: {} - - itty-time@1.0.6: {} - jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 @@ -19999,7 +20327,7 @@ snapshots: jest-diff@29.7.0: dependencies: - chalk: 4.1.0 + chalk: 4.1.2 diff-sequences: 29.6.3 jest-get-type: 29.6.3 pretty-format: 29.7.0 @@ -20242,6 +20570,8 @@ snapshots: '@sideway/formula': 3.0.1 '@sideway/pinpoint': 2.0.0 + joycon@3.1.1: {} + jpeg-js@0.3.7: {} js-git@0.7.8: @@ -20408,7 +20738,7 @@ snapshots: '@npmcli/arborist': 7.5.4 '@npmcli/package-json': 5.2.0 '@npmcli/run-script': 8.1.0 - '@nx/devkit': 20.0.7(nx@20.0.7) + '@nx/devkit': 20.0.11(nx@20.0.11) '@octokit/plugin-enterprise-rest': 6.0.1 '@octokit/rest': 19.0.11(encoding@0.1.13) aproba: 2.0.0 @@ -20453,7 +20783,7 @@ snapshots: npm-package-arg: 11.0.2 npm-packlist: 8.0.2 npm-registry-fetch: 17.1.0 - nx: 20.0.7 + nx: 20.0.11 p-map: 4.0.0 p-map-series: 2.1.0 p-pipe: 3.1.0 @@ -20577,6 +20907,8 @@ snapshots: strip-bom: 4.0.0 type-fest: 0.6.0 + load-tsconfig@0.2.5: {} + loader-runner@4.3.0: {} loader-utils@2.0.4: @@ -20630,6 +20962,8 @@ snapshots: lodash.snakecase@4.1.1: {} + lodash.sortby@4.7.0: {} + lodash.uniq@4.5.0: {} lodash@4.17.21: {} @@ -20699,10 +21033,6 @@ snapshots: magic-bytes.js@1.10.0: {} - magic-string@0.25.9: - dependencies: - sourcemap-codec: 1.4.8 - magic-string@0.30.12: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -20774,7 +21104,7 @@ snapshots: '@types/unist': 3.0.3 devlop: 1.1.0 mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.1 + mdast-util-to-markdown: 2.1.2 parse-entities: 4.0.1 stringify-entities: 4.0.4 unist-util-visit-parents: 6.0.1 @@ -20811,7 +21141,7 @@ snapshots: devlop: 1.1.0 escape-string-regexp: 5.0.0 mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.1 + mdast-util-to-markdown: 2.1.2 micromark-extension-frontmatter: 2.0.0 transitivePeerDependencies: - supports-color @@ -20829,7 +21159,7 @@ snapshots: '@types/mdast': 4.0.4 devlop: 1.1.0 mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.1 + mdast-util-to-markdown: 2.1.2 micromark-util-normalize-identifier: 2.0.0 transitivePeerDependencies: - supports-color @@ -20838,7 +21168,7 @@ snapshots: dependencies: '@types/mdast': 4.0.4 mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.1 + mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color @@ -20848,7 +21178,7 @@ snapshots: devlop: 1.1.0 markdown-table: 3.0.4 mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.1 + mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color @@ -20857,7 +21187,7 @@ snapshots: '@types/mdast': 4.0.4 devlop: 1.1.0 mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.1 + mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color @@ -20869,7 +21199,7 @@ snapshots: mdast-util-gfm-strikethrough: 2.0.0 mdast-util-gfm-table: 2.0.0 mdast-util-gfm-task-list-item: 2.0.0 - mdast-util-to-markdown: 2.1.1 + mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color @@ -20880,7 +21210,7 @@ snapshots: '@types/mdast': 4.0.4 devlop: 1.1.0 mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.1 + mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color @@ -20893,7 +21223,7 @@ snapshots: ccount: 2.0.1 devlop: 1.1.0 mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.1 + mdast-util-to-markdown: 2.1.2 parse-entities: 4.0.1 stringify-entities: 4.0.4 unist-util-stringify-position: 4.0.0 @@ -20907,7 +21237,7 @@ snapshots: mdast-util-mdx-expression: 2.0.1 mdast-util-mdx-jsx: 3.1.3 mdast-util-mdxjs-esm: 2.0.1 - mdast-util-to-markdown: 2.1.1 + mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color @@ -20918,7 +21248,7 @@ snapshots: '@types/mdast': 4.0.4 devlop: 1.1.0 mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.1 + mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color @@ -20939,7 +21269,7 @@ snapshots: unist-util-visit: 5.0.0 vfile: 6.0.3 - mdast-util-to-markdown@2.1.1: + mdast-util-to-markdown@2.1.2: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 @@ -21354,8 +21684,6 @@ snapshots: mime@1.6.0: {} - mime@3.0.0: {} - mimic-fn@2.1.0: {} mimic-fn@4.0.0: {} @@ -21377,25 +21705,6 @@ snapshots: tapable: 2.2.1 webpack: 5.96.1 - miniflare@3.20241022.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - acorn: 8.14.0 - acorn-walk: 8.3.4 - capnp-ts: 0.7.0 - exit-hook: 2.2.1 - glob-to-regexp: 0.4.1 - stoppable: 1.1.0 - undici: 5.28.4 - workerd: 1.20241022.0 - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - youch: 3.3.4 - zod: 3.23.8 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - minimalistic-assert@1.0.1: {} minimatch@10.0.1: @@ -21543,12 +21852,16 @@ snapshots: arrify: 2.0.1 minimatch: 3.0.5 - mustache@4.2.0: {} - mute-stream@0.0.8: {} mute-stream@1.0.0: {} + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + nan@2.22.0: optional: true @@ -21667,7 +21980,7 @@ snapshots: chmodrp: 1.0.2 cmake-js: 7.3.0 cross-env: 7.0.3 - cross-spawn: 7.0.3 + cross-spawn: 7.0.5 env-var: 7.5.0 filenamify: 6.0.0 fs-extra: 11.2.0 @@ -21710,8 +22023,6 @@ snapshots: node-releases@2.0.18: {} - node-wav@0.0.2: {} - nodejs-whisper@0.1.18: dependencies: readline-sync: 1.4.10 @@ -21850,14 +22161,14 @@ snapshots: schema-utils: 3.3.0 webpack: 5.96.1 - nx@20.0.7: + nx@20.0.11: dependencies: '@napi-rs/wasm-runtime': 0.2.4 '@yarnpkg/lockfile': 1.1.0 - '@yarnpkg/parsers': 3.0.0-rc.46 + '@yarnpkg/parsers': 3.0.2 '@zkochan/js-yaml': 0.0.7 axios: 1.7.7(debug@4.3.7) - chalk: 4.1.0 + chalk: 4.1.2 cli-cursor: 3.1.0 cli-spinners: 2.6.1 cliui: 8.0.1 @@ -21885,16 +22196,16 @@ snapshots: yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: - '@nx/nx-darwin-arm64': 20.0.7 - '@nx/nx-darwin-x64': 20.0.7 - '@nx/nx-freebsd-x64': 20.0.7 - '@nx/nx-linux-arm-gnueabihf': 20.0.7 - '@nx/nx-linux-arm64-gnu': 20.0.7 - '@nx/nx-linux-arm64-musl': 20.0.7 - '@nx/nx-linux-x64-gnu': 20.0.7 - '@nx/nx-linux-x64-musl': 20.0.7 - '@nx/nx-win32-arm64-msvc': 20.0.7 - '@nx/nx-win32-x64-msvc': 20.0.7 + '@nx/nx-darwin-arm64': 20.0.11 + '@nx/nx-darwin-x64': 20.0.11 + '@nx/nx-freebsd-x64': 20.0.11 + '@nx/nx-linux-arm-gnueabihf': 20.0.11 + '@nx/nx-linux-arm64-gnu': 20.0.11 + '@nx/nx-linux-arm64-musl': 20.0.11 + '@nx/nx-linux-x64-gnu': 20.0.11 + '@nx/nx-linux-x64-musl': 20.0.11 + '@nx/nx-win32-arm64-msvc': 20.0.11 + '@nx/nx-win32-x64-msvc': 20.0.11 transitivePeerDependencies: - debug @@ -21928,7 +22239,13 @@ snapshots: '@octokit/request-error': 6.1.5 '@octokit/types': 13.6.1 - ohash@1.1.4: {} + ollama-ai-provider@0.16.1(zod@3.23.8): + dependencies: + '@ai-sdk/provider': 0.0.26 + '@ai-sdk/provider-utils': 1.0.22(zod@3.23.8) + partial-json: 0.1.7 + optionalDependencies: + zod: 3.23.8 omggif@1.0.10: {} @@ -21962,17 +22279,10 @@ snapshots: dependencies: which-pm-runs: 1.1.0 - onnxruntime-common@1.19.2: {} - onnxruntime-common@1.20.0: {} onnxruntime-common@1.20.0-dev.20241016-2b8fc5529b: {} - onnxruntime-node@1.19.2: - dependencies: - onnxruntime-common: 1.19.2 - tar: 7.4.3 - onnxruntime-node@1.20.0: dependencies: onnxruntime-common: 1.20.0 @@ -22009,6 +22319,8 @@ snapshots: opener@1.5.2: {} + optional@0.1.4: {} + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -22021,9 +22333,9 @@ snapshots: ora@5.3.0: dependencies: bl: 4.1.0 - chalk: 4.1.0 + chalk: 4.1.2 cli-cursor: 3.1.0 - cli-spinners: 2.6.1 + cli-spinners: 2.9.2 is-interactive: 1.0.0 log-symbols: 4.1.0 strip-ansi: 6.0.1 @@ -22119,11 +22431,6 @@ snapshots: '@types/retry': 0.12.0 retry: 0.13.1 - p-retry@5.1.2: - dependencies: - '@types/retry': 0.12.1 - retry: 0.13.1 - p-timeout@3.2.0: dependencies: p-finally: 1.0.0 @@ -22272,6 +22579,8 @@ snapshots: parseurl@1.3.3: {} + partial-json@0.1.7: {} + pascal-case@3.1.2: dependencies: no-case: 3.0.4 @@ -22313,15 +22622,13 @@ snapshots: path-to-regexp@3.3.0: {} - path-to-regexp@6.3.0: {} - path-type@3.0.0: dependencies: pify: 3.0.0 path-type@4.0.0: {} - path2d@0.2.1: + path2d@0.2.2: optional: true pathe@1.1.2: {} @@ -22329,7 +22636,7 @@ snapshots: pdfjs-dist@4.7.76(encoding@0.1.13): optionalDependencies: canvas: 2.11.2(encoding@0.1.13) - path2d: 0.2.1 + path2d: 0.2.2 transitivePeerDependencies: - encoding - supports-color @@ -22555,6 +22862,15 @@ snapshots: postcss: 8.4.47 postcss-selector-parser: 6.1.2 + postcss-load-config@6.0.1(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.2)(yaml@2.6.0): + dependencies: + lilconfig: 3.1.2 + optionalDependencies: + jiti: 1.21.6 + postcss: 8.4.47 + tsx: 4.19.2 + yaml: 2.6.0 + postcss-loader@7.3.4(postcss@8.4.47)(typescript@5.6.3)(webpack@5.96.1): dependencies: cosmiconfig: 8.3.6(typescript@5.6.3) @@ -22790,8 +23106,6 @@ snapshots: pretty-time@1.1.0: {} - printable-characters@1.0.42: {} - prism-media@1.3.5(@discordjs/opus@https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13))(ffmpeg-static@5.2.0): optionalDependencies: '@discordjs/opus': https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13) @@ -22894,7 +23208,9 @@ snapshots: proxy-from-env@1.1.0: {} - psl@1.9.0: {} + psl@1.10.0: + dependencies: + punycode: 2.3.1 pstree.remy@1.1.8: {} @@ -22903,10 +23219,10 @@ snapshots: end-of-stream: 1.4.4 once: 1.4.0 - pumpdotfun-sdk@1.3.2(bufferutil@4.0.8)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@2.79.2)(typescript@5.6.3)(utf-8-validate@5.0.10): + pumpdotfun-sdk@1.3.2(bufferutil@4.0.8)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.24.4)(typescript@5.6.3)(utf-8-validate@5.0.10): dependencies: '@coral-xyz/anchor': 0.30.1(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@rollup/plugin-json': 6.1.0(rollup@2.79.2) + '@rollup/plugin-json': 6.1.0(rollup@4.24.4) '@solana/spl-token': 0.4.6(@solana/web3.js@1.95.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) '@solana/web3.js': 1.95.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) transitivePeerDependencies: @@ -23050,7 +23366,7 @@ snapshots: address: 1.2.2 browserslist: 4.24.2 chalk: 4.1.2 - cross-spawn: 7.0.3 + cross-spawn: 7.0.5 detect-port-alt: 1.1.6 escape-string-regexp: 4.0.0 filesize: 8.0.7 @@ -23246,10 +23562,14 @@ snapshots: dependencies: picomatch: 2.3.1 + readdirp@4.0.2: {} + reading-time@1.5.0: {} readline-sync@1.4.10: {} + readline@1.3.0: {} + rechoir@0.6.2: dependencies: resolve: 1.22.8 @@ -23415,7 +23735,7 @@ snapshots: remark-stringify@11.0.0: dependencies: '@types/mdast': 4.0.4 - mdast-util-to-markdown: 2.1.1 + mdast-util-to-markdown: 2.1.2 unified: 11.0.5 renderkid@3.0.0: @@ -23479,6 +23799,9 @@ snapshots: resolve-pathname@3.0.0: {} + resolve-pkg-maps@1.0.0: + optional: true + resolve.exports@2.0.2: {} resolve@1.22.8: @@ -23528,22 +23851,32 @@ snapshots: robust-predicates@3.0.2: {} - rollup-plugin-inject@3.0.2: - dependencies: - estree-walker: 0.6.1 - magic-string: 0.25.9 - rollup-pluginutils: 2.8.2 - - rollup-plugin-node-polyfills@0.2.1: - dependencies: - rollup-plugin-inject: 3.0.2 + rollup@2.79.2: + optionalDependencies: + fsevents: 2.3.3 - rollup-pluginutils@2.8.2: + rollup@4.24.4: dependencies: - estree-walker: 0.6.1 - - rollup@2.79.2: + '@types/estree': 1.0.6 optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.24.4 + '@rollup/rollup-android-arm64': 4.24.4 + '@rollup/rollup-darwin-arm64': 4.24.4 + '@rollup/rollup-darwin-x64': 4.24.4 + '@rollup/rollup-freebsd-arm64': 4.24.4 + '@rollup/rollup-freebsd-x64': 4.24.4 + '@rollup/rollup-linux-arm-gnueabihf': 4.24.4 + '@rollup/rollup-linux-arm-musleabihf': 4.24.4 + '@rollup/rollup-linux-arm64-gnu': 4.24.4 + '@rollup/rollup-linux-arm64-musl': 4.24.4 + '@rollup/rollup-linux-powerpc64le-gnu': 4.24.4 + '@rollup/rollup-linux-riscv64-gnu': 4.24.4 + '@rollup/rollup-linux-s390x-gnu': 4.24.4 + '@rollup/rollup-linux-x64-gnu': 4.24.4 + '@rollup/rollup-linux-x64-musl': 4.24.4 + '@rollup/rollup-win32-arm64-msvc': 4.24.4 + '@rollup/rollup-win32-ia32-msvc': 4.24.4 + '@rollup/rollup-win32-x64-msvc': 4.24.4 fsevents: 2.3.3 roughjs@4.6.6: @@ -23957,7 +24290,9 @@ snapshots: source-map@0.7.4: {} - sourcemap-codec@1.4.8: {} + source-map@0.8.0-beta.0: + dependencies: + whatwg-url: 7.1.0 space-separated-tokens@1.1.5: {} @@ -24057,20 +24392,15 @@ snapshots: dependencies: minipass: 7.1.2 - sswr@2.1.0(svelte@5.1.9): + sswr@2.1.0(svelte@5.1.12): dependencies: - svelte: 5.1.9 + svelte: 5.1.12 swrev: 4.0.0 stack-utils@2.0.6: dependencies: escape-string-regexp: 2.0.0 - stacktracey@2.1.8: - dependencies: - as-table: 1.0.55 - get-source: 2.0.12 - statuses@1.5.0: {} statuses@2.0.1: {} @@ -24088,8 +24418,6 @@ snapshots: steno@4.0.2: {} - stoppable@1.1.0: {} - stream-parser@0.3.1: dependencies: debug: 2.6.9 @@ -24200,6 +24528,16 @@ snapshots: stylis@4.3.4: {} + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + super-regex@1.0.0: dependencies: function-timeout: 1.0.2 @@ -24223,7 +24561,7 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte@5.1.9: + svelte@5.1.12: dependencies: '@ampproject/remapping': 2.3.0 '@jridgewell/sourcemap-codec': 1.5.0 @@ -24367,6 +24705,14 @@ snapshots: text-table@0.2.0: {} + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + throttleit@2.1.0: {} through2@2.0.5: @@ -24395,15 +24741,20 @@ snapshots: tinyexec@0.3.1: {} + tinyglobby@0.2.10: + dependencies: + fdir: 6.4.2(picomatch@4.0.2) + picomatch: 4.0.2 + tinyld@1.3.4: {} tinyspawn@1.3.3: {} - tldts-core@6.1.58: {} + tldts-core@6.1.59: {} - tldts-experimental@6.1.58: + tldts-experimental@6.1.59: dependencies: - tldts-core: 6.1.58 + tldts-core: 6.1.59 tmp@0.0.33: dependencies: @@ -24444,18 +24795,24 @@ snapshots: tough-cookie@2.5.0: dependencies: - psl: 1.9.0 + psl: 1.10.0 punycode: 2.3.1 tough-cookie@4.1.4: dependencies: - psl: 1.9.0 + psl: 1.10.0 punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 tr46@0.0.3: {} + tr46@1.0.1: + dependencies: + punycode: 2.3.1 + + tree-kill@1.2.2: {} + treeverse@3.0.0: {} trim-lines@3.0.1: {} @@ -24466,15 +24823,15 @@ snapshots: trough@2.2.0: {} - true-myth@6.2.0: {} - ts-api-utils@1.4.0(typescript@5.6.3): dependencies: typescript: 5.6.3 ts-dedent@2.2.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))(esbuild@0.17.19)(jest@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@types/node@22.8.4)(typescript@5.6.3)))(typescript@5.6.3): + 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.0)(jest@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@types/node@22.8.4)(typescript@5.6.3)))(typescript@5.6.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 @@ -24492,7 +24849,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.26.0) - esbuild: 0.17.19 + esbuild: 0.24.0 ts-mixer@6.0.4: {} @@ -24524,6 +24881,41 @@ snapshots: tslib@2.8.0: {} + tsup@8.3.5(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.6.0): + dependencies: + bundle-require: 5.0.0(esbuild@0.24.0) + cac: 6.7.14 + chokidar: 4.0.1 + consola: 3.2.3 + debug: 4.3.7(supports-color@5.5.0) + esbuild: 0.24.0 + joycon: 3.1.1 + picocolors: 1.1.1 + postcss-load-config: 6.0.1(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.2)(yaml@2.6.0) + resolve-from: 5.0.0 + rollup: 4.24.4 + source-map: 0.8.0-beta.0 + sucrase: 3.35.0 + tinyexec: 0.3.1 + tinyglobby: 0.2.10 + tree-kill: 1.2.2 + optionalDependencies: + postcss: 8.4.47 + typescript: 5.6.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 + optional: true + tuf-js@2.2.1: dependencies: '@tufjs/models': 2.0.1 @@ -24611,19 +25003,8 @@ snapshots: undici-types@6.19.8: {} - undici@5.28.4: - dependencies: - '@fastify/busboy': 2.1.1 - undici@6.19.8: {} - unenv-nightly@2.0.0-20241024-111401-d4156ac: - dependencies: - defu: 6.1.4 - ohash: 1.1.4 - pathe: 1.1.2 - ufo: 1.5.4 - unicode-canonical-property-names-ecmascript@2.0.1: {} unicode-emoji-modifier-base@1.0.0: {} @@ -24936,6 +25317,8 @@ snapshots: webidl-conversions@3.0.1: {} + webidl-conversions@4.0.2: {} + webpack-bundle-analyzer@4.10.2(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: '@discoveryjs/json-ext': 0.5.7 @@ -25021,9 +25404,9 @@ snapshots: dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.6 - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/wasm-edit': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.14.0 browserslist: 4.24.2 chrome-trace-event: 1.0.4 @@ -25047,14 +25430,6 @@ snapshots: - esbuild - uglify-js - webpackbar@5.0.2(webpack@5.96.1): - dependencies: - chalk: 4.1.2 - consola: 2.15.3 - pretty-time: 1.1.0 - std-env: 3.7.0 - webpack: 5.96.1 - webpackbar@6.0.1(webpack@5.96.1): dependencies: ansi-escapes: 4.3.2 @@ -25080,6 +25455,12 @@ snapshots: tr46: 0.0.3 webidl-conversions: 3.0.1 + whatwg-url@7.1.0: + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + which-pm-runs@1.1.0: {} which@1.3.1: @@ -25094,18 +25475,6 @@ snapshots: dependencies: isexe: 3.1.1 - whisper-turbo@0.11.0: - dependencies: - comlink: 4.3.1 - fix-webm-duration: 1.0.6 - idb: 7.1.1 - p-retry: 5.1.2 - true-myth: 6.2.0 - uuid: 9.0.1 - whisper-webgpu: 0.10.0 - - whisper-webgpu@0.10.0: {} - wide-align@1.1.5: dependencies: string-width: 4.2.3 @@ -25120,42 +25489,6 @@ snapshots: wordwrap@1.0.0: {} - workerd@1.20241022.0: - optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20241022.0 - '@cloudflare/workerd-darwin-arm64': 1.20241022.0 - '@cloudflare/workerd-linux-64': 1.20241022.0 - '@cloudflare/workerd-linux-arm64': 1.20241022.0 - '@cloudflare/workerd-windows-64': 1.20241022.0 - - wrangler@3.84.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): - dependencies: - '@cloudflare/kv-asset-handler': 0.3.4 - '@cloudflare/workers-shared': 0.7.0 - '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) - '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19) - blake3-wasm: 2.1.5 - chokidar: 3.6.0 - date-fns: 4.1.0 - esbuild: 0.17.19 - itty-time: 1.0.6 - miniflare: 3.20241022.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - nanoid: 3.3.7 - path-to-regexp: 6.3.0 - resolve: 1.22.8 - resolve.exports: 2.0.2 - selfsigned: 2.4.1 - source-map: 0.6.1 - unenv: unenv-nightly@2.0.0-20241024-111401-d4156ac - workerd: 1.20241022.0 - xxhash-wasm: 1.0.2 - optionalDependencies: - fsevents: 2.3.3 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 @@ -25243,8 +25576,6 @@ snapshots: xtend@4.0.2: {} - xxhash-wasm@1.0.2: {} - y18n@5.0.8: {} yallist@3.1.1: {} @@ -25306,12 +25637,6 @@ snapshots: yoctocolors@2.1.1: {} - youch@3.3.4: - dependencies: - cookie: 0.7.2 - mustache: 4.2.0 - stacktracey: 2.1.8 - youtube-dl-exec@3.0.10: dependencies: bin-version-check: 6.0.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 4d03833b721..e5293be13a0 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,3 @@ packages: - "docs" - - "core" + - "packages/*" diff --git a/scripts/build.sh b/scripts/build.sh new file mode 100644 index 00000000000..e94f5d1e50c --- /dev/null +++ b/scripts/build.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +# Navigate to the script's directory +cd "$(dirname "$0")"/.. + +# Check if the packages directory exists +if [ ! -d "packages" ]; then + echo "Error: 'packages' directory not found." + exit 1 +fi + +# Iterate over each directory in the packages directory +for package in packages/*; do + if [ -d "$package" ]; then + echo "Building package: $(basename "$package")" + cd "$package" || continue + + # Check if a package.json file exists + if [ -f "package.json" ]; then + # Run the build script defined in package.json + if npm run build; then + echo "Successfully built $(basename "$package")" + else + echo "Failed to build $(basename "$package")" + fi + else + echo "No package.json found in $(basename "$package"), skipping..." + fi + + # Return to the root directory + cd - > /dev/null || exit + fi +done + +echo "Build process completed." diff --git a/scripts/dev.sh b/scripts/dev.sh new file mode 100644 index 00000000000..c8f0028d3c6 --- /dev/null +++ b/scripts/dev.sh @@ -0,0 +1,12 @@ +echo "Passing arguments: $*" +npx concurrently --raw \ + "pnpm --dir packages/core dev -- $*" \ + "pnpm --dir packages/client-telegram dev -- $*" \ + "pnpm --dir packages/client-discord dev -- $*" \ + "pnpm --dir packages/client-twitter dev -- $*" \ + "pnpm --dir packages/client-direct dev -- $*" \ + "pnpm --dir packages/plugin-bootstrap dev -- $*" \ + "pnpm --dir packages/plugin-node dev -- $*" \ + "pnpm --dir packages/adapter-sqlite dev -- $*" \ + "pnpm --dir packages/adapter-postgres dev -- $*" \ + "node -e \"setTimeout(() => process.exit(0), 5000)\" && pnpm --dir packages/agent dev -- $*" diff --git a/supabase/.gitignore b/supabase/.gitignore deleted file mode 100644 index a3ad88055b7..00000000000 --- a/supabase/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -# Supabase -.branches -.temp -.env diff --git a/supabase/README.md b/supabase/README.md deleted file mode 100644 index 82ed22ff14c..00000000000 --- a/supabase/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Postgres Schema - -Install CLI https://www.timescale.com/blog/how-to-install-psql-on-mac-ubuntu-debian-windows/ - -`psql -f ./postgres-schema.sql` diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000000..dd7a988669f --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "lib": ["ESNext", "dom"], + "moduleResolution": "Bundler", + "outDir": "./dist", + "rootDir": ".", + "strict": false, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": false, + "allowImportingTsExtensions": true, + "declaration": true, + "emitDeclarationOnly": true, + "resolveJsonModule": true, + "noImplicitAny": false, + "allowJs": true, + "checkJs": false, + "noEmitOnError": false, + "moduleDetection": "force", + "allowArbitraryExtensions": true + } +}