From c615598c788019806bf80d3850dc5521e20b097b Mon Sep 17 00:00:00 2001 From: Augustin Chan Date: Sat, 30 Nov 2024 03:43:37 +0800 Subject: [PATCH 1/6] fix build --- packages/adapter-postgres/src/index.ts | 14 +++++++------- packages/plugin-node/src/vendor/vitsVoiceList.ts | 10 +++++++++- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/packages/adapter-postgres/src/index.ts b/packages/adapter-postgres/src/index.ts index 0324275f323..9d8a59101b1 100644 --- a/packages/adapter-postgres/src/index.ts +++ b/packages/adapter-postgres/src/index.ts @@ -1,8 +1,8 @@ import { v4 } from "uuid"; -// Import the entire module as default -import pg from "pg"; -type Pool = pg.Pool; +import postgres from "pg"; +const { Pool } = postgres; +type PoolType = typeof postgres.Pool; import { QueryConfig, @@ -32,10 +32,10 @@ const __filename = fileURLToPath(import.meta.url); // get the resolved path to t const __dirname = path.dirname(__filename); // get the name of the directory export class PostgresDatabaseAdapter - extends DatabaseAdapter + extends DatabaseAdapter implements IDatabaseCacheAdapter { - private pool: Pool; + private pool: InstanceType; private readonly maxRetries: number = 3; private readonly baseDelay: number = 1000; // 1 second private readonly maxDelay: number = 10000; // 10 seconds @@ -51,7 +51,7 @@ export class PostgresDatabaseAdapter connectionTimeoutMillis: this.connectionTimeout, }; - this.pool = new pg.Pool({ + this.pool = new Pool({ ...defaultConfig, ...connectionConfig, // Allow overriding defaults }); @@ -137,7 +137,7 @@ export class PostgresDatabaseAdapter await this.pool.end(); // Create new pool - this.pool = new pg.Pool({ + this.pool = new Pool({ ...this.pool.options, connectionTimeoutMillis: this.connectionTimeout, }); diff --git a/packages/plugin-node/src/vendor/vitsVoiceList.ts b/packages/plugin-node/src/vendor/vitsVoiceList.ts index 8330fc6d356..a8527c8d2d8 100644 --- a/packages/plugin-node/src/vendor/vitsVoiceList.ts +++ b/packages/plugin-node/src/vendor/vitsVoiceList.ts @@ -1,4 +1,12 @@ -import { SynthesisVoice } from "./vits"; +type SynthesisVoice = { + name: string; + languages: string[]; + gender: string; + speakerCount?: number; + localService?: boolean; + voiceURI?: string; + default?: boolean; +}; export const vitsVoiceList: SynthesisVoice[] = [ { From 5f4c2d922b66f8a8c0a5b1c2b9f1de8799de1c3f Mon Sep 17 00:00:00 2001 From: Augustin Chan Date: Sat, 30 Nov 2024 08:18:52 +0800 Subject: [PATCH 2/6] fix build first --- pnpm-lock.yaml | 109 +++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 102 insertions(+), 7 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5ff737f0c1e..119aa16f1d5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,18 +17,27 @@ importers: '@coinbase/coinbase-sdk': specifier: ^0.10.0 version: 0.10.0(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + '@discordjs/opus': + specifier: ^0.9.0 + version: 0.9.0(encoding@0.1.13) amqplib: specifier: 0.10.5 version: 0.10.5 csv-parse: specifier: ^5.6.0 version: 5.6.0 + node-opus: + specifier: ^0.3.3 + version: 0.3.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 + opusscript: + specifier: ^0.1.1 + version: 0.1.1 pnpm: specifier: ^9.14.3 version: 9.14.4 @@ -57,12 +66,19 @@ importers: cross-env: specifier: ^7.0.3 version: 7.0.3 + cross-env: + specifier: ^7.0.3 + version: 7.0.3 eslint: specifier: ^9.15.0 version: 9.16.0(jiti@2.4.0) eslint-config-prettier: specifier: 9.1.0 version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) + version: 9.15.0(jiti@2.4.0) + eslint-config-prettier: + specifier: 9.1.0 + version: 9.1.0(eslint@9.15.0(jiti@2.4.0)) husky: specifier: 9.1.7 version: 9.1.7 @@ -557,7 +573,7 @@ importers: 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) + 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)(node-opus@0.3.3)(opusscript@0.1.1)(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) @@ -566,7 +582,7 @@ importers: 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) + version: 1.3.5(@discordjs/opus@https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13))(ffmpeg-static@5.2.0)(node-opus@0.3.3)(opusscript@0.1.1) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1388,9 +1404,12 @@ importers: '@solana/spl-token': specifier: 0.4.9 version: 0.4.9(@solana/web3.js@1.95.5(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) + version: 0.4.9(@solana/web3.js@1.95.5(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.5 version: 1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + specifier: 1.95.5 + version: 1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) bignumber: specifier: 1.1.0 version: 1.1.0 @@ -1412,6 +1431,9 @@ importers: viem: specifier: ^2.21.53 version: 2.21.53(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) + viem: + specifier: ^2.21.53 + version: 2.21.53(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -3235,6 +3257,10 @@ packages: resolution: {integrity: sha512-YJOVVZ545x24mHzANfYoy0BJX5PDyeZlpiJjDkUBM/V/Ao7TFX9lcUvCN4nr0tbr5ubeaXxtEBILUrHtTphVeQ==} hasBin: true + '@discordjs/opus@0.9.0': + resolution: {integrity: sha512-NEE76A96FtQ5YuoAVlOlB3ryMPrkXbUCTQICHGKb8ShtjXyubGicjRMouHtP1RpuDdm16cDa+oI3aAMo1zQRUQ==} + engines: {node: '>=12.0.0'} + '@discordjs/opus@https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02': resolution: {tarball: https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02} version: 0.9.0 @@ -7515,6 +7541,9 @@ packages: resolution: {integrity: sha512-Iy//vPc3ANPNlIWd242Npqc8MK0a/i4kVcHDlDA6HNMv5zMxz4ulIFhOSYJVKw/8AbHdHy0CnGYEt1QqSXxPsw==} engines: {node: '>=18'} + bindings@1.2.1: + resolution: {integrity: sha512-u4cBQNepWxYA55FunZSM7wMi55yQaN0otnhhilNoWHq0MfOfJeQx0v0mRRpolGOExPjZcl6FtB0BB8Xkb88F0g==} + bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} @@ -12083,6 +12112,13 @@ packages: node-machine-id@1.1.12: resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} + node-opus@0.3.3: + resolution: {integrity: sha512-ZQniA8iJ6y/qOTmW6eyzM9m8odt4CIGV0NM9/U03/pYLhGyxy18QXO25WfrWd8XsUYx57tnxll2xxj54CN08uQ==} + engines: {node: '>=5.10.0'} + cpu: [x64, arm, arm64, ia32] + os: [linux, darwin, win32, freebsd, android] + deprecated: This project is unmaintained. See @discordjs/opus for an alternative. + node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} @@ -12249,6 +12285,9 @@ packages: ofetch@1.4.1: resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} + ogg-packet@1.0.1: + resolution: {integrity: sha512-dW1ok3BMnMikyXGDIgVEckWnlViW8JLWQV4qj9aN/rNRVqHlDYSlcIEtSIMH7tpuUOiIxAhY3+OxNdIOm6s17A==} + ohash@1.1.4: resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} @@ -12346,6 +12385,9 @@ packages: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} + opusscript@0.1.1: + resolution: {integrity: sha512-mL0fZZOUnXdZ78woRXp18lApwpp0lF5tozJOD1Wut0dgrA9WuQTgSels/CSmFleaAZrJi/nci5KOVtbuxeWoQA==} + ora@5.3.0: resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} engines: {node: '>=10'} @@ -13958,6 +14000,12 @@ packages: redeyed@2.1.1: resolution: {integrity: sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==} + ref-struct@1.1.0: + resolution: {integrity: sha512-h2OSdAUycdqiwFBp2wB3XEFheWA/U+n/JYnhEi3584JqnCCDXIA3qDIhHH3klIHMNZwrJW+VagpxPGeSf6777Q==} + + ref@1.3.5: + resolution: {integrity: sha512-2cBCniTtxcGUjDpvFfVpw323a83/0RLSGJJY5l5lcomZWhYpU2cuLdsvYqMixvsdLJ9+sTdzEkju8J8ZHDM2nA==} + reflect-metadata@0.2.2: resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} @@ -18624,6 +18672,14 @@ snapshots: - encoding - supports-color + '@discordjs/opus@0.9.0(encoding@0.1.13)': + dependencies: + '@discordjs/node-pre-gyp': 0.4.5(encoding@0.1.13) + node-addon-api: 5.1.0 + transitivePeerDependencies: + - encoding + - supports-color + '@discordjs/opus@https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13)': dependencies: '@discordjs/node-pre-gyp': 0.4.5(encoding@0.1.13) @@ -18646,11 +18702,11 @@ snapshots: '@discordjs/util@1.1.1': {} - '@discordjs/voice@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)': + '@discordjs/voice@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)(node-opus@0.3.3)(opusscript@0.1.1)(utf-8-validate@5.0.10)': dependencies: '@types/ws': 8.5.13 discord-api-types: 0.37.83 - 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) + 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)(node-opus@0.3.3)(opusscript@0.1.1) tslib: 2.8.0 ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: @@ -24350,6 +24406,8 @@ snapshots: execa: 8.0.1 find-versions: 6.0.0 + bindings@1.2.1: {} + bindings@1.5.0: dependencies: file-uri-to-path: 1.0.0 @@ -30154,8 +30212,7 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nan@2.22.0: - optional: true + nan@2.22.0: {} nanoid@3.3.6: {} @@ -30334,6 +30391,16 @@ snapshots: node-machine-id@1.1.12: {} + node-opus@0.3.3: + dependencies: + bindings: 1.2.1 + commander: 2.20.3 + nan: 2.22.0 + optionalDependencies: + ogg-packet: 1.0.1 + transitivePeerDependencies: + - supports-color + node-releases@2.0.18: {} nodejs-whisper@0.1.18: @@ -30574,6 +30641,13 @@ snapshots: node-fetch-native: 1.6.4 ufo: 1.5.4 + ogg-packet@1.0.1: + dependencies: + ref-struct: 1.1.0 + transitivePeerDependencies: + - supports-color + optional: true + ohash@1.1.4: {} ollama-ai-provider@0.16.1(zod@3.23.8): @@ -30697,6 +30771,8 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 + opusscript@0.1.1: {} + ora@5.3.0: dependencies: bl: 4.1.0 @@ -31914,10 +31990,12 @@ snapshots: pretty-time@1.1.0: {} - 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): + 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)(node-opus@0.3.3)(opusscript@0.1.1): optionalDependencies: '@discordjs/opus': https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13) ffmpeg-static: 5.2.0 + node-opus: 0.3.3 + opusscript: 0.1.1 prism-react-renderer@2.3.1(react@18.3.1): dependencies: @@ -32492,6 +32570,23 @@ snapshots: dependencies: esprima: 4.0.1 + ref-struct@1.1.0: + dependencies: + debug: 2.6.9 + ref: 1.3.5 + transitivePeerDependencies: + - supports-color + optional: true + + ref@1.3.5: + dependencies: + bindings: 1.5.0 + debug: 2.6.9 + nan: 2.22.0 + transitivePeerDependencies: + - supports-color + optional: true + reflect-metadata@0.2.2: {} regenerate-unicode-properties@10.2.0: From d46ab8fa34f266b5ea167dc74ab81f9bde19fa76 Mon Sep 17 00:00:00 2001 From: Augustin Chan Date: Sat, 30 Nov 2024 10:32:14 +0800 Subject: [PATCH 3/6] feat(voice): enhance character card voice configuration support - Add comprehensive ElevenLabs configuration in character cards - Make ElevenLabs settings optional with sensible defaults - Implement configuration priority (character card > env vars > defaults) - Update schema validation to support optional fields - Add debug logging for voice selection process - Maintain backward compatibility with existing setups Example character card config: ```json { "settings": { "voice": { "model": "en_GB-alan-medium", "elevenlabs": { "voiceId": "your-voice-id", "model": "eleven_monolingual_v1", "stability": "0.5" } } } } ``` Closes #694 --- agent/src/index.ts | 13 +- packages/adapter-postgres/src/index.ts | 31 ++- packages/core/src/types.ts | 13 +- packages/plugin-node/src/enviroment.ts | 99 +++++---- packages/plugin-node/src/services/speech.ts | 188 +++++++++--------- .../plugin-node/src/vendor/vitsVoiceList.ts | 7 +- pnpm-lock.yaml | 4 +- 7 files changed, 193 insertions(+), 162 deletions(-) diff --git a/agent/src/index.ts b/agent/src/index.ts index 803acfd895e..a1ad2f470b0 100644 --- a/agent/src/index.ts +++ b/agent/src/index.ts @@ -95,17 +95,10 @@ export async function loadCharacters( characterPaths, cwd: process.cwd(), dirname: __dirname, - fullPath: path.resolve( - process.cwd(), - "characters/8bitoracle.laozi.character.json" - ), - exists: fs.existsSync( - path.resolve( - process.cwd(), - "characters/8bitoracle.laozi.character.json" - ) - ), dirContents: fs.readdirSync(process.cwd()), + characters: fs + .readdirSync(path.join(process.cwd(), "characters")) + .filter((file) => file.endsWith(".character.json")), }); if (characterPaths?.length > 0) { diff --git a/packages/adapter-postgres/src/index.ts b/packages/adapter-postgres/src/index.ts index 9d8a59101b1..bceeae1415f 100644 --- a/packages/adapter-postgres/src/index.ts +++ b/packages/adapter-postgres/src/index.ts @@ -174,12 +174,33 @@ export class PostgresDatabaseAdapter async init() { await this.testConnection(); - const schema = fs.readFileSync( - path.resolve(__dirname, "../schema.sql"), - "utf8" - ); + const client = await this.pool.connect(); + try { + await client.query("BEGIN"); + + // Check if schema already exists (check for a core table) + const { rows } = await client.query(` + SELECT EXISTS ( + SELECT FROM information_schema.tables + WHERE table_name = 'rooms' + ); + `); + + if (!rows[0].exists) { + const schema = fs.readFileSync( + path.resolve(__dirname, "../schema.sql"), + "utf8" + ); + await client.query(schema); + } - await this.query(schema); + await client.query("COMMIT"); + } catch (error) { + await client.query("ROLLBACK"); + throw error; + } finally { + client.release(); + } } async close() { diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts index 1edd49de65b..b900328e88b 100644 --- a/packages/core/src/types.ts +++ b/packages/core/src/types.ts @@ -674,8 +674,17 @@ export type Character = { secrets?: { [key: string]: string }; buttplug?: boolean; voice?: { - model?: string; - url?: string; + model?: string; // For VITS + url?: string; // Legacy VITS support + elevenlabs?: { + // New structured ElevenLabs config + voiceId: string; + model?: string; + stability?: string; + similarityBoost?: string; + style?: string; + useSpeakerBoost?: string; + }; }; model?: string; embeddingModel?: string; diff --git a/packages/plugin-node/src/enviroment.ts b/packages/plugin-node/src/enviroment.ts index 779704cb422..5d30bb93edb 100644 --- a/packages/plugin-node/src/enviroment.ts +++ b/packages/plugin-node/src/enviroment.ts @@ -3,27 +3,21 @@ import { z } from "zod"; export const nodeEnvSchema = z.object({ OPENAI_API_KEY: z.string().min(1, "OpenAI API key is required"), + + // Core settings ELEVENLABS_XI_API_KEY: z.string().optional(), - ELEVENLABS_MODEL_ID: z.string().min(1, "ElevenLabs model ID is required"), - ELEVENLABS_VOICE_ID: z.string().min(1, "ElevenLabs voice ID is required"), - ELEVENLABS_VOICE_STABILITY: z - .string() - .min(1, "ElevenLabs voice stability is required"), - ELEVENLABS_VOICE_SIMILARITY_BOOST: z - .string() - .min(1, "ElevenLabs voice similarity boost is required"), - ELEVENLABS_VOICE_STYLE: z - .string() - .min(1, "ElevenLabs voice style is required"), - ELEVENLABS_VOICE_USE_SPEAKER_BOOST: z - .string() - .min(1, "ElevenLabs voice speaker boost setting is required"), - ELEVENLABS_OPTIMIZE_STREAMING_LATENCY: z - .string() - .min(1, "ElevenLabs streaming latency optimization is required"), - ELEVENLABS_OUTPUT_FORMAT: z - .string() - .min(1, "ElevenLabs output format is required"), + + // All other settings optional with defaults + ELEVENLABS_MODEL_ID: z.string().optional(), + ELEVENLABS_VOICE_ID: z.string().optional(), + ELEVENLABS_VOICE_STABILITY: z.string().optional(), + ELEVENLABS_VOICE_SIMILARITY_BOOST: z.string().optional(), + ELEVENLABS_VOICE_STYLE: z.string().optional(), + ELEVENLABS_VOICE_USE_SPEAKER_BOOST: z.string().optional(), + ELEVENLABS_OPTIMIZE_STREAMING_LATENCY: z.string().optional(), + ELEVENLABS_OUTPUT_FORMAT: z.string().optional(), + VITS_VOICE: z.string().optional(), + VITS_MODEL: z.string().optional(), }); export type NodeConfig = z.infer; @@ -32,34 +26,51 @@ export async function validateNodeConfig( runtime: IAgentRuntime ): Promise { try { + const voiceSettings = runtime.character.settings?.voice; + const elevenlabs = voiceSettings?.elevenlabs; + + // Only include what's absolutely required const config = { OPENAI_API_KEY: runtime.getSetting("OPENAI_API_KEY") || process.env.OPENAI_API_KEY, - ELEVENLABS_MODEL_ID: - runtime.getSetting("ELEVENLABS_MODEL_ID") || - process.env.ELEVENLABS_MODEL_ID, - ELEVENLABS_VOICE_ID: - runtime.getSetting("ELEVENLABS_VOICE_ID") || - process.env.ELEVENLABS_VOICE_ID, - ELEVENLABS_VOICE_STABILITY: - runtime.getSetting("ELEVENLABS_VOICE_STABILITY") || - process.env.ELEVENLABS_VOICE_STABILITY, - ELEVENLABS_VOICE_SIMILARITY_BOOST: - runtime.getSetting("ELEVENLABS_VOICE_SIMILARITY_BOOST") || - process.env.ELEVENLABS_VOICE_SIMILARITY_BOOST, - ELEVENLABS_VOICE_STYLE: - runtime.getSetting("ELEVENLABS_VOICE_STYLE") || - process.env.ELEVENLABS_VOICE_STYLE, - ELEVENLABS_VOICE_USE_SPEAKER_BOOST: - runtime.getSetting("ELEVENLABS_VOICE_USE_SPEAKER_BOOST") || - process.env.ELEVENLABS_VOICE_USE_SPEAKER_BOOST, - ELEVENLABS_OPTIMIZE_STREAMING_LATENCY: - runtime.getSetting("ELEVENLABS_OPTIMIZE_STREAMING_LATENCY") || - process.env.ELEVENLABS_OPTIMIZE_STREAMING_LATENCY, - ELEVENLABS_OUTPUT_FORMAT: - runtime.getSetting("ELEVENLABS_OUTPUT_FORMAT") || - process.env.ELEVENLABS_OUTPUT_FORMAT, + ELEVENLABS_XI_API_KEY: + runtime.getSetting("ELEVENLABS_XI_API_KEY") || + process.env.ELEVENLABS_XI_API_KEY, + + // Use character card settings first, fall back to env vars, then defaults + ...(runtime.getSetting("ELEVENLABS_XI_API_KEY") && { + ELEVENLABS_MODEL_ID: + elevenlabs?.model || + process.env.ELEVENLABS_MODEL_ID || + "eleven_monolingual_v1", + ELEVENLABS_VOICE_ID: + elevenlabs?.voiceId || process.env.ELEVENLABS_VOICE_ID, + ELEVENLABS_VOICE_STABILITY: + elevenlabs?.stability || + process.env.ELEVENLABS_VOICE_STABILITY || + "0.5", + ELEVENLABS_VOICE_SIMILARITY_BOOST: + elevenlabs?.similarityBoost || + process.env.ELEVENLABS_VOICE_SIMILARITY_BOOST || + "0.75", + ELEVENLABS_VOICE_STYLE: + elevenlabs?.style || + process.env.ELEVENLABS_VOICE_STYLE || + "0", + ELEVENLABS_VOICE_USE_SPEAKER_BOOST: + elevenlabs?.useSpeakerBoost || + process.env.ELEVENLABS_VOICE_USE_SPEAKER_BOOST || + "true", + ELEVENLABS_OPTIMIZE_STREAMING_LATENCY: + process.env.ELEVENLABS_OPTIMIZE_STREAMING_LATENCY || "0", + ELEVENLABS_OUTPUT_FORMAT: + process.env.ELEVENLABS_OUTPUT_FORMAT || "pcm_16000", + }), + + // VITS settings + VITS_VOICE: voiceSettings?.model || process.env.VITS_VOICE, + VITS_MODEL: process.env.VITS_MODEL, }; return nodeEnvSchema.parse(config); diff --git a/packages/plugin-node/src/services/speech.ts b/packages/plugin-node/src/services/speech.ts index 58533f804b5..d44c28fb69f 100644 --- a/packages/plugin-node/src/services/speech.ts +++ b/packages/plugin-node/src/services/speech.ts @@ -4,6 +4,7 @@ import { getWavHeader } from "./audioUtils.ts"; import { Service } from "@ai16z/eliza"; import { validateNodeConfig } from "../enviroment.ts"; import * as Echogarden from "echogarden"; +import { elizaLogger } from "@ai16z/eliza"; function prependWavHeader( readable: Readable, @@ -33,12 +34,50 @@ function prependWavHeader( return passThrough; } +async function getVoiceSettings(runtime: IAgentRuntime) { + const hasElevenLabs = !!runtime.getSetting("ELEVENLABS_XI_API_KEY"); + const useVits = !hasElevenLabs; + + // Get voice settings from character card + const voiceSettings = runtime.character.settings?.voice; + const elevenlabsSettings = voiceSettings?.elevenlabs; + + elizaLogger.debug("Voice settings:", { + hasElevenLabs, + useVits, + voiceSettings, + elevenlabsSettings, + }); + + return { + elevenlabsVoiceId: + elevenlabsSettings?.voiceId || + runtime.getSetting("ELEVENLABS_VOICE_ID"), + elevenlabsModel: + elevenlabsSettings?.model || + runtime.getSetting("ELEVENLABS_MODEL_ID") || + "eleven_monolingual_v1", + elevenlabsStability: + elevenlabsSettings?.stability || + runtime.getSetting("ELEVENLABS_VOICE_STABILITY") || + "0.5", + // ... other ElevenLabs settings ... + vitsVoice: + voiceSettings?.model || + voiceSettings?.url || + runtime.getSetting("VITS_VOICE") || + "en_US-hfc_female-medium", + useVits, + }; +} + async function textToSpeech(runtime: IAgentRuntime, text: string) { await validateNodeConfig(runtime); + const { elevenlabsVoiceId } = await getVoiceSettings(runtime); try { const response = await fetch( - `https://api.elevenlabs.io/v1/text-to-speech/${runtime.getSetting("ELEVENLABS_VOICE_ID")}/stream?optimize_streaming_latency=${runtime.getSetting("ELEVENLABS_OPTIMIZE_STREAMING_LATENCY")}&output_format=${runtime.getSetting("ELEVENLABS_OUTPUT_FORMAT")}`, + `https://api.elevenlabs.io/v1/text-to-speech/${elevenlabsVoiceId}/stream?optimize_streaming_latency=${runtime.getSetting("ELEVENLABS_OPTIMIZE_STREAMING_LATENCY")}&output_format=${runtime.getSetting("ELEVENLABS_OUTPUT_FORMAT")}`, { method: "POST", headers: { @@ -125,9 +164,10 @@ async function textToSpeech(runtime: IAgentRuntime, text: string) { } catch (error) { if (error.message === "QUOTA_EXCEEDED") { // Fall back to VITS + const { vitsVoice } = await getVoiceSettings(runtime); const { audio } = await Echogarden.synthesize(text, { engine: "vits", - voice: "en_US-hfc_female-medium", + voice: vitsVoice, }); let wavStream: Readable; @@ -173,6 +213,53 @@ async function textToSpeech(runtime: IAgentRuntime, text: string) { } } +async function processVitsAudio(audio: any): Promise { + let wavStream: Readable; + if (audio instanceof Buffer) { + console.log("audio is a buffer"); + wavStream = Readable.from(audio); + } else if ("audioChannels" in audio && "sampleRate" in audio) { + console.log("audio is a RawAudio"); + const floatBuffer = Buffer.from(audio.audioChannels[0].buffer); + console.log("buffer length: ", floatBuffer.length); + + const sampleRate = audio.sampleRate; + const floatArray = new Float32Array(floatBuffer.buffer); + const pcmBuffer = new Int16Array(floatArray.length); + + for (let i = 0; i < floatArray.length; i++) { + pcmBuffer[i] = Math.round(floatArray[i] * 32767); + } + + const wavHeaderBuffer = getWavHeader( + pcmBuffer.length * 2, + sampleRate, + 1, + 16 + ); + const wavBuffer = Buffer.concat([ + wavHeaderBuffer, + Buffer.from(pcmBuffer.buffer), + ]); + wavStream = Readable.from(wavBuffer); + } else { + throw new Error("Unsupported audio format"); + } + return wavStream; +} + +async function generateVitsAudio( + runtime: IAgentRuntime, + text: string +): Promise { + const { vitsVoice } = await getVoiceSettings(runtime); + const { audio } = await Echogarden.synthesize(text, { + engine: "vits", + voice: vitsVoice, + }); + return processVitsAudio(audio); +} + export class SpeechService extends Service implements ISpeechService { static serviceType: ServiceType = ServiceType.SPEECH_GENERATION; @@ -184,103 +271,16 @@ export class SpeechService extends Service implements ISpeechService { async generate(runtime: IAgentRuntime, text: string): Promise { try { - // check for elevenlabs API key - if (runtime.getSetting("ELEVENLABS_XI_API_KEY")) { - return await textToSpeech(runtime, text); - } - - // Default to VITS if no ElevenLabs API key - const { audio } = await Echogarden.synthesize(text, { - engine: "vits", - voice: "en_US-hfc_female-medium", - }); - - let wavStream: Readable; - if (audio instanceof Buffer) { - console.log("audio is a buffer"); - wavStream = Readable.from(audio); - } else if ("audioChannels" in audio && "sampleRate" in audio) { - console.log("audio is a RawAudio"); - const floatBuffer = Buffer.from(audio.audioChannels[0].buffer); - console.log("buffer length: ", floatBuffer.length); - - // Get the sample rate from the RawAudio object - const sampleRate = audio.sampleRate; - - // Create a Float32Array view of the floatBuffer - const floatArray = new Float32Array(floatBuffer.buffer); - - // Convert 32-bit float audio to 16-bit PCM - const pcmBuffer = new Int16Array(floatArray.length); - for (let i = 0; i < floatArray.length; i++) { - pcmBuffer[i] = Math.round(floatArray[i] * 32767); - } - - // Prepend WAV header to the buffer - const wavHeaderBuffer = getWavHeader( - pcmBuffer.length * 2, - sampleRate, - 1, - 16 - ); - const wavBuffer = Buffer.concat([ - wavHeaderBuffer, - Buffer.from(pcmBuffer.buffer), - ]); + const { useVits } = await getVoiceSettings(runtime); - wavStream = Readable.from(wavBuffer); - } else { - throw new Error("Unsupported audio format"); + if (useVits || !runtime.getSetting("ELEVENLABS_XI_API_KEY")) { + return await generateVitsAudio(runtime, text); } - return wavStream; + return await textToSpeech(runtime, text); } catch (error) { console.error("Speech generation error:", error); - // If ElevenLabs fails for any reason, fall back to VITS - const { audio } = await Echogarden.synthesize(text, { - engine: "vits", - voice: "en_US-hfc_female-medium", - }); - - let wavStream: Readable; - if (audio instanceof Buffer) { - console.log("audio is a buffer"); - wavStream = Readable.from(audio); - } else if ("audioChannels" in audio && "sampleRate" in audio) { - console.log("audio is a RawAudio"); - const floatBuffer = Buffer.from(audio.audioChannels[0].buffer); - console.log("buffer length: ", floatBuffer.length); - - // Get the sample rate from the RawAudio object - const sampleRate = audio.sampleRate; - - // Create a Float32Array view of the floatBuffer - const floatArray = new Float32Array(floatBuffer.buffer); - - // Convert 32-bit float audio to 16-bit PCM - const pcmBuffer = new Int16Array(floatArray.length); - for (let i = 0; i < floatArray.length; i++) { - pcmBuffer[i] = Math.round(floatArray[i] * 32767); - } - - // Prepend WAV header to the buffer - const wavHeaderBuffer = getWavHeader( - pcmBuffer.length * 2, - sampleRate, - 1, - 16 - ); - const wavBuffer = Buffer.concat([ - wavHeaderBuffer, - Buffer.from(pcmBuffer.buffer), - ]); - - wavStream = Readable.from(wavBuffer); - } else { - throw new Error("Unsupported audio format"); - } - - return wavStream; + return await generateVitsAudio(runtime, text); } } } diff --git a/packages/plugin-node/src/vendor/vitsVoiceList.ts b/packages/plugin-node/src/vendor/vitsVoiceList.ts index a8527c8d2d8..2f6720f1578 100644 --- a/packages/plugin-node/src/vendor/vitsVoiceList.ts +++ b/packages/plugin-node/src/vendor/vitsVoiceList.ts @@ -1,12 +1,9 @@ -type SynthesisVoice = { +export interface SynthesisVoice { name: string; languages: string[]; gender: string; speakerCount?: number; - localService?: boolean; - voiceURI?: string; - default?: boolean; -}; +} export const vitsVoiceList: SynthesisVoice[] = [ { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 119aa16f1d5..98d28901cc0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -78,7 +78,7 @@ importers: version: 9.15.0(jiti@2.4.0) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.15.0(jiti@2.4.0)) + version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) husky: specifier: 9.1.7 version: 9.1.7 @@ -32580,7 +32580,7 @@ snapshots: ref@1.3.5: dependencies: - bindings: 1.5.0 + bindings: 1.2.1 debug: 2.6.9 nan: 2.22.0 transitivePeerDependencies: From 8ee6980ab882f2729016f10a7bd8654978e26628 Mon Sep 17 00:00:00 2001 From: Augustin Chan Date: Sat, 30 Nov 2024 11:42:17 +0800 Subject: [PATCH 4/6] wtf vite and web-agent why am i fixing this --- pnpm-lock.yaml | 124 ++++++++++++++++++++++++++++++------------------- 1 file changed, 75 insertions(+), 49 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 98d28901cc0..bb48be845a2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,27 +17,18 @@ importers: '@coinbase/coinbase-sdk': specifier: ^0.10.0 version: 0.10.0(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) - '@discordjs/opus': - specifier: ^0.9.0 - version: 0.9.0(encoding@0.1.13) amqplib: specifier: 0.10.5 version: 0.10.5 csv-parse: specifier: ^5.6.0 version: 5.6.0 - node-opus: - specifier: ^0.3.3 - version: 0.3.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 - opusscript: - specifier: ^0.1.1 - version: 0.1.1 pnpm: specifier: ^9.14.3 version: 9.14.4 @@ -66,16 +57,9 @@ importers: cross-env: specifier: ^7.0.3 version: 7.0.3 - cross-env: - specifier: ^7.0.3 - version: 7.0.3 eslint: specifier: ^9.15.0 version: 9.16.0(jiti@2.4.0) - eslint-config-prettier: - specifier: 9.1.0 - version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) - version: 9.15.0(jiti@2.4.0) eslint-config-prettier: specifier: 9.1.0 version: 9.1.0(eslint@9.16.0(jiti@2.4.0)) @@ -573,7 +557,7 @@ importers: 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)(node-opus@0.3.3)(opusscript@0.1.1)(utf-8-validate@5.0.10) + 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)(node-opus@0.3.3)(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) @@ -582,7 +566,7 @@ importers: 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)(node-opus@0.3.3)(opusscript@0.1.1) + version: 1.3.5(@discordjs/opus@https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13))(ffmpeg-static@5.2.0)(node-opus@0.3.3) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1404,12 +1388,9 @@ importers: '@solana/spl-token': specifier: 0.4.9 version: 0.4.9(@solana/web3.js@1.95.5(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) - version: 0.4.9(@solana/web3.js@1.95.5(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.5 version: 1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - specifier: 1.95.5 - version: 1.95.5(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) bignumber: specifier: 1.1.0 version: 1.1.0 @@ -1431,9 +1412,6 @@ importers: viem: specifier: ^2.21.53 version: 2.21.53(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) - viem: - specifier: ^2.21.53 - version: 2.21.53(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -3257,10 +3235,6 @@ packages: resolution: {integrity: sha512-YJOVVZ545x24mHzANfYoy0BJX5PDyeZlpiJjDkUBM/V/Ao7TFX9lcUvCN4nr0tbr5ubeaXxtEBILUrHtTphVeQ==} hasBin: true - '@discordjs/opus@0.9.0': - resolution: {integrity: sha512-NEE76A96FtQ5YuoAVlOlB3ryMPrkXbUCTQICHGKb8ShtjXyubGicjRMouHtP1RpuDdm16cDa+oI3aAMo1zQRUQ==} - engines: {node: '>=12.0.0'} - '@discordjs/opus@https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02': resolution: {tarball: https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02} version: 0.9.0 @@ -9341,6 +9315,9 @@ 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==} @@ -11402,6 +11379,9 @@ 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.14: resolution: {integrity: sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==} @@ -12385,9 +12365,6 @@ packages: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} - opusscript@0.1.1: - resolution: {integrity: sha512-mL0fZZOUnXdZ78woRXp18lApwpp0lF5tozJOD1Wut0dgrA9WuQTgSels/CSmFleaAZrJi/nci5KOVtbuxeWoQA==} - ora@5.3.0: resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} engines: {node: '>=10'} @@ -14210,6 +14187,16 @@ packages: rollup: ^3.29.4 || ^4 typescript: ^4.5 || ^5.0 + 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'} @@ -14572,6 +14559,10 @@ packages: resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} engines: {node: '>= 8'} + sourcemap-codec@1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead + space-separated-tokens@1.1.5: resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} @@ -18672,14 +18663,6 @@ snapshots: - encoding - supports-color - '@discordjs/opus@0.9.0(encoding@0.1.13)': - dependencies: - '@discordjs/node-pre-gyp': 0.4.5(encoding@0.1.13) - node-addon-api: 5.1.0 - transitivePeerDependencies: - - encoding - - supports-color - '@discordjs/opus@https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13)': dependencies: '@discordjs/node-pre-gyp': 0.4.5(encoding@0.1.13) @@ -18702,11 +18685,11 @@ snapshots: '@discordjs/util@1.1.1': {} - '@discordjs/voice@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)(node-opus@0.3.3)(opusscript@0.1.1)(utf-8-validate@5.0.10)': + '@discordjs/voice@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)(node-opus@0.3.3)(utf-8-validate@5.0.10)': dependencies: '@types/ws': 8.5.13 discord-api-types: 0.37.83 - 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)(node-opus@0.3.3)(opusscript@0.1.1) + 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)(node-opus@0.3.3) tslib: 2.8.0 ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: @@ -23501,6 +23484,17 @@ snapshots: moment: 2.30.1 starknet: 6.18.0(encoding@0.1.13) + '@vitejs/plugin-react@4.3.3(vite@5.4.11(@types/node@22.8.4)(terser@5.36.0))': + dependencies: + '@babel/core': 7.26.0 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.2 + vite: 5.4.11(@types/node@22.8.4)(terser@5.36.0) + transitivePeerDependencies: + - supports-color + '@vitejs/plugin-react@4.3.3(vite@client+@tanstack+router-plugin+vite)': dependencies: '@babel/core': 7.26.0 @@ -24406,7 +24400,8 @@ snapshots: execa: 8.0.1 find-versions: 6.0.0 - bindings@1.2.1: {} + bindings@1.2.1: + optional: true bindings@1.5.0: dependencies: @@ -26608,6 +26603,8 @@ 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: @@ -26769,7 +26766,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.3.4 + debug: 4.3.7(supports-color@5.5.0) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -29305,6 +29302,10 @@ snapshots: magic-bytes.js@1.10.0: {} + magic-string@0.25.9: + dependencies: + sourcemap-codec: 1.4.8 + magic-string@0.30.14: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -30212,7 +30213,8 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nan@2.22.0: {} + nan@2.22.0: + optional: true nanoid@3.3.6: {} @@ -30400,6 +30402,7 @@ snapshots: ogg-packet: 1.0.1 transitivePeerDependencies: - supports-color + optional: true node-releases@2.0.18: {} @@ -30771,8 +30774,6 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 - opusscript@0.1.1: {} - ora@5.3.0: dependencies: bl: 4.1.0 @@ -31990,12 +31991,11 @@ snapshots: pretty-time@1.1.0: {} - 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)(node-opus@0.3.3)(opusscript@0.1.1): + 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)(node-opus@0.3.3): optionalDependencies: '@discordjs/opus': https://codeload.github.com/discordjs/opus/tar.gz/31da49d8d2cc6c5a2ab1bfd332033ff7d5f9fb02(encoding@0.1.13) ffmpeg-static: 5.2.0 node-opus: 0.3.3 - opusscript: 0.1.1 prism-react-renderer@2.3.1(react@18.3.1): dependencies: @@ -32580,7 +32580,7 @@ snapshots: ref@1.3.5: dependencies: - bindings: 1.2.1 + bindings: 1.5.0 debug: 2.6.9 nan: 2.22.0 transitivePeerDependencies: @@ -32851,6 +32851,20 @@ snapshots: optionalDependencies: '@babel/code-frame': 7.26.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-pluginutils@2.8.2: + dependencies: + estree-walker: 0.6.1 + rollup@2.79.2: optionalDependencies: fsevents: 2.3.3 @@ -33329,6 +33343,8 @@ snapshots: dependencies: whatwg-url: 7.1.0 + sourcemap-codec@1.4.8: {} + space-separated-tokens@1.1.5: {} space-separated-tokens@2.0.2: {} @@ -34604,6 +34620,16 @@ snapshots: - supports-color - terser + vite-plugin-top-level-await@1.4.4(@swc/helpers@0.5.15)(rollup@4.27.4)(vite@5.4.11(@types/node@22.8.4)(terser@5.36.0)): + dependencies: + '@rollup/plugin-virtual': 3.0.2(rollup@4.27.4) + '@swc/core': 1.9.3(@swc/helpers@0.5.15) + uuid: 10.0.0 + vite: 5.4.11(@types/node@22.8.4)(terser@5.36.0) + transitivePeerDependencies: + - '@swc/helpers' + - rollup + vite-plugin-top-level-await@1.4.4(@swc/helpers@0.5.15)(rollup@4.27.4)(vite@client+@tanstack+router-plugin+vite): dependencies: '@rollup/plugin-virtual': 3.0.2(rollup@4.27.4) From fb71a9777615afa49c7e2488ec7ebbbde7c0de50 Mon Sep 17 00:00:00 2001 From: Augustin Chan Date: Sat, 30 Nov 2024 11:53:19 +0800 Subject: [PATCH 5/6] fix ordering for turbo --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index dc11aa5e4a1..a6a944965a9 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "eliza", "scripts": { "preinstall": "npx only-allow pnpm", - "build": "turbo check-types build", + "build": "turbo run build --filter=@ai16z/plugin-bootstrap^... --filter=@ai16z/eliza^... --filter=@ai16z/web-agent^...", "start": "pnpm --filter \"@ai16z/agent\" start --isRoot", "start:client": "pnpm --dir client start --isRoot", "start:debug": "cross-env NODE_ENV=development VERBOSE=true DEBUG=eliza:* pnpm --filter \"@ai16z/agent\" start --isRoot", @@ -61,4 +61,4 @@ "workspaces": [ "packages/*" ] -} +} \ No newline at end of file From 607daa987ebfe71d70cae27de67b22217eb5a24d Mon Sep 17 00:00:00 2001 From: Augustin Chan Date: Sat, 30 Nov 2024 17:29:05 +0800 Subject: [PATCH 6/6] fix build as web-agent got removed --- package.json | 2 +- pnpm-lock.yaml | 367 +------------------------------------------------ 2 files changed, 7 insertions(+), 362 deletions(-) diff --git a/package.json b/package.json index a6a944965a9..f9676f223c6 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "eliza", "scripts": { "preinstall": "npx only-allow pnpm", - "build": "turbo run build --filter=@ai16z/plugin-bootstrap^... --filter=@ai16z/eliza^... --filter=@ai16z/web-agent^...", + "build": "turbo run build --filter=@ai16z/plugin-bootstrap^... --filter=@ai16z/eliza^...", "start": "pnpm --filter \"@ai16z/agent\" start --isRoot", "start:client": "pnpm --dir client start --isRoot", "start:debug": "cross-env NODE_ENV=development VERBOSE=true DEBUG=eliza:* pnpm --filter \"@ai16z/agent\" start --isRoot", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bb48be845a2..0da69de09d0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -872,7 +872,7 @@ 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.24.0)(jest@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)))(typescript@5.6.3) + version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)))(typescript@5.6.3) ts-node: specifier: 10.9.2 version: 10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3) @@ -1539,109 +1539,6 @@ importers: specifier: ^5.0.0 version: 5.6.3 - web-agent: - dependencies: - '@ai16z/adapter-sqljs': - specifier: workspace:* - version: link:../packages/adapter-sqljs - '@ai16z/eliza': - specifier: workspace:* - version: link:../packages/core - '@ai16z/plugin-bootstrap': - specifier: workspace:* - version: link:../packages/plugin-bootstrap - '@radix-ui/react-dialog': - specifier: 1.1.2 - version: 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-separator': - specifier: 1.1.0 - version: 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': - specifier: 1.1.0 - version: 1.1.0(@types/react@18.3.12)(react@18.3.1) - '@radix-ui/react-tooltip': - specifier: 1.1.4 - version: 1.1.4(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tanstack/react-query': - specifier: 5.61.0 - version: 5.61.0(react@18.3.1) - class-variance-authority: - specifier: 0.7.0 - version: 0.7.0 - clsx: - specifier: 2.1.0 - version: 2.1.0 - lucide-react: - specifier: 0.460.0 - version: 0.460.0(react@18.3.1) - react: - specifier: 18.3.1 - version: 18.3.1 - react-dom: - specifier: 18.3.1 - version: 18.3.1(react@18.3.1) - react-router-dom: - specifier: 6.22.1 - version: 6.22.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - tailwind-merge: - specifier: 2.5.4 - version: 2.5.4 - tailwindcss-animate: - specifier: 1.0.7 - version: 1.0.7(tailwindcss@3.4.15(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))) - vite-plugin-top-level-await: - specifier: 1.4.4 - version: 1.4.4(@swc/helpers@0.5.15)(rollup@4.27.4)(vite@web-agent+@tanstack+router-plugin+vite) - vite-plugin-wasm: - specifier: 3.3.0 - version: 3.3.0(vite@web-agent+@tanstack+router-plugin+vite) - devDependencies: - '@eslint/js': - specifier: 9.15.0 - version: 9.15.0 - '@types/node': - specifier: 22.8.4 - version: 22.8.4 - '@types/react': - specifier: 18.3.12 - version: 18.3.12 - '@types/react-dom': - specifier: 18.3.1 - version: 18.3.1 - '@vitejs/plugin-react': - specifier: 4.3.3 - version: 4.3.3(vite@web-agent+@tanstack+router-plugin+vite) - autoprefixer: - specifier: 10.4.20 - version: 10.4.20(postcss@8.4.49) - eslint: - specifier: 9.13.0 - version: 9.13.0(jiti@2.4.0) - eslint-plugin-react-hooks: - specifier: 5.0.0 - version: 5.0.0(eslint@9.13.0(jiti@2.4.0)) - eslint-plugin-react-refresh: - specifier: 0.4.14 - version: 0.4.14(eslint@9.13.0(jiti@2.4.0)) - globals: - specifier: 15.11.0 - version: 15.11.0 - postcss: - specifier: 8.4.49 - version: 8.4.49 - tailwindcss: - specifier: 3.4.15 - version: 3.4.15(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)) - typescript: - specifier: ~5.6.2 - version: 5.6.3 - typescript-eslint: - specifier: 8.11.0 - version: 8.11.0(eslint@9.13.0(jiti@2.4.0))(typescript@5.6.3) - vite: - specifier: link:@tanstack/router-plugin/vite - version: link:@tanstack/router-plugin/vite - packages: '@0glabs/0g-ts-sdk@0.2.1': @@ -3957,18 +3854,10 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.18.0': - resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/config-array@0.19.0': resolution: {integrity: sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.7.0': - resolution: {integrity: sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.9.0': resolution: {integrity: sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3977,10 +3866,6 @@ packages: resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.13.0': - resolution: {integrity: sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.15.0': resolution: {integrity: sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -9236,16 +9121,6 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.13.0: - resolution: {integrity: sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true - eslint@9.16.0: resolution: {integrity: sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -9315,9 +9190,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==} @@ -11379,9 +11251,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.14: resolution: {integrity: sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==} @@ -14187,16 +14056,6 @@ packages: rollup: ^3.29.4 || ^4 typescript: ^4.5 || ^5.0 - 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'} @@ -14559,10 +14418,6 @@ packages: resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} engines: {node: '>= 8'} - sourcemap-codec@1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - deprecated: Please use @jridgewell/sourcemap-codec instead - space-separated-tokens@1.1.5: resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} @@ -19816,11 +19671,6 @@ snapshots: '@esbuild/win32-x64@0.24.0': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.13.0(jiti@2.4.0))': - dependencies: - eslint: 9.13.0(jiti@2.4.0) - eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.4.1(eslint@9.16.0(jiti@2.4.0))': dependencies: eslint: 9.16.0(jiti@2.4.0) @@ -19828,14 +19678,6 @@ snapshots: '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.18.0': - dependencies: - '@eslint/object-schema': 2.1.4 - debug: 4.3.7(supports-color@5.5.0) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - '@eslint/config-array@0.19.0': dependencies: '@eslint/object-schema': 2.1.4 @@ -19844,8 +19686,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/core@0.7.0': {} - '@eslint/core@0.9.0': {} '@eslint/eslintrc@3.2.0': @@ -19862,8 +19702,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.13.0': {} - '@eslint/js@9.15.0': {} '@eslint/js@9.16.0': {} @@ -23119,24 +22957,6 @@ snapshots: '@types/node': 20.17.9 optional: true - '@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.13.0(jiti@2.4.0))(typescript@5.6.3)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.11.0(eslint@9.13.0(jiti@2.4.0))(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.11.0 - '@typescript-eslint/type-utils': 8.11.0(eslint@9.13.0(jiti@2.4.0))(typescript@5.6.3) - '@typescript-eslint/utils': 8.11.0(eslint@9.13.0(jiti@2.4.0))(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.11.0 - eslint: 9.13.0(jiti@2.4.0) - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': dependencies: '@eslint-community/regexpp': 4.12.1 @@ -23191,19 +23011,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@2.4.0))(typescript@5.6.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.11.0 - '@typescript-eslint/types': 8.11.0 - '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.11.0 - debug: 4.3.7(supports-color@5.5.0) - eslint: 9.13.0(jiti@2.4.0) - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/parser@8.11.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': dependencies: '@typescript-eslint/scope-manager': 8.11.0 @@ -23263,18 +23070,6 @@ snapshots: '@typescript-eslint/types': 8.16.0 '@typescript-eslint/visitor-keys': 8.16.0 - '@typescript-eslint/type-utils@8.11.0(eslint@9.13.0(jiti@2.4.0))(typescript@5.6.3)': - dependencies: - '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.6.3) - '@typescript-eslint/utils': 8.11.0(eslint@9.13.0(jiti@2.4.0))(typescript@5.6.3) - debug: 4.3.7(supports-color@5.5.0) - ts-api-utils: 1.4.3(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - eslint - - supports-color - '@typescript-eslint/type-utils@8.11.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': dependencies: '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.6.3) @@ -23390,17 +23185,6 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@8.11.0(eslint@9.13.0(jiti@2.4.0))(typescript@5.6.3)': - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.13.0(jiti@2.4.0)) - '@typescript-eslint/scope-manager': 8.11.0 - '@typescript-eslint/types': 8.11.0 - '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.6.3) - eslint: 9.13.0(jiti@2.4.0) - transitivePeerDependencies: - - supports-color - - typescript - '@typescript-eslint/utils@8.11.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@2.4.0)) @@ -23484,17 +23268,6 @@ snapshots: moment: 2.30.1 starknet: 6.18.0(encoding@0.1.13) - '@vitejs/plugin-react@4.3.3(vite@5.4.11(@types/node@22.8.4)(terser@5.36.0))': - dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) - '@types/babel__core': 7.20.5 - react-refresh: 0.14.2 - vite: 5.4.11(@types/node@22.8.4)(terser@5.36.0) - transitivePeerDependencies: - - supports-color - '@vitejs/plugin-react@4.3.3(vite@client+@tanstack+router-plugin+vite)': dependencies: '@babel/core': 7.26.0 @@ -23506,17 +23279,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.3.3(vite@web-agent+@tanstack+router-plugin+vite)': - dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) - '@types/babel__core': 7.20.5 - react-refresh: 0.14.2 - vite: link:web-agent/@tanstack/router-plugin/vite - transitivePeerDependencies: - - supports-color - '@vitest/coverage-v8@2.1.5(vitest@2.1.5(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.8)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.36.0))': dependencies: '@ampproject/remapping': 2.3.0 @@ -24189,15 +23951,6 @@ snapshots: transitivePeerDependencies: - debug - axios@1.7.8: - dependencies: - follow-redirects: 1.15.9(debug@4.3.7) - form-data: 4.0.1 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - optional: true - axios@1.7.8(debug@4.3.7): dependencies: follow-redirects: 1.15.9(debug@4.3.7) @@ -26388,18 +26141,10 @@ snapshots: '@types/eslint': 9.6.1 eslint-config-prettier: 9.1.0(eslint@9.16.0(jiti@2.4.0)) - eslint-plugin-react-hooks@5.0.0(eslint@9.13.0(jiti@2.4.0)): - dependencies: - eslint: 9.13.0(jiti@2.4.0) - eslint-plugin-react-hooks@5.0.0(eslint@9.16.0(jiti@2.4.0)): dependencies: eslint: 9.16.0(jiti@2.4.0) - eslint-plugin-react-refresh@0.4.14(eslint@9.13.0(jiti@2.4.0)): - dependencies: - eslint: 9.13.0(jiti@2.4.0) - eslint-plugin-react-refresh@0.4.14(eslint@9.16.0(jiti@2.4.0)): dependencies: eslint: 9.16.0(jiti@2.4.0) @@ -26451,48 +26196,6 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.13.0(jiti@2.4.0): - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.13.0(jiti@2.4.0)) - '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.18.0 - '@eslint/core': 0.7.0 - '@eslint/eslintrc': 3.2.0 - '@eslint/js': 9.13.0 - '@eslint/plugin-kit': 0.2.3 - '@humanfs/node': 0.16.6 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.3.1 - '@types/estree': 1.0.6 - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.3.7(supports-color@5.5.0) - escape-string-regexp: 4.0.0 - eslint-scope: 8.2.0 - eslint-visitor-keys: 4.2.0 - espree: 10.3.0 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - text-table: 0.2.0 - optionalDependencies: - jiti: 2.4.0 - transitivePeerDependencies: - - supports-color - eslint@9.16.0(jiti@2.4.0): dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@2.4.0)) @@ -26603,8 +26306,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: @@ -28910,7 +28611,7 @@ snapshots: zod: 3.23.8 zod-to-json-schema: 3.23.5(zod@3.23.8) optionalDependencies: - axios: 1.7.8 + axios: 1.7.8(debug@4.3.7) handlebars: 4.7.8 transitivePeerDependencies: - encoding @@ -29302,10 +29003,6 @@ snapshots: magic-bytes.js@1.10.0: {} - magic-string@0.25.9: - dependencies: - sourcemap-codec: 1.4.8 - magic-string@0.30.14: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -32851,20 +32548,6 @@ snapshots: optionalDependencies: '@babel/code-frame': 7.26.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-pluginutils@2.8.2: - dependencies: - estree-walker: 0.6.1 - rollup@2.79.2: optionalDependencies: fsevents: 2.3.3 @@ -33343,8 +33026,6 @@ snapshots: dependencies: whatwg-url: 7.1.0 - sourcemap-codec@1.4.8: {} - space-separated-tokens@1.1.5: {} space-separated-tokens@2.0.2: {} @@ -33989,12 +33670,12 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.0)(jest@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)))(typescript@5.6.3): + ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@20.17.9))(typescript@5.6.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)) + jest: 29.7.0(@types/node@20.17.9) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -34007,14 +33688,13 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.26.0) - esbuild: 0.24.0 - ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@20.17.9))(typescript@5.6.3): + ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)))(typescript@5.6.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.17.9) + jest: 29.7.0(@types/node@22.8.4)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -34192,17 +33872,6 @@ snapshots: typeforce@1.18.0: {} - typescript-eslint@8.11.0(eslint@9.13.0(jiti@2.4.0))(typescript@5.6.3): - dependencies: - '@typescript-eslint/eslint-plugin': 8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.13.0(jiti@2.4.0))(typescript@5.6.3) - '@typescript-eslint/parser': 8.11.0(eslint@9.13.0(jiti@2.4.0))(typescript@5.6.3) - '@typescript-eslint/utils': 8.11.0(eslint@9.13.0(jiti@2.4.0))(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - eslint - - supports-color - typescript-eslint@8.11.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3): dependencies: '@typescript-eslint/eslint-plugin': 8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) @@ -34620,16 +34289,6 @@ snapshots: - supports-color - terser - vite-plugin-top-level-await@1.4.4(@swc/helpers@0.5.15)(rollup@4.27.4)(vite@5.4.11(@types/node@22.8.4)(terser@5.36.0)): - dependencies: - '@rollup/plugin-virtual': 3.0.2(rollup@4.27.4) - '@swc/core': 1.9.3(@swc/helpers@0.5.15) - uuid: 10.0.0 - vite: 5.4.11(@types/node@22.8.4)(terser@5.36.0) - transitivePeerDependencies: - - '@swc/helpers' - - rollup - vite-plugin-top-level-await@1.4.4(@swc/helpers@0.5.15)(rollup@4.27.4)(vite@client+@tanstack+router-plugin+vite): dependencies: '@rollup/plugin-virtual': 3.0.2(rollup@4.27.4) @@ -34640,24 +34299,10 @@ snapshots: - '@swc/helpers' - rollup - vite-plugin-top-level-await@1.4.4(@swc/helpers@0.5.15)(rollup@4.27.4)(vite@web-agent+@tanstack+router-plugin+vite): - dependencies: - '@rollup/plugin-virtual': 3.0.2(rollup@4.27.4) - '@swc/core': 1.9.3(@swc/helpers@0.5.15) - uuid: 10.0.0 - vite: link:web-agent/@tanstack/router-plugin/vite - transitivePeerDependencies: - - '@swc/helpers' - - rollup - vite-plugin-wasm@3.3.0(vite@client+@tanstack+router-plugin+vite): dependencies: vite: link:client/@tanstack/router-plugin/vite - vite-plugin-wasm@3.3.0(vite@web-agent+@tanstack+router-plugin+vite): - dependencies: - vite: link:web-agent/@tanstack/router-plugin/vite - vite@5.4.11(@types/node@20.17.9)(terser@5.36.0): dependencies: esbuild: 0.21.5