@livekit/agents 0.4.6 → 0.5.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/README.md +17 -0
- package/dist/audio.cjs +77 -0
- package/dist/audio.cjs.map +1 -0
- package/dist/audio.js +48 -37
- package/dist/audio.js.map +1 -1
- package/dist/cli.cjs +131 -0
- package/dist/cli.cjs.map +1 -0
- package/dist/cli.js +96 -122
- package/dist/cli.js.map +1 -1
- package/dist/generator.cjs +36 -0
- package/dist/generator.cjs.map +1 -0
- package/dist/generator.js +8 -22
- package/dist/generator.js.map +1 -1
- package/dist/http_server.cjs +72 -0
- package/dist/http_server.cjs.map +1 -0
- package/dist/http_server.d.ts +1 -1
- package/dist/http_server.js +44 -47
- package/dist/http_server.js.map +1 -1
- package/dist/index.cjs +78 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.js +26 -28
- package/dist/index.js.map +1 -1
- package/dist/ipc/job_executor.cjs +33 -0
- package/dist/ipc/job_executor.cjs.map +1 -0
- package/dist/ipc/job_executor.js +7 -4
- package/dist/ipc/job_executor.js.map +1 -1
- package/dist/ipc/job_main.cjs +147 -0
- package/dist/ipc/job_main.cjs.map +1 -0
- package/dist/ipc/job_main.d.ts +1 -1
- package/dist/ipc/job_main.js +103 -103
- package/dist/ipc/job_main.js.map +1 -1
- package/dist/ipc/message.cjs +17 -0
- package/dist/ipc/message.cjs.map +1 -0
- package/dist/ipc/message.js +0 -1
- package/dist/ipc/message.js.map +1 -1
- package/dist/ipc/proc_job_executor.cjs +174 -0
- package/dist/ipc/proc_job_executor.cjs.map +1 -0
- package/dist/ipc/proc_job_executor.js +130 -126
- package/dist/ipc/proc_job_executor.js.map +1 -1
- package/dist/ipc/proc_pool.cjs +126 -0
- package/dist/ipc/proc_pool.cjs.map +1 -0
- package/dist/ipc/proc_pool.js +93 -96
- package/dist/ipc/proc_pool.js.map +1 -1
- package/dist/job.cjs +230 -0
- package/dist/job.cjs.map +1 -0
- package/dist/job.d.ts +6 -1
- package/dist/job.d.ts.map +1 -1
- package/dist/job.js +195 -198
- package/dist/job.js.map +1 -1
- package/dist/llm/chat_context.cjs +131 -0
- package/dist/llm/chat_context.cjs.map +1 -0
- package/dist/llm/chat_context.js +98 -86
- package/dist/llm/chat_context.js.map +1 -1
- package/dist/llm/function_context.cjs +103 -0
- package/dist/llm/function_context.cjs.map +1 -0
- package/dist/llm/function_context.js +72 -81
- package/dist/llm/function_context.js.map +1 -1
- package/dist/llm/function_context.test.cjs +218 -0
- package/dist/llm/function_context.test.cjs.map +1 -0
- package/dist/llm/function_context.test.js +209 -210
- package/dist/llm/function_context.test.js.map +1 -1
- package/dist/llm/index.cjs +43 -0
- package/dist/llm/index.cjs.map +1 -0
- package/dist/llm/index.js +22 -6
- package/dist/llm/index.js.map +1 -1
- package/dist/llm/llm.cjs +76 -0
- package/dist/llm/llm.cjs.map +1 -0
- package/dist/llm/llm.js +48 -42
- package/dist/llm/llm.js.map +1 -1
- package/dist/log.cjs +57 -0
- package/dist/log.cjs.map +1 -0
- package/dist/log.js +27 -26
- package/dist/log.js.map +1 -1
- package/dist/multimodal/agent_playout.cjs +228 -0
- package/dist/multimodal/agent_playout.cjs.map +1 -0
- package/dist/multimodal/agent_playout.d.ts +1 -1
- package/dist/multimodal/agent_playout.js +193 -180
- package/dist/multimodal/agent_playout.js.map +1 -1
- package/dist/multimodal/index.cjs +25 -0
- package/dist/multimodal/index.cjs.map +1 -0
- package/dist/multimodal/index.js +2 -5
- package/dist/multimodal/index.js.map +1 -1
- package/dist/multimodal/multimodal_agent.cjs +404 -0
- package/dist/multimodal/multimodal_agent.cjs.map +1 -0
- package/dist/multimodal/multimodal_agent.d.ts +1 -1
- package/dist/multimodal/multimodal_agent.js +351 -330
- package/dist/multimodal/multimodal_agent.js.map +1 -1
- package/dist/pipeline/agent_output.cjs +172 -0
- package/dist/pipeline/agent_output.cjs.map +1 -0
- package/dist/pipeline/agent_output.js +136 -138
- package/dist/pipeline/agent_output.js.map +1 -1
- package/dist/pipeline/agent_playout.cjs +169 -0
- package/dist/pipeline/agent_playout.cjs.map +1 -0
- package/dist/pipeline/agent_playout.js +126 -136
- package/dist/pipeline/agent_playout.js.map +1 -1
- package/dist/pipeline/human_input.cjs +158 -0
- package/dist/pipeline/human_input.cjs.map +1 -0
- package/dist/pipeline/human_input.js +124 -125
- package/dist/pipeline/human_input.js.map +1 -1
- package/dist/pipeline/index.cjs +31 -0
- package/dist/pipeline/index.cjs.map +1 -0
- package/dist/pipeline/index.js +8 -4
- package/dist/pipeline/index.js.map +1 -1
- package/dist/pipeline/pipeline_agent.cjs +642 -0
- package/dist/pipeline/pipeline_agent.cjs.map +1 -0
- package/dist/pipeline/pipeline_agent.js +595 -651
- package/dist/pipeline/pipeline_agent.js.map +1 -1
- package/dist/pipeline/speech_handle.cjs +128 -0
- package/dist/pipeline/speech_handle.cjs.map +1 -0
- package/dist/pipeline/speech_handle.js +102 -100
- package/dist/pipeline/speech_handle.js.map +1 -1
- package/dist/plugin.cjs +46 -0
- package/dist/plugin.cjs.map +1 -0
- package/dist/plugin.js +20 -20
- package/dist/plugin.js.map +1 -1
- package/dist/stt/index.cjs +38 -0
- package/dist/stt/index.cjs.map +1 -0
- package/dist/stt/index.js +13 -5
- package/dist/stt/index.js.map +1 -1
- package/dist/stt/stream_adapter.cjs +87 -0
- package/dist/stt/stream_adapter.cjs.map +1 -0
- package/dist/stt/stream_adapter.js +58 -55
- package/dist/stt/stream_adapter.js.map +1 -1
- package/dist/stt/stt.cjs +98 -0
- package/dist/stt/stt.cjs.map +1 -0
- package/dist/stt/stt.js +63 -98
- package/dist/stt/stt.js.map +1 -1
- package/dist/tokenize/basic/basic.cjs +98 -0
- package/dist/tokenize/basic/basic.cjs.map +1 -0
- package/dist/tokenize/basic/basic.d.ts +1 -1
- package/dist/tokenize/basic/basic.d.ts.map +1 -1
- package/dist/tokenize/basic/basic.js +56 -45
- package/dist/tokenize/basic/basic.js.map +1 -1
- package/dist/tokenize/basic/hyphenator.cjs +425 -0
- package/dist/tokenize/basic/hyphenator.cjs.map +1 -0
- package/dist/tokenize/basic/hyphenator.js +66 -82
- package/dist/tokenize/basic/hyphenator.js.map +1 -1
- package/dist/tokenize/basic/index.cjs +35 -0
- package/dist/tokenize/basic/index.cjs.map +1 -0
- package/dist/tokenize/basic/index.js +7 -4
- package/dist/tokenize/basic/index.js.map +1 -1
- package/dist/tokenize/basic/paragraph.cjs +57 -0
- package/dist/tokenize/basic/paragraph.cjs.map +1 -0
- package/dist/tokenize/basic/paragraph.js +30 -35
- package/dist/tokenize/basic/paragraph.js.map +1 -1
- package/dist/tokenize/basic/sentence.cjs +89 -0
- package/dist/tokenize/basic/sentence.cjs.map +1 -0
- package/dist/tokenize/basic/sentence.d.ts.map +1 -1
- package/dist/tokenize/basic/sentence.js +62 -57
- package/dist/tokenize/basic/sentence.js.map +1 -1
- package/dist/tokenize/basic/word.cjs +44 -0
- package/dist/tokenize/basic/word.cjs.map +1 -0
- package/dist/tokenize/basic/word.js +17 -20
- package/dist/tokenize/basic/word.js.map +1 -1
- package/dist/tokenize/index.cjs +55 -0
- package/dist/tokenize/index.cjs.map +1 -0
- package/dist/tokenize/index.js +18 -7
- package/dist/tokenize/index.js.map +1 -1
- package/dist/tokenize/token_stream.cjs +164 -0
- package/dist/tokenize/token_stream.cjs.map +1 -0
- package/dist/tokenize/token_stream.js +133 -139
- package/dist/tokenize/token_stream.js.map +1 -1
- package/dist/tokenize/tokenizer.cjs +184 -0
- package/dist/tokenize/tokenizer.cjs.map +1 -0
- package/dist/tokenize/tokenizer.js +138 -99
- package/dist/tokenize/tokenizer.js.map +1 -1
- package/dist/tokenize/tokenizer.test.cjs +220 -0
- package/dist/tokenize/tokenizer.test.cjs.map +1 -0
- package/dist/tokenize/tokenizer.test.d.ts +2 -0
- package/dist/tokenize/tokenizer.test.d.ts.map +1 -0
- package/dist/tokenize/tokenizer.test.js +219 -0
- package/dist/tokenize/tokenizer.test.js.map +1 -0
- package/dist/transcription.cjs +131 -0
- package/dist/transcription.cjs.map +1 -0
- package/dist/transcription.js +99 -96
- package/dist/transcription.js.map +1 -1
- package/dist/tts/index.cjs +38 -0
- package/dist/tts/index.cjs.map +1 -0
- package/dist/tts/index.js +13 -5
- package/dist/tts/index.js.map +1 -1
- package/dist/tts/stream_adapter.cjs +78 -0
- package/dist/tts/stream_adapter.cjs.map +1 -0
- package/dist/tts/stream_adapter.js +50 -47
- package/dist/tts/stream_adapter.js.map +1 -1
- package/dist/tts/tts.cjs +127 -0
- package/dist/tts/tts.cjs.map +1 -0
- package/dist/tts/tts.js +90 -120
- package/dist/tts/tts.js.map +1 -1
- package/dist/utils.cjs +284 -0
- package/dist/utils.cjs.map +1 -0
- package/dist/utils.js +242 -247
- package/dist/utils.js.map +1 -1
- package/dist/vad.cjs +92 -0
- package/dist/vad.cjs.map +1 -0
- package/dist/vad.js +57 -52
- package/dist/vad.js.map +1 -1
- package/dist/version.cjs +29 -0
- package/dist/version.cjs.map +1 -0
- package/dist/version.js +4 -4
- package/dist/version.js.map +1 -1
- package/dist/worker.cjs +577 -0
- package/dist/worker.cjs.map +1 -0
- package/dist/worker.d.ts +1 -1
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +512 -484
- package/dist/worker.js.map +1 -1
- package/package.json +18 -8
- package/src/ipc/job_main.ts +66 -64
- package/src/job.ts +3 -2
- package/src/pipeline/pipeline_agent.ts +23 -23
- package/src/tokenize/basic/basic.ts +1 -1
- package/src/tokenize/basic/sentence.ts +14 -8
- package/src/tokenize/tokenizer.test.ts +255 -0
- package/src/worker.ts +1 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var job_main_exports = {};
|
|
20
|
+
__export(job_main_exports, {
|
|
21
|
+
runProcess: () => runProcess
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(job_main_exports);
|
|
24
|
+
var getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.src || new URL("main.js", document.baseURI).href;
|
|
25
|
+
var importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
|
|
26
|
+
var import_rtc_node = require("@livekit/rtc-node");
|
|
27
|
+
var import_node_child_process = require("node:child_process");
|
|
28
|
+
var import_node_events = require("node:events");
|
|
29
|
+
var import_node_url = require("node:url");
|
|
30
|
+
var import_generator = require("../generator.cjs");
|
|
31
|
+
var import_job = require("../job.cjs");
|
|
32
|
+
var import_job2 = require("../job.cjs");
|
|
33
|
+
var import_log = require("../log.cjs");
|
|
34
|
+
var import_worker = require("../worker.cjs");
|
|
35
|
+
const ORPHANED_TIMEOUT = 15 * 1e3;
|
|
36
|
+
const runProcess = (args) => {
|
|
37
|
+
return (0, import_node_child_process.fork)(new URL(importMetaUrl), [args.agentFile]);
|
|
38
|
+
};
|
|
39
|
+
const startJob = (proc, func, info, closeEvent, logger) => {
|
|
40
|
+
let connect = false;
|
|
41
|
+
let shutdown = false;
|
|
42
|
+
const room = new import_rtc_node.Room();
|
|
43
|
+
room.on(import_rtc_node.RoomEvent.Disconnected, () => {
|
|
44
|
+
closeEvent.emit("close", false);
|
|
45
|
+
});
|
|
46
|
+
const onConnect = () => {
|
|
47
|
+
connect = true;
|
|
48
|
+
};
|
|
49
|
+
const onShutdown = (reason) => {
|
|
50
|
+
shutdown = true;
|
|
51
|
+
closeEvent.emit("close", true, reason);
|
|
52
|
+
};
|
|
53
|
+
const ctx = new import_job.JobContext(proc, info, room, onConnect, onShutdown);
|
|
54
|
+
const task = new Promise(async () => {
|
|
55
|
+
const unconnectedTimeout = setTimeout(() => {
|
|
56
|
+
if (!(connect || shutdown)) {
|
|
57
|
+
logger.warn(
|
|
58
|
+
"room not connect after job_entry was called after 10 seconds, ",
|
|
59
|
+
"did you forget to call ctx.connect()?"
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
}, 1e4);
|
|
63
|
+
func(ctx).finally(() => clearTimeout(unconnectedTimeout));
|
|
64
|
+
await (0, import_node_events.once)(closeEvent, "close").then((close) => {
|
|
65
|
+
logger.debug("shutting down");
|
|
66
|
+
process.send({ case: "exiting", value: { reason: close[1] } });
|
|
67
|
+
});
|
|
68
|
+
await room.disconnect();
|
|
69
|
+
logger.debug("disconnected from room");
|
|
70
|
+
const shutdownTasks = [];
|
|
71
|
+
for (const callback of ctx.shutdownCallbacks) {
|
|
72
|
+
shutdownTasks.push(callback());
|
|
73
|
+
}
|
|
74
|
+
await Promise.all(shutdownTasks).catch(() => logger.error("error while shutting down the job"));
|
|
75
|
+
process.send({ case: "done" });
|
|
76
|
+
process.exit();
|
|
77
|
+
});
|
|
78
|
+
return { ctx, task };
|
|
79
|
+
};
|
|
80
|
+
(async () => {
|
|
81
|
+
if (process.send) {
|
|
82
|
+
const moduleFile = process.argv[2];
|
|
83
|
+
const agent = await import((0, import_node_url.pathToFileURL)(moduleFile).pathname).then((module2) => {
|
|
84
|
+
const agent2 = module2.default;
|
|
85
|
+
if (agent2 === void 0 || !(0, import_generator.isAgent)(agent2)) {
|
|
86
|
+
throw new Error(`Unable to load agent: Missing or invalid default export in ${moduleFile}`);
|
|
87
|
+
}
|
|
88
|
+
return agent2;
|
|
89
|
+
});
|
|
90
|
+
if (!agent.prewarm) {
|
|
91
|
+
agent.prewarm = import_worker.defaultInitializeProcessFunc;
|
|
92
|
+
}
|
|
93
|
+
process.on("SIGINT", () => {
|
|
94
|
+
});
|
|
95
|
+
await (0, import_node_events.once)(process, "message").then(([msg]) => {
|
|
96
|
+
msg = msg;
|
|
97
|
+
if (msg.case !== "initializeRequest") {
|
|
98
|
+
throw new Error("first message must be InitializeRequest");
|
|
99
|
+
}
|
|
100
|
+
(0, import_log.initializeLogger)(msg.value.loggerOptions);
|
|
101
|
+
});
|
|
102
|
+
const proc = new import_job2.JobProcess();
|
|
103
|
+
let logger = (0, import_log.log)().child({ pid: proc.pid });
|
|
104
|
+
logger.debug("initializing job runner");
|
|
105
|
+
agent.prewarm(proc);
|
|
106
|
+
logger.debug("job runner initialized");
|
|
107
|
+
process.send({ case: "initializeResponse" });
|
|
108
|
+
let job = void 0;
|
|
109
|
+
const closeEvent = new import_node_events.EventEmitter();
|
|
110
|
+
const orphanedTimeout = setTimeout(() => {
|
|
111
|
+
logger.warn("process orphaned, shutting down");
|
|
112
|
+
process.exit();
|
|
113
|
+
}, ORPHANED_TIMEOUT);
|
|
114
|
+
process.on("message", (msg) => {
|
|
115
|
+
switch (msg.case) {
|
|
116
|
+
case "pingRequest": {
|
|
117
|
+
orphanedTimeout.refresh();
|
|
118
|
+
process.send({
|
|
119
|
+
case: "pongResponse",
|
|
120
|
+
value: { lastTimestamp: msg.value.timestamp, timestamp: Date.now() }
|
|
121
|
+
});
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
case "startJobRequest": {
|
|
125
|
+
if (job) {
|
|
126
|
+
throw new Error("job task already running");
|
|
127
|
+
}
|
|
128
|
+
logger = logger.child({ jobID: msg.value.runningJob.job.id });
|
|
129
|
+
job = startJob(proc, agent.entry, msg.value.runningJob, closeEvent, logger);
|
|
130
|
+
logger.debug("job started");
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
case "shutdownRequest": {
|
|
134
|
+
if (!job) {
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
closeEvent.emit("close", "");
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
})();
|
|
143
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
144
|
+
0 && (module.exports = {
|
|
145
|
+
runProcess
|
|
146
|
+
});
|
|
147
|
+
//# sourceMappingURL=job_main.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ipc/job_main.ts","../../../node_modules/.pnpm/tsup@8.3.5_@microsoft+api-extractor@7.43.7_@types+node@22.5.5__postcss@8.4.38_tsx@4.19.2_typescript@5.4.5/node_modules/tsup/assets/cjs_shims.js"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport { Room, RoomEvent } from '@livekit/rtc-node';\nimport type { ChildProcess } from 'node:child_process';\nimport { fork } from 'node:child_process';\nimport { EventEmitter, once } from 'node:events';\nimport { pathToFileURL } from 'node:url';\nimport type { Logger } from 'pino';\nimport { type Agent, isAgent } from '../generator.js';\nimport type { RunningJobInfo } from '../job.js';\nimport { JobContext } from '../job.js';\nimport { JobProcess } from '../job.js';\nimport { initializeLogger, log } from '../log.js';\nimport { defaultInitializeProcessFunc } from '../worker.js';\nimport type { IPCMessage } from './message.js';\n\nconst ORPHANED_TIMEOUT = 15 * 1000;\n\ntype StartArgs = {\n agentFile: string;\n // userArguments: unknown;\n};\n\ntype JobTask = {\n ctx: JobContext;\n task: Promise<void>;\n};\n\nexport const runProcess = (args: StartArgs): ChildProcess => {\n return fork(new URL(import.meta.url), [args.agentFile]);\n};\n\nconst startJob = (\n proc: JobProcess,\n func: (ctx: JobContext) => Promise<void>,\n info: RunningJobInfo,\n closeEvent: EventEmitter,\n logger: Logger,\n): JobTask => {\n let connect = false;\n let shutdown = false;\n\n const room = new Room();\n room.on(RoomEvent.Disconnected, () => {\n closeEvent.emit('close', false);\n });\n\n const onConnect = () => {\n connect = true;\n };\n const onShutdown = (reason: string) => {\n shutdown = true;\n closeEvent.emit('close', true, reason);\n };\n\n const ctx = new JobContext(proc, info, room, onConnect, onShutdown);\n\n const task = new Promise<void>(async () => {\n const unconnectedTimeout = setTimeout(() => {\n if (!(connect || shutdown)) {\n logger.warn(\n 'room not connect after job_entry was called after 10 seconds, ',\n 'did you forget to call ctx.connect()?',\n );\n }\n }, 10000);\n func(ctx).finally(() => clearTimeout(unconnectedTimeout));\n\n await once(closeEvent, 'close').then((close) => {\n logger.debug('shutting down');\n process.send!({ case: 'exiting', value: { reason: close[1] } });\n });\n\n await room.disconnect();\n logger.debug('disconnected from room');\n\n const shutdownTasks = [];\n for (const callback of ctx.shutdownCallbacks) {\n shutdownTasks.push(callback());\n }\n await Promise.all(shutdownTasks).catch(() => logger.error('error while shutting down the job'));\n\n process.send!({ case: 'done' });\n process.exit();\n });\n\n return { ctx, task };\n};\n\n(async () => {\n if (process.send) {\n // process.argv:\n // [0] `node'\n // [1] import.meta.filename\n // [2] import.meta.filename of function containing entry file\n const moduleFile = process.argv[2];\n const agent: Agent = await import(pathToFileURL(moduleFile!).pathname).then((module) => {\n const agent = module.default;\n if (agent === undefined || !isAgent(agent)) {\n throw new Error(`Unable to load agent: Missing or invalid default export in ${moduleFile}`);\n }\n return agent;\n });\n if (!agent.prewarm) {\n agent.prewarm = defaultInitializeProcessFunc;\n }\n\n // don't do anything on C-c\n // this is handled in cli, triggering a termination of all child processes at once.\n process.on('SIGINT', () => {});\n\n await once(process, 'message').then(([msg]: IPCMessage[]) => {\n msg = msg!;\n if (msg.case !== 'initializeRequest') {\n throw new Error('first message must be InitializeRequest');\n }\n initializeLogger(msg.value.loggerOptions);\n });\n const proc = new JobProcess();\n let logger = log().child({ pid: proc.pid });\n\n logger.debug('initializing job runner');\n agent.prewarm(proc);\n logger.debug('job runner initialized');\n process.send({ case: 'initializeResponse' });\n\n let job: JobTask | undefined = undefined;\n const closeEvent = new EventEmitter();\n\n const orphanedTimeout = setTimeout(() => {\n logger.warn('process orphaned, shutting down');\n process.exit();\n }, ORPHANED_TIMEOUT);\n\n process.on('message', (msg: IPCMessage) => {\n switch (msg.case) {\n case 'pingRequest': {\n orphanedTimeout.refresh();\n process.send!({\n case: 'pongResponse',\n value: { lastTimestamp: msg.value.timestamp, timestamp: Date.now() },\n });\n break;\n }\n case 'startJobRequest': {\n if (job) {\n throw new Error('job task already running');\n }\n\n logger = logger.child({ jobID: msg.value.runningJob.job.id });\n\n job = startJob(proc, agent.entry, msg.value.runningJob, closeEvent, logger);\n logger.debug('job started');\n break;\n }\n case 'shutdownRequest': {\n if (!job) {\n break;\n }\n closeEvent.emit('close', '');\n }\n }\n });\n }\n})();\n","// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () =>\n typeof document === 'undefined'\n ? new URL(`file:${__filename}`).href\n : (document.currentScript && document.currentScript.src) ||\n new URL('main.js', document.baseURI).href\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n"],"mappings":"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","names":["import_job","module","agent"]}
|
package/dist/ipc/job_main.d.ts
CHANGED
package/dist/ipc/job_main.js
CHANGED
|
@@ -1,121 +1,121 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const ORPHANED_TIMEOUT = 15 * 1000;
|
|
14
|
-
export const runProcess = (args) => {
|
|
15
|
-
return fork(new URL(import.meta.url), [args.agentFile]);
|
|
1
|
+
import { Room, RoomEvent } from "@livekit/rtc-node";
|
|
2
|
+
import { fork } from "node:child_process";
|
|
3
|
+
import { EventEmitter, once } from "node:events";
|
|
4
|
+
import { pathToFileURL } from "node:url";
|
|
5
|
+
import { isAgent } from "../generator.js";
|
|
6
|
+
import { JobContext } from "../job.js";
|
|
7
|
+
import { JobProcess } from "../job.js";
|
|
8
|
+
import { initializeLogger, log } from "../log.js";
|
|
9
|
+
import { defaultInitializeProcessFunc } from "../worker.js";
|
|
10
|
+
const ORPHANED_TIMEOUT = 15 * 1e3;
|
|
11
|
+
const runProcess = (args) => {
|
|
12
|
+
return fork(new URL(import.meta.url), [args.agentFile]);
|
|
16
13
|
};
|
|
17
14
|
const startJob = (proc, func, info, closeEvent, logger) => {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
15
|
+
let connect = false;
|
|
16
|
+
let shutdown = false;
|
|
17
|
+
const room = new Room();
|
|
18
|
+
room.on(RoomEvent.Disconnected, () => {
|
|
19
|
+
closeEvent.emit("close", false);
|
|
20
|
+
});
|
|
21
|
+
const onConnect = () => {
|
|
22
|
+
connect = true;
|
|
23
|
+
};
|
|
24
|
+
const onShutdown = (reason) => {
|
|
25
|
+
shutdown = true;
|
|
26
|
+
closeEvent.emit("close", true, reason);
|
|
27
|
+
};
|
|
28
|
+
const ctx = new JobContext(proc, info, room, onConnect, onShutdown);
|
|
29
|
+
const task = new Promise(async () => {
|
|
30
|
+
const unconnectedTimeout = setTimeout(() => {
|
|
31
|
+
if (!(connect || shutdown)) {
|
|
32
|
+
logger.warn(
|
|
33
|
+
"room not connect after job_entry was called after 10 seconds, ",
|
|
34
|
+
"did you forget to call ctx.connect()?"
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
}, 1e4);
|
|
38
|
+
func(ctx).finally(() => clearTimeout(unconnectedTimeout));
|
|
39
|
+
await once(closeEvent, "close").then((close) => {
|
|
40
|
+
logger.debug("shutting down");
|
|
41
|
+
process.send({ case: "exiting", value: { reason: close[1] } });
|
|
23
42
|
});
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
logger.warn('room not connect after job_entry was called after 10 seconds, ', 'did you forget to call ctx.connect()?');
|
|
36
|
-
}
|
|
37
|
-
}, 10000);
|
|
38
|
-
func(ctx).finally(() => clearTimeout(unconnectedTimeout));
|
|
39
|
-
await once(closeEvent, 'close').then((close) => {
|
|
40
|
-
logger.debug('shutting down');
|
|
41
|
-
process.send({ case: 'exiting', value: { reason: close[1] } });
|
|
42
|
-
});
|
|
43
|
-
await room.disconnect();
|
|
44
|
-
logger.debug('disconnected from room');
|
|
45
|
-
const shutdownTasks = [];
|
|
46
|
-
for (const callback of ctx.shutdownCallbacks) {
|
|
47
|
-
shutdownTasks.push(callback());
|
|
48
|
-
}
|
|
49
|
-
await Promise.all(shutdownTasks).catch(() => logger.error('error while shutting down the job'));
|
|
50
|
-
process.send({ case: 'done' });
|
|
51
|
-
process.exit();
|
|
52
|
-
});
|
|
53
|
-
return { ctx, task };
|
|
43
|
+
await room.disconnect();
|
|
44
|
+
logger.debug("disconnected from room");
|
|
45
|
+
const shutdownTasks = [];
|
|
46
|
+
for (const callback of ctx.shutdownCallbacks) {
|
|
47
|
+
shutdownTasks.push(callback());
|
|
48
|
+
}
|
|
49
|
+
await Promise.all(shutdownTasks).catch(() => logger.error("error while shutting down the job"));
|
|
50
|
+
process.send({ case: "done" });
|
|
51
|
+
process.exit();
|
|
52
|
+
});
|
|
53
|
+
return { ctx, task };
|
|
54
54
|
};
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
// [0] `node'
|
|
58
|
-
// [1] import.meta.filename
|
|
59
|
-
// [2] import.meta.filename of function containing entry file
|
|
55
|
+
(async () => {
|
|
56
|
+
if (process.send) {
|
|
60
57
|
const moduleFile = process.argv[2];
|
|
61
|
-
const agent = await import(pathToFileURL(moduleFile).
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
58
|
+
const agent = await import(pathToFileURL(moduleFile).pathname).then((module) => {
|
|
59
|
+
const agent2 = module.default;
|
|
60
|
+
if (agent2 === void 0 || !isAgent(agent2)) {
|
|
61
|
+
throw new Error(`Unable to load agent: Missing or invalid default export in ${moduleFile}`);
|
|
62
|
+
}
|
|
63
|
+
return agent2;
|
|
67
64
|
});
|
|
68
65
|
if (!agent.prewarm) {
|
|
69
|
-
|
|
66
|
+
agent.prewarm = defaultInitializeProcessFunc;
|
|
70
67
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
process
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
initializeLogger(msg.value.loggerOptions);
|
|
68
|
+
process.on("SIGINT", () => {
|
|
69
|
+
});
|
|
70
|
+
await once(process, "message").then(([msg]) => {
|
|
71
|
+
msg = msg;
|
|
72
|
+
if (msg.case !== "initializeRequest") {
|
|
73
|
+
throw new Error("first message must be InitializeRequest");
|
|
74
|
+
}
|
|
75
|
+
initializeLogger(msg.value.loggerOptions);
|
|
80
76
|
});
|
|
81
77
|
const proc = new JobProcess();
|
|
82
78
|
let logger = log().child({ pid: proc.pid });
|
|
83
|
-
logger.debug(
|
|
79
|
+
logger.debug("initializing job runner");
|
|
84
80
|
agent.prewarm(proc);
|
|
85
|
-
logger.debug(
|
|
86
|
-
process.send({ case:
|
|
87
|
-
let job =
|
|
81
|
+
logger.debug("job runner initialized");
|
|
82
|
+
process.send({ case: "initializeResponse" });
|
|
83
|
+
let job = void 0;
|
|
88
84
|
const closeEvent = new EventEmitter();
|
|
89
85
|
const orphanedTimeout = setTimeout(() => {
|
|
90
|
-
|
|
91
|
-
|
|
86
|
+
logger.warn("process orphaned, shutting down");
|
|
87
|
+
process.exit();
|
|
92
88
|
}, ORPHANED_TIMEOUT);
|
|
93
|
-
process.on(
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
}
|
|
112
|
-
case 'shutdownRequest': {
|
|
113
|
-
if (!job) {
|
|
114
|
-
break;
|
|
115
|
-
}
|
|
116
|
-
closeEvent.emit('close', '');
|
|
117
|
-
}
|
|
89
|
+
process.on("message", (msg) => {
|
|
90
|
+
switch (msg.case) {
|
|
91
|
+
case "pingRequest": {
|
|
92
|
+
orphanedTimeout.refresh();
|
|
93
|
+
process.send({
|
|
94
|
+
case: "pongResponse",
|
|
95
|
+
value: { lastTimestamp: msg.value.timestamp, timestamp: Date.now() }
|
|
96
|
+
});
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
case "startJobRequest": {
|
|
100
|
+
if (job) {
|
|
101
|
+
throw new Error("job task already running");
|
|
102
|
+
}
|
|
103
|
+
logger = logger.child({ jobID: msg.value.runningJob.job.id });
|
|
104
|
+
job = startJob(proc, agent.entry, msg.value.runningJob, closeEvent, logger);
|
|
105
|
+
logger.debug("job started");
|
|
106
|
+
break;
|
|
118
107
|
}
|
|
108
|
+
case "shutdownRequest": {
|
|
109
|
+
if (!job) {
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
closeEvent.emit("close", "");
|
|
113
|
+
}
|
|
114
|
+
}
|
|
119
115
|
});
|
|
120
|
-
}
|
|
116
|
+
}
|
|
117
|
+
})();
|
|
118
|
+
export {
|
|
119
|
+
runProcess
|
|
120
|
+
};
|
|
121
121
|
//# sourceMappingURL=job_main.js.map
|
package/dist/ipc/job_main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/ipc/job_main.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport { Room, RoomEvent } from '@livekit/rtc-node';\nimport type { ChildProcess } from 'node:child_process';\nimport { fork } from 'node:child_process';\nimport { EventEmitter, once } from 'node:events';\nimport { pathToFileURL } from 'node:url';\nimport type { Logger } from 'pino';\nimport { type Agent, isAgent } from '../generator.js';\nimport type { RunningJobInfo } from '../job.js';\nimport { JobContext } from '../job.js';\nimport { JobProcess } from '../job.js';\nimport { initializeLogger, log } from '../log.js';\nimport { defaultInitializeProcessFunc } from '../worker.js';\nimport type { IPCMessage } from './message.js';\n\nconst ORPHANED_TIMEOUT = 15 * 1000;\n\ntype StartArgs = {\n agentFile: string;\n // userArguments: unknown;\n};\n\ntype JobTask = {\n ctx: JobContext;\n task: Promise<void>;\n};\n\nexport const runProcess = (args: StartArgs): ChildProcess => {\n return fork(new URL(import.meta.url), [args.agentFile]);\n};\n\nconst startJob = (\n proc: JobProcess,\n func: (ctx: JobContext) => Promise<void>,\n info: RunningJobInfo,\n closeEvent: EventEmitter,\n logger: Logger,\n): JobTask => {\n let connect = false;\n let shutdown = false;\n\n const room = new Room();\n room.on(RoomEvent.Disconnected, () => {\n closeEvent.emit('close', false);\n });\n\n const onConnect = () => {\n connect = true;\n };\n const onShutdown = (reason: string) => {\n shutdown = true;\n closeEvent.emit('close', true, reason);\n };\n\n const ctx = new JobContext(proc, info, room, onConnect, onShutdown);\n\n const task = new Promise<void>(async () => {\n const unconnectedTimeout = setTimeout(() => {\n if (!(connect || shutdown)) {\n logger.warn(\n 'room not connect after job_entry was called after 10 seconds, ',\n 'did you forget to call ctx.connect()?',\n );\n }\n }, 10000);\n func(ctx).finally(() => clearTimeout(unconnectedTimeout));\n\n await once(closeEvent, 'close').then((close) => {\n logger.debug('shutting down');\n process.send!({ case: 'exiting', value: { reason: close[1] } });\n });\n\n await room.disconnect();\n logger.debug('disconnected from room');\n\n const shutdownTasks = [];\n for (const callback of ctx.shutdownCallbacks) {\n shutdownTasks.push(callback());\n }\n await Promise.all(shutdownTasks).catch(() => logger.error('error while shutting down the job'));\n\n process.send!({ case: 'done' });\n process.exit();\n });\n\n return { ctx, task };\n};\n\n(async () => {\n if (process.send) {\n // process.argv:\n // [0] `node'\n // [1] import.meta.filename\n // [2] import.meta.filename of function containing entry file\n const moduleFile = process.argv[2];\n const agent: Agent = await import(pathToFileURL(moduleFile!).pathname).then((module) => {\n const agent = module.default;\n if (agent === undefined || !isAgent(agent)) {\n throw new Error(`Unable to load agent: Missing or invalid default export in ${moduleFile}`);\n }\n return agent;\n });\n if (!agent.prewarm) {\n agent.prewarm = defaultInitializeProcessFunc;\n }\n\n // don't do anything on C-c\n // this is handled in cli, triggering a termination of all child processes at once.\n process.on('SIGINT', () => {});\n\n await once(process, 'message').then(([msg]: IPCMessage[]) => {\n msg = msg!;\n if (msg.case !== 'initializeRequest') {\n throw new Error('first message must be InitializeRequest');\n }\n initializeLogger(msg.value.loggerOptions);\n });\n const proc = new JobProcess();\n let logger = log().child({ pid: proc.pid });\n\n logger.debug('initializing job runner');\n agent.prewarm(proc);\n logger.debug('job runner initialized');\n process.send({ case: 'initializeResponse' });\n\n let job: JobTask | undefined = undefined;\n const closeEvent = new EventEmitter();\n\n const orphanedTimeout = setTimeout(() => {\n logger.warn('process orphaned, shutting down');\n process.exit();\n }, ORPHANED_TIMEOUT);\n\n process.on('message', (msg: IPCMessage) => {\n switch (msg.case) {\n case 'pingRequest': {\n orphanedTimeout.refresh();\n process.send!({\n case: 'pongResponse',\n value: { lastTimestamp: msg.value.timestamp, timestamp: Date.now() },\n });\n break;\n }\n case 'startJobRequest': {\n if (job) {\n throw new Error('job task already running');\n }\n\n logger = logger.child({ jobID: msg.value.runningJob.job.id });\n\n job = startJob(proc, agent.entry, msg.value.runningJob, closeEvent, logger);\n logger.debug('job started');\n break;\n }\n case 'shutdownRequest': {\n if (!job) {\n break;\n }\n closeEvent.emit('close', '');\n }\n }\n });\n }\n})();\n"],"mappings":"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","names":["agent"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var message_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(message_exports);
|
|
17
|
+
//# sourceMappingURL=message.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ipc/message.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type { RunningJobInfo } from '../job.js';\nimport type { LoggerOptions } from '../log.js';\n\nexport type IPCMessage =\n | {\n case: 'initializeRequest';\n value: { loggerOptions: LoggerOptions };\n }\n | {\n case: 'initializeResponse';\n value: undefined;\n }\n | {\n case: 'pingRequest';\n value: { timestamp: number };\n }\n | {\n case: 'pongResponse';\n value: { lastTimestamp: number; timestamp: number };\n }\n | {\n case: 'startJobRequest';\n value: { runningJob: RunningJobInfo };\n }\n | {\n case: 'shutdownRequest';\n value: { reason?: string };\n }\n | {\n case: 'exiting';\n value: { reason?: string };\n }\n | {\n case: 'done';\n value: undefined;\n };\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
|
package/dist/ipc/message.js
CHANGED
package/dist/ipc/message.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|