@livekit/agents 0.3.5 → 0.4.1
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 +36 -0
- package/dist/audio.js +17 -30
- package/dist/audio.js.map +1 -1
- package/dist/cli.js +3 -14
- package/dist/cli.js.map +1 -1
- package/dist/http_server.d.ts +1 -1
- package/dist/http_server.js +5 -9
- package/dist/http_server.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -2
- package/dist/index.js.map +1 -1
- package/dist/ipc/job_executor.js +3 -5
- package/dist/ipc/job_executor.js.map +1 -1
- package/dist/ipc/job_main.d.ts +1 -1
- package/dist/ipc/proc_job_executor.js +66 -80
- package/dist/ipc/proc_job_executor.js.map +1 -1
- package/dist/ipc/proc_pool.d.ts +3 -3
- package/dist/ipc/proc_pool.d.ts.map +1 -1
- package/dist/ipc/proc_pool.js +38 -20
- package/dist/ipc/proc_pool.js.map +1 -1
- package/dist/job.js +56 -73
- package/dist/job.js.map +1 -1
- package/dist/llm/chat_context.d.ts +66 -0
- package/dist/llm/chat_context.d.ts.map +1 -0
- package/dist/llm/chat_context.js +93 -0
- package/dist/llm/chat_context.js.map +1 -0
- package/dist/llm/function_context.d.ts +19 -1
- package/dist/llm/function_context.d.ts.map +1 -1
- package/dist/llm/function_context.js +54 -18
- package/dist/llm/function_context.js.map +1 -1
- package/dist/llm/function_context.test.d.ts +2 -0
- package/dist/llm/function_context.test.d.ts.map +1 -0
- package/dist/llm/function_context.test.js +218 -0
- package/dist/llm/function_context.test.js.map +1 -0
- package/dist/llm/index.d.ts +3 -2
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +3 -2
- package/dist/llm/index.js.map +1 -1
- package/dist/llm/llm.d.ts +53 -0
- package/dist/llm/llm.d.ts.map +1 -0
- package/dist/llm/llm.js +45 -0
- package/dist/llm/llm.js.map +1 -0
- package/dist/multimodal/agent_playout.d.ts +1 -1
- package/dist/multimodal/agent_playout.js +116 -153
- package/dist/multimodal/agent_playout.js.map +1 -1
- package/dist/multimodal/multimodal_agent.d.ts +4 -3
- package/dist/multimodal/multimodal_agent.d.ts.map +1 -1
- package/dist/multimodal/multimodal_agent.js +207 -234
- package/dist/multimodal/multimodal_agent.js.map +1 -1
- package/dist/pipeline/agent_output.d.ts +30 -0
- package/dist/pipeline/agent_output.d.ts.map +1 -0
- package/dist/pipeline/agent_output.js +155 -0
- package/dist/pipeline/agent_output.js.map +1 -0
- package/dist/pipeline/agent_playout.d.ts +38 -0
- package/dist/pipeline/agent_playout.d.ts.map +1 -0
- package/dist/pipeline/agent_playout.js +142 -0
- package/dist/pipeline/agent_playout.js.map +1 -0
- package/dist/pipeline/human_input.d.ts +28 -0
- package/dist/pipeline/human_input.d.ts.map +1 -0
- package/dist/pipeline/human_input.js +134 -0
- package/dist/pipeline/human_input.js.map +1 -0
- package/dist/pipeline/index.d.ts +2 -0
- package/dist/pipeline/index.d.ts.map +1 -0
- package/dist/pipeline/index.js +5 -0
- package/dist/pipeline/index.js.map +1 -0
- package/dist/pipeline/pipeline_agent.d.ts +134 -0
- package/dist/pipeline/pipeline_agent.d.ts.map +1 -0
- package/dist/pipeline/pipeline_agent.js +661 -0
- package/dist/pipeline/pipeline_agent.js.map +1 -0
- package/dist/pipeline/speech_handle.d.ts +27 -0
- package/dist/pipeline/speech_handle.d.ts.map +1 -0
- package/dist/pipeline/speech_handle.js +102 -0
- package/dist/pipeline/speech_handle.js.map +1 -0
- package/dist/plugin.js +7 -20
- package/dist/plugin.js.map +1 -1
- package/dist/stt/index.d.ts +1 -2
- package/dist/stt/index.d.ts.map +1 -1
- package/dist/stt/index.js +1 -2
- package/dist/stt/index.js.map +1 -1
- package/dist/stt/stt.d.ts +62 -24
- package/dist/stt/stt.d.ts.map +1 -1
- package/dist/stt/stt.js +77 -27
- package/dist/stt/stt.js.map +1 -1
- package/dist/tokenize/basic/basic.d.ts +16 -0
- package/dist/tokenize/basic/basic.d.ts.map +1 -0
- package/dist/tokenize/basic/basic.js +50 -0
- package/dist/tokenize/basic/basic.js.map +1 -0
- package/dist/tokenize/basic/hyphenator.d.ts +17 -0
- package/dist/tokenize/basic/hyphenator.d.ts.map +1 -0
- package/dist/tokenize/basic/hyphenator.js +420 -0
- package/dist/tokenize/basic/hyphenator.js.map +1 -0
- package/dist/tokenize/basic/index.d.ts +2 -0
- package/dist/tokenize/basic/index.d.ts.map +1 -0
- package/dist/tokenize/basic/index.js +5 -0
- package/dist/tokenize/basic/index.js.map +1 -0
- package/dist/tokenize/basic/paragraph.d.ts +5 -0
- package/dist/tokenize/basic/paragraph.d.ts.map +1 -0
- package/dist/tokenize/basic/paragraph.js +38 -0
- package/dist/tokenize/basic/paragraph.js.map +1 -0
- package/dist/tokenize/basic/sentence.d.ts +5 -0
- package/dist/tokenize/basic/sentence.d.ts.map +1 -0
- package/dist/tokenize/basic/sentence.js +60 -0
- package/dist/tokenize/basic/sentence.js.map +1 -0
- package/dist/tokenize/basic/word.d.ts +5 -0
- package/dist/tokenize/basic/word.d.ts.map +1 -0
- package/dist/tokenize/basic/word.js +23 -0
- package/dist/tokenize/basic/word.js.map +1 -0
- package/dist/tokenize/index.d.ts +5 -0
- package/dist/tokenize/index.d.ts.map +1 -0
- package/dist/tokenize/index.js +8 -0
- package/dist/tokenize/index.js.map +1 -0
- package/dist/tokenize/token_stream.d.ts +36 -0
- package/dist/tokenize/token_stream.d.ts.map +1 -0
- package/dist/tokenize/token_stream.js +136 -0
- package/dist/tokenize/token_stream.js.map +1 -0
- package/dist/tokenize/tokenizer.d.ts +55 -0
- package/dist/tokenize/tokenizer.d.ts.map +1 -0
- package/dist/tokenize/tokenizer.js +117 -0
- package/dist/tokenize/tokenizer.js.map +1 -0
- package/dist/transcription.js +78 -89
- package/dist/transcription.js.map +1 -1
- package/dist/tts/index.d.ts +1 -3
- package/dist/tts/index.d.ts.map +1 -1
- package/dist/tts/index.js +1 -3
- package/dist/tts/index.js.map +1 -1
- package/dist/tts/tts.d.ts +66 -37
- package/dist/tts/tts.d.ts.map +1 -1
- package/dist/tts/tts.js +79 -74
- package/dist/tts/tts.js.map +1 -1
- package/dist/utils.d.ts +21 -6
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +120 -76
- package/dist/utils.js.map +1 -1
- package/dist/vad.d.ts +43 -39
- package/dist/vad.d.ts.map +1 -1
- package/dist/vad.js +51 -4
- package/dist/vad.js.map +1 -1
- package/dist/worker.d.ts +1 -1
- package/dist/worker.js +257 -247
- package/dist/worker.js.map +1 -1
- package/package.json +4 -3
- package/src/index.ts +16 -2
- package/src/ipc/proc_pool.ts +25 -13
- package/src/llm/chat_context.ts +147 -0
- package/src/llm/function_context.test.ts +248 -0
- package/src/llm/function_context.ts +77 -18
- package/src/llm/index.ts +21 -2
- package/src/llm/llm.ts +102 -0
- package/src/multimodal/multimodal_agent.ts +6 -2
- package/src/pipeline/agent_output.ts +185 -0
- package/src/pipeline/agent_playout.ts +187 -0
- package/src/pipeline/human_input.ts +166 -0
- package/src/pipeline/index.ts +15 -0
- package/src/pipeline/pipeline_agent.ts +917 -0
- package/src/pipeline/speech_handle.ts +136 -0
- package/src/stt/index.ts +8 -2
- package/src/stt/stt.ts +98 -31
- package/src/tokenize/basic/basic.ts +73 -0
- package/src/tokenize/basic/hyphenator.ts +436 -0
- package/src/tokenize/basic/index.ts +5 -0
- package/src/tokenize/basic/paragraph.ts +43 -0
- package/src/tokenize/basic/sentence.ts +69 -0
- package/src/tokenize/basic/word.ts +27 -0
- package/src/tokenize/index.ts +16 -0
- package/src/tokenize/token_stream.ts +163 -0
- package/src/tokenize/tokenizer.ts +152 -0
- package/src/tts/index.ts +1 -20
- package/src/tts/tts.ts +110 -57
- package/src/utils.ts +95 -25
- package/src/vad.ts +86 -45
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/stt/stream_adapter.d.ts +0 -19
- package/dist/stt/stream_adapter.d.ts.map +0 -1
- package/dist/stt/stream_adapter.js +0 -96
- package/dist/stt/stream_adapter.js.map +0 -1
- package/dist/tokenize.d.ts +0 -15
- package/dist/tokenize.d.ts.map +0 -1
- package/dist/tokenize.js +0 -12
- package/dist/tokenize.js.map +0 -1
- package/dist/tts/stream_adapter.d.ts +0 -19
- package/dist/tts/stream_adapter.d.ts.map +0 -1
- package/dist/tts/stream_adapter.js +0 -111
- package/dist/tts/stream_adapter.js.map +0 -1
- package/src/stt/stream_adapter.ts +0 -104
- package/src/tokenize.ts +0 -22
- package/src/tts/stream_adapter.ts +0 -93
package/.turbo/turbo-build.log
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,41 @@
|
|
|
1
1
|
# @livekit/agents
|
|
2
2
|
|
|
3
|
+
## 0.4.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- fix(proc): behave correctly on numIdleProcesses: 0 - [#142](https://github.com/livekit/agents-js/pull/142) ([@nbsp](https://github.com/nbsp))
|
|
8
|
+
|
|
9
|
+
## 0.4.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- OpenAI function calling: support arrays and optional fields in function call schema - [#140](https://github.com/livekit/agents-js/pull/140) ([@nbsp](https://github.com/nbsp))
|
|
14
|
+
|
|
15
|
+
- add basic tokenizer implementations - [#140](https://github.com/livekit/agents-js/pull/140) ([@nbsp](https://github.com/nbsp))
|
|
16
|
+
|
|
17
|
+
- add VoicePipelineAgent - [#138](https://github.com/livekit/agents-js/pull/138) ([@nbsp](https://github.com/nbsp))
|
|
18
|
+
|
|
19
|
+
- add LLM and LLMStream baseclasses - [#140](https://github.com/livekit/agents-js/pull/140) ([@nbsp](https://github.com/nbsp))
|
|
20
|
+
|
|
21
|
+
- add ChatContext - [#140](https://github.com/livekit/agents-js/pull/140) ([@nbsp](https://github.com/nbsp))
|
|
22
|
+
|
|
23
|
+
- update TTS and STT baseclasses to match python - [#140](https://github.com/livekit/agents-js/pull/140) ([@nbsp](https://github.com/nbsp))
|
|
24
|
+
|
|
25
|
+
### Patch Changes
|
|
26
|
+
|
|
27
|
+
- make numIdleProcesses work - [#135](https://github.com/livekit/agents-js/pull/135) ([@nbsp](https://github.com/nbsp))
|
|
28
|
+
|
|
29
|
+
- re-add ElevenLabs TTS plugin - [#140](https://github.com/livekit/agents-js/pull/140) ([@nbsp](https://github.com/nbsp))
|
|
30
|
+
|
|
31
|
+
- add Deepgram text-to-speech plugin - [#140](https://github.com/livekit/agents-js/pull/140) ([@nbsp](https://github.com/nbsp))
|
|
32
|
+
|
|
33
|
+
- throw an error when using CommonJS with tsx - [#139](https://github.com/livekit/agents-js/pull/139) ([@nbsp](https://github.com/nbsp))
|
|
34
|
+
|
|
35
|
+
- add OpenAI LLM - [#140](https://github.com/livekit/agents-js/pull/140) ([@nbsp](https://github.com/nbsp))
|
|
36
|
+
|
|
37
|
+
- add Silero VAD, overhaul VAD class - [#140](https://github.com/livekit/agents-js/pull/140) ([@nbsp](https://github.com/nbsp))
|
|
38
|
+
|
|
3
39
|
## 0.3.5
|
|
4
40
|
|
|
5
41
|
### Patch Changes
|
package/dist/audio.js
CHANGED
|
@@ -1,15 +1,3 @@
|
|
|
1
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
-
};
|
|
7
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
-
};
|
|
12
|
-
var _AudioByteStream_sampleRate, _AudioByteStream_numChannels, _AudioByteStream_bytesPerFrame, _AudioByteStream_buf, _AudioByteStream_logger;
|
|
13
1
|
// SPDX-FileCopyrightText: 2024 LiveKit, Inc.
|
|
14
2
|
//
|
|
15
3
|
// SPDX-License-Identifier: Apache-2.0
|
|
@@ -17,39 +5,38 @@ import { AudioFrame } from '@livekit/rtc-node';
|
|
|
17
5
|
import { log } from './log.js';
|
|
18
6
|
/** AudioByteStream translates between LiveKit AudioFrame packets and raw byte data. */
|
|
19
7
|
export class AudioByteStream {
|
|
8
|
+
#sampleRate;
|
|
9
|
+
#numChannels;
|
|
10
|
+
#bytesPerFrame;
|
|
11
|
+
#buf;
|
|
12
|
+
#logger = log();
|
|
20
13
|
constructor(sampleRate, numChannels, samplesPerChannel = null) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
_AudioByteStream_bytesPerFrame.set(this, void 0);
|
|
24
|
-
_AudioByteStream_buf.set(this, void 0);
|
|
25
|
-
_AudioByteStream_logger.set(this, log());
|
|
26
|
-
__classPrivateFieldSet(this, _AudioByteStream_sampleRate, sampleRate, "f");
|
|
27
|
-
__classPrivateFieldSet(this, _AudioByteStream_numChannels, numChannels, "f");
|
|
14
|
+
this.#sampleRate = sampleRate;
|
|
15
|
+
this.#numChannels = numChannels;
|
|
28
16
|
if (samplesPerChannel === null) {
|
|
29
17
|
samplesPerChannel = Math.floor(sampleRate / 50); // 20ms by default
|
|
30
18
|
}
|
|
31
|
-
|
|
32
|
-
|
|
19
|
+
this.#bytesPerFrame = numChannels * samplesPerChannel * 2; // 2 bytes per sample (Int16)
|
|
20
|
+
this.#buf = new Int8Array();
|
|
33
21
|
}
|
|
34
22
|
write(data) {
|
|
35
|
-
|
|
23
|
+
this.#buf = new Int8Array([...this.#buf, ...new Int8Array(data)]);
|
|
36
24
|
const frames = [];
|
|
37
|
-
while (
|
|
38
|
-
const frameData =
|
|
39
|
-
|
|
40
|
-
frames.push(new AudioFrame(new Int16Array(frameData.buffer),
|
|
25
|
+
while (this.#buf.length >= this.#bytesPerFrame) {
|
|
26
|
+
const frameData = this.#buf.slice(0, this.#bytesPerFrame);
|
|
27
|
+
this.#buf = this.#buf.slice(this.#bytesPerFrame);
|
|
28
|
+
frames.push(new AudioFrame(new Int16Array(frameData.buffer), this.#sampleRate, this.#numChannels, frameData.length / 2));
|
|
41
29
|
}
|
|
42
30
|
return frames;
|
|
43
31
|
}
|
|
44
32
|
flush() {
|
|
45
|
-
if (
|
|
46
|
-
|
|
33
|
+
if (this.#buf.length % (2 * this.#numChannels) !== 0) {
|
|
34
|
+
this.#logger.warn('AudioByteStream: incomplete frame during flush, dropping');
|
|
47
35
|
return [];
|
|
48
36
|
}
|
|
49
37
|
return [
|
|
50
|
-
new AudioFrame(new Int16Array(
|
|
38
|
+
new AudioFrame(new Int16Array(this.#buf.buffer), this.#sampleRate, this.#numChannels, this.#buf.length / 2),
|
|
51
39
|
];
|
|
52
40
|
}
|
|
53
41
|
}
|
|
54
|
-
_AudioByteStream_sampleRate = new WeakMap(), _AudioByteStream_numChannels = new WeakMap(), _AudioByteStream_bytesPerFrame = new WeakMap(), _AudioByteStream_buf = new WeakMap(), _AudioByteStream_logger = new WeakMap();
|
|
55
42
|
//# sourceMappingURL=audio.js.map
|
package/dist/audio.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audio.js","sourceRoot":"","sources":["../src/audio.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"audio.js","sourceRoot":"","sources":["../src/audio.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,EAAE;AACF,sCAAsC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,uFAAuF;AACvF,MAAM,OAAO,eAAe;IAC1B,WAAW,CAAS;IACpB,YAAY,CAAS;IACrB,cAAc,CAAS;IACvB,IAAI,CAAY;IAChB,OAAO,GAAG,GAAG,EAAE,CAAC;IAEhB,YAAY,UAAkB,EAAE,WAAmB,EAAE,oBAAmC,IAAI;QAC1F,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAEhC,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;YAC/B,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,kBAAkB;QACrE,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,WAAW,GAAG,iBAAiB,GAAG,CAAC,CAAC,CAAC,6BAA6B;QACxF,IAAI,CAAC,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,IAAiB;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAElE,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAEjD,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,EAChC,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,YAAY,EACjB,SAAS,CAAC,MAAM,GAAG,CAAC,CACrB,CACF,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;YAC9E,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO;YACL,IAAI,UAAU,CACZ,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAChC,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CACrB;SACF,CAAC;IACJ,CAAC;CACF"}
|
package/dist/cli.js
CHANGED
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
-
var t = {};
|
|
3
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
-
t[p] = s[p];
|
|
5
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
-
t[p[i]] = s[p[i]];
|
|
9
|
-
}
|
|
10
|
-
return t;
|
|
11
|
-
};
|
|
12
1
|
// SPDX-FileCopyrightText: 2024 LiveKit, Inc.
|
|
13
2
|
//
|
|
14
3
|
// SPDX-License-Identifier: Apache-2.0
|
|
@@ -20,8 +9,8 @@ const runWorker = async (args) => {
|
|
|
20
9
|
initializeLogger({ pretty: !args.production, level: args.opts.logLevel });
|
|
21
10
|
const logger = log();
|
|
22
11
|
// though `production` is defined in WorkerOptions, it will always be overriddden by CLI.
|
|
23
|
-
const
|
|
24
|
-
const worker = new Worker(new WorkerOptions(
|
|
12
|
+
const { production: _, ...opts } = args.opts; // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
13
|
+
const worker = new Worker(new WorkerOptions({ production: args.production, ...opts }));
|
|
25
14
|
if (args.room) {
|
|
26
15
|
worker.event.once('worker_registered', () => {
|
|
27
16
|
logger.info(`connecting to room ${args.room}`);
|
|
@@ -44,7 +33,7 @@ const runWorker = async (args) => {
|
|
|
44
33
|
try {
|
|
45
34
|
await worker.run();
|
|
46
35
|
}
|
|
47
|
-
catch
|
|
36
|
+
catch {
|
|
48
37
|
logger.fatal('worker failed');
|
|
49
38
|
process.exit(1);
|
|
50
39
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/http_server.d.ts
CHANGED
package/dist/http_server.js
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
2
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
4
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
|
-
};
|
|
6
|
-
var _HTTPServer_logger;
|
|
7
1
|
// SPDX-FileCopyrightText: 2024 LiveKit, Inc.
|
|
8
2
|
//
|
|
9
3
|
// SPDX-License-Identifier: Apache-2.0
|
|
@@ -14,8 +8,11 @@ const healthCheck = async (res) => {
|
|
|
14
8
|
res.end('OK');
|
|
15
9
|
};
|
|
16
10
|
export class HTTPServer {
|
|
11
|
+
host;
|
|
12
|
+
port;
|
|
13
|
+
app;
|
|
14
|
+
#logger = log();
|
|
17
15
|
constructor(host, port) {
|
|
18
|
-
_HTTPServer_logger.set(this, log());
|
|
19
16
|
this.host = host;
|
|
20
17
|
this.port = port;
|
|
21
18
|
this.app = createServer((req, res) => {
|
|
@@ -35,7 +32,7 @@ export class HTTPServer {
|
|
|
35
32
|
reject(err);
|
|
36
33
|
const address = this.app.address();
|
|
37
34
|
if (typeof address !== 'string') {
|
|
38
|
-
|
|
35
|
+
this.#logger.info(`Server is listening on port ${address.port}`);
|
|
39
36
|
}
|
|
40
37
|
resolve();
|
|
41
38
|
});
|
|
@@ -51,5 +48,4 @@ export class HTTPServer {
|
|
|
51
48
|
});
|
|
52
49
|
}
|
|
53
50
|
}
|
|
54
|
-
_HTTPServer_logger = new WeakMap();
|
|
55
51
|
//# sourceMappingURL=http_server.js.map
|
package/dist/http_server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http_server.js","sourceRoot":"","sources":["../src/http_server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"http_server.js","sourceRoot":"","sources":["../src/http_server.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,EAAE;AACF,sCAAsC;AACtC,OAAO,EAA0D,YAAY,EAAE,MAAM,WAAW,CAAC;AACjG,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,MAAM,WAAW,GAAG,KAAK,EAAE,GAAmB,EAAE,EAAE;IAChD,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,OAAO,UAAU;IACrB,IAAI,CAAS;IACb,IAAI,CAAS;IACb,GAAG,CAAS;IACZ,OAAO,GAAG,GAAG,EAAE,CAAC;IAEhB,YAAY,IAAY,EAAE,IAAY;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,CAAC,GAAoB,EAAE,GAAmB,EAAE,EAAE;YACpE,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;gBACpB,WAAW,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACvB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG;QACP,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE;gBACpD,IAAI,GAAG;oBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;gBACrB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBACnC,IAAI,OAAO,OAAQ,KAAK,QAAQ,EAAE,CAAC;oBACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,+BAA+B,OAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpE,CAAC;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAW,EAAE,EAAE;gBAC7B,IAAI,GAAG;oBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;gBACrB,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
import * as cli from './cli.js';
|
|
9
9
|
import * as llm from './llm/index.js';
|
|
10
10
|
import * as multimodal from './multimodal/index.js';
|
|
11
|
+
import * as pipeline from './pipeline/index.js';
|
|
11
12
|
import * as stt from './stt/index.js';
|
|
13
|
+
import * as tokenize from './tokenize/index.js';
|
|
12
14
|
import * as tts from './tts/index.js';
|
|
13
15
|
export * from './vad.js';
|
|
14
16
|
export * from './plugin.js';
|
|
@@ -18,8 +20,7 @@ export * from './worker.js';
|
|
|
18
20
|
export * from './utils.js';
|
|
19
21
|
export * from './log.js';
|
|
20
22
|
export * from './generator.js';
|
|
21
|
-
export * from './tokenize.js';
|
|
22
23
|
export * from './audio.js';
|
|
23
24
|
export * from './transcription.js';
|
|
24
|
-
export { cli, stt, tts, llm, multimodal };
|
|
25
|
+
export { cli, stt, tts, llm, pipeline, multimodal, tokenize };
|
|
25
26
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AAetC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -11,8 +11,21 @@
|
|
|
11
11
|
import * as cli from './cli.js';
|
|
12
12
|
import * as llm from './llm/index.js';
|
|
13
13
|
import * as multimodal from './multimodal/index.js';
|
|
14
|
+
import * as pipeline from './pipeline/index.js';
|
|
14
15
|
import * as stt from './stt/index.js';
|
|
16
|
+
import * as tokenize from './tokenize/index.js';
|
|
15
17
|
import * as tts from './tts/index.js';
|
|
18
|
+
const isCommonJS = () => {
|
|
19
|
+
try {
|
|
20
|
+
return !!require;
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
if (isCommonJS()) {
|
|
27
|
+
throw new ReferenceError('@livekit/agents cannot be used in a CommonJS environment. Please set `"type": "module"` in package.json.');
|
|
28
|
+
}
|
|
16
29
|
export * from './vad.js';
|
|
17
30
|
export * from './plugin.js';
|
|
18
31
|
export * from './version.js';
|
|
@@ -21,8 +34,7 @@ export * from './worker.js';
|
|
|
21
34
|
export * from './utils.js';
|
|
22
35
|
export * from './log.js';
|
|
23
36
|
export * from './generator.js';
|
|
24
|
-
export * from './tokenize.js';
|
|
25
37
|
export * from './audio.js';
|
|
26
38
|
export * from './transcription.js';
|
|
27
|
-
export { cli, stt, tts, llm, multimodal };
|
|
39
|
+
export { cli, stt, tts, llm, pipeline, multimodal, tokenize };
|
|
28
40
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,EAAE;AACF,sCAAsC;AAEtC;;;;;;GAMG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AAEtC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,EAAE;AACF,sCAAsC;AAEtC;;;;;;GAMG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AAEtC,MAAM,UAAU,GAAG,GAAY,EAAE;IAC/B,IAAI,CAAC;QACH,OAAO,CAAC,CAAC,OAAO,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AACF,IAAI,UAAU,EAAE,EAAE,CAAC;IACjB,MAAM,IAAI,cAAc,CACtB,0GAA0G,CAC3G,CAAC;AACJ,CAAC;AAED,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC"}
|
package/dist/ipc/job_executor.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
export class JobExecutor {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
this.HIGH_PING_THRESHOLD = 0.5 * 1000;
|
|
6
|
-
}
|
|
2
|
+
PING_INTERVAL = 2.5 * 1000;
|
|
3
|
+
PING_TIMEOUT = 90 * 1000;
|
|
4
|
+
HIGH_PING_THRESHOLD = 0.5 * 1000;
|
|
7
5
|
}
|
|
8
6
|
//# sourceMappingURL=job_executor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job_executor.js","sourceRoot":"","sources":["../../src/ipc/job_executor.ts"],"names":[],"mappings":"AAWA,MAAM,OAAgB,WAAW;
|
|
1
|
+
{"version":3,"file":"job_executor.js","sourceRoot":"","sources":["../../src/ipc/job_executor.ts"],"names":[],"mappings":"AAWA,MAAM,OAAgB,WAAW;IAC/B,aAAa,GAAG,GAAG,GAAG,IAAI,CAAC;IAC3B,YAAY,GAAG,EAAE,GAAG,IAAI,CAAC;IACzB,mBAAmB,GAAG,GAAG,GAAG,IAAI,CAAC;CAUlC"}
|
package/dist/ipc/job_main.d.ts
CHANGED
|
@@ -1,150 +1,136 @@
|
|
|
1
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
-
};
|
|
7
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
-
};
|
|
12
|
-
var _ProcJobExecutor_opts, _ProcJobExecutor_started, _ProcJobExecutor_closing, _ProcJobExecutor_runningJob, _ProcJobExecutor_proc, _ProcJobExecutor_pingInterval, _ProcJobExecutor_pongTimeout, _ProcJobExecutor_init, _ProcJobExecutor_join, _ProcJobExecutor_logger;
|
|
13
1
|
import { once } from 'node:events';
|
|
14
2
|
import { log, loggerOptions } from '../log.js';
|
|
15
3
|
import { Future } from '../utils.js';
|
|
16
4
|
import { JobExecutor } from './job_executor.js';
|
|
17
5
|
export class ProcJobExecutor extends JobExecutor {
|
|
6
|
+
#opts;
|
|
7
|
+
#started = false;
|
|
8
|
+
#closing = false;
|
|
9
|
+
#runningJob = undefined;
|
|
10
|
+
#proc;
|
|
11
|
+
#pingInterval;
|
|
12
|
+
#pongTimeout;
|
|
13
|
+
#init = new Future();
|
|
14
|
+
#join = new Future();
|
|
15
|
+
#logger = log().child({ runningJob: this.#runningJob });
|
|
18
16
|
constructor(agent, initializeTimeout, closeTimeout) {
|
|
19
17
|
super();
|
|
20
|
-
|
|
21
|
-
_ProcJobExecutor_started.set(this, false);
|
|
22
|
-
_ProcJobExecutor_closing.set(this, false);
|
|
23
|
-
_ProcJobExecutor_runningJob.set(this, undefined);
|
|
24
|
-
_ProcJobExecutor_proc.set(this, void 0);
|
|
25
|
-
_ProcJobExecutor_pingInterval.set(this, void 0);
|
|
26
|
-
_ProcJobExecutor_pongTimeout.set(this, void 0);
|
|
27
|
-
_ProcJobExecutor_init.set(this, new Future());
|
|
28
|
-
_ProcJobExecutor_join.set(this, new Future());
|
|
29
|
-
_ProcJobExecutor_logger.set(this, log().child({ runningJob: __classPrivateFieldGet(this, _ProcJobExecutor_runningJob, "f") }));
|
|
30
|
-
__classPrivateFieldSet(this, _ProcJobExecutor_opts, {
|
|
18
|
+
this.#opts = {
|
|
31
19
|
agent,
|
|
32
20
|
initializeTimeout,
|
|
33
21
|
closeTimeout,
|
|
34
|
-
}
|
|
22
|
+
};
|
|
35
23
|
}
|
|
36
24
|
get started() {
|
|
37
|
-
return
|
|
25
|
+
return this.#started;
|
|
38
26
|
}
|
|
39
27
|
get runningJob() {
|
|
40
|
-
return
|
|
28
|
+
return this.#runningJob;
|
|
41
29
|
}
|
|
42
30
|
async start() {
|
|
43
|
-
if (
|
|
31
|
+
if (this.#started) {
|
|
44
32
|
throw new Error('runner already started');
|
|
45
33
|
}
|
|
46
|
-
else if (
|
|
34
|
+
else if (this.#closing) {
|
|
47
35
|
throw new Error('runner is closed');
|
|
48
36
|
}
|
|
49
|
-
|
|
50
|
-
agentFile:
|
|
51
|
-
}))
|
|
52
|
-
|
|
37
|
+
this.#proc = await import('./job_main.js').then((m) => m.runProcess({
|
|
38
|
+
agentFile: this.#opts.agent,
|
|
39
|
+
}));
|
|
40
|
+
this.#started = true;
|
|
53
41
|
this.run();
|
|
54
42
|
}
|
|
55
43
|
async run() {
|
|
56
|
-
await
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}, this.PING_INTERVAL)
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
clearTimeout(
|
|
63
|
-
clearInterval(
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}, this.PING_TIMEOUT)
|
|
44
|
+
await this.#init.await;
|
|
45
|
+
this.#pingInterval = setInterval(() => {
|
|
46
|
+
this.#proc.send({ case: 'pingRequest', value: { timestamp: Date.now() } });
|
|
47
|
+
}, this.PING_INTERVAL);
|
|
48
|
+
this.#pongTimeout = setTimeout(() => {
|
|
49
|
+
this.#logger.warn('job is unresponsive');
|
|
50
|
+
clearTimeout(this.#pongTimeout);
|
|
51
|
+
clearInterval(this.#pingInterval);
|
|
52
|
+
this.#proc.kill();
|
|
53
|
+
this.#join.resolve();
|
|
54
|
+
}, this.PING_TIMEOUT);
|
|
67
55
|
const listener = (msg) => {
|
|
68
|
-
var _a;
|
|
69
56
|
switch (msg.case) {
|
|
70
57
|
case 'pongResponse': {
|
|
71
58
|
const delay = Date.now() - msg.value.timestamp;
|
|
72
59
|
if (delay > this.HIGH_PING_THRESHOLD) {
|
|
73
|
-
|
|
60
|
+
this.#logger.child({ delay }).warn('job executor is unresponsive');
|
|
74
61
|
}
|
|
75
|
-
|
|
62
|
+
this.#pongTimeout?.refresh();
|
|
76
63
|
break;
|
|
77
64
|
}
|
|
78
65
|
case 'exiting': {
|
|
79
|
-
|
|
66
|
+
this.#logger.child({ reason: msg.value.reason }).debug('job exiting');
|
|
80
67
|
break;
|
|
81
68
|
}
|
|
82
69
|
case 'done': {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
70
|
+
this.#closing = true;
|
|
71
|
+
this.#proc.off('message', listener);
|
|
72
|
+
this.#join.resolve();
|
|
86
73
|
break;
|
|
87
74
|
}
|
|
88
75
|
}
|
|
89
76
|
};
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
if (
|
|
77
|
+
this.#proc.on('message', listener);
|
|
78
|
+
this.#proc.on('error', (err) => {
|
|
79
|
+
if (this.#closing)
|
|
93
80
|
return;
|
|
94
|
-
|
|
95
|
-
clearTimeout(
|
|
96
|
-
clearInterval(
|
|
97
|
-
|
|
81
|
+
this.#logger.child({ err }).warn('job process exited unexpectedly');
|
|
82
|
+
clearTimeout(this.#pongTimeout);
|
|
83
|
+
clearInterval(this.#pingInterval);
|
|
84
|
+
this.#join.resolve();
|
|
98
85
|
});
|
|
99
|
-
await
|
|
86
|
+
await this.#join.await;
|
|
100
87
|
}
|
|
101
88
|
async join() {
|
|
102
|
-
if (!
|
|
89
|
+
if (!this.#started) {
|
|
103
90
|
throw new Error('runner not started');
|
|
104
91
|
}
|
|
105
|
-
await
|
|
92
|
+
await this.#join.await;
|
|
106
93
|
}
|
|
107
94
|
async initialize() {
|
|
108
95
|
const timer = setTimeout(() => {
|
|
109
96
|
const err = new Error('runner initialization timed out');
|
|
110
|
-
|
|
97
|
+
this.#init.reject(err);
|
|
111
98
|
throw err;
|
|
112
|
-
},
|
|
113
|
-
|
|
114
|
-
await once(
|
|
99
|
+
}, this.#opts.initializeTimeout);
|
|
100
|
+
this.#proc.send({ case: 'initializeRequest', value: { loggerOptions } });
|
|
101
|
+
await once(this.#proc, 'message').then(([msg]) => {
|
|
115
102
|
clearTimeout(timer);
|
|
116
103
|
if (msg.case !== 'initializeResponse') {
|
|
117
104
|
throw new Error('first message must be InitializeResponse');
|
|
118
105
|
}
|
|
119
106
|
});
|
|
120
|
-
|
|
107
|
+
this.#init.resolve();
|
|
121
108
|
}
|
|
122
109
|
async close() {
|
|
123
|
-
if (!
|
|
110
|
+
if (!this.#started) {
|
|
124
111
|
return;
|
|
125
112
|
}
|
|
126
|
-
|
|
127
|
-
if (!
|
|
128
|
-
|
|
129
|
-
|
|
113
|
+
this.#closing = true;
|
|
114
|
+
if (!this.#runningJob) {
|
|
115
|
+
this.#proc.kill();
|
|
116
|
+
this.#join.resolve();
|
|
130
117
|
}
|
|
131
|
-
|
|
118
|
+
this.#proc.send({ case: 'shutdownRequest' });
|
|
132
119
|
const timer = setTimeout(() => {
|
|
133
|
-
|
|
134
|
-
},
|
|
135
|
-
await
|
|
120
|
+
this.#logger.error('job shutdown is taking too much time');
|
|
121
|
+
}, this.#opts.closeTimeout);
|
|
122
|
+
await this.#join.await.then(() => {
|
|
136
123
|
clearTimeout(timer);
|
|
137
|
-
clearTimeout(
|
|
138
|
-
clearInterval(
|
|
124
|
+
clearTimeout(this.#pongTimeout);
|
|
125
|
+
clearInterval(this.#pingInterval);
|
|
139
126
|
});
|
|
140
127
|
}
|
|
141
128
|
async launchJob(info) {
|
|
142
|
-
if (
|
|
129
|
+
if (this.#runningJob) {
|
|
143
130
|
throw new Error('executor already has a running job');
|
|
144
131
|
}
|
|
145
|
-
|
|
146
|
-
|
|
132
|
+
this.#runningJob = info;
|
|
133
|
+
this.#proc.send({ case: 'startJobRequest', value: { runningJob: info } });
|
|
147
134
|
}
|
|
148
135
|
}
|
|
149
|
-
_ProcJobExecutor_opts = new WeakMap(), _ProcJobExecutor_started = new WeakMap(), _ProcJobExecutor_closing = new WeakMap(), _ProcJobExecutor_runningJob = new WeakMap(), _ProcJobExecutor_proc = new WeakMap(), _ProcJobExecutor_pingInterval = new WeakMap(), _ProcJobExecutor_pongTimeout = new WeakMap(), _ProcJobExecutor_init = new WeakMap(), _ProcJobExecutor_join = new WeakMap(), _ProcJobExecutor_logger = new WeakMap();
|
|
150
136
|
//# sourceMappingURL=proc_job_executor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proc_job_executor.js","sourceRoot":"","sources":["../../src/ipc/proc_job_executor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"proc_job_executor.js","sourceRoot":"","sources":["../../src/ipc/proc_job_executor.ts"],"names":[],"mappings":"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"}
|
package/dist/ipc/proc_pool.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Mutex } from '@livekit/mutex';
|
|
1
|
+
import { MultiMutex, Mutex } from '@livekit/mutex';
|
|
2
2
|
import type { RunningJobInfo } from '../job.js';
|
|
3
3
|
import { Queue } from '../utils.js';
|
|
4
4
|
import type { JobExecutor } from './job_executor.js';
|
|
@@ -12,10 +12,10 @@ export declare class ProcPool {
|
|
|
12
12
|
closed: boolean;
|
|
13
13
|
controller: AbortController;
|
|
14
14
|
initMutex: Mutex;
|
|
15
|
-
procMutex
|
|
15
|
+
procMutex?: MultiMutex;
|
|
16
16
|
procUnlock?: () => void;
|
|
17
17
|
warmedProcQueue: Queue<JobExecutor>;
|
|
18
|
-
constructor(agent: string,
|
|
18
|
+
constructor(agent: string, numIdleProcesses: number, initializeTimeout: number, closeTimeout: number);
|
|
19
19
|
get processes(): JobExecutor[];
|
|
20
20
|
getByJobId(id: string): JobExecutor | null;
|
|
21
21
|
launchJob(info: RunningJobInfo): Promise<void>;
|