diff --git a/.changeset/large-cars-pull.md b/.changeset/large-cars-pull.md new file mode 100644 index 000000000..1570b8afc --- /dev/null +++ b/.changeset/large-cars-pull.md @@ -0,0 +1,5 @@ +--- +"@livekit/agents": patch +--- + +Add support for noiseCancellation frameProcessors diff --git a/agents/src/voice/room_io/_input.ts b/agents/src/voice/room_io/_input.ts index ef8c54a0d..6df90c4e6 100644 --- a/agents/src/voice/room_io/_input.ts +++ b/agents/src/voice/room_io/_input.ts @@ -1,7 +1,7 @@ // SPDX-FileCopyrightText: 2025 LiveKit, Inc. // // SPDX-License-Identifier: Apache-2.0 -import type { AudioFrame } from '@livekit/rtc-node'; +import { type AudioFrame, FrameProcessor } from '@livekit/rtc-node'; import { AudioStream, type NoiseCancellationOptions, @@ -22,6 +22,7 @@ export class ParticipantAudioInputStream extends AudioInput { private sampleRate: number; private numChannels: number; private noiseCancellation?: NoiseCancellationOptions; + private frameProcessor?: FrameProcessor; private publication: RemoteTrackPublication | null = null; private participantIdentity: string | null = null; private logger = log(); @@ -34,16 +35,21 @@ export class ParticipantAudioInputStream extends AudioInput { room: Room; sampleRate: number; numChannels: number; - noiseCancellation?: NoiseCancellationOptions; + noiseCancellation?: NoiseCancellationOptions | FrameProcessor; }) { super(); this.room = room; this.sampleRate = sampleRate; this.numChannels = numChannels; - this.noiseCancellation = noiseCancellation; + if (noiseCancellation instanceof FrameProcessor) { + this.frameProcessor = noiseCancellation; + } else { + this.noiseCancellation = noiseCancellation; + } this.room.on(RoomEvent.TrackSubscribed, this.onTrackSubscribed); this.room.on(RoomEvent.TrackUnpublished, this.onTrackUnpublished); + this.room.on(RoomEvent.TokenRefreshed, this.onTokenRefreshed); } setParticipant(participant: RemoteParticipant | string | null) { @@ -116,6 +122,9 @@ export class ParticipantAudioInputStream extends AudioInput { if (this.deferredStream.isSourceSet) { this.deferredStream.detachSource(); } + + this.frameProcessor?.close(); + this.publication = null; } @@ -140,14 +149,32 @@ export class ParticipantAudioInputStream extends AudioInput { outputRate: this.sampleRate, }), ); + this.frameProcessor?.onStreamInfoUpdated({ + participantIdentity: participant.identity, + roomName: this.room.name!, + publicationSid: publication.sid!, + }); + this.frameProcessor?.onCredentialsUpdated({ + token: this.room.token!, + url: this.room.serverUrl!, + }); return true; }; + private onTokenRefreshed = () => { + if (this.room.token && this.room.serverUrl) { + this.frameProcessor?.onCredentialsUpdated({ + token: this.room.token, + url: this.room.serverUrl, + }); + } + }; + private createStream(track: RemoteTrack): ReadableStream { return new AudioStream(track, { sampleRate: this.sampleRate, numChannels: this.numChannels, - noiseCancellation: this.noiseCancellation, + noiseCancellation: this.frameProcessor || this.noiseCancellation, // TODO(AJS-269): resolve compatibility issue with node-sdk to remove the forced type casting }) as unknown as ReadableStream; } @@ -155,6 +182,7 @@ export class ParticipantAudioInputStream extends AudioInput { async close() { this.room.off(RoomEvent.TrackSubscribed, this.onTrackSubscribed); this.room.off(RoomEvent.TrackUnpublished, this.onTrackUnpublished); + this.room.off(RoomEvent.TokenRefreshed, this.onTokenRefreshed); this.closeStream(); // Ignore errors - stream may be locked by RecorderIO or already cancelled await this.deferredStream.stream.cancel().catch(() => {}); diff --git a/agents/src/voice/room_io/room_io.ts b/agents/src/voice/room_io/room_io.ts index 030f97b2b..4ab474375 100644 --- a/agents/src/voice/room_io/room_io.ts +++ b/agents/src/voice/room_io/room_io.ts @@ -2,8 +2,10 @@ // // SPDX-License-Identifier: Apache-2.0 import { + type AudioFrame, ConnectionState, DisconnectReason, + type FrameProcessor, type NoiseCancellationOptions, type Participant, ParticipantKind, @@ -75,7 +77,7 @@ export interface RoomInputOptions { Can be overridden by the `participant` argument of RoomIO constructor or `set_participant`. */ participantIdentity?: string; - noiseCancellation?: NoiseCancellationOptions; + noiseCancellation?: NoiseCancellationOptions | FrameProcessor; textInputCallback?: TextInputCallback; /** Participant kinds accepted for auto subscription. If not provided, accept `DEFAULT_PARTICIPANT_KINDS` diff --git a/examples/package.json b/examples/package.json index 858259219..c9db0d91e 100644 --- a/examples/package.json +++ b/examples/package.json @@ -40,6 +40,7 @@ "@livekit/agents-plugin-silero": "workspace:*", "@livekit/agents-plugin-xai": "workspace:*", "@livekit/noise-cancellation-node": "^0.1.9", + "@livekit/plugins-ai-coustics": "0.1.7", "@livekit/rtc-node": "catalog:", "@opentelemetry/api": "^1.9.0", "@opentelemetry/api-logs": "^0.54.0", diff --git a/examples/src/basic_agent.ts b/examples/src/basic_agent.ts index 6228c056b..91e549bff 100644 --- a/examples/src/basic_agent.ts +++ b/examples/src/basic_agent.ts @@ -13,7 +13,8 @@ import { } from '@livekit/agents'; import * as livekit from '@livekit/agents-plugin-livekit'; import * as silero from '@livekit/agents-plugin-silero'; -import { BackgroundVoiceCancellation } from '@livekit/noise-cancellation-node'; +// import { BackgroundVoiceCancellation } from '@livekit/noise-cancellation-node'; +import * as aic from '@livekit/plugins-ai-coustics'; import { fileURLToPath } from 'node:url'; import { z } from 'zod'; @@ -82,7 +83,9 @@ export default defineAgent({ agent, room: ctx.room, inputOptions: { - noiseCancellation: BackgroundVoiceCancellation(), + noiseCancellation: aic.audioEnhancement(), + // or for krisp use + // noiseCancellation: BackgroundVoiceCancellation(), }, }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1d01be6cc..935381ff8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -42,7 +42,7 @@ importers: version: 6.21.0(eslint@8.57.0)(typescript@5.4.5) '@vitest/coverage-v8': specifier: 4.0.17 - version: 4.0.17(vitest@4.0.17(@opentelemetry/api@1.9.0)(@types/node@22.15.30)(tsx@4.20.4)) + version: 4.0.17(vitest@4.0.17(@opentelemetry/api@1.9.0)(@types/node@22.15.30)(tsx@4.21.0)) eslint: specifier: ^8.56.0 version: 8.57.0 @@ -81,7 +81,7 @@ importers: version: 3.2.5 tsup: specifier: ^8.4.0 - version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.15.30))(postcss@8.5.6)(tsx@4.20.4)(typescript@5.4.5) + version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.15.30))(postcss@8.5.6)(tsx@4.21.0)(typescript@5.4.5) turbo: specifier: ^1.13.3 version: 1.13.3 @@ -93,10 +93,10 @@ importers: version: 5.4.5 vite: specifier: ^7.3.1 - version: 7.3.1(@types/node@22.15.30)(tsx@4.20.4) + version: 7.3.1(@types/node@22.15.30)(tsx@4.21.0) vitest: specifier: ^4.0.17 - version: 4.0.17(@opentelemetry/api@1.9.0)(@types/node@22.15.30)(tsx@4.20.4) + version: 4.0.17(@opentelemetry/api@1.9.0)(@types/node@22.15.30)(tsx@4.21.0) agents: dependencies: @@ -214,7 +214,7 @@ importers: version: 8.5.10 tsup: specifier: ^8.4.0 - version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.15.30))(postcss@8.5.6)(tsx@4.20.4)(typescript@5.4.5) + version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.15.30))(postcss@8.5.6)(tsx@4.21.0)(typescript@5.4.5) typescript: specifier: ^5.0.0 version: 5.4.5 @@ -275,6 +275,9 @@ importers: '@livekit/noise-cancellation-node': specifier: ^0.1.9 version: 0.1.9 + '@livekit/plugins-ai-coustics': + specifier: 0.1.7 + version: 0.1.7(@livekit/rtc-node@0.13.24) '@livekit/rtc-node': specifier: 'catalog:' version: 0.13.24 @@ -360,7 +363,7 @@ importers: version: 8.5.10 tsup: specifier: ^8.3.5 - version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.20.4)(typescript@5.4.5) + version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.21.0)(typescript@5.4.5) typescript: specifier: ^5.0.0 version: 5.4.5 @@ -425,7 +428,7 @@ importers: version: 8.21.0 tsup: specifier: ^8.3.5 - version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.20.4)(typescript@5.4.5) + version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.21.0)(typescript@5.4.5) typescript: specifier: ^5.0.0 version: 5.4.5 @@ -456,7 +459,7 @@ importers: version: 8.5.10 tsup: specifier: ^8.3.5 - version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.20.4)(typescript@5.4.5) + version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.21.0)(typescript@5.4.5) typescript: specifier: ^5.0.0 version: 5.4.5 @@ -487,7 +490,7 @@ importers: version: 8.5.10 tsup: specifier: ^8.3.5 - version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.20.4)(typescript@5.4.5) + version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.21.0)(typescript@5.4.5) typescript: specifier: ^5.0.0 version: 5.4.5 @@ -521,7 +524,7 @@ importers: version: 8.5.10 tsup: specifier: ^8.3.5 - version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.20.4)(typescript@5.4.5) + version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.21.0)(typescript@5.4.5) typescript: specifier: ^5.0.0 version: 5.4.5 @@ -558,7 +561,7 @@ importers: version: 7.43.7(@types/node@22.19.1) tsup: specifier: ^8.3.5 - version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.20.4)(typescript@5.4.5) + version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.21.0)(typescript@5.4.5) typescript: specifier: ^5.0.0 version: 5.4.5 @@ -583,7 +586,7 @@ importers: version: 8.21.0 tsup: specifier: ^8.3.5 - version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.20.4)(typescript@5.9.3) + version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3) typescript: specifier: ^5.0.0 version: 5.9.3 @@ -614,7 +617,7 @@ importers: version: 8.5.10 tsup: specifier: ^8.3.5 - version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.20.4)(typescript@5.9.3) + version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3) typescript: specifier: ^5.0.0 version: 5.9.3 @@ -642,7 +645,7 @@ importers: version: 1.21.0 tsup: specifier: ^8.3.5 - version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.20.4)(typescript@5.4.5) + version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.21.0)(typescript@5.4.5) typescript: specifier: ^5.0.0 version: 5.4.5 @@ -673,7 +676,7 @@ importers: version: 8.5.10 tsup: specifier: ^8.3.5 - version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.20.4)(typescript@5.4.5) + version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.21.0)(typescript@5.4.5) typescript: specifier: ^5.0.0 version: 5.4.5 @@ -710,7 +713,7 @@ importers: version: 8.5.10 tsup: specifier: ^8.3.5 - version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.20.4)(typescript@5.4.5) + version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.21.0)(typescript@5.4.5) typescript: specifier: ^5.0.0 version: 5.4.5 @@ -741,7 +744,7 @@ importers: version: 8.5.10 tsup: specifier: ^8.3.5 - version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.20.4)(typescript@5.4.5) + version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.21.0)(typescript@5.4.5) typescript: specifier: ^5.0.0 version: 5.4.5 @@ -775,7 +778,7 @@ importers: version: 8.5.10 tsup: specifier: ^8.3.5 - version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.20.4)(typescript@5.4.5) + version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.21.0)(typescript@5.4.5) typescript: specifier: ^5.0.0 version: 5.4.5 @@ -806,7 +809,7 @@ importers: version: 1.21.0 tsup: specifier: ^8.3.5 - version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.20.4)(typescript@5.4.5) + version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.21.0)(typescript@5.4.5) typescript: specifier: ^5.0.0 version: 5.4.5 @@ -831,7 +834,7 @@ importers: version: 22.15.30 tsup: specifier: ^8.3.5 - version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.15.30))(postcss@8.5.6)(tsx@4.20.4)(typescript@5.4.5) + version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.15.30))(postcss@8.5.6)(tsx@4.21.0)(typescript@5.4.5) typescript: specifier: ^5.0.0 version: 5.4.5 @@ -859,7 +862,7 @@ importers: version: 7.43.7(@types/node@22.19.1) tsup: specifier: ^8.3.5 - version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.20.4)(typescript@5.9.3) + version: 8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3) typescript: specifier: ^5.0.0 version: 5.9.3 @@ -1912,6 +1915,12 @@ packages: cpu: [x64] os: [win32] + '@livekit/plugins-ai-coustics@0.1.7': + resolution: {integrity: sha512-jScAdBttVdazsXvzK8v9lQdcBNZGCNM67kldtdpuXdGaT2X+aLqz4dTwRqnSSio99GfobGz/MMZ5H+3KLdy/9A==} + engines: {node: '>= 18'} + peerDependencies: + '@livekit/rtc-node': '*' + '@livekit/protocol@1.43.0': resolution: {integrity: sha512-WCJ97fa4CBqPDh8pzdszOm/2xmelJ3Dx2vjKBlyb9BzmPQx1LjzVciP6uYFFMCMdrq2l1mjFQBXEz8Z20UCkyw==} @@ -2620,6 +2629,9 @@ packages: '@types/tapable@1.0.6': resolution: {integrity: sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==} + '@types/unzipper@0.10.11': + resolution: {integrity: sha512-D25im2zjyMCcgL9ag6N46+wbtJBnXIr7SI4zHf9eJD2Dw2tEB5e+p5MYkrxKIVRscs5QV0EhtU9rgXSPx90oJg==} + '@types/ws@8.5.10': resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} @@ -2766,6 +2778,72 @@ packages: '@vitest/utils@4.0.17': resolution: {integrity: sha512-RG6iy+IzQpa9SB8HAFHJ9Y+pTzI+h8553MrciN9eC6TFBErqrQaTas4vG+MVj8S4uKk8uTT2p0vgZPnTdxd96w==} + '@yuuang/ffi-rs-android-arm64@1.3.1': + resolution: {integrity: sha512-V4nmlXdOYZEa7GOxSExVG95SLp8FE0iTq2yKeN54UlfNMr3Sik+1Ff57LcCv7qYcn4TBqnBAt5rT3FAM6T6caQ==} + engines: {node: '>= 12'} + cpu: [arm64] + os: [android] + + '@yuuang/ffi-rs-darwin-arm64@1.3.1': + resolution: {integrity: sha512-YlnTMIyzfW3mAULC5ZA774nzQfFlYXM0rrfq/8ZzWt+IMbYk55a++jrI+6JeKV+1EqlDS3TFBEFtjdBNG94KzQ==} + engines: {node: '>= 12'} + cpu: [arm64] + os: [darwin] + + '@yuuang/ffi-rs-darwin-x64@1.3.1': + resolution: {integrity: sha512-sI3LpQQ34SX4nyOHc5yxA7FSqs9qPEUMqW/y/wWo9cuyPpaHMFsi/BeOVYsnC0syp3FrY7gzn6RnD6PlXCktXg==} + engines: {node: '>= 12'} + cpu: [x64] + os: [darwin] + + '@yuuang/ffi-rs-linux-arm-gnueabihf@1.3.1': + resolution: {integrity: sha512-1WkcGkJTlwh4ZA59htKI+RXhiL3oKiYwLv7PO8LUf6FuADK73s5GcXp67iakKu243uYu+qGYr4RHco4ySddYhQ==} + engines: {node: '>= 12'} + cpu: [arm] + os: [linux] + + '@yuuang/ffi-rs-linux-arm64-gnu@1.3.1': + resolution: {integrity: sha512-J2PwqviycZxaEVA0Bwv38LqGDGSB9A1DPN4iYginYJZSvTvKW8kh7Tis0HbZrX1YDKnY8hi3lt0N0tCTNPDH5Q==} + engines: {node: '>= 12'} + cpu: [arm64] + os: [linux] + + '@yuuang/ffi-rs-linux-arm64-musl@1.3.1': + resolution: {integrity: sha512-Hn1W1hBPssTaqikU1Bqp1XUdDdOgbnYVIOtR++LVx66hhrtjf/xrIUQOhTm+NmOFDG16JUKXe1skfM4gpaqYwg==} + engines: {node: '>= 12'} + cpu: [arm64] + os: [linux] + + '@yuuang/ffi-rs-linux-x64-gnu@1.3.1': + resolution: {integrity: sha512-kW6e+oCYZPvpH2ppPsffA18e1aLowtmWTRjVlyHtY04g/nQDepQvDUkkcvInh9fW5jLna7PjHvktW1tVgYIj2A==} + engines: {node: '>= 12'} + cpu: [x64] + os: [linux] + + '@yuuang/ffi-rs-linux-x64-musl@1.3.1': + resolution: {integrity: sha512-HTwblAzruUS16nQPrez3ozvEHm1Xxh8J8w7rZYrpmAcNl1hzyOT8z/hY70M9Rt9fOqQ4Ovgor9qVy/U3ZJo0ZA==} + engines: {node: '>= 12'} + cpu: [x64] + os: [linux] + + '@yuuang/ffi-rs-win32-arm64-msvc@1.3.1': + resolution: {integrity: sha512-WeZkGl2BP1U4tRhEQH+FXLQS52N8obp74smK5AAGOfzPAT1pHkq6+dVkC1QCSIt7dHJs7SPtlnQw+5DkdZYlWA==} + engines: {node: '>= 12'} + cpu: [arm64] + os: [win32] + + '@yuuang/ffi-rs-win32-ia32-msvc@1.3.1': + resolution: {integrity: sha512-rNGgMeCH5mdeHiMiJgt7wWXovZ+FHEfXhU9p4zZBH4n8M1/QnEsRUwlapISPLpILSGpoYS6iBuq9/fUlZY8Mhg==} + engines: {node: '>= 12'} + cpu: [x64, ia32] + os: [win32] + + '@yuuang/ffi-rs-win32-x64-msvc@1.3.1': + resolution: {integrity: sha512-dr2LcLD2CXo2a7BktlOpV68QhayqiI112KxIJC9tBgQO/Dkdg4CPsdqmvzzLhFo64iC5RLl2BT7M5lJImrfUWw==} + engines: {node: '>= 12'} + cpu: [x64] + os: [win32] + abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} @@ -2926,9 +3004,19 @@ packages: resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} engines: {node: '>=4'} + big-integer@1.6.52: + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} + engines: {node: '>=0.6'} + bignumber.js@9.3.1: resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} + binary@0.3.0: + resolution: {integrity: sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==} + + bluebird@3.4.7: + resolution: {integrity: sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==} + boolean@3.2.0: resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. @@ -2950,9 +3038,17 @@ packages: buffer-equal-constant-time@1.0.1: resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + buffer-indexof-polyfill@1.0.2: + resolution: {integrity: sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==} + engines: {node: '>=0.10'} + buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + buffers@0.1.1: + resolution: {integrity: sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==} + engines: {node: '>=0.2.0'} + builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} @@ -3002,6 +3098,9 @@ packages: resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} engines: {node: '>=18'} + chainsaw@0.1.0: + resolution: {integrity: sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==} + chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -3084,6 +3183,9 @@ packages: resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} engines: {node: ^14.18.0 || >=16.10.0} + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -3222,6 +3324,9 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} + duplexer2@0.1.4: + resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} + eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -3588,6 +3693,9 @@ packages: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} + ffi-rs@1.3.1: + resolution: {integrity: sha512-ZyNXL9fnclnZV+waQmWB9JrfbIEyxQa1OWtMrHOrAgcC04PgP5hBMG5TdhVN8N4uT/eul8zCFMVnJUukAFFlXA==} + file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -3654,6 +3762,11 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] + fstream@1.0.12: + resolution: {integrity: sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==} + engines: {node: '>=0.6'} + deprecated: This package is no longer supported. + function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} @@ -3695,6 +3808,9 @@ packages: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} + get-symbol-from-current-process-h@1.0.2: + resolution: {integrity: sha512-syloC6fsCt62ELLrr1VKBM1ggOpMdetX9hTrdW77UQdcApPHLmf7CI7OKcN1c9kYuNxKcDe4iJ4FY9sX3aw2xw==} + get-tsconfig@4.7.5: resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} @@ -3994,6 +4110,9 @@ packages: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} @@ -4120,6 +4239,9 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + listenercount@1.0.1: + resolution: {integrity: sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==} + livekit-server-sdk@2.13.3: resolution: {integrity: sha512-ItSQ2gE1oz/Ev9mfBRdAw+P05rt/BaYRkldggKz0+3rh/Yt0ag0BLID3VrgCVFVRAQ2YEJKcJJyj5p4epIJ8QA==} engines: {node: '>=18'} @@ -4277,6 +4399,10 @@ packages: resolution: {integrity: sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==} engines: {node: '>= 18'} + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + mkdirp@3.0.1: resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} engines: {node: '>=10'} @@ -4314,6 +4440,9 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + node-addon-api@3.2.1: + resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} + node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} @@ -4332,6 +4461,10 @@ packages: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true + npm-run-path@5.3.0: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -4615,6 +4748,9 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + process-warning@3.0.0: resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} @@ -4662,6 +4798,9 @@ packages: resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} engines: {node: '>=6'} + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + readable-stream@4.5.2: resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4674,6 +4813,10 @@ packages: resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} engines: {node: '>= 12.13.0'} + ref-napi@3.0.3: + resolution: {integrity: sha512-LiMq/XDGcgodTYOMppikEtJelWsKQERbLQsYm0IOOnzhwE9xYZC7x8txNnFC9wJNOkPferQI4vD4ZkC0mDyrOA==} + engines: {node: '>= 10.0'} + reflect.getprototypeof@1.0.6: resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} engines: {node: '>= 0.4'} @@ -4715,6 +4858,11 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} deprecated: Rimraf versions prior to v4 are no longer supported @@ -4750,6 +4898,9 @@ packages: resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} @@ -4806,6 +4957,9 @@ packages: resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} + setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + sharp@0.34.3: resolution: {integrity: sha512-eX2IQ6nFohW4DbvHIOLRB3MHFpYqaqvXd3Tp5e/T/dSH83fxaNJQRvDMhASmkNTsNTVF2/OOopzRCt7xokgPfg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -4921,6 +5075,9 @@ packages: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} engines: {node: '>= 0.4'} + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -5067,6 +5224,9 @@ packages: tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + traverse@0.3.9: + resolution: {integrity: sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==} + tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true @@ -5118,6 +5278,11 @@ packages: engines: {node: '>=18.0.0'} hasBin: true + tsx@4.21.0: + resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} + engines: {node: '>=18.0.0'} + hasBin: true + turbo-darwin-64@1.13.3: resolution: {integrity: sha512-glup8Qx1qEFB5jerAnXbS8WrL92OKyMmg5Hnd4PleLljAeYmx+cmmnsmLT7tpaVZIN58EAAwu8wHC6kIIqhbWA==} cpu: [x64] @@ -5219,13 +5384,23 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + uniffi-bindgen-react-native@0.29.3-1: + resolution: {integrity: sha512-o6gXZsAh55yuvhwF2WSFdIHV4phyfWcCmg4DuyfJWJ7CvUz1UcIz2S4u9SmXAz1jsuqvu6Xc9hexrRBB0a5osg==} + hasBin: true + universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} + unzipper@0.10.11: + resolution: {integrity: sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==} + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + uuid@11.1.0: resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} hasBin: true @@ -6352,6 +6527,21 @@ snapshots: '@livekit/noise-cancellation-win32-x64@0.1.9': optional: true + '@livekit/plugins-ai-coustics@0.1.7(@livekit/rtc-node@0.13.24)': + dependencies: + '@livekit/rtc-node': 0.13.24 + '@types/unzipper': 0.10.11 + ffi-rs: 1.3.1 + node-fetch: 3.3.2 + pino: 9.6.0 + pino-pretty: 13.0.0 + ref-napi: 3.0.3 + tsx: 4.21.0 + uniffi-bindgen-react-native: 0.29.3-1 + unzipper: 0.10.11 + transitivePeerDependencies: + - supports-color + '@livekit/protocol@1.43.0': dependencies: '@bufbuild/protobuf': 1.10.1 @@ -7056,6 +7246,10 @@ snapshots: '@types/tapable@1.0.6': {} + '@types/unzipper@0.10.11': + dependencies: + '@types/node': 22.19.1 + '@types/ws@8.5.10': dependencies: '@types/node': 22.19.1 @@ -7148,7 +7342,7 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitest/coverage-v8@4.0.17(vitest@4.0.17(@opentelemetry/api@1.9.0)(@types/node@22.15.30)(tsx@4.20.4))': + '@vitest/coverage-v8@4.0.17(vitest@4.0.17(@opentelemetry/api@1.9.0)(@types/node@22.15.30)(tsx@4.21.0))': dependencies: '@bcoe/v8-coverage': 1.0.2 '@vitest/utils': 4.0.17 @@ -7160,7 +7354,7 @@ snapshots: obug: 2.1.1 std-env: 3.10.0 tinyrainbow: 3.0.3 - vitest: 4.0.17(@opentelemetry/api@1.9.0)(@types/node@22.15.30)(tsx@4.20.4) + vitest: 4.0.17(@opentelemetry/api@1.9.0)(@types/node@22.15.30)(tsx@4.21.0) '@vitest/expect@1.6.0': dependencies: @@ -7193,13 +7387,13 @@ snapshots: optionalDependencies: vite: 7.3.1(@types/node@22.15.30)(tsx@4.19.2) - '@vitest/mocker@4.0.17(vite@7.3.1(@types/node@22.15.30)(tsx@4.20.4))': + '@vitest/mocker@4.0.17(vite@7.3.1(@types/node@22.15.30)(tsx@4.21.0))': dependencies: '@vitest/spy': 4.0.17 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.3.1(@types/node@22.15.30)(tsx@4.20.4) + vite: 7.3.1(@types/node@22.15.30)(tsx@4.21.0) '@vitest/pretty-format@3.2.2': dependencies: @@ -7271,6 +7465,39 @@ snapshots: '@vitest/pretty-format': 4.0.17 tinyrainbow: 3.0.3 + '@yuuang/ffi-rs-android-arm64@1.3.1': + optional: true + + '@yuuang/ffi-rs-darwin-arm64@1.3.1': + optional: true + + '@yuuang/ffi-rs-darwin-x64@1.3.1': + optional: true + + '@yuuang/ffi-rs-linux-arm-gnueabihf@1.3.1': + optional: true + + '@yuuang/ffi-rs-linux-arm64-gnu@1.3.1': + optional: true + + '@yuuang/ffi-rs-linux-arm64-musl@1.3.1': + optional: true + + '@yuuang/ffi-rs-linux-x64-gnu@1.3.1': + optional: true + + '@yuuang/ffi-rs-linux-x64-musl@1.3.1': + optional: true + + '@yuuang/ffi-rs-win32-arm64-msvc@1.3.1': + optional: true + + '@yuuang/ffi-rs-win32-ia32-msvc@1.3.1': + optional: true + + '@yuuang/ffi-rs-win32-x64-msvc@1.3.1': + optional: true + abort-controller@3.0.0: dependencies: event-target-shim: 5.0.1 @@ -7440,8 +7667,17 @@ snapshots: dependencies: is-windows: 1.0.2 + big-integer@1.6.52: {} + bignumber.js@9.3.1: {} + binary@0.3.0: + dependencies: + buffers: 0.1.1 + chainsaw: 0.1.0 + + bluebird@3.4.7: {} + boolean@3.2.0: {} brace-expansion@1.1.11: @@ -7463,11 +7699,15 @@ snapshots: buffer-equal-constant-time@1.0.1: {} + buffer-indexof-polyfill@1.0.2: {} + buffer@6.0.3: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 + buffers@0.1.1: {} + builtin-modules@3.3.0: {} builtins@5.1.0: @@ -7525,6 +7765,10 @@ snapshots: chai@6.2.2: {} + chainsaw@0.1.0: + dependencies: + traverse: 0.3.9 + chalk@2.4.2: dependencies: ansi-styles: 3.2.1 @@ -7595,6 +7839,8 @@ snapshots: consola@3.4.2: {} + core-util-is@1.0.3: {} + cross-spawn@7.0.3: dependencies: path-key: 3.1.1 @@ -7705,6 +7951,10 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 + duplexer2@0.1.4: + dependencies: + readable-stream: 2.3.8 + eastasianwidth@0.2.0: {} ecdsa-sig-formatter@1.0.11: @@ -8286,6 +8536,20 @@ snapshots: node-domexception: 1.0.0 web-streams-polyfill: 3.3.3 + ffi-rs@1.3.1: + optionalDependencies: + '@yuuang/ffi-rs-android-arm64': 1.3.1 + '@yuuang/ffi-rs-darwin-arm64': 1.3.1 + '@yuuang/ffi-rs-darwin-x64': 1.3.1 + '@yuuang/ffi-rs-linux-arm-gnueabihf': 1.3.1 + '@yuuang/ffi-rs-linux-arm64-gnu': 1.3.1 + '@yuuang/ffi-rs-linux-arm64-musl': 1.3.1 + '@yuuang/ffi-rs-linux-x64-gnu': 1.3.1 + '@yuuang/ffi-rs-linux-x64-musl': 1.3.1 + '@yuuang/ffi-rs-win32-arm64-msvc': 1.3.1 + '@yuuang/ffi-rs-win32-ia32-msvc': 1.3.1 + '@yuuang/ffi-rs-win32-x64-msvc': 1.3.1 + file-entry-cache@6.0.1: dependencies: flat-cache: 3.2.0 @@ -8361,6 +8625,13 @@ snapshots: fsevents@2.3.3: optional: true + fstream@1.0.12: + dependencies: + graceful-fs: 4.2.11 + inherits: 2.0.4 + mkdirp: 0.5.6 + rimraf: 2.7.1 + function-bind@1.1.2: {} function.prototype.name@1.1.6: @@ -8425,6 +8696,8 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.4 + get-symbol-from-current-process-h@1.0.2: {} + get-tsconfig@4.7.5: dependencies: resolve-pkg-maps: 1.0.0 @@ -8717,6 +8990,8 @@ snapshots: is-windows@1.0.2: {} + isarray@1.0.0: {} + isarray@2.0.5: {} isexe@2.0.0: {} @@ -8842,6 +9117,8 @@ snapshots: lines-and-columns@1.2.4: {} + listenercount@1.0.1: {} + livekit-server-sdk@2.13.3: dependencies: '@bufbuild/protobuf': 1.10.1 @@ -8984,6 +9261,10 @@ snapshots: minipass: 7.1.2 rimraf: 5.0.10 + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + mkdirp@3.0.1: {} mlly@1.7.0: @@ -9013,6 +9294,8 @@ snapshots: natural-compare@1.4.0: {} + node-addon-api@3.2.1: {} + node-domexception@1.0.0: {} node-fetch@2.7.0: @@ -9025,6 +9308,8 @@ snapshots: fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 + node-gyp-build@4.8.4: {} + npm-run-path@5.3.0: dependencies: path-key: 4.0.0 @@ -9290,12 +9575,12 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-load-config@6.0.1(postcss@8.5.6)(tsx@4.20.4): + postcss-load-config@6.0.1(postcss@8.5.6)(tsx@4.21.0): dependencies: lilconfig: 3.1.2 optionalDependencies: postcss: 8.5.6 - tsx: 4.20.4 + tsx: 4.21.0 postcss@8.4.38: dependencies: @@ -9325,6 +9610,8 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 + process-nextick-args@2.0.1: {} + process-warning@3.0.0: {} process-warning@4.0.1: {} @@ -9378,6 +9665,16 @@ snapshots: pify: 4.0.1 strip-bom: 3.0.0 + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + readable-stream@4.5.2: dependencies: abort-controller: 3.0.0 @@ -9390,6 +9687,15 @@ snapshots: real-require@0.2.0: {} + ref-napi@3.0.3: + dependencies: + debug: 4.4.1 + get-symbol-from-current-process-h: 1.0.2 + node-addon-api: 3.2.1 + node-gyp-build: 4.8.4 + transitivePeerDependencies: + - supports-color + reflect.getprototypeof@1.0.6: dependencies: call-bind: 1.0.7 @@ -9442,6 +9748,10 @@ snapshots: reusify@1.0.4: {} + rimraf@2.7.1: + dependencies: + glob: 7.2.3 + rimraf@3.0.2: dependencies: glob: 7.2.3 @@ -9549,6 +9859,8 @@ snapshots: has-symbols: 1.0.3 isarray: 2.0.5 + safe-buffer@5.1.2: {} + safe-buffer@5.2.1: {} safe-regex-test@1.0.3: @@ -9599,6 +9911,8 @@ snapshots: functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 + setimmediate@1.0.5: {} + sharp@0.34.3: dependencies: color: 4.2.3 @@ -9747,6 +10061,10 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.0.0 + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 @@ -9878,6 +10196,8 @@ snapshots: dependencies: punycode: 2.3.1 + traverse@0.3.9: {} + tree-kill@1.2.2: {} true-case-path@2.2.1: {} @@ -9897,7 +10217,7 @@ snapshots: tslib@2.6.2: {} - tsup@8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.15.30))(postcss@8.5.6)(tsx@4.20.4)(typescript@5.4.5): + tsup@8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.15.30))(postcss@8.5.6)(tsx@4.21.0)(typescript@5.4.5): dependencies: bundle-require: 5.1.0(esbuild@0.25.2) cac: 6.7.14 @@ -9907,7 +10227,7 @@ snapshots: esbuild: 0.25.2 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(postcss@8.5.6)(tsx@4.20.4) + postcss-load-config: 6.0.1(postcss@8.5.6)(tsx@4.21.0) resolve-from: 5.0.0 rollup: 4.40.0 source-map: 0.8.0-beta.0 @@ -9925,7 +10245,7 @@ snapshots: - tsx - yaml - tsup@8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.20.4)(typescript@5.4.5): + tsup@8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.21.0)(typescript@5.4.5): dependencies: bundle-require: 5.1.0(esbuild@0.25.2) cac: 6.7.14 @@ -9935,7 +10255,7 @@ snapshots: esbuild: 0.25.2 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(postcss@8.5.6)(tsx@4.20.4) + postcss-load-config: 6.0.1(postcss@8.5.6)(tsx@4.21.0) resolve-from: 5.0.0 rollup: 4.40.0 source-map: 0.8.0-beta.0 @@ -9953,7 +10273,7 @@ snapshots: - tsx - yaml - tsup@8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.20.4)(typescript@5.9.3): + tsup@8.4.0(@microsoft/api-extractor@7.43.7(@types/node@22.19.1))(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3): dependencies: bundle-require: 5.1.0(esbuild@0.25.2) cac: 6.7.14 @@ -9963,7 +10283,7 @@ snapshots: esbuild: 0.25.2 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(postcss@8.5.6)(tsx@4.20.4) + postcss-load-config: 6.0.1(postcss@8.5.6)(tsx@4.21.0) resolve-from: 5.0.0 rollup: 4.40.0 source-map: 0.8.0-beta.0 @@ -9995,6 +10315,13 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + tsx@4.21.0: + dependencies: + esbuild: 0.27.2 + get-tsconfig: 4.7.5 + optionalDependencies: + fsevents: 2.3.3 + turbo-darwin-64@1.13.3: optional: true @@ -10091,12 +10418,29 @@ snapshots: undici-types@6.21.0: {} + uniffi-bindgen-react-native@0.29.3-1: {} + universalify@0.1.2: {} + unzipper@0.10.11: + dependencies: + big-integer: 1.6.52 + binary: 0.3.0 + bluebird: 3.4.7 + buffer-indexof-polyfill: 1.0.2 + duplexer2: 0.1.4 + fstream: 1.0.12 + graceful-fs: 4.2.11 + listenercount: 1.0.1 + readable-stream: 2.3.8 + setimmediate: 1.0.5 + uri-js@4.4.1: dependencies: punycode: 2.3.1 + util-deprecate@1.0.2: {} + uuid@11.1.0: {} validator@13.12.0: {} @@ -10161,7 +10505,7 @@ snapshots: fsevents: 2.3.3 tsx: 4.19.2 - vite@7.3.1(@types/node@22.15.30)(tsx@4.20.4): + vite@7.3.1(@types/node@22.15.30)(tsx@4.21.0): dependencies: esbuild: 0.27.2 fdir: 6.5.0(picomatch@4.0.3) @@ -10172,7 +10516,7 @@ snapshots: optionalDependencies: '@types/node': 22.15.30 fsevents: 2.3.3 - tsx: 4.20.4 + tsx: 4.21.0 vitest@1.6.0(@types/node@22.15.30): dependencies: @@ -10248,10 +10592,10 @@ snapshots: - tsx - yaml - vitest@4.0.17(@opentelemetry/api@1.9.0)(@types/node@22.15.30)(tsx@4.20.4): + vitest@4.0.17(@opentelemetry/api@1.9.0)(@types/node@22.15.30)(tsx@4.21.0): dependencies: '@vitest/expect': 4.0.17 - '@vitest/mocker': 4.0.17(vite@7.3.1(@types/node@22.15.30)(tsx@4.20.4)) + '@vitest/mocker': 4.0.17(vite@7.3.1(@types/node@22.15.30)(tsx@4.21.0)) '@vitest/pretty-format': 4.0.17 '@vitest/runner': 4.0.17 '@vitest/snapshot': 4.0.17 @@ -10268,7 +10612,7 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vite: 7.3.1(@types/node@22.15.30)(tsx@4.20.4) + vite: 7.3.1(@types/node@22.15.30)(tsx@4.21.0) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.0 diff --git a/turbo.json b/turbo.json index c02fbfb0e..4fb988f38 100644 --- a/turbo.json +++ b/turbo.json @@ -55,7 +55,8 @@ "LK_OPENAI_DEBUG", "LIVEKIT_EVALS_VERBOSE", "OVHCLOUD_API_KEY", - "INWORLD_API_KEY" + "INWORLD_API_KEY", + "VITEST" ], "pipeline": { "build": {