@livekit/agents 1.0.46 → 1.0.47
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/dist/cli.cjs +14 -20
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +14 -20
- package/dist/cli.js.map +1 -1
- package/dist/ipc/job_proc_lazy_main.cjs +14 -5
- package/dist/ipc/job_proc_lazy_main.cjs.map +1 -1
- package/dist/ipc/job_proc_lazy_main.js +14 -5
- package/dist/ipc/job_proc_lazy_main.js.map +1 -1
- package/dist/llm/chat_context.cjs +19 -0
- package/dist/llm/chat_context.cjs.map +1 -1
- package/dist/llm/chat_context.d.cts +4 -0
- package/dist/llm/chat_context.d.ts +4 -0
- package/dist/llm/chat_context.d.ts.map +1 -1
- package/dist/llm/chat_context.js +19 -0
- package/dist/llm/chat_context.js.map +1 -1
- package/dist/llm/provider_format/index.cjs +2 -0
- package/dist/llm/provider_format/index.cjs.map +1 -1
- package/dist/llm/provider_format/index.d.cts +1 -1
- package/dist/llm/provider_format/index.d.ts +1 -1
- package/dist/llm/provider_format/index.d.ts.map +1 -1
- package/dist/llm/provider_format/index.js +6 -1
- package/dist/llm/provider_format/index.js.map +1 -1
- package/dist/llm/provider_format/openai.cjs +82 -2
- package/dist/llm/provider_format/openai.cjs.map +1 -1
- package/dist/llm/provider_format/openai.d.cts +1 -0
- package/dist/llm/provider_format/openai.d.ts +1 -0
- package/dist/llm/provider_format/openai.d.ts.map +1 -1
- package/dist/llm/provider_format/openai.js +80 -1
- package/dist/llm/provider_format/openai.js.map +1 -1
- package/dist/llm/provider_format/openai.test.cjs +326 -0
- package/dist/llm/provider_format/openai.test.cjs.map +1 -1
- package/dist/llm/provider_format/openai.test.js +327 -1
- package/dist/llm/provider_format/openai.test.js.map +1 -1
- package/dist/llm/provider_format/utils.cjs +4 -3
- package/dist/llm/provider_format/utils.cjs.map +1 -1
- package/dist/llm/provider_format/utils.d.ts.map +1 -1
- package/dist/llm/provider_format/utils.js +4 -3
- package/dist/llm/provider_format/utils.js.map +1 -1
- package/dist/llm/realtime.cjs.map +1 -1
- package/dist/llm/realtime.d.cts +1 -0
- package/dist/llm/realtime.d.ts +1 -0
- package/dist/llm/realtime.d.ts.map +1 -1
- package/dist/llm/realtime.js.map +1 -1
- package/dist/log.cjs +5 -2
- package/dist/log.cjs.map +1 -1
- package/dist/log.d.ts.map +1 -1
- package/dist/log.js +5 -2
- package/dist/log.js.map +1 -1
- package/dist/stream/deferred_stream.cjs +15 -6
- package/dist/stream/deferred_stream.cjs.map +1 -1
- package/dist/stream/deferred_stream.d.ts.map +1 -1
- package/dist/stream/deferred_stream.js +15 -6
- package/dist/stream/deferred_stream.js.map +1 -1
- package/dist/utils.cjs +31 -2
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +7 -0
- package/dist/utils.d.ts +7 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +31 -2
- package/dist/utils.js.map +1 -1
- package/dist/utils.test.cjs +71 -0
- package/dist/utils.test.cjs.map +1 -1
- package/dist/utils.test.js +71 -0
- package/dist/utils.test.js.map +1 -1
- package/dist/version.cjs +1 -1
- package/dist/version.cjs.map +1 -1
- package/dist/version.d.cts +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/dist/voice/agent.cjs +144 -12
- package/dist/voice/agent.cjs.map +1 -1
- package/dist/voice/agent.d.cts +29 -4
- package/dist/voice/agent.d.ts +29 -4
- package/dist/voice/agent.d.ts.map +1 -1
- package/dist/voice/agent.js +140 -11
- package/dist/voice/agent.js.map +1 -1
- package/dist/voice/agent.test.cjs +120 -0
- package/dist/voice/agent.test.cjs.map +1 -1
- package/dist/voice/agent.test.js +122 -2
- package/dist/voice/agent.test.js.map +1 -1
- package/dist/voice/agent_activity.cjs +383 -298
- package/dist/voice/agent_activity.cjs.map +1 -1
- package/dist/voice/agent_activity.d.cts +34 -7
- package/dist/voice/agent_activity.d.ts +34 -7
- package/dist/voice/agent_activity.d.ts.map +1 -1
- package/dist/voice/agent_activity.js +383 -293
- package/dist/voice/agent_activity.js.map +1 -1
- package/dist/voice/agent_session.cjs +140 -40
- package/dist/voice/agent_session.cjs.map +1 -1
- package/dist/voice/agent_session.d.cts +19 -7
- package/dist/voice/agent_session.d.ts +19 -7
- package/dist/voice/agent_session.d.ts.map +1 -1
- package/dist/voice/agent_session.js +137 -37
- package/dist/voice/agent_session.js.map +1 -1
- package/dist/voice/audio_recognition.cjs +4 -0
- package/dist/voice/audio_recognition.cjs.map +1 -1
- package/dist/voice/audio_recognition.d.ts.map +1 -1
- package/dist/voice/audio_recognition.js +4 -0
- package/dist/voice/audio_recognition.js.map +1 -1
- package/dist/voice/generation.cjs +39 -19
- package/dist/voice/generation.cjs.map +1 -1
- package/dist/voice/generation.d.ts.map +1 -1
- package/dist/voice/generation.js +44 -20
- package/dist/voice/generation.js.map +1 -1
- package/dist/voice/index.cjs +2 -0
- package/dist/voice/index.cjs.map +1 -1
- package/dist/voice/index.d.cts +1 -1
- package/dist/voice/index.d.ts +1 -1
- package/dist/voice/index.d.ts.map +1 -1
- package/dist/voice/index.js +2 -1
- package/dist/voice/index.js.map +1 -1
- package/dist/voice/speech_handle.cjs +7 -1
- package/dist/voice/speech_handle.cjs.map +1 -1
- package/dist/voice/speech_handle.d.cts +2 -0
- package/dist/voice/speech_handle.d.ts +2 -0
- package/dist/voice/speech_handle.d.ts.map +1 -1
- package/dist/voice/speech_handle.js +8 -2
- package/dist/voice/speech_handle.js.map +1 -1
- package/dist/voice/testing/run_result.cjs +66 -15
- package/dist/voice/testing/run_result.cjs.map +1 -1
- package/dist/voice/testing/run_result.d.cts +14 -3
- package/dist/voice/testing/run_result.d.ts +14 -3
- package/dist/voice/testing/run_result.d.ts.map +1 -1
- package/dist/voice/testing/run_result.js +66 -15
- package/dist/voice/testing/run_result.js.map +1 -1
- package/package.json +1 -1
- package/src/cli.ts +20 -33
- package/src/ipc/job_proc_lazy_main.ts +16 -5
- package/src/llm/chat_context.ts +35 -0
- package/src/llm/provider_format/index.ts +7 -2
- package/src/llm/provider_format/openai.test.ts +385 -1
- package/src/llm/provider_format/openai.ts +103 -0
- package/src/llm/provider_format/utils.ts +6 -4
- package/src/llm/realtime.ts +1 -0
- package/src/log.ts +5 -2
- package/src/stream/deferred_stream.ts +17 -6
- package/src/utils.test.ts +87 -0
- package/src/utils.ts +36 -2
- package/src/version.ts +1 -1
- package/src/voice/agent.test.ts +140 -2
- package/src/voice/agent.ts +189 -10
- package/src/voice/agent_activity.ts +427 -289
- package/src/voice/agent_session.ts +178 -40
- package/src/voice/audio_recognition.ts +4 -0
- package/src/voice/generation.ts +52 -23
- package/src/voice/index.ts +1 -1
- package/src/voice/speech_handle.ts +9 -2
- package/src/voice/testing/run_result.ts +81 -23
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
3
|
import type { AudioFrame } from '@livekit/rtc-node';
|
|
4
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
3
5
|
import { ReadableStream } from 'node:stream/web';
|
|
4
6
|
import { type ChatContext, ChatMessage } from '../llm/chat_context.js';
|
|
5
7
|
import { type GenerationCreatedEvent, type InputSpeechStartedEvent, type InputSpeechStoppedEvent, type InputTranscriptionCompleted, LLM, RealtimeModel, type RealtimeSession, type ToolChoice, type ToolContext } from '../llm/index.js';
|
|
@@ -11,7 +13,10 @@ import type { Agent } from './agent.js';
|
|
|
11
13
|
import { type AgentSession, type TurnDetectionMode } from './agent_session.js';
|
|
12
14
|
import { type EndOfTurnInfo, type PreemptiveGenerationInfo, type RecognitionHooks } from './audio_recognition.js';
|
|
13
15
|
import { SpeechHandle } from './speech_handle.js';
|
|
16
|
+
export declare const agentActivityStorage: AsyncLocalStorage<AgentActivity>;
|
|
14
17
|
export declare class AgentActivity implements RecognitionHooks {
|
|
18
|
+
agent: Agent;
|
|
19
|
+
agentSession: AgentSession;
|
|
15
20
|
private static readonly REPLY_TASK_CANCEL_TIMEOUT;
|
|
16
21
|
private started;
|
|
17
22
|
private audioRecognition?;
|
|
@@ -19,22 +24,31 @@ export declare class AgentActivity implements RecognitionHooks {
|
|
|
19
24
|
private realtimeSpans?;
|
|
20
25
|
private turnDetectionMode?;
|
|
21
26
|
private logger;
|
|
22
|
-
private
|
|
27
|
+
private _schedulingPaused;
|
|
28
|
+
private _drainBlockedTasks;
|
|
23
29
|
private _currentSpeech?;
|
|
24
30
|
private speechQueue;
|
|
25
31
|
private q_updated;
|
|
26
32
|
private speechTasks;
|
|
27
33
|
private lock;
|
|
28
34
|
private audioStream;
|
|
35
|
+
private audioStreamId?;
|
|
29
36
|
private toolChoice;
|
|
30
37
|
private _preemptiveGeneration?;
|
|
31
|
-
agent: Agent;
|
|
32
|
-
agentSession: AgentSession;
|
|
33
38
|
/** @internal */
|
|
34
39
|
_mainTask?: Task<void>;
|
|
35
|
-
|
|
40
|
+
_onEnterTask?: Task<void>;
|
|
41
|
+
_onExitTask?: Task<void>;
|
|
42
|
+
_userTurnCompletedTask?: Task<void>;
|
|
43
|
+
private readonly onRealtimeGenerationCreated;
|
|
44
|
+
private readonly onRealtimeInputSpeechStarted;
|
|
45
|
+
private readonly onRealtimeInputSpeechStopped;
|
|
46
|
+
private readonly onRealtimeInputAudioTranscriptionCompleted;
|
|
47
|
+
private readonly onModelError;
|
|
36
48
|
constructor(agent: Agent, agentSession: AgentSession);
|
|
37
49
|
start(): Promise<void>;
|
|
50
|
+
resume(): Promise<void>;
|
|
51
|
+
private _startSession;
|
|
38
52
|
get currentSpeech(): SpeechHandle | undefined;
|
|
39
53
|
get vad(): VAD | undefined;
|
|
40
54
|
get stt(): STT | undefined;
|
|
@@ -42,7 +56,7 @@ export declare class AgentActivity implements RecognitionHooks {
|
|
|
42
56
|
get llm(): LLM | RealtimeModel | undefined;
|
|
43
57
|
get tts(): TTS | undefined;
|
|
44
58
|
get tools(): ToolContext;
|
|
45
|
-
get
|
|
59
|
+
get schedulingPaused(): boolean;
|
|
46
60
|
get realtimeLLMSession(): RealtimeSession | undefined;
|
|
47
61
|
get allowInterruptions(): boolean;
|
|
48
62
|
get useTtsAlignedTranscript(): boolean;
|
|
@@ -54,7 +68,10 @@ export declare class AgentActivity implements RecognitionHooks {
|
|
|
54
68
|
}): void;
|
|
55
69
|
attachAudioInput(audioStream: ReadableStream<AudioFrame>): void;
|
|
56
70
|
detachAudioInput(): void;
|
|
57
|
-
commitUserTurn(
|
|
71
|
+
commitUserTurn(options?: {
|
|
72
|
+
audioDetached?: boolean;
|
|
73
|
+
throwIfNotReady?: boolean;
|
|
74
|
+
}): void;
|
|
58
75
|
clearUserTurn(): void;
|
|
59
76
|
say(text: string | ReadableStream<string>, options?: {
|
|
60
77
|
audio?: ReadableStream<AudioFrame>;
|
|
@@ -79,6 +96,7 @@ export declare class AgentActivity implements RecognitionHooks {
|
|
|
79
96
|
onEndOfTurn(info: EndOfTurnInfo): Promise<boolean>;
|
|
80
97
|
retrieveChatCtx(): ChatContext;
|
|
81
98
|
private mainTask;
|
|
99
|
+
private getDrainPendingSpeechTasks;
|
|
82
100
|
private wakeupMainTask;
|
|
83
101
|
generateReply(options: {
|
|
84
102
|
userMessage?: ChatMessage;
|
|
@@ -88,7 +106,9 @@ export declare class AgentActivity implements RecognitionHooks {
|
|
|
88
106
|
allowInterruptions?: boolean;
|
|
89
107
|
scheduleSpeech?: boolean;
|
|
90
108
|
}): SpeechHandle;
|
|
91
|
-
interrupt(
|
|
109
|
+
interrupt(options?: {
|
|
110
|
+
force?: boolean;
|
|
111
|
+
}): Future<void>;
|
|
92
112
|
private onPipelineReplyDone;
|
|
93
113
|
private userTurnCompleted;
|
|
94
114
|
private ttsTask;
|
|
@@ -96,10 +116,17 @@ export declare class AgentActivity implements RecognitionHooks {
|
|
|
96
116
|
private pipelineReplyTask;
|
|
97
117
|
private realtimeGenerationTask;
|
|
98
118
|
private _realtimeGenerationTaskImpl;
|
|
119
|
+
private summarizeToolExecutionOutput;
|
|
99
120
|
private realtimeReplyTask;
|
|
100
121
|
private scheduleSpeech;
|
|
122
|
+
private _pauseSchedulingTask;
|
|
123
|
+
private _resumeSchedulingTask;
|
|
124
|
+
pause(options?: {
|
|
125
|
+
blockedTasks?: Task<any>[];
|
|
126
|
+
}): Promise<void>;
|
|
101
127
|
drain(): Promise<void>;
|
|
102
128
|
private _drainImpl;
|
|
103
129
|
close(): Promise<void>;
|
|
130
|
+
private _closeSessionResources;
|
|
104
131
|
}
|
|
105
132
|
//# sourceMappingURL=agent_activity.d.ts.map
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
3
|
import type { AudioFrame } from '@livekit/rtc-node';
|
|
4
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
3
5
|
import { ReadableStream } from 'node:stream/web';
|
|
4
6
|
import { type ChatContext, ChatMessage } from '../llm/chat_context.js';
|
|
5
7
|
import { type GenerationCreatedEvent, type InputSpeechStartedEvent, type InputSpeechStoppedEvent, type InputTranscriptionCompleted, LLM, RealtimeModel, type RealtimeSession, type ToolChoice, type ToolContext } from '../llm/index.js';
|
|
@@ -11,7 +13,10 @@ import type { Agent } from './agent.js';
|
|
|
11
13
|
import { type AgentSession, type TurnDetectionMode } from './agent_session.js';
|
|
12
14
|
import { type EndOfTurnInfo, type PreemptiveGenerationInfo, type RecognitionHooks } from './audio_recognition.js';
|
|
13
15
|
import { SpeechHandle } from './speech_handle.js';
|
|
16
|
+
export declare const agentActivityStorage: AsyncLocalStorage<AgentActivity>;
|
|
14
17
|
export declare class AgentActivity implements RecognitionHooks {
|
|
18
|
+
agent: Agent;
|
|
19
|
+
agentSession: AgentSession;
|
|
15
20
|
private static readonly REPLY_TASK_CANCEL_TIMEOUT;
|
|
16
21
|
private started;
|
|
17
22
|
private audioRecognition?;
|
|
@@ -19,22 +24,31 @@ export declare class AgentActivity implements RecognitionHooks {
|
|
|
19
24
|
private realtimeSpans?;
|
|
20
25
|
private turnDetectionMode?;
|
|
21
26
|
private logger;
|
|
22
|
-
private
|
|
27
|
+
private _schedulingPaused;
|
|
28
|
+
private _drainBlockedTasks;
|
|
23
29
|
private _currentSpeech?;
|
|
24
30
|
private speechQueue;
|
|
25
31
|
private q_updated;
|
|
26
32
|
private speechTasks;
|
|
27
33
|
private lock;
|
|
28
34
|
private audioStream;
|
|
35
|
+
private audioStreamId?;
|
|
29
36
|
private toolChoice;
|
|
30
37
|
private _preemptiveGeneration?;
|
|
31
|
-
agent: Agent;
|
|
32
|
-
agentSession: AgentSession;
|
|
33
38
|
/** @internal */
|
|
34
39
|
_mainTask?: Task<void>;
|
|
35
|
-
|
|
40
|
+
_onEnterTask?: Task<void>;
|
|
41
|
+
_onExitTask?: Task<void>;
|
|
42
|
+
_userTurnCompletedTask?: Task<void>;
|
|
43
|
+
private readonly onRealtimeGenerationCreated;
|
|
44
|
+
private readonly onRealtimeInputSpeechStarted;
|
|
45
|
+
private readonly onRealtimeInputSpeechStopped;
|
|
46
|
+
private readonly onRealtimeInputAudioTranscriptionCompleted;
|
|
47
|
+
private readonly onModelError;
|
|
36
48
|
constructor(agent: Agent, agentSession: AgentSession);
|
|
37
49
|
start(): Promise<void>;
|
|
50
|
+
resume(): Promise<void>;
|
|
51
|
+
private _startSession;
|
|
38
52
|
get currentSpeech(): SpeechHandle | undefined;
|
|
39
53
|
get vad(): VAD | undefined;
|
|
40
54
|
get stt(): STT | undefined;
|
|
@@ -42,7 +56,7 @@ export declare class AgentActivity implements RecognitionHooks {
|
|
|
42
56
|
get llm(): LLM | RealtimeModel | undefined;
|
|
43
57
|
get tts(): TTS | undefined;
|
|
44
58
|
get tools(): ToolContext;
|
|
45
|
-
get
|
|
59
|
+
get schedulingPaused(): boolean;
|
|
46
60
|
get realtimeLLMSession(): RealtimeSession | undefined;
|
|
47
61
|
get allowInterruptions(): boolean;
|
|
48
62
|
get useTtsAlignedTranscript(): boolean;
|
|
@@ -54,7 +68,10 @@ export declare class AgentActivity implements RecognitionHooks {
|
|
|
54
68
|
}): void;
|
|
55
69
|
attachAudioInput(audioStream: ReadableStream<AudioFrame>): void;
|
|
56
70
|
detachAudioInput(): void;
|
|
57
|
-
commitUserTurn(
|
|
71
|
+
commitUserTurn(options?: {
|
|
72
|
+
audioDetached?: boolean;
|
|
73
|
+
throwIfNotReady?: boolean;
|
|
74
|
+
}): void;
|
|
58
75
|
clearUserTurn(): void;
|
|
59
76
|
say(text: string | ReadableStream<string>, options?: {
|
|
60
77
|
audio?: ReadableStream<AudioFrame>;
|
|
@@ -79,6 +96,7 @@ export declare class AgentActivity implements RecognitionHooks {
|
|
|
79
96
|
onEndOfTurn(info: EndOfTurnInfo): Promise<boolean>;
|
|
80
97
|
retrieveChatCtx(): ChatContext;
|
|
81
98
|
private mainTask;
|
|
99
|
+
private getDrainPendingSpeechTasks;
|
|
82
100
|
private wakeupMainTask;
|
|
83
101
|
generateReply(options: {
|
|
84
102
|
userMessage?: ChatMessage;
|
|
@@ -88,7 +106,9 @@ export declare class AgentActivity implements RecognitionHooks {
|
|
|
88
106
|
allowInterruptions?: boolean;
|
|
89
107
|
scheduleSpeech?: boolean;
|
|
90
108
|
}): SpeechHandle;
|
|
91
|
-
interrupt(
|
|
109
|
+
interrupt(options?: {
|
|
110
|
+
force?: boolean;
|
|
111
|
+
}): Future<void>;
|
|
92
112
|
private onPipelineReplyDone;
|
|
93
113
|
private userTurnCompleted;
|
|
94
114
|
private ttsTask;
|
|
@@ -96,10 +116,17 @@ export declare class AgentActivity implements RecognitionHooks {
|
|
|
96
116
|
private pipelineReplyTask;
|
|
97
117
|
private realtimeGenerationTask;
|
|
98
118
|
private _realtimeGenerationTaskImpl;
|
|
119
|
+
private summarizeToolExecutionOutput;
|
|
99
120
|
private realtimeReplyTask;
|
|
100
121
|
private scheduleSpeech;
|
|
122
|
+
private _pauseSchedulingTask;
|
|
123
|
+
private _resumeSchedulingTask;
|
|
124
|
+
pause(options?: {
|
|
125
|
+
blockedTasks?: Task<any>[];
|
|
126
|
+
}): Promise<void>;
|
|
101
127
|
drain(): Promise<void>;
|
|
102
128
|
private _drainImpl;
|
|
103
129
|
close(): Promise<void>;
|
|
130
|
+
private _closeSessionResources;
|
|
104
131
|
}
|
|
105
132
|
//# sourceMappingURL=agent_activity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent_activity.d.ts","sourceRoot":"","sources":["../../src/voice/agent_activity.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent_activity.d.ts","sourceRoot":"","sources":["../../src/voice/agent_activity.ts"],"names":[],"mappings":"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"}
|