;
+ // (undocumented)
+ currentCharacterIndex: number;
+ // (undocumented)
+ markAudioComplete(): void;
+ // (undocumented)
+ markTextComplete(): void;
+ // (undocumented)
+ pushAudio(frame: AudioFrame): void;
+ // (undocumented)
+ pushText(text: string): void;
+ // (undocumented)
+ start(): void;
+}
+
+// @public
+interface CallableFunction_2 {
+ // (undocumented)
+ description: string;
+ // (undocumented)
+ execute: (args: inferParameters
) => PromiseLike;
+ // (undocumented)
+ parameters: P;
+}
+
+// Warning: (ae-internal-missing-underscore) The name "CancellablePromise" should be prefixed with an underscore because the declaration is marked as @internal
+//
+// @internal (undocumented)
+export class CancellablePromise {
+ constructor(executor: (resolve: (value: T | PromiseLike) => void, reject: (reason?: any) => void, onCancel: (cancelFn: () => void) => void) => void);
+ // (undocumented)
+ cancel(): void;
+ // (undocumented)
+ catch(onrejected?: ((reason: any) => TResult | Promise) | null): Promise;
+ // (undocumented)
+ get error(): Error | null;
+ // (undocumented)
+ finally(onfinally?: (() => void) | null): Promise;
+ // (undocumented)
+ static from(promise: Promise): CancellablePromise;
+ // (undocumented)
+ get isCancelled(): boolean;
+ // (undocumented)
+ then(onfulfilled?: ((value: T) => TResult1 | Promise) | null, onrejected?: ((reason: any) => TResult2 | Promise) | null): Promise;
+}
+
+// @public (undocumented)
+abstract class ChunkedStream implements AsyncIterableIterator {
+ // (undocumented)
+ [Symbol.asyncIterator](): ChunkedStream;
+ // (undocumented)
+ [Symbol.iterator](): ChunkedStream;
+ // (undocumented)
+ abstract close(): Promise;
+ // (undocumented)
+ collect(): Promise;
+ // (undocumented)
+ abstract next(): Promise>;
+}
+
+declare namespace cli {
+ export {
+ runApp
+ }
+}
+export { cli }
+
+// Warning: (ae-internal-missing-underscore) The name "defaultInitializeProcessFunc" should be prefixed with an underscore because the declaration is marked as @internal
+//
+// @internal (undocumented)
+export const defaultInitializeProcessFunc: (_: JobProcess) => JobProcess;
+
+// @public
+export function defineAgent(agent: Agent): Agent;
+
+// @public (undocumented)
+export const findMicroTrackId: (room: Room, identity: string) => string;
+
+// @public
+type FunctionContext = {
+ [name: string]: CallableFunction_2;
+};
+
+// @public
+export class FunctionExistsError extends Error {
+ constructor(msg?: string);
+}
+
+// Warning: (ae-internal-missing-underscore) The name "Future" should be prefixed with an underscore because the declaration is marked as @internal
+//
+// @internal (undocumented)
+export class Future {
+ constructor();
+ // (undocumented)
+ get await(): Promise;
+ // (undocumented)
+ get done(): boolean;
+ // (undocumented)
+ reject(error: Error): void;
+ // (undocumented)
+ resolve(): void;
+}
+
+// Warning: (ae-internal-missing-underscore) The name "gracefullyCancel" should be prefixed with an underscore because the declaration is marked as @internal
+//
+// @internal (undocumented)
+export function gracefullyCancel(promise: CancellablePromise): Promise;
+
+// @public
+type inferParameters = z.infer
;
+
+// Warning: (ae-internal-missing-underscore) The name "initializeLogger" should be prefixed with an underscore because the declaration is marked as @internal
+//
+// @internal (undocumented)
+export const initializeLogger: ({ pretty, level }: LoggerOptions) => void;
+
+// Warning: (ae-internal-missing-underscore) The name "isAgent" should be prefixed with an underscore because the declaration is marked as @internal
+//
+// @internal
+export function isAgent(obj: unknown): obj is Agent;
+
+// @public (undocumented)
+export type JobAcceptArguments = {
+ name: string;
+ identity: string;
+ metadata: string;
+};
+
+// @public
+export class JobContext {
+ constructor(proc: JobProcess, info: RunningJobInfo, room: Room, onConnect: () => void, onShutdown: (s: string) => void);
+ addParticipantEntrypoint(callback: (job: JobContext, p: RemoteParticipant) => Promise): void;
+ addShutdownCallback(callback: () => Promise): void;
+ // (undocumented)
+ get agent(): LocalParticipant | undefined;
+ connect(e2ee?: E2EEOptions, autoSubscribe?: AutoSubscribe, rtcConfig?: RtcConfiguration): Promise;
+ // (undocumented)
+ get job(): proto.Job;
+ // @internal (undocumented)
+ onParticipantConnected(p: RemoteParticipant): void;
+ // (undocumented)
+ get proc(): JobProcess;
+ // (undocumented)
+ get room(): Room;
+ shutdown(reason?: string): void;
+ // @internal (undocumented)
+ shutdownCallbacks: (() => Promise)[];
+ // (undocumented)
+ waitForParticipant(identity?: string): Promise;
+}
+
+// @public (undocumented)
+export class JobProcess {
+ // (undocumented)
+ get pid(): number;
+ // (undocumented)
+ userData: {
+ [id: string]: unknown;
+ };
+}
+
+// @public
+export class JobRequest {
+ // @internal
+ constructor(job: proto.Job, onReject: () => Promise, onAccept: (args: JobAcceptArguments) => Promise);
+ accept(name?: string, identity?: string, metadata?: string): Promise;
+ // (undocumented)
+ get agentName(): string;
+ // (undocumented)
+ get id(): string;
+ // (undocumented)
+ get job(): proto.Job;
+ // (undocumented)
+ get publisher(): proto.ParticipantInfo | undefined;
+ reject(): Promise;
+ // (undocumented)
+ get room(): proto.Room | undefined;
+}
+
+declare namespace llm {
+ export {
+ CallableFunction_2 as CallableFunction,
+ FunctionContext,
+ inferParameters,
+ oaiParams
+ }
+}
+export { llm }
+
+// Warning: (ae-internal-missing-underscore) The name "log" should be prefixed with an underscore because the declaration is marked as @internal
+//
+// @internal (undocumented)
+export const log: () => Logger;
+
+// Warning: (ae-internal-missing-underscore) The name "LoggerOptions" should be prefixed with an underscore because the declaration is marked as @internal
+//
+// @internal (undocumented)
+export type LoggerOptions = {
+ pretty: boolean;
+ level?: string;
+};
+
+// Warning: (ae-internal-missing-underscore) The name "loggerOptions" should be prefixed with an underscore because the declaration is marked as @internal
+//
+// @internal (undocumented)
+export let loggerOptions: LoggerOptions;
+
+// @public
+export const mergeFrames: (buffer: AudioBuffer_2) => AudioFrame;
+
+// @public
+export class MissingCredentialsError extends Error {
+ constructor(msg?: string);
+}
+
+declare namespace multimodal {
+ export {
+ RealtimeSession,
+ RealtimeModel,
+ AgentState,
+ AGENT_STATE_ATTRIBUTE,
+ MultimodalAgent,
+ proto_2 as proto,
+ PlayoutHandle,
+ AgentPlayout
+ }
+}
+export { multimodal }
+
+// @beta (undocumented)
+class MultimodalAgent extends EventEmitter {
+ constructor({ model, fncCtx, }: {
+ model: RealtimeModel;
+ fncCtx?: llm.FunctionContext | undefined;
+ });
+ // (undocumented)
+ get fncCtx(): llm.FunctionContext | undefined;
+ set fncCtx(ctx: llm.FunctionContext | undefined);
+ // (undocumented)
+ linkedParticipant: RemoteParticipant | null;
+ // (undocumented)
+ model: RealtimeModel;
+ // (undocumented)
+ readMicroTask: {
+ promise: Promise;
+ cancel: () => void;
+ } | null;
+ // (undocumented)
+ room: Room | null;
+ // (undocumented)
+ start(room: Room, participant?: RemoteParticipant | string | null): Promise;
+ // (undocumented)
+ subscribedTrack: RemoteAudioTrack | null;
+}
+
+// Warning: (ae-internal-missing-underscore) The name "Mutex" should be prefixed with an underscore because the declaration is marked as @internal
+//
+// @internal (undocumented)
+export class Mutex {
+ constructor(limit?: number);
+ // (undocumented)
+ isLocked(): boolean;
+ // (undocumented)
+ lock(): Promise<() => void>;
+}
+
+// @internal (undocumented)
+const oaiParams: (p: z.AnyZodObject) => {
+ type: "object";
+ properties: Record;
+ required_properties: string[];
+};
+
+// @public (undocumented)
+class PlayoutHandle extends EventEmitter {
+ constructor(audioSource: AudioSource, sampleRate: number, itemId: string, contentIndex: number, transcriptionFwd: TranscriptionForwarder);
+ // (undocumented)
+ get audioSamples(): number;
+ // (undocumented)
+ get contentIndex(): number;
+ // (undocumented)
+ get done(): boolean;
+ // @internal (undocumented)
+ doneFut: Future;
+ // (undocumented)
+ interrupt(): void;
+ // (undocumented)
+ get interrupted(): boolean;
+ // @internal (undocumented)
+ intFut: Future;
+ // (undocumented)
+ get itemId(): string;
+ // @internal (undocumented)
+ pushedDuration: number;
+ // (undocumented)
+ get textChars(): number;
+ // @internal (undocumented)
+ totalPlayedTime: number | undefined;
+ // @internal (undocumented)
+ transcriptionFwd: TranscriptionForwarder;
+}
+
+// @public (undocumented)
+abstract class Plugin_2 {
+ constructor(title: string, version: string);
+ // (undocumented)
+ abstract downloadFiles(): void;
+ // (undocumented)
+ registeredPlugins: Plugin_2[];
+ // (undocumented)
+ static registerPlugins(plugin: Plugin_2): void;
+ // (undocumented)
+ get title(): string;
+ // (undocumented)
+ get version(): string;
+}
+export { Plugin_2 as Plugin }
+
+// @public (undocumented)
+const proto_2: {};
+
+// Warning: (ae-internal-missing-underscore) The name "Queue" should be prefixed with an underscore because the declaration is marked as @internal
+//
+// @internal (undocumented)
+export class Queue {
+ constructor(limit?: number);
+ // (undocumented)
+ get(): Promise;
+ // (undocumented)
+ items: T[];
+ // (undocumented)
+ put(item: T): Promise;
+}
+
+// @beta (undocumented)
+abstract class RealtimeModel {
+ // (undocumented)
+ abstract close(): Promise;
+ // (undocumented)
+ abstract inFrameSize: number;
+ // (undocumented)
+ abstract numChannels: number;
+ // (undocumented)
+ abstract outFrameSize: number;
+ // (undocumented)
+ abstract sampleRate: number;
+ // (undocumented)
+ abstract session(options: any): RealtimeSession;
+}
+
+// @beta (undocumented)
+abstract class RealtimeSession extends EventEmitter {
+ // (undocumented)
+ abstract conversation: any;
+ // (undocumented)
+ abstract fncCtx: llm.FunctionContext | undefined;
+ // (undocumented)
+ abstract inputAudioBuffer: any;
+}
+
+// @public
+const runApp: (opts: WorkerOptions_2) => void;
+
+// @public (undocumented)
+export type RunningJobInfo = {
+ acceptArguments: JobAcceptArguments;
+ job: proto.Job;
+ url: string;
+ token: string;
+};
+
+// @public (undocumented)
+export interface SegmentedSentence {
+ // (undocumented)
+ text: string;
+}
+
+// @public (undocumented)
+export abstract class SentenceStream implements IterableIterator {
+ // (undocumented)
+ [Symbol.iterator](): SentenceStream;
+ // (undocumented)
+ close(): Promise;
+ // (undocumented)
+ abstract flush(): Promise;
+ // (undocumented)
+ abstract next(): IteratorResult;
+ // (undocumented)
+ abstract pushText(text: string): void;
+}
+
+// @public (undocumented)
+export abstract class SentenceTokenizer {
+ // (undocumented)
+ abstract stream(language: string | undefined): SentenceStream;
+ // (undocumented)
+ abstract tokenize(text: string, language?: string): SegmentedSentence[];
+}
+
+// @public (undocumented)
+interface SpeechData {
+ // (undocumented)
+ confidence: number;
+ // (undocumented)
+ endTime: number;
+ // (undocumented)
+ language: string;
+ // (undocumented)
+ startTime: number;
+ // (undocumented)
+ text: string;
+}
+
+// @public (undocumented)
+class SpeechEvent {
+ constructor(type: SpeechEventType, alternatives?: SpeechData[]);
+ // (undocumented)
+ alternatives: SpeechData[];
+ // (undocumented)
+ type: SpeechEventType;
+}
+
+// @public (undocumented)
+enum SpeechEventType {
+ END_OF_SPEECH = 3,
+ FINAL_TRANSCRIPT = 2,
+ INTERIM_TRANSCRIPT = 1,
+ START_OF_SPEECH = 0
+}
+
+// @public (undocumented)
+abstract class SpeechStream implements IterableIterator {
+ // (undocumented)
+ [Symbol.iterator](): SpeechStream;
+ abstract close(wait: boolean): Promise;
+ // (undocumented)
+ abstract next(): IteratorResult;
+ abstract pushFrame(token: AudioFrame): void;
+}
+
+// @public (undocumented)
+class StreamAdapter extends STT {
+ constructor(stt: STT, vadStream: VADStream);
+ // (undocumented)
+ recognize(buffer: AudioBuffer_2, language?: string | undefined): Promise;
+ // (undocumented)
+ stream(language?: string | undefined): StreamAdapterWrapper;
+}
+
+// @public (undocumented)
+class StreamAdapter_2 extends TTS {
+ constructor(tts: TTS, tokenizer: SentenceTokenizer);
+ // (undocumented)
+ stream(): StreamAdapterWrapper_2;
+ // (undocumented)
+ synthesize(text: string): Promise;
+}
+
+// @public (undocumented)
+class StreamAdapterWrapper extends SpeechStream {
+ constructor(stt: STT, vadStream: VADStream, language?: string | undefined);
+ // (undocumented)
+ close(wait?: boolean): Promise;
+ // (undocumented)
+ next(): IteratorResult;
+ // (undocumented)
+ pushFrame(frame: AudioFrame): void;
+ // (undocumented)
+ run(reject: (arg: Error) => void): Promise;
+}
+
+// @public (undocumented)
+class StreamAdapterWrapper_2 extends SynthesizeStream {
+ constructor(tts: TTS, sentenceStream: SentenceStream);
+ // (undocumented)
+ close(): Promise;
+ // (undocumented)
+ flush(): Promise;
+ // (undocumented)
+ next(): IteratorResult;
+ // (undocumented)
+ pushText(token: string): void;
+ // (undocumented)
+ run(reject: (arg: Error) => void): Promise;
+}
+
+// @public (undocumented)
+abstract class STT {
+ constructor(streamingSupported: boolean);
+ // (undocumented)
+ abstract recognize(buffer: AudioBuffer_2, language?: string): Promise;
+ // (undocumented)
+ abstract stream(language: string | undefined): SpeechStream;
+ // (undocumented)
+ get streamingSupported(): boolean;
+}
+
+declare namespace stt {
+ export {
+ STT,
+ SpeechEvent,
+ SpeechEventType,
+ SpeechStream,
+ SpeechData,
+ StreamAdapter,
+ StreamAdapterWrapper
+ }
+}
+export { stt }
+
+// @public (undocumented)
+class SynthesisEvent {
+ constructor(type: SynthesisEventType, audio?: SynthesizedAudio | undefined);
+ // (undocumented)
+ audio?: SynthesizedAudio;
+ // (undocumented)
+ type: SynthesisEventType;
+}
+
+// @public (undocumented)
+enum SynthesisEventType {
+ AUDIO = 1,
+ FINISHED = 2,
+ STARTED = 0
+}
+
+// @public (undocumented)
+interface SynthesizedAudio {
+ // (undocumented)
+ data: AudioFrame;
+ // (undocumented)
+ text: string;
+}
+
+// @public (undocumented)
+abstract class SynthesizeStream implements IterableIterator {
+ // (undocumented)
+ [Symbol.iterator](): SynthesizeStream;
+ // (undocumented)
+ abstract close(wait: boolean): Promise;
+ // (undocumented)
+ markSegmentEnd(): void;
+ // (undocumented)
+ abstract next(): IteratorResult;
+ // (undocumented)
+ abstract pushText(token?: string): void;
+}
+
+// @public (undocumented)
+export interface TranscriptionForwarder {
+ // (undocumented)
+ close(interrupt: boolean): Promise;
+ // (undocumented)
+ currentCharacterIndex: number;
+ // (undocumented)
+ markAudioComplete(): void;
+ // (undocumented)
+ markTextComplete(): void;
+ // (undocumented)
+ pushAudio(frame: AudioFrame): void;
+ // (undocumented)
+ pushText(text: string): void;
+ // (undocumented)
+ start(): void;
+}
+
+// @public (undocumented)
+abstract class TTS {
+ constructor(streamingSupported: boolean);
+ // (undocumented)
+ abstract stream(): SynthesizeStream;
+ // (undocumented)
+ get streamingSupported(): boolean;
+ // (undocumented)
+ abstract synthesize(text: string): Promise;
+}
+
+declare namespace tts {
+ export {
+ TTS,
+ SynthesisEvent,
+ SynthesisEventType,
+ SynthesizedAudio,
+ SynthesizeStream,
+ StreamAdapter_2 as StreamAdapter,
+ StreamAdapterWrapper_2 as StreamAdapterWrapper,
+ ChunkedStream
+ }
+}
+export { tts }
+
+// @public (undocumented)
+export abstract class VAD {
+ abstract stream({ minSpeakingDuration, minSilenceDuration, paddingDuration, sampleRate, maxBufferedSpeech, }: {
+ minSpeakingDuration: number;
+ minSilenceDuration: number;
+ paddingDuration: number;
+ sampleRate: number;
+ maxBufferedSpeech: number;
+ }): VADStream;
+}
+
+// @public (undocumented)
+export interface VADEvent {
+ duration: number;
+ samplesIndex: number;
+ // (undocumented)
+ speech: AudioFrame[];
+ // (undocumented)
+ type: VADEventType;
+}
+
+// @public (undocumented)
+export enum VADEventType {
+ // (undocumented)
+ END_OF_SPEECH = 3,
+ // (undocumented)
+ SPEAKING = 2,
+ // (undocumented)
+ START_OF_SPEECH = 1
+}
+
+// @public (undocumented)
+export abstract class VADStream implements IterableIterator {
+ // (undocumented)
+ [Symbol.iterator](): VADStream;
+ // (undocumented)
+ abstract close(wait: boolean): Promise;
+ // (undocumented)
+ abstract next(): IteratorResult;
+ // (undocumented)
+ abstract pushFrame(frame: AudioFrame): void;
+}
+
+// @public (undocumented)
+export const version = "0.1.0";
+
+// @public
+class Worker_2 {
+ constructor(opts: WorkerOptions_2);
+ // (undocumented)
+ get activeJobs(): RunningJobInfo[];
+ // (undocumented)
+ close(): Promise;
+ // (undocumented)
+ drain(timeout?: number): Promise;
+ // (undocumented)
+ event: EventEmitter<[never]>;
+ // (undocumented)
+ get id(): string;
+ // (undocumented)
+ run(): Promise;
+ // (undocumented)
+ simulateJob(roomName: string, participantIdentity?: string): Promise;
+}
+export { Worker_2 as Worker }
+
+// @public
+export class WorkerError extends Error {
+ constructor(msg?: string);
+}
+
+// @public
+class WorkerOptions_2 {
+ constructor({ agent, requestFunc, loadFunc, loadThreshold, numIdleProcesses, shutdownProcessTimeout, initializeProcessTimeout, permissions, agentName, workerType, maxRetry, wsURL, apiKey, apiSecret, host, port, logLevel, production, }: {
+ agent: string;
+ requestFunc?: (job: JobRequest) => Promise;
+ loadFunc?: () => Promise;
+ loadThreshold?: number;
+ numIdleProcesses?: number;
+ shutdownProcessTimeout?: number;
+ initializeProcessTimeout?: number;
+ permissions?: WorkerPermissions;
+ agentName?: string;
+ workerType?: JobType;
+ maxRetry?: number;
+ wsURL?: string;
+ apiKey?: string;
+ apiSecret?: string;
+ host?: string;
+ port?: number;
+ logLevel?: string;
+ production?: boolean;
+ });
+ // (undocumented)
+ agent: string;
+ // (undocumented)
+ agentName: string;
+ // (undocumented)
+ apiKey?: string;
+ // (undocumented)
+ apiSecret?: string;
+ // (undocumented)
+ host: string;
+ // (undocumented)
+ initializeProcessTimeout: number;
+ // (undocumented)
+ loadFunc: () => Promise;
+ // (undocumented)
+ loadThreshold: number;
+ // (undocumented)
+ logLevel: string;
+ // (undocumented)
+ maxRetry: number;
+ // (undocumented)
+ numIdleProcesses: number;
+ // (undocumented)
+ permissions: WorkerPermissions;
+ // (undocumented)
+ port: number;
+ // (undocumented)
+ production: boolean;
+ // (undocumented)
+ requestFunc: (job: JobRequest) => Promise;
+ // (undocumented)
+ shutdownProcessTimeout: number;
+ // (undocumented)
+ workerType: JobType;
+ // (undocumented)
+ wsURL: string;
+}
+export { WorkerOptions_2 as WorkerOptions }
+
+// @public
+export class WorkerPermissions {
+ constructor(canPublish?: boolean, canSubscribe?: boolean, canPublishData?: boolean, canUpdateMetadata?: boolean, canPublishSources?: TrackSource[], hidden?: boolean);
+ // (undocumented)
+ canPublish: boolean;
+ // (undocumented)
+ canPublishData: boolean;
+ // (undocumented)
+ canPublishSources: TrackSource[];
+ // (undocumented)
+ canSubscribe: boolean;
+ // (undocumented)
+ canUpdateMetadata: boolean;
+ // (undocumented)
+ hidden: boolean;
+}
+
+```
diff --git a/agents/package.json b/agents/package.json
index 4e12b1a6..6bb58713 100644
--- a/agents/package.json
+++ b/agents/package.json
@@ -11,11 +11,11 @@
"clean": "rm -rf dist",
"clean:build": "pnpm clean && pnpm build",
"lint": "eslint -f unix \"src/**/*.ts\"",
- "api:check": "api-extractor run --typescript-compiler-folder ../node_modules/typescript",
- "api:update": "api-extractor run --local --typescript-compiler-folder ../node_modules/typescript --verbose"
+ "api:check": "api-extractor run",
+ "api:update": "api-extractor run --local --verbose"
},
"devDependencies": {
- "@microsoft/api-extractor": "^7.35.0",
+ "@microsoft/api-extractor": "^7.47.9",
"@types/node": "^22.5.5",
"@types/ws": "^8.5.10",
"typescript": "^5.0.0"
diff --git a/agents/src/multimodal/agent_playout.ts b/agents/src/multimodal/agent_playout.ts
index 25f4edd0..5efbd737 100644
--- a/agents/src/multimodal/agent_playout.ts
+++ b/agents/src/multimodal/agent_playout.ts
@@ -2,11 +2,12 @@
//
// SPDX-License-Identifier: Apache-2.0
import type { AudioFrame } from '@livekit/rtc-node';
-import { type AudioSource } from '@livekit/rtc-node';
+import type { AudioSource } from '@livekit/rtc-node';
import { EventEmitter } from 'node:events';
import { AudioByteStream } from '../audio.js';
import type { TranscriptionForwarder } from '../transcription.js';
-import { type AsyncIterableQueue, CancellablePromise, Future, gracefullyCancel } from '../utils.js';
+import { CancellablePromise, Future, gracefullyCancel } from '../utils.js';
+import type { AsyncIterableQueue } from '../utils.js';
export const proto = {};
diff --git a/agents/src/multimodal/multimodal_agent.ts b/agents/src/multimodal/multimodal_agent.ts
index 4ab66c18..70669b5f 100644
--- a/agents/src/multimodal/multimodal_agent.ts
+++ b/agents/src/multimodal/multimodal_agent.ts
@@ -21,7 +21,8 @@ import type * as llm from '../llm/index.js';
import { log } from '../log.js';
import { BasicTranscriptionForwarder } from '../transcription.js';
import { findMicroTrackId } from '../utils.js';
-import { AgentPlayout, type PlayoutHandle } from './agent_playout.js';
+import type { PlayoutHandle } from './agent_playout.js';
+import { AgentPlayout } from './agent_playout.js';
/**
* @internal
diff --git a/examples/package.json b/examples/package.json
index 71bc56ae..444fe6bf 100644
--- a/examples/package.json
+++ b/examples/package.json
@@ -18,5 +18,5 @@
"@livekit/rtc-node": "^0.9.0",
"zod": "^3.23.8"
},
- "version": null
+ "version": "0.0.0"
}
diff --git a/package.json b/package.json
index 65b2eeb6..b95fdc7e 100644
--- a/package.json
+++ b/package.json
@@ -23,7 +23,7 @@
"devDependencies": {
"@changesets/cli": "^2.27.1",
"@livekit/changesets-changelog-github": "^0.0.4",
- "@rushstack/heft": "^0.66.0",
+ "@rushstack/heft": "^0.68.2",
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
"@typescript-eslint/eslint-plugin": "^6.21.0",
"@typescript-eslint/parser": "^6.21.0",
@@ -31,7 +31,7 @@
"eslint-config-next": "^14.1.0",
"eslint-config-prettier": "^8.10.0",
"eslint-config-standard": "^17.1.0",
- "eslint-config-turbo": "^1.12.2",
+ "eslint-config-turbo": "^2.1.3",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-n": "^16.6.2",
"eslint-plugin-prettier": "^5.1.3",
@@ -39,7 +39,7 @@
"eslint-plugin-standard": "^5.0.0",
"eslint-plugin-tsdoc": "^0.2.17",
"prettier": "^3.2.5",
- "turbo": "^1.13.3",
+ "turbo": "^2.1.3",
"typedoc": "^0.25.13",
"typescript": "^5.4.5",
"vitest": "^1.6.0"
diff --git a/plugins/openai/etc/agents-plugin-openai.api.md b/plugins/openai/etc/agents-plugin-openai.api.md
new file mode 100644
index 00000000..5d6db2c1
--- /dev/null
+++ b/plugins/openai/etc/agents-plugin-openai.api.md
@@ -0,0 +1,19 @@
+## API Report File for "@livekit/agents-plugin-openai"
+
+> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
+
+```ts
+
+declare namespace realtime {
+ export {
+ test
+ }
+}
+export { realtime }
+
+// @public (undocumented)
+function test(): void;
+
+// (No @packageDocumentation comment for this package)
+
+```
diff --git a/plugins/openai/package.json b/plugins/openai/package.json
index 9cc82cce..d3d60c7d 100644
--- a/plugins/openai/package.json
+++ b/plugins/openai/package.json
@@ -11,11 +11,11 @@
"clean": "rm -rf dist",
"clean:build": "pnpm clean && pnpm build",
"lint": "eslint -f unix \"src/**/*.{ts,js}\"",
- "api:check": "api-extractor run --typescript-compiler-folder ../../node_modules/typescript",
- "api:update": "api-extractor run --local --typescript-compiler-folder ../../node_modules/typescript --verbose"
+ "api:check": "api-extractor run",
+ "api:update": "api-extractor run --local --verbose"
},
"devDependencies": {
- "@microsoft/api-extractor": "^7.35.0",
+ "@microsoft/api-extractor": "^7.47.9",
"@types/ws": "^8.5.10",
"typescript": "^5.0.0"
},
diff --git a/plugins/openai/src/realtime/api_proto.ts b/plugins/openai/src/realtime/api_proto.ts
index 382582f6..fd213f31 100644
--- a/plugins/openai/src/realtime/api_proto.ts
+++ b/plugins/openai/src/realtime/api_proto.ts
@@ -2,22 +2,38 @@
//
// SPDX-License-Identifier: Apache-2.0
+/** @internal */
export const SAMPLE_RATE = 24000;
+/** @internal */
export const NUM_CHANNELS = 1;
+/** @internal */
export const IN_FRAME_SIZE = 2400; // 100ms
+/** @internal */
export const OUT_FRAME_SIZE = 1200; // 50ms
+/** @internal */
export const API_URL = 'wss://api.openai.com/v1/realtime';
+/** @public */
export type Model = 'gpt-4o-realtime-preview-2024-10-01' | string; // Open-ended, for future models
+/** @public */
+/** @public */
export type Voice = 'alloy' | 'shimmer' | 'echo' | string;
+/** @public */
export type AudioFormat = 'pcm16'; // TODO: 'g711-ulaw' | 'g711-alaw'
+/** @public */
export type Role = 'system' | 'assistant' | 'user' | 'tool';
+/** @public */
export type GenerationFinishedReason = 'stop' | 'max_tokens' | 'content_filter' | 'interrupt';
+/** @public */
export type InputTranscriptionModel = 'whisper-1' | string; // Open-ended, for future models
+/** @public */
export type Modality = 'text' | 'audio';
+/** @public */
export type ToolChoice = 'auto' | 'none' | 'required' | string;
+/** @public */
export type State = 'initializing' | 'listening' | 'thinking' | 'speaking' | string;
+/** @public */
export type ResponseStatus =
| 'in_progress'
| 'completed'
@@ -25,6 +41,7 @@ export type ResponseStatus =
| 'cancelled'
| 'failed'
| string;
+/** @public */
export type ClientEventType =
| 'session.update'
| 'input_audio_buffer.append'
@@ -35,6 +52,7 @@ export type ClientEventType =
| 'conversation.item.delete'
| 'response.create'
| 'response.cancel';
+/** @public */
export type ServerEventType =
| 'error'
| 'session.created'
@@ -65,8 +83,10 @@ export type ServerEventType =
| 'response.function_call_arguments.done'
| 'rate_limits.updated';
+/** @public */
export type AudioBase64Bytes = string;
+/** @public */
export interface Tool {
type: 'function';
name: string;
@@ -83,6 +103,7 @@ export interface Tool {
};
}
+/** @public */
export type TurnDetectionType = {
type: 'server_vad';
threshold?: number; // 0.0 to 1.0, default: 0.5
@@ -90,62 +111,76 @@ export type TurnDetectionType = {
silence_duration_ms?: number; // default: 200
};
+/** @public */
export type InputAudioTranscription = {
model: InputTranscriptionModel;
};
+/** @public */
export interface InputTextContent {
type: 'input_text';
text: string;
}
+/** @public */
export interface InputAudioContent {
type: 'input_audio';
audio: AudioBase64Bytes;
}
+/** @public */
export interface TextContent {
type: 'text';
text: string;
}
+/** @public */
export interface AudioContent {
type: 'audio';
audio: AudioBase64Bytes;
transcript: string;
}
+/** @public */
export type Content = InputTextContent | InputAudioContent | TextContent | AudioContent;
+/** @public */
export type ContentPart = {
type: 'text' | 'audio';
audio?: AudioBase64Bytes;
transcript?: string;
};
+/** @public */
export interface BaseItem {
id: string;
object: 'realtime.item';
type: string;
}
+/** @public */
export interface SystemItem extends BaseItem {
type: 'message';
role: 'system';
content: InputTextContent;
}
+/** @public */
export interface UserItem extends BaseItem {
type: 'message';
role: 'user';
content: (InputTextContent | InputAudioContent)[];
}
+/** @public */
export interface AssistantItem extends BaseItem {
type: 'message';
role: 'assistant';
content: (TextContent | AudioContent)[];
}
+/** @public */
+/** @public */
+/** @public */
export interface FunctionCallItem extends BaseItem {
type: 'function_call';
call_id: string;
@@ -153,12 +188,14 @@ export interface FunctionCallItem extends BaseItem {
arguments: string;
}
+/** @public */
export interface FunctionCallOutputItem extends BaseItem {
type: 'function_call_output';
call_id: string;
output: string;
}
+/** @public */
export type ItemResource =
| SystemItem
| UserItem
@@ -167,6 +204,7 @@ export type ItemResource =
| FunctionCallOutputItem;
// Session Resource
+/** @public */
export interface SessionResource {
id: string;
object: 'realtime.session';
@@ -186,11 +224,13 @@ export interface SessionResource {
}
// Conversation Resource
+/** @public */
export interface ConversationResource {
id: string;
object: 'realtime.conversation';
}
+/** @public */
export type ResponseStatusDetails =
| {
type: 'incomplete';
@@ -208,6 +248,7 @@ export type ResponseStatusDetails =
reason: 'turn_detected' | 'client_cancelled' | string;
};
+/** @public */
export interface ResponseResource {
id: string;
object: 'realtime.response';
@@ -222,11 +263,13 @@ export interface ResponseResource {
}
// Client Events
+/** @public */
interface BaseClientEvent {
event_id?: string;
type: ClientEventType;
}
+/** @public */
export interface SessionUpdateEvent extends BaseClientEvent {
type: 'session.update';
session: Partial<{
@@ -244,55 +287,66 @@ export interface SessionUpdateEvent extends BaseClientEvent {
}>;
}
+/** @public */
+/** @public */
export interface InputAudioBufferAppendEvent extends BaseClientEvent {
type: 'input_audio_buffer.append';
audio: AudioBase64Bytes;
}
+/** @public */
export interface InputAudioBufferCommitEvent extends BaseClientEvent {
type: 'input_audio_buffer.commit';
}
+/** @public */
export interface InputAudioBufferClearEvent extends BaseClientEvent {
type: 'input_audio_buffer.clear';
}
+/** @public */
export interface UserItemCreate {
type: 'message';
role: 'user';
content: (InputTextContent | InputAudioContent)[];
}
+/** @public */
export interface AssistantItemCreate {
type: 'message';
role: 'assistant';
content: TextContent[];
}
+/** @public */
export interface SystemItemCreate {
type: 'message';
role: 'system';
content: InputTextContent[];
}
+/** @public */
export interface FunctionCallOutputItemCreate {
type: 'function_call_output';
call_id: string;
output: string;
}
+/** @public */
export type ConversationItemCreateContent =
| UserItemCreate
| AssistantItemCreate
| SystemItemCreate
| FunctionCallOutputItemCreate;
+/** @public */
export interface ConversationItemCreateEvent extends BaseClientEvent {
type: 'conversation.item.create';
previous_item_id?: string;
item: ConversationItemCreateContent;
}
+/** @public */
export interface ConversationItemTruncateEvent extends BaseClientEvent {
type: 'conversation.item.truncate';
item_id: string;
@@ -300,11 +354,13 @@ export interface ConversationItemTruncateEvent extends BaseClientEvent {
audio_end_ms: number;
}
+/** @public */
export interface ConversationItemDeleteEvent extends BaseClientEvent {
type: 'conversation.item.delete';
item_id: string;
}
+/** @public */
export interface ResponseCreateEvent extends BaseClientEvent {
type: 'response.create';
response?: Partial<{
@@ -319,10 +375,12 @@ export interface ResponseCreateEvent extends BaseClientEvent {
}>;
}
+/** @public */
export interface ResponseCancelEvent extends BaseClientEvent {
type: 'response.cancel';
}
+/** @public */
export type ClientEvent =
| SessionUpdateEvent
| InputAudioBufferAppendEvent
@@ -339,6 +397,7 @@ interface BaseServerEvent {
type: ServerEventType;
}
+/** @public */
export interface ErrorEvent extends BaseServerEvent {
type: 'error';
error: {
@@ -350,47 +409,56 @@ export interface ErrorEvent extends BaseServerEvent {
};
}
+/** @public */
export interface SessionCreatedEvent extends BaseServerEvent {
type: 'session.created';
session: SessionResource;
}
+/** @public */
export interface SessionUpdatedEvent extends BaseServerEvent {
type: 'session.updated';
session: SessionResource;
}
+/** @public */
export interface ConversationCreatedEvent extends BaseServerEvent {
type: 'conversation.created';
conversation: ConversationResource;
}
+/** @public */
export interface InputAudioBufferCommittedEvent extends BaseServerEvent {
type: 'input_audio_buffer.committed';
item_id: string;
}
+/** @public */
export interface InputAudioBufferClearedEvent extends BaseServerEvent {
type: 'input_audio_buffer.cleared';
}
+/** @public */
export interface InputAudioBufferSpeechStartedEvent extends BaseServerEvent {
type: 'input_audio_buffer.speech_started';
audio_start_ms: number;
item_id: string;
}
+/** @public */
export interface InputAudioBufferSpeechStoppedEvent extends BaseServerEvent {
type: 'input_audio_buffer.speech_stopped';
audio_end_ms: number;
item_id: string;
}
+/** @public */
export interface ConversationItemCreatedEvent extends BaseServerEvent {
type: 'conversation.item.created';
item: ItemResource;
}
+/** @public */
export interface ConversationItemInputAudioTranscriptionCompletedEvent extends BaseServerEvent {
type: 'conversation.item.input_audio_transcription.completed';
item_id: string;
@@ -398,6 +466,8 @@ export interface ConversationItemInputAudioTranscriptionCompletedEvent extends B
transcript: string;
}
+/** @public */
+/** @public */
export interface ConversationItemInputAudioTranscriptionFailedEvent extends BaseServerEvent {
type: 'conversation.item.input_audio_transcription.failed';
item_id: string;
@@ -410,6 +480,7 @@ export interface ConversationItemInputAudioTranscriptionFailedEvent extends Base
};
}
+/** @public */
export interface ConversationItemTruncatedEvent extends BaseServerEvent {
type: 'conversation.item.truncated';
item_id: string;
@@ -417,21 +488,25 @@ export interface ConversationItemTruncatedEvent extends BaseServerEvent {
audio_end_ms: number;
}
+/** @public */
export interface ConversationItemDeletedEvent extends BaseServerEvent {
type: 'conversation.item.deleted';
item_id: string;
}
+/** @public */
export interface ResponseCreatedEvent extends BaseServerEvent {
type: 'response.created';
response: ResponseResource;
}
+/** @public */
export interface ResponseDoneEvent extends BaseServerEvent {
type: 'response.done';
response: ResponseResource;
}
+/** @public */
export interface ResponseOutputItemAddedEvent extends BaseServerEvent {
type: 'response.output_item.added';
response_id: string;
@@ -439,6 +514,7 @@ export interface ResponseOutputItemAddedEvent extends BaseServerEvent {
item: ItemResource;
}
+/** @public */
export interface ResponseOutputItemDoneEvent extends BaseServerEvent {
type: 'response.output_item.done';
response_id: string;
@@ -446,6 +522,7 @@ export interface ResponseOutputItemDoneEvent extends BaseServerEvent {
item: ItemResource;
}
+/** @public */
export interface ResponseContentPartAddedEvent extends BaseServerEvent {
type: 'response.content_part.added';
response_id: string;
@@ -455,6 +532,7 @@ export interface ResponseContentPartAddedEvent extends BaseServerEvent {
part: ContentPart;
}
+/** @public */
export interface ResponseContentPartDoneEvent extends BaseServerEvent {
type: 'response.content_part.done';
response_id: string;
@@ -463,6 +541,7 @@ export interface ResponseContentPartDoneEvent extends BaseServerEvent {
part: ContentPart;
}
+/** @public */
export interface ResponseTextDeltaEvent extends BaseServerEvent {
type: 'response.text.delta';
response_id: string;
@@ -471,6 +550,7 @@ export interface ResponseTextDeltaEvent extends BaseServerEvent {
delta: string;
}
+/** @public */
export interface ResponseTextDoneEvent extends BaseServerEvent {
type: 'response.text.done';
response_id: string;
@@ -479,6 +559,7 @@ export interface ResponseTextDoneEvent extends BaseServerEvent {
text: string;
}
+/** @public */
export interface ResponseAudioTranscriptDeltaEvent extends BaseServerEvent {
type: 'response.audio_transcript.delta';
response_id: string;
@@ -487,6 +568,7 @@ export interface ResponseAudioTranscriptDeltaEvent extends BaseServerEvent {
delta: string;
}
+/** @public */
export interface ResponseAudioTranscriptDoneEvent extends BaseServerEvent {
type: 'response.audio_transcript.done';
response_id: string;
@@ -495,6 +577,7 @@ export interface ResponseAudioTranscriptDoneEvent extends BaseServerEvent {
transcript: string;
}
+/** @public */
export interface ResponseAudioDeltaEvent extends BaseServerEvent {
type: 'response.audio.delta';
response_id: string;
@@ -503,6 +586,7 @@ export interface ResponseAudioDeltaEvent extends BaseServerEvent {
delta: AudioBase64Bytes;
}
+/** @public */
export interface ResponseAudioDoneEvent extends BaseServerEvent {
type: 'response.audio.done';
response_id: string;
@@ -510,6 +594,7 @@ export interface ResponseAudioDoneEvent extends BaseServerEvent {
content_index: number;
}
+/** @public */
export interface ResponseFunctionCallArgumentsDeltaEvent extends BaseServerEvent {
type: 'response.function_call_arguments.delta';
response_id: string;
@@ -517,6 +602,7 @@ export interface ResponseFunctionCallArgumentsDeltaEvent extends BaseServerEvent
delta: string;
}
+/** @public */
export interface ResponseFunctionCallArgumentsDoneEvent extends BaseServerEvent {
type: 'response.function_call_arguments.done';
response_id: string;
@@ -524,6 +610,7 @@ export interface ResponseFunctionCallArgumentsDoneEvent extends BaseServerEvent
arguments: string;
}
+/** @public */
export interface RateLimitsUpdatedEvent extends BaseServerEvent {
type: 'rate_limits.updated';
rate_limits: {
@@ -534,6 +621,7 @@ export interface RateLimitsUpdatedEvent extends BaseServerEvent {
}[];
}
+/** @public */
export type ServerEvent =
| ErrorEvent
| SessionCreatedEvent
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index f155c045..30b3beee 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -15,8 +15,8 @@ importers:
specifier: ^0.0.4
version: 0.0.4
'@rushstack/heft':
- specifier: ^0.66.0
- version: 0.66.9(@types/node@22.5.5)
+ specifier: ^0.68.2
+ version: 0.68.2(@types/node@22.5.5)
'@trivago/prettier-plugin-sort-imports':
specifier: ^4.3.0
version: 4.3.0(prettier@3.2.5)
@@ -39,8 +39,8 @@ importers:
specifier: ^17.1.0
version: 17.1.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0))(eslint-plugin-n@16.6.2(eslint@8.57.0))(eslint-plugin-promise@6.1.1(eslint@8.57.0))(eslint@8.57.0)
eslint-config-turbo:
- specifier: ^1.12.2
- version: 1.13.3(eslint@8.57.0)
+ specifier: ^2.1.3
+ version: 2.1.3(eslint@8.57.0)
eslint-plugin-import:
specifier: ^2.29.1
version: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)
@@ -63,8 +63,8 @@ importers:
specifier: ^3.2.5
version: 3.2.5
turbo:
- specifier: ^1.13.3
- version: 1.13.3
+ specifier: ^2.1.3
+ version: 2.1.3
typedoc:
specifier: ^0.25.13
version: 0.25.13(typescript@5.4.5)
@@ -82,7 +82,7 @@ importers:
version: 1.21.0
'@livekit/rtc-node':
specifier: ^0.9.0
- version: 0.9.0
+ version: 0.9.2
commander:
specifier: ^12.0.0
version: 12.0.0
@@ -103,8 +103,8 @@ importers:
version: 3.23.8
devDependencies:
'@microsoft/api-extractor':
- specifier: ^7.35.0
- version: 7.43.7(@types/node@22.5.5)
+ specifier: ^7.47.9
+ version: 7.47.9(@types/node@22.5.5)
'@types/node':
specifier: ^22.5.5
version: 22.5.5
@@ -125,7 +125,7 @@ importers:
version: link:../plugins/openai
'@livekit/rtc-node':
specifier: ^0.9.0
- version: 0.9.0
+ version: 0.9.2
zod:
specifier: ^3.23.8
version: 3.23.8
@@ -141,14 +141,14 @@ importers:
version: link:../../agents
'@livekit/rtc-node':
specifier: ^0.9.0
- version: 0.9.0
+ version: 0.9.2
ws:
specifier: ^8.16.0
version: 8.17.0
devDependencies:
'@microsoft/api-extractor':
- specifier: ^7.35.0
- version: 7.43.7(@types/node@22.5.5)
+ specifier: ^7.47.9
+ version: 7.47.9(@types/node@22.5.5)
'@types/ws':
specifier: ^8.5.10
version: 8.5.10
@@ -483,38 +483,38 @@ packages:
'@livekit/protocol@1.21.0':
resolution: {integrity: sha512-3TohFPNZy1axTuoDLU6mA1rwuP4VawgehvX52OoLJnU+fNQYfmMJqz8k7NSh79jG5I8Og77YYhT905Omrhli2A==}
- '@livekit/rtc-node-darwin-arm64@0.9.0':
- resolution: {integrity: sha512-tZJ53W5/OBDbUVThDmonLtx7Rwd4TyC9rPVpUtb+r4OPKnQ6WMpTMqkrgXCO6u7KCl6Ol4vxXlPIHODcUOXaGw==}
+ '@livekit/rtc-node-darwin-arm64@0.9.2':
+ resolution: {integrity: sha512-40p8hx1URVbEA9qiu/fJv/wsRZnA3lq2Mfky8RQDtGcGzpkUaW9+Seate2UKRbTbQ4LaHo7tezV0uQQgal+nGA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
- '@livekit/rtc-node-darwin-x64@0.9.0':
- resolution: {integrity: sha512-O3oU1fftW4dLbNIrvDr6KcFCQm0c4K6PX5JYy50KSmqpCWCMbFeMOsdEaA+y/5lX58E5r1xVQ/Y6H19GDf1C7A==}
+ '@livekit/rtc-node-darwin-x64@0.9.2':
+ resolution: {integrity: sha512-Gw39yVRH27o52JMTa+CafG9RBIXuGkZ6UQt1EeuhdWxSUwSmFt+2e6hqeP8RizWXXRHfWdc7bGv9fUF2hBwCkA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
- '@livekit/rtc-node-linux-arm64-gnu@0.9.0':
- resolution: {integrity: sha512-RSJEJ7Yz20Bcd0zpsHCtLwkJaz/iVldhvdTbsX5SwZ61cZUeQwJzhWF8+q2i2KiSvGcr5KAywrekTW1dNDj/pQ==}
+ '@livekit/rtc-node-linux-arm64-gnu@0.9.2':
+ resolution: {integrity: sha512-Whhh8S+BQ/rXO1Aorqq2lv7CpI4FeApf9N+VHZEHqT49q5/sPvlXu2TeCAOsMR5r5QdMjG5z7ZQ8ANfMLl6ceA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@livekit/rtc-node-linux-x64-gnu@0.9.0':
- resolution: {integrity: sha512-CS93WNGGb3n7xVMxv++rgOk017AADsqYF7enz4d5QUbTJmowY5o3CGLsFA52Fe8x/YVXSezb85wE9mPTXmo/IA==}
+ '@livekit/rtc-node-linux-x64-gnu@0.9.2':
+ resolution: {integrity: sha512-1mPQG5Y9PuzBa2rAYgUw5Vd3CT2i9WdEtrwTw7G2q3yfebG09ZNOKNQ/0uNQaBQz8a82YpswuJHkrkOM5N2kKA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@livekit/rtc-node-win32-x64-msvc@0.9.0':
- resolution: {integrity: sha512-7E9teGVOkXC3XM/wNhbjAPuoPwzI4luAvTnwzAbQNpvP2FVDOuGfZTSjq39pr+zOqsVm7+pQ3u2ftYlrWO/F1Q==}
+ '@livekit/rtc-node-win32-x64-msvc@0.9.2':
+ resolution: {integrity: sha512-N2oaii+RwI8IIj8RYegK8qknZj6p7o48m6vrPzI/aDRHDY9iWRChSs+a7qKGlg6B4sFHikYWkHFzOiEWf0v68w==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
- '@livekit/rtc-node@0.9.0':
- resolution: {integrity: sha512-T2e9YQVyoM37ClNq71wpCpkcAAWGYMSKA0VJpxwjVyOUtVjuRf37HAClZoKVJ1PoG5xw2aWegVlFvw8LY+wkqw==}
+ '@livekit/rtc-node@0.9.2':
+ resolution: {integrity: sha512-oJZUeXAc56ExPJCnNwnq8mR+qCE1AB78eKOmvra9v7UkGXBkdUVhNBwyNZliSnj7fj8IcVzaD3xF1WpLzFBVsw==}
engines: {node: '>= 18'}
'@livekit/typed-emitter@3.0.0':
@@ -526,19 +526,25 @@ packages:
'@manypkg/get-packages@1.1.3':
resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==}
- '@microsoft/api-extractor-model@7.28.17':
- resolution: {integrity: sha512-b2AfLP33oEVtWLeNavSBRdyDa8sKlXjN4pdhBnC4HLontOtjILhL1ERAmZObF4PWSyChnnC2vjb47C9WKCFRGg==}
+ '@microsoft/api-extractor-model@7.29.8':
+ resolution: {integrity: sha512-t3Z/xcO6TRbMcnKGVMs4uMzv/gd5j0NhMiJIGjD4cJMeFJ1Hf8wnLSx37vxlRlL0GWlGJhnFgxvnaL6JlS+73g==}
- '@microsoft/api-extractor@7.43.7':
- resolution: {integrity: sha512-t5M8BdnS+TmroUA/Z9HJXExS9iL4pK9I3yGu9PsXVTXPmcVXlBlA1CVI7TjRa1jwm+vusG/+sbX1/t5UkJhQMg==}
+ '@microsoft/api-extractor@7.47.9':
+ resolution: {integrity: sha512-TTq30M1rikVsO5wZVToQT/dGyJY7UXJmjiRtkHPLb74Prx3Etw8+bX7Bv7iLuby6ysb7fuu1NFWqma+csym8Jw==}
hasBin: true
'@microsoft/tsdoc-config@0.16.2':
resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==}
+ '@microsoft/tsdoc-config@0.17.0':
+ resolution: {integrity: sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg==}
+
'@microsoft/tsdoc@0.14.2':
resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==}
+ '@microsoft/tsdoc@0.15.0':
+ resolution: {integrity: sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==}
+
'@next/eslint-plugin-next@14.2.3':
resolution: {integrity: sha512-L3oDricIIjgj1AVnRdRor21gI7mShlSwU/1ZGHmqM3LzHhXXhdkrfeNY5zif25Bi5Dd7fiJHsbhoZCHfXYvlAw==}
@@ -645,44 +651,44 @@ packages:
'@rushstack/eslint-patch@1.10.3':
resolution: {integrity: sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==}
- '@rushstack/heft-config-file@0.14.19':
- resolution: {integrity: sha512-XLrq3gY6M7SzY2HRtmI/frCNURdqNdH557mXoULIfUEBj61lpngMKdBhEpzyekilEowTnHSmHpi0/JCyE61kbA==}
+ '@rushstack/heft-config-file@0.15.7':
+ resolution: {integrity: sha512-d8rwr9ctVmnVBPyl0o1WFh6NKsAJEX9eJip3mRGKOUd6Lq5FLHaTELwVNbqmZ76oQITABueD5MS02QE5Yq2fhw==}
engines: {node: '>=10.13.0'}
- '@rushstack/heft@0.66.9':
- resolution: {integrity: sha512-nTdLS7ATkELK4dYQORQRt+TkW7+Jur4MSQIi76+sxbWxhS1nW9BN2Cz6+DFg/EWqTcxEIjqONFG0J3yHTDQZWQ==}
+ '@rushstack/heft@0.68.2':
+ resolution: {integrity: sha512-og467vYqnH0xNBx1zIizILUFF4zM1h+guGC3s/80pBjoVblS9oCGVrUiG8fGtxOdj7Karlm97s9s6qDzdNqSVw==}
engines: {node: '>=10.13.0'}
hasBin: true
- '@rushstack/node-core-library@4.3.0':
- resolution: {integrity: sha512-JuNZ7lwaYQ4R1TugpryyWBn4lIxK+L7fF+muibFp0by5WklG22nsvH868fuBoZMLo5FqAs6WFOifNos4PJjWSA==}
+ '@rushstack/node-core-library@5.9.0':
+ resolution: {integrity: sha512-MMsshEWkTbXqxqFxD4gcIUWQOCeBChlGczdZbHfqmNZQFLHB3yWxDFSMHFUdu2/OB9NUk7Awn5qRL+rws4HQNg==}
peerDependencies:
'@types/node': '*'
peerDependenciesMeta:
'@types/node':
optional: true
- '@rushstack/operation-graph@0.2.19':
- resolution: {integrity: sha512-yGxy5WfuR+uzR5AuwIYSayJsWb/Xa/mZvGlWI3A1CsJlOu9xBS2JFAGO9YAGURWY2QuUd64gGokYHKej2oa3Ew==}
+ '@rushstack/operation-graph@0.2.33':
+ resolution: {integrity: sha512-bokTOAt8jNAMiMZuMs83GXK4GkfAVbj3mx7g0hYuyqTVw7M/EgJO7eL2S/WjqyLxljwHL3cesXSY+csvhbbggA==}
peerDependencies:
'@types/node': '*'
peerDependenciesMeta:
'@types/node':
optional: true
- '@rushstack/rig-package@0.5.2':
- resolution: {integrity: sha512-mUDecIJeH3yYGZs2a48k+pbhM6JYwWlgjs2Ca5f2n1G2/kgdgP9D/07oglEGf6mRyXEnazhEENeYTSNDRCwdqA==}
+ '@rushstack/rig-package@0.5.3':
+ resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==}
- '@rushstack/terminal@0.11.0':
- resolution: {integrity: sha512-LKz7pv0G9Py5uULahNSixK1pTqIIKd103pAGhDW51YfzPojvmO5wfITe0PEUNAJZjuufN/KgeRW83dJo1gL2rQ==}
+ '@rushstack/terminal@0.14.2':
+ resolution: {integrity: sha512-2fC1wqu1VCExKC0/L+0noVcFQEXEnoBOtCIex1TOjBzEDWcw8KzJjjj7aTP6mLxepG0XIyn9OufeFb6SFsa+sg==}
peerDependencies:
'@types/node': '*'
peerDependenciesMeta:
'@types/node':
optional: true
- '@rushstack/ts-command-line@4.21.0':
- resolution: {integrity: sha512-z38FLUCn8M9FQf19gJ9eltdwkvc47PxvJmVZS6aKwbBAa3Pis3r3A+ZcBCVPNb9h/Tbga+i0tHdzoSGUoji9GQ==}
+ '@rushstack/ts-command-line@4.22.8':
+ resolution: {integrity: sha512-XbFjOoV7qZHJnSuFUHv0pKaFA4ixyCuki+xMjsMfDwfvQjs5MYG0IK5COal3tRnG7KCDe2l/G+9LrzYE/RJhgg==}
'@sinclair/typebox@0.27.8':
resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
@@ -823,9 +829,31 @@ packages:
engines: {node: '>=0.4.0'}
hasBin: true
+ ajv-draft-04@1.0.0:
+ resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==}
+ peerDependencies:
+ ajv: ^8.5.0
+ peerDependenciesMeta:
+ ajv:
+ optional: true
+
+ ajv-formats@3.0.1:
+ resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==}
+ peerDependencies:
+ ajv: ^8.0.0
+ peerDependenciesMeta:
+ ajv:
+ optional: true
+
ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+ ajv@8.12.0:
+ resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
+
+ ajv@8.13.0:
+ resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==}
+
ansi-colors@4.1.3:
resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
engines: {node: '>=6'}
@@ -1043,10 +1071,6 @@ packages:
resolution: {integrity: sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==}
engines: {node: '>=18'}
- commander@9.5.0:
- resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
- engines: {node: ^12.20.0 || >=14}
-
concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
@@ -1270,8 +1294,8 @@ packages:
eslint-plugin-n: '^15.0.0 || ^16.0.0 '
eslint-plugin-promise: ^6.0.0
- eslint-config-turbo@1.13.3:
- resolution: {integrity: sha512-if/QtwEiWZ5b7Bg8yZBPSvS0TeCG2Zvfa/+XBYANS7uSYucjmW+BBC8enJB0PqpB/YLGGOumeo3x7h1Nuba9iw==}
+ eslint-config-turbo@2.1.3:
+ resolution: {integrity: sha512-smdkhd01V/e/I4EjJxaZA1kxZ1vdFCHpyryolxLtRBP0bZTrHDYh1H6NAyZ3Fy1jkhsQzXw+L+6m17ygROvNFw==}
peerDependencies:
eslint: '>6.6.0'
@@ -1375,8 +1399,8 @@ packages:
eslint-plugin-tsdoc@0.2.17:
resolution: {integrity: sha512-xRmVi7Zx44lOBuYqG8vzTXuL6IdGOeF9nHX17bjJ8+VE6fsxpdGem0/SBTmAwgYMKYB1WBkqRJVQ+n8GK041pA==}
- eslint-plugin-turbo@1.13.3:
- resolution: {integrity: sha512-RjmlnqYsEqnJ+U3M3IS5jLJDjWv5NsvReCpsC61n5pJ4JMHTZ/lU0EIoL1ccuL1L5wP0APzdXdByBxERcPQ+Nw==}
+ eslint-plugin-turbo@2.1.3:
+ resolution: {integrity: sha512-I9vPArzyOSYa6bm0iMCgD07MgdExc1VK2wGuVz21g4BUdj83w7mDKyCXR2rwOtCEW+wemFwgxanJ81imQZijNg==}
peerDependencies:
eslint: '>6.6.0'
@@ -1870,6 +1894,9 @@ packages:
json-schema-traverse@0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+ json-schema-traverse@1.0.0:
+ resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
+
json-stable-stringify-without-jsonify@1.0.1:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
@@ -1936,12 +1963,6 @@ packages:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
- lodash.get@4.4.2:
- resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
-
- lodash.isequal@4.5.0:
- resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==}
-
lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
@@ -2349,6 +2370,10 @@ packages:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
+ require-from-string@2.0.2:
+ resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
+ engines: {node: '>=0.10.0'}
+
require-main-filename@2.0.0:
resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==}
@@ -2673,38 +2698,38 @@ packages:
engines: {node: '>=8.0.0'}
hasBin: true
- turbo-darwin-64@1.13.3:
- resolution: {integrity: sha512-glup8Qx1qEFB5jerAnXbS8WrL92OKyMmg5Hnd4PleLljAeYmx+cmmnsmLT7tpaVZIN58EAAwu8wHC6kIIqhbWA==}
+ turbo-darwin-64@2.1.3:
+ resolution: {integrity: sha512-ouJOm0g0YyoBuhmikEujVCBGo3Zr0lbSOWFIsQtWUTItC88F2w2byhjtsYGPXQwMlTbXwmoBU2lOCfWNkeEwHQ==}
cpu: [x64]
os: [darwin]
- turbo-darwin-arm64@1.13.3:
- resolution: {integrity: sha512-/np2xD+f/+9qY8BVtuOQXRq5f9LehCFxamiQnwdqWm5iZmdjygC5T3uVSYuagVFsZKMvX3ycySwh8dylGTl6lg==}
+ turbo-darwin-arm64@2.1.3:
+ resolution: {integrity: sha512-j2FOJsK4LAOtHQlb3Oom0yWB/Vi0nF1ljInr311mVzHoFAJRZtfW2fRvdZRb/lBUwjSp8be58qWHzANIcrA0OA==}
cpu: [arm64]
os: [darwin]
- turbo-linux-64@1.13.3:
- resolution: {integrity: sha512-G+HGrau54iAnbXLfl+N/PynqpDwi/uDzb6iM9hXEDG+yJnSJxaHMShhOkXYJPk9offm9prH33Khx2scXrYVW1g==}
+ turbo-linux-64@2.1.3:
+ resolution: {integrity: sha512-ubRHkI1gSel7H7wsmxKK8C9UlLWqg/2dkCC88LFupaK6TKgvBKqDqA0Z1M9C/escK0Jsle2k0H8bybV9OYIl4Q==}
cpu: [x64]
os: [linux]
- turbo-linux-arm64@1.13.3:
- resolution: {integrity: sha512-qWwEl5VR02NqRyl68/3pwp3c/olZuSp+vwlwrunuoNTm6JXGLG5pTeme4zoHNnk0qn4cCX7DFrOboArlYxv0wQ==}
+ turbo-linux-arm64@2.1.3:
+ resolution: {integrity: sha512-LffUL+e5wv7BtD6DgnM2kKOlDkMo2eRjhbAjVnrCD3wi2ug0tl6NDzajnHHjtaMyOnIf4AvzSKdLWsBxafGBQA==}
cpu: [arm64]
os: [linux]
- turbo-windows-64@1.13.3:
- resolution: {integrity: sha512-Nudr4bRChfJzBPzEmpVV85VwUYRCGKecwkBFpbp2a4NtrJ3+UP1VZES653ckqCu2FRyRuS0n03v9euMbAvzH+Q==}
+ turbo-windows-64@2.1.3:
+ resolution: {integrity: sha512-S9SvcZZoaq5jKr6kA6eF7/xgQhVn8Vh7PVy5lono9zybvhyL4eY++y2PaLToIgL8G9IcbLmgOC73ExNjFBg9XQ==}
cpu: [x64]
os: [win32]
- turbo-windows-arm64@1.13.3:
- resolution: {integrity: sha512-ouJCgsVLd3icjRLmRvHQDDZnmGzT64GBupM1Y+TjtYn2LVaEBoV6hicFy8x5DUpnqdLy+YpCzRMkWlwhmkX7sQ==}
+ turbo-windows-arm64@2.1.3:
+ resolution: {integrity: sha512-twlEo8lRrGbrR6T/ZklUIquW3IlFCEtywklgVA81aIrSBm56+GEVpSrHhIlsx1hiYeSNrs+GpDwZGe+V7fvEVQ==}
cpu: [arm64]
os: [win32]
- turbo@1.13.3:
- resolution: {integrity: sha512-n17HJv4F4CpsYTvKzUJhLbyewbXjq1oLCi90i5tW1TiWDz16ML1eDG7wi5dHaKxzh5efIM56SITnuVbMq5dk4g==}
+ turbo@2.1.3:
+ resolution: {integrity: sha512-lY0yj2GH2a2a3NExZ3rGe+rHUVeFE2aXuRAue57n+08E7Z7N7YCmynju0kPC1grAQzERmoLpKrmzmWd+PNiADw==}
hasBin: true
type-check@0.4.0:
@@ -2787,10 +2812,6 @@ packages:
validate-npm-package-license@3.0.4:
resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
- validator@13.12.0:
- resolution: {integrity: sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==}
- engines: {node: '>= 0.10'}
-
vite-node@1.6.0:
resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==}
engines: {node: ^18.0.0 || >=20.0.0}
@@ -2972,11 +2993,6 @@ packages:
resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
engines: {node: '>=12.20'}
- z-schema@5.0.5:
- resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==}
- engines: {node: '>=8.0.0'}
- hasBin: true
-
zod@3.23.8:
resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==}
@@ -3371,31 +3387,31 @@ snapshots:
dependencies:
'@bufbuild/protobuf': 1.9.0
- '@livekit/rtc-node-darwin-arm64@0.9.0':
+ '@livekit/rtc-node-darwin-arm64@0.9.2':
optional: true
- '@livekit/rtc-node-darwin-x64@0.9.0':
+ '@livekit/rtc-node-darwin-x64@0.9.2':
optional: true
- '@livekit/rtc-node-linux-arm64-gnu@0.9.0':
+ '@livekit/rtc-node-linux-arm64-gnu@0.9.2':
optional: true
- '@livekit/rtc-node-linux-x64-gnu@0.9.0':
+ '@livekit/rtc-node-linux-x64-gnu@0.9.2':
optional: true
- '@livekit/rtc-node-win32-x64-msvc@0.9.0':
+ '@livekit/rtc-node-win32-x64-msvc@0.9.2':
optional: true
- '@livekit/rtc-node@0.9.0':
+ '@livekit/rtc-node@0.9.2':
dependencies:
'@bufbuild/protobuf': 1.9.0
'@livekit/typed-emitter': 3.0.0
optionalDependencies:
- '@livekit/rtc-node-darwin-arm64': 0.9.0
- '@livekit/rtc-node-darwin-x64': 0.9.0
- '@livekit/rtc-node-linux-arm64-gnu': 0.9.0
- '@livekit/rtc-node-linux-x64-gnu': 0.9.0
- '@livekit/rtc-node-win32-x64-msvc': 0.9.0
+ '@livekit/rtc-node-darwin-arm64': 0.9.2
+ '@livekit/rtc-node-darwin-x64': 0.9.2
+ '@livekit/rtc-node-linux-arm64-gnu': 0.9.2
+ '@livekit/rtc-node-linux-x64-gnu': 0.9.2
+ '@livekit/rtc-node-win32-x64-msvc': 0.9.2
'@livekit/typed-emitter@3.0.0': {}
@@ -3415,23 +3431,23 @@ snapshots:
globby: 11.1.0
read-yaml-file: 1.1.0
- '@microsoft/api-extractor-model@7.28.17(@types/node@22.5.5)':
+ '@microsoft/api-extractor-model@7.29.8(@types/node@22.5.5)':
dependencies:
- '@microsoft/tsdoc': 0.14.2
- '@microsoft/tsdoc-config': 0.16.2
- '@rushstack/node-core-library': 4.3.0(@types/node@22.5.5)
+ '@microsoft/tsdoc': 0.15.0
+ '@microsoft/tsdoc-config': 0.17.0
+ '@rushstack/node-core-library': 5.9.0(@types/node@22.5.5)
transitivePeerDependencies:
- '@types/node'
- '@microsoft/api-extractor@7.43.7(@types/node@22.5.5)':
+ '@microsoft/api-extractor@7.47.9(@types/node@22.5.5)':
dependencies:
- '@microsoft/api-extractor-model': 7.28.17(@types/node@22.5.5)
- '@microsoft/tsdoc': 0.14.2
- '@microsoft/tsdoc-config': 0.16.2
- '@rushstack/node-core-library': 4.3.0(@types/node@22.5.5)
- '@rushstack/rig-package': 0.5.2
- '@rushstack/terminal': 0.11.0(@types/node@22.5.5)
- '@rushstack/ts-command-line': 4.21.0(@types/node@22.5.5)
+ '@microsoft/api-extractor-model': 7.29.8(@types/node@22.5.5)
+ '@microsoft/tsdoc': 0.15.0
+ '@microsoft/tsdoc-config': 0.17.0
+ '@rushstack/node-core-library': 5.9.0(@types/node@22.5.5)
+ '@rushstack/rig-package': 0.5.3
+ '@rushstack/terminal': 0.14.2(@types/node@22.5.5)
+ '@rushstack/ts-command-line': 4.22.8(@types/node@22.5.5)
lodash: 4.17.21
minimatch: 3.0.8
resolve: 1.22.8
@@ -3448,8 +3464,17 @@ snapshots:
jju: 1.4.0
resolve: 1.19.0
+ '@microsoft/tsdoc-config@0.17.0':
+ dependencies:
+ '@microsoft/tsdoc': 0.15.0
+ ajv: 8.12.0
+ jju: 1.4.0
+ resolve: 1.22.8
+
'@microsoft/tsdoc@0.14.2': {}
+ '@microsoft/tsdoc@0.15.0': {}
+
'@next/eslint-plugin-next@14.2.3':
dependencies:
glob: 10.3.10
@@ -3521,23 +3546,23 @@ snapshots:
'@rushstack/eslint-patch@1.10.3': {}
- '@rushstack/heft-config-file@0.14.19(@types/node@22.5.5)':
+ '@rushstack/heft-config-file@0.15.7(@types/node@22.5.5)':
dependencies:
- '@rushstack/node-core-library': 4.3.0(@types/node@22.5.5)
- '@rushstack/rig-package': 0.5.2
- '@rushstack/terminal': 0.11.0(@types/node@22.5.5)
+ '@rushstack/node-core-library': 5.9.0(@types/node@22.5.5)
+ '@rushstack/rig-package': 0.5.3
+ '@rushstack/terminal': 0.14.2(@types/node@22.5.5)
jsonpath-plus: 4.0.0
transitivePeerDependencies:
- '@types/node'
- '@rushstack/heft@0.66.9(@types/node@22.5.5)':
+ '@rushstack/heft@0.68.2(@types/node@22.5.5)':
dependencies:
- '@rushstack/heft-config-file': 0.14.19(@types/node@22.5.5)
- '@rushstack/node-core-library': 4.3.0(@types/node@22.5.5)
- '@rushstack/operation-graph': 0.2.19(@types/node@22.5.5)
- '@rushstack/rig-package': 0.5.2
- '@rushstack/terminal': 0.11.0(@types/node@22.5.5)
- '@rushstack/ts-command-line': 4.21.0(@types/node@22.5.5)
+ '@rushstack/heft-config-file': 0.15.7(@types/node@22.5.5)
+ '@rushstack/node-core-library': 5.9.0(@types/node@22.5.5)
+ '@rushstack/operation-graph': 0.2.33(@types/node@22.5.5)
+ '@rushstack/rig-package': 0.5.3
+ '@rushstack/terminal': 0.14.2(@types/node@22.5.5)
+ '@rushstack/ts-command-line': 4.22.8(@types/node@22.5.5)
'@types/tapable': 1.0.6
fast-glob: 3.3.2
git-repo-info: 2.1.1
@@ -3548,39 +3573,41 @@ snapshots:
transitivePeerDependencies:
- '@types/node'
- '@rushstack/node-core-library@4.3.0(@types/node@22.5.5)':
+ '@rushstack/node-core-library@5.9.0(@types/node@22.5.5)':
dependencies:
+ ajv: 8.13.0
+ ajv-draft-04: 1.0.0(ajv@8.13.0)
+ ajv-formats: 3.0.1(ajv@8.13.0)
fs-extra: 7.0.1
import-lazy: 4.0.0
jju: 1.4.0
resolve: 1.22.8
semver: 7.5.4
- z-schema: 5.0.5
optionalDependencies:
'@types/node': 22.5.5
- '@rushstack/operation-graph@0.2.19(@types/node@22.5.5)':
+ '@rushstack/operation-graph@0.2.33(@types/node@22.5.5)':
dependencies:
- '@rushstack/node-core-library': 4.3.0(@types/node@22.5.5)
- '@rushstack/terminal': 0.11.0(@types/node@22.5.5)
+ '@rushstack/node-core-library': 5.9.0(@types/node@22.5.5)
+ '@rushstack/terminal': 0.14.2(@types/node@22.5.5)
optionalDependencies:
'@types/node': 22.5.5
- '@rushstack/rig-package@0.5.2':
+ '@rushstack/rig-package@0.5.3':
dependencies:
resolve: 1.22.8
strip-json-comments: 3.1.1
- '@rushstack/terminal@0.11.0(@types/node@22.5.5)':
+ '@rushstack/terminal@0.14.2(@types/node@22.5.5)':
dependencies:
- '@rushstack/node-core-library': 4.3.0(@types/node@22.5.5)
+ '@rushstack/node-core-library': 5.9.0(@types/node@22.5.5)
supports-color: 8.1.1
optionalDependencies:
'@types/node': 22.5.5
- '@rushstack/ts-command-line@4.21.0(@types/node@22.5.5)':
+ '@rushstack/ts-command-line@4.22.8(@types/node@22.5.5)':
dependencies:
- '@rushstack/terminal': 0.11.0(@types/node@22.5.5)
+ '@rushstack/terminal': 0.14.2(@types/node@22.5.5)
'@types/argparse': 1.0.38
argparse: 1.0.10
string-argv: 0.3.2
@@ -3756,6 +3783,14 @@ snapshots:
acorn@8.11.3: {}
+ ajv-draft-04@1.0.0(ajv@8.13.0):
+ optionalDependencies:
+ ajv: 8.13.0
+
+ ajv-formats@3.0.1(ajv@8.13.0):
+ optionalDependencies:
+ ajv: 8.13.0
+
ajv@6.12.6:
dependencies:
fast-deep-equal: 3.1.3
@@ -3763,6 +3798,20 @@ snapshots:
json-schema-traverse: 0.4.1
uri-js: 4.4.1
+ ajv@8.12.0:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ json-schema-traverse: 1.0.0
+ require-from-string: 2.0.2
+ uri-js: 4.4.1
+
+ ajv@8.13.0:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ json-schema-traverse: 1.0.0
+ require-from-string: 2.0.2
+ uri-js: 4.4.1
+
ansi-colors@4.1.3: {}
ansi-regex@5.0.1: {}
@@ -4009,9 +4058,6 @@ snapshots:
commander@12.0.0: {}
- commander@9.5.0:
- optional: true
-
concat-map@0.0.1: {}
confbox@0.1.7: {}
@@ -4306,10 +4352,10 @@ snapshots:
eslint-plugin-n: 16.6.2(eslint@8.57.0)
eslint-plugin-promise: 6.1.1(eslint@8.57.0)
- eslint-config-turbo@1.13.3(eslint@8.57.0):
+ eslint-config-turbo@2.1.3(eslint@8.57.0):
dependencies:
eslint: 8.57.0
- eslint-plugin-turbo: 1.13.3(eslint@8.57.0)
+ eslint-plugin-turbo: 2.1.3(eslint@8.57.0)
eslint-import-resolver-node@0.3.9:
dependencies:
@@ -4464,7 +4510,7 @@ snapshots:
'@microsoft/tsdoc': 0.14.2
'@microsoft/tsdoc-config': 0.16.2
- eslint-plugin-turbo@1.13.3(eslint@8.57.0):
+ eslint-plugin-turbo@2.1.3(eslint@8.57.0):
dependencies:
dotenv: 16.0.3
eslint: 8.57.0
@@ -4967,6 +5013,8 @@ snapshots:
json-schema-traverse@0.4.1: {}
+ json-schema-traverse@1.0.0: {}
+
json-stable-stringify-without-jsonify@1.0.1: {}
json5@1.0.2:
@@ -5035,10 +5083,6 @@ snapshots:
dependencies:
p-locate: 5.0.0
- lodash.get@4.4.2: {}
-
- lodash.isequal@4.5.0: {}
-
lodash.merge@4.6.2: {}
lodash.startcase@4.4.0: {}
@@ -5460,6 +5504,8 @@ snapshots:
require-directory@2.1.1: {}
+ require-from-string@2.0.2: {}
+
require-main-filename@2.0.0: {}
resolve-from@4.0.0: {}
@@ -5802,32 +5848,32 @@ snapshots:
wcwidth: 1.0.1
yargs: 17.7.2
- turbo-darwin-64@1.13.3:
+ turbo-darwin-64@2.1.3:
optional: true
- turbo-darwin-arm64@1.13.3:
+ turbo-darwin-arm64@2.1.3:
optional: true
- turbo-linux-64@1.13.3:
+ turbo-linux-64@2.1.3:
optional: true
- turbo-linux-arm64@1.13.3:
+ turbo-linux-arm64@2.1.3:
optional: true
- turbo-windows-64@1.13.3:
+ turbo-windows-64@2.1.3:
optional: true
- turbo-windows-arm64@1.13.3:
+ turbo-windows-arm64@2.1.3:
optional: true
- turbo@1.13.3:
+ turbo@2.1.3:
optionalDependencies:
- turbo-darwin-64: 1.13.3
- turbo-darwin-arm64: 1.13.3
- turbo-linux-64: 1.13.3
- turbo-linux-arm64: 1.13.3
- turbo-windows-64: 1.13.3
- turbo-windows-arm64: 1.13.3
+ turbo-darwin-64: 2.1.3
+ turbo-darwin-arm64: 2.1.3
+ turbo-linux-64: 2.1.3
+ turbo-linux-arm64: 2.1.3
+ turbo-windows-64: 2.1.3
+ turbo-windows-arm64: 2.1.3
type-check@0.4.0:
dependencies:
@@ -5911,8 +5957,6 @@ snapshots:
spdx-correct: 3.2.0
spdx-expression-parse: 3.0.1
- validator@13.12.0: {}
-
vite-node@1.6.0(@types/node@22.5.5):
dependencies:
cac: 6.7.14
@@ -6117,12 +6161,4 @@ snapshots:
yocto-queue@1.0.0: {}
- z-schema@5.0.5:
- dependencies:
- lodash.get: 4.4.2
- lodash.isequal: 4.5.0
- validator: 13.12.0
- optionalDependencies:
- commander: 9.5.0
-
zod@3.23.8: {}
diff --git a/turbo.json b/turbo.json
index 1ebe97ce..49bc194d 100644
--- a/turbo.json
+++ b/turbo.json
@@ -8,7 +8,7 @@
"LIVEKIT_API_SECRET",
"LOG_LEVEL"
],
- "pipeline": {
+ "tasks": {
"build": {
"dependsOn": ["^build"],
"outputs": ["dist/**"]
@@ -25,10 +25,11 @@
"outputs": []
},
"api:check": {
- "cache": false,
"dependsOn": ["^build"]
},
"api:update": {
+ "outputs": ["temp/*", "etc/*"],
+ "cache": false,
"dependsOn": ["^build"]
}
}