@livekit/agents 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +47 -0
- package/LICENSE +201 -0
- package/dist/audio.d.ts +9 -0
- package/dist/audio.d.ts.map +1 -0
- package/dist/audio.js +54 -0
- package/dist/audio.js.map +1 -0
- package/dist/cli.d.ts +12 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +102 -19
- package/dist/cli.js.map +1 -1
- package/dist/generator.d.ts +17 -6
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js +20 -3
- package/dist/generator.js.map +1 -1
- package/dist/http_server.d.ts +1 -1
- package/dist/http_server.d.ts.map +1 -1
- package/dist/http_server.js +5 -3
- package/dist/http_server.js.map +1 -1
- package/dist/index.d.ts +14 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -3
- package/dist/index.js.map +1 -1
- package/dist/ipc/job_executor.d.ts +19 -0
- package/dist/ipc/job_executor.d.ts.map +1 -0
- package/dist/ipc/job_executor.js +8 -0
- package/dist/ipc/job_executor.js.map +1 -0
- package/dist/ipc/job_main.d.ts +7 -4
- package/dist/ipc/job_main.d.ts.map +1 -1
- package/dist/ipc/job_main.js +102 -59
- package/dist/ipc/job_main.js.map +1 -1
- package/dist/ipc/message.d.ts +41 -0
- package/dist/ipc/message.d.ts.map +1 -0
- package/dist/ipc/message.js +2 -0
- package/dist/ipc/message.js.map +1 -0
- package/dist/ipc/proc_job_executor.d.ts +15 -0
- package/dist/ipc/proc_job_executor.d.ts.map +1 -0
- package/dist/ipc/proc_job_executor.js +150 -0
- package/dist/ipc/proc_job_executor.js.map +1 -0
- package/dist/ipc/proc_pool.d.ts +26 -0
- package/dist/ipc/proc_pool.d.ts.map +1 -0
- package/dist/ipc/proc_pool.js +83 -0
- package/dist/ipc/proc_pool.js.map +1 -0
- package/dist/job.d.ts +100 -0
- package/dist/job.d.ts.map +1 -0
- package/dist/job.js +213 -0
- package/dist/job.js.map +1 -0
- package/dist/llm/function_context.d.ts +20 -0
- package/dist/llm/function_context.d.ts.map +1 -0
- package/dist/llm/function_context.js +37 -0
- package/dist/llm/function_context.js.map +1 -0
- package/dist/llm/index.d.ts +3 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +6 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/log.d.ts +12 -1
- package/dist/log.d.ts.map +1 -1
- package/dist/log.js +28 -11
- package/dist/log.js.map +1 -1
- package/dist/multimodal/agent_playout.d.ts +34 -0
- package/dist/multimodal/agent_playout.d.ts.map +1 -0
- package/dist/multimodal/agent_playout.js +221 -0
- package/dist/multimodal/agent_playout.js.map +1 -0
- package/dist/multimodal/index.d.ts +3 -0
- package/dist/multimodal/index.d.ts.map +1 -0
- package/dist/multimodal/index.js +6 -0
- package/dist/multimodal/index.js.map +1 -0
- package/dist/multimodal/multimodal_agent.d.ts +47 -0
- package/dist/multimodal/multimodal_agent.d.ts.map +1 -0
- package/dist/multimodal/multimodal_agent.js +331 -0
- package/dist/multimodal/multimodal_agent.js.map +1 -0
- package/dist/plugin.js +20 -7
- package/dist/plugin.js.map +1 -1
- package/dist/stt/index.d.ts +1 -1
- package/dist/stt/index.d.ts.map +1 -1
- package/dist/stt/index.js.map +1 -1
- package/dist/stt/stream_adapter.d.ts +2 -11
- package/dist/stt/stream_adapter.d.ts.map +1 -1
- package/dist/stt/stream_adapter.js +47 -33
- package/dist/stt/stream_adapter.js.map +1 -1
- package/dist/stt/stt.d.ts +27 -0
- package/dist/stt/stt.d.ts.map +1 -1
- package/dist/stt/stt.js +32 -5
- package/dist/stt/stt.js.map +1 -1
- package/dist/transcription.d.ts +22 -0
- package/dist/transcription.d.ts.map +1 -0
- package/dist/transcription.js +111 -0
- package/dist/transcription.js.map +1 -0
- package/dist/tts/stream_adapter.d.ts +4 -11
- package/dist/tts/stream_adapter.d.ts.map +1 -1
- package/dist/tts/stream_adapter.js +66 -32
- package/dist/tts/stream_adapter.js.map +1 -1
- package/dist/tts/tts.d.ts +10 -0
- package/dist/tts/tts.d.ts.map +1 -1
- package/dist/tts/tts.js +48 -7
- package/dist/tts/tts.js.map +1 -1
- package/dist/utils.d.ts +59 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +212 -6
- package/dist/utils.js.map +1 -1
- package/dist/vad.d.ts +29 -0
- package/dist/vad.d.ts.map +1 -1
- package/dist/vad.js.map +1 -1
- package/dist/worker.d.ts +69 -50
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +414 -213
- package/dist/worker.js.map +1 -1
- package/package.json +12 -10
- package/src/audio.ts +62 -0
- package/src/cli.ts +108 -20
- package/src/generator.ts +27 -7
- package/src/http_server.ts +5 -0
- package/src/index.ts +15 -3
- package/src/ipc/job_executor.ts +25 -0
- package/src/ipc/job_main.ts +141 -61
- package/src/ipc/message.ts +39 -0
- package/src/ipc/proc_job_executor.ts +162 -0
- package/src/ipc/proc_pool.ts +109 -0
- package/src/job.ts +278 -0
- package/src/llm/function_context.ts +61 -0
- package/src/llm/index.ts +11 -0
- package/src/log.ts +40 -8
- package/src/multimodal/agent_playout.ts +254 -0
- package/src/multimodal/index.ts +5 -0
- package/src/multimodal/multimodal_agent.ts +428 -0
- package/src/stt/index.ts +1 -1
- package/src/stt/stream_adapter.ts +32 -32
- package/src/stt/stt.ts +27 -0
- package/src/transcription.ts +128 -0
- package/src/tts/stream_adapter.ts +32 -31
- package/src/tts/tts.ts +10 -0
- package/src/utils.ts +257 -3
- package/src/vad.ts +29 -0
- package/src/worker.ts +465 -172
- package/tsconfig.json +7 -1
- package/dist/ipc/job_process.d.ts +0 -22
- package/dist/ipc/job_process.d.ts.map +0 -1
- package/dist/ipc/job_process.js +0 -73
- package/dist/ipc/job_process.js.map +0 -1
- package/dist/ipc/protocol.d.ts +0 -40
- package/dist/ipc/protocol.d.ts.map +0 -1
- package/dist/ipc/protocol.js +0 -14
- package/dist/ipc/protocol.js.map +0 -1
- package/dist/job_context.d.ts +0 -16
- package/dist/job_context.d.ts.map +0 -1
- package/dist/job_context.js +0 -31
- package/dist/job_context.js.map +0 -1
- package/dist/job_request.d.ts +0 -42
- package/dist/job_request.d.ts.map +0 -1
- package/dist/job_request.js +0 -79
- package/dist/job_request.js.map +0 -1
- package/src/ipc/job_process.ts +0 -96
- package/src/ipc/protocol.ts +0 -51
- package/src/job_context.ts +0 -49
- package/src/job_request.ts +0 -118
package/dist/vad.d.ts
CHANGED
|
@@ -6,16 +6,45 @@ export declare enum VADEventType {
|
|
|
6
6
|
}
|
|
7
7
|
export interface VADEvent {
|
|
8
8
|
type: VADEventType;
|
|
9
|
+
/**
|
|
10
|
+
* Index of the samples of the event (when the event was fired)
|
|
11
|
+
*/
|
|
9
12
|
samplesIndex: number;
|
|
13
|
+
/**
|
|
14
|
+
* Duration of speech, in seconds
|
|
15
|
+
*/
|
|
10
16
|
duration: number;
|
|
11
17
|
speech: AudioFrame[];
|
|
12
18
|
}
|
|
13
19
|
export declare abstract class VAD {
|
|
20
|
+
/**
|
|
21
|
+
* Returns a {@link VADStream} that can be used to push audio frames and receive VAD events.
|
|
22
|
+
*
|
|
23
|
+
* @param options
|
|
24
|
+
*/
|
|
14
25
|
abstract stream({ minSpeakingDuration, minSilenceDuration, paddingDuration, sampleRate, maxBufferedSpeech, }: {
|
|
26
|
+
/**
|
|
27
|
+
* Minimum duration of speech required to trigger a {@link VADEventType.START_OF_SPEECH} event
|
|
28
|
+
*/
|
|
15
29
|
minSpeakingDuration: number;
|
|
30
|
+
/**
|
|
31
|
+
* Milliseconds to wait before separating speech chunk.
|
|
32
|
+
* Not always precise, generally rounded to the nearest 40ms depending on VAD implementation
|
|
33
|
+
*/
|
|
16
34
|
minSilenceDuration: number;
|
|
35
|
+
/**
|
|
36
|
+
* Number of frames to pad the start and end of speech with
|
|
37
|
+
*/
|
|
17
38
|
paddingDuration: number;
|
|
39
|
+
/**
|
|
40
|
+
* Sample rate of inference/processing
|
|
41
|
+
*/
|
|
18
42
|
sampleRate: number;
|
|
43
|
+
/**
|
|
44
|
+
* Number of seconds the buffer may keep until {@link VADEventType.END_OF_SPEECH} is triggered.
|
|
45
|
+
* It is recommended to set this to a positive value, as zero may OOM if the user doesn't stop
|
|
46
|
+
* speaking.
|
|
47
|
+
*/
|
|
19
48
|
maxBufferedSpeech: number;
|
|
20
49
|
}): VADStream;
|
|
21
50
|
}
|
package/dist/vad.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vad.d.ts","sourceRoot":"","sources":["../src/vad.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,oBAAY,YAAY;IACtB,eAAe,IAAI;IACnB,QAAQ,IAAI;IACZ,aAAa,IAAI;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,8BAAsB,GAAG;IACvB,QAAQ,CAAC,MAAM,CAAC,EACd,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,iBAAiB,GAClB,EAAE;QACD,mBAAmB,EAAE,MAAM,CAAC;QAC5B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,GAAG,SAAS;CACd;AAED,8BAAsB,SAAU,YAAW,gBAAgB,CAAC,QAAQ,CAAC;IACnE,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAC3C,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAC5C,QAAQ,CAAC,IAAI,IAAI,cAAc,CAAC,QAAQ,CAAC;IACzC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,SAAS;CAG/B"}
|
|
1
|
+
{"version":3,"file":"vad.d.ts","sourceRoot":"","sources":["../src/vad.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,oBAAY,YAAY;IACtB,eAAe,IAAI;IACnB,QAAQ,IAAI;IACZ,aAAa,IAAI;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,8BAAsB,GAAG;IACvB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EACd,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,iBAAiB,GAClB,EAAE;QACD;;WAEG;QACH,mBAAmB,EAAE,MAAM,CAAC;QAC5B;;;WAGG;QACH,kBAAkB,EAAE,MAAM,CAAC;QAC3B;;WAEG;QACH,eAAe,EAAE,MAAM,CAAC;QACxB;;WAEG;QACH,UAAU,EAAE,MAAM,CAAC;QACnB;;;;WAIG;QACH,iBAAiB,EAAE,MAAM,CAAC;KAC3B,GAAG,SAAS;CACd;AAED,8BAAsB,SAAU,YAAW,gBAAgB,CAAC,QAAQ,CAAC;IACnE,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAC3C,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAC5C,QAAQ,CAAC,IAAI,IAAI,cAAc,CAAC,QAAQ,CAAC;IACzC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,SAAS;CAG/B"}
|
package/dist/vad.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vad.js","sourceRoot":"","sources":["../src/vad.ts"],"names":[],"mappings":"AAKA,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,qEAAmB,CAAA;IACnB,uDAAY,CAAA;IACZ,iEAAiB,CAAA;AACnB,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB;
|
|
1
|
+
{"version":3,"file":"vad.js","sourceRoot":"","sources":["../src/vad.ts"],"names":[],"mappings":"AAKA,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,qEAAmB,CAAA;IACnB,uDAAY,CAAA;IACZ,iEAAiB,CAAA;AACnB,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB;AAeD,MAAM,OAAgB,GAAG;CAqCxB;AAED,MAAM,OAAgB,SAAS;IAI7B,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
package/dist/worker.d.ts
CHANGED
|
@@ -1,24 +1,48 @@
|
|
|
1
|
-
/// <reference types="node"
|
|
2
|
-
import
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { TrackSource } from '@livekit/protocol';
|
|
3
|
+
import { JobType } from '@livekit/protocol';
|
|
3
4
|
import { EventEmitter } from 'events';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
import type { JobProcess, RunningJobInfo } from './job.js';
|
|
6
|
+
import { JobRequest } from './job.js';
|
|
7
|
+
/** Necessary credentials not provided and not found in an appropriate environmental variable. */
|
|
8
|
+
export declare class MissingCredentialsError extends Error {
|
|
9
|
+
constructor(msg?: string);
|
|
10
|
+
}
|
|
11
|
+
/** Worker did not run as expected. */
|
|
12
|
+
export declare class WorkerError extends Error {
|
|
13
|
+
constructor(msg?: string);
|
|
14
|
+
}
|
|
15
|
+
/** @internal */
|
|
16
|
+
export declare const defaultInitializeProcessFunc: (_: JobProcess) => JobProcess;
|
|
17
|
+
/** Participant permissions to pass to every agent spun up by this worker. */
|
|
18
|
+
export declare class WorkerPermissions {
|
|
10
19
|
canPublish: boolean;
|
|
11
20
|
canSubscribe: boolean;
|
|
12
21
|
canPublishData: boolean;
|
|
13
22
|
canUpdateMetadata: boolean;
|
|
23
|
+
canPublishSources: TrackSource[];
|
|
14
24
|
hidden: boolean;
|
|
15
|
-
constructor(canPublish?: boolean, canSubscribe?: boolean, canPublishData?: boolean, canUpdateMetadata?: boolean, hidden?: boolean);
|
|
25
|
+
constructor(canPublish?: boolean, canSubscribe?: boolean, canPublishData?: boolean, canUpdateMetadata?: boolean, canPublishSources?: TrackSource[], hidden?: boolean);
|
|
16
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Data class describing worker behaviour.
|
|
29
|
+
*
|
|
30
|
+
* @remarks
|
|
31
|
+
* The Agents framework provides sane worker defaults, and works out-of-the-box with no tweaking
|
|
32
|
+
* necessary. The only mandatory parameter is `agent`, which points to the entry function.
|
|
33
|
+
*
|
|
34
|
+
* This class is mostly useful in conjunction with {@link cli.runApp}.
|
|
35
|
+
*/
|
|
17
36
|
export declare class WorkerOptions {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
37
|
+
agent: string;
|
|
38
|
+
requestFunc: (job: JobRequest) => Promise<void>;
|
|
39
|
+
loadFunc: () => Promise<number>;
|
|
40
|
+
loadThreshold: number;
|
|
41
|
+
numIdleProcesses: number;
|
|
42
|
+
shutdownProcessTimeout: number;
|
|
43
|
+
initializeProcessTimeout: number;
|
|
21
44
|
permissions: WorkerPermissions;
|
|
45
|
+
agentName: string;
|
|
22
46
|
workerType: JobType;
|
|
23
47
|
maxRetry: number;
|
|
24
48
|
wsURL: string;
|
|
@@ -26,11 +50,25 @@ export declare class WorkerOptions {
|
|
|
26
50
|
apiSecret?: string;
|
|
27
51
|
host: string;
|
|
28
52
|
port: number;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
53
|
+
logLevel: string;
|
|
54
|
+
production: boolean;
|
|
55
|
+
/** @param options */
|
|
56
|
+
constructor({ agent, requestFunc, loadFunc, loadThreshold, numIdleProcesses, shutdownProcessTimeout, initializeProcessTimeout, permissions, agentName, workerType, maxRetry, wsURL, apiKey, apiSecret, host, port, logLevel, production, }: {
|
|
57
|
+
/**
|
|
58
|
+
* Path to a file that has {@link Agent} as a default export, dynamically imported later for
|
|
59
|
+
* entrypoint and prewarm functions
|
|
60
|
+
*/
|
|
61
|
+
agent: string;
|
|
62
|
+
requestFunc?: (job: JobRequest) => Promise<void>;
|
|
63
|
+
/** Called to determine the current load of the worker. Should return a value between 0 and 1. */
|
|
64
|
+
loadFunc?: () => Promise<number>;
|
|
65
|
+
/** When the load exceeds this threshold, the worker will be marked as unavailable. */
|
|
66
|
+
loadThreshold?: number;
|
|
67
|
+
numIdleProcesses?: number;
|
|
68
|
+
shutdownProcessTimeout?: number;
|
|
69
|
+
initializeProcessTimeout?: number;
|
|
33
70
|
permissions?: WorkerPermissions;
|
|
71
|
+
agentName?: string;
|
|
34
72
|
workerType?: JobType;
|
|
35
73
|
maxRetry?: number;
|
|
36
74
|
wsURL?: string;
|
|
@@ -38,47 +76,28 @@ export declare class WorkerOptions {
|
|
|
38
76
|
apiSecret?: string;
|
|
39
77
|
host?: string;
|
|
40
78
|
port?: number;
|
|
79
|
+
logLevel?: string;
|
|
80
|
+
production?: boolean;
|
|
41
81
|
});
|
|
42
82
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
declare class PendingAssignment {
|
|
53
|
-
promise: Promise<AssignmentPair>;
|
|
54
|
-
resolve(arg: AssignmentPair): void;
|
|
55
|
-
}
|
|
83
|
+
/**
|
|
84
|
+
* Central orchestrator for all processes and job requests.
|
|
85
|
+
*
|
|
86
|
+
* @remarks
|
|
87
|
+
* For most usecases, Worker should not be initialized or handled directly; you should instead call
|
|
88
|
+
* for its creation through {@link cli.runApp}. This could, however, be useful in situations where
|
|
89
|
+
* you don't have access to a command line, such as a headless program, or one that uses Agents
|
|
90
|
+
* behind a wrapper.
|
|
91
|
+
*/
|
|
56
92
|
export declare class Worker {
|
|
57
93
|
#private;
|
|
58
|
-
opts: WorkerOptions;
|
|
59
|
-
session: WebSocket | undefined;
|
|
60
|
-
closed: boolean;
|
|
61
|
-
httpServer: HTTPServer;
|
|
62
|
-
logger: import("pino").default.Logger<never>;
|
|
63
94
|
event: EventEmitter<[never]>;
|
|
64
|
-
pending: {
|
|
65
|
-
[id: string]: {
|
|
66
|
-
value: PendingAssignment;
|
|
67
|
-
};
|
|
68
|
-
};
|
|
69
|
-
processes: {
|
|
70
|
-
[id: string]: {
|
|
71
|
-
proc: JobProcess;
|
|
72
|
-
activeJob: ActiveJob;
|
|
73
|
-
};
|
|
74
|
-
};
|
|
75
95
|
constructor(opts: WorkerOptions);
|
|
76
|
-
get id(): string;
|
|
77
96
|
run(): Promise<void>;
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
97
|
+
get id(): string;
|
|
98
|
+
get activeJobs(): RunningJobInfo[];
|
|
99
|
+
drain(timeout?: number): Promise<void>;
|
|
100
|
+
simulateJob(roomName: string, participantIdentity?: string): Promise<void>;
|
|
81
101
|
close(): Promise<void>;
|
|
82
102
|
}
|
|
83
|
-
export {};
|
|
84
103
|
//# sourceMappingURL=worker.d.ts.map
|
package/dist/worker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":";AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
|