@livekit/agents 0.1.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 +4 -0
- package/api-extractor.json +20 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +58 -0
- package/dist/cli.js.map +1 -0
- package/dist/generator.d.ts +12 -0
- package/dist/generator.d.ts.map +1 -0
- package/dist/generator.js +8 -0
- package/dist/generator.js.map +1 -0
- package/dist/http_server.d.ts +11 -0
- package/dist/http_server.d.ts.map +1 -0
- package/dist/http_server.js +45 -0
- package/dist/http_server.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/ipc/job_main.d.ts +5 -0
- package/dist/ipc/job_main.d.ts.map +1 -0
- package/dist/ipc/job_main.js +77 -0
- package/dist/ipc/job_main.js.map +1 -0
- package/dist/ipc/job_process.d.ts +22 -0
- package/dist/ipc/job_process.d.ts.map +1 -0
- package/dist/ipc/job_process.js +73 -0
- package/dist/ipc/job_process.js.map +1 -0
- package/dist/ipc/protocol.d.ts +40 -0
- package/dist/ipc/protocol.d.ts.map +1 -0
- package/dist/ipc/protocol.js +14 -0
- package/dist/ipc/protocol.js.map +1 -0
- package/dist/job_context.d.ts +16 -0
- package/dist/job_context.d.ts.map +1 -0
- package/dist/job_context.js +31 -0
- package/dist/job_context.js.map +1 -0
- package/dist/job_request.d.ts +42 -0
- package/dist/job_request.d.ts.map +1 -0
- package/dist/job_request.js +79 -0
- package/dist/job_request.js.map +1 -0
- package/dist/log.d.ts +2 -0
- package/dist/log.d.ts.map +1 -0
- package/dist/log.js +13 -0
- package/dist/log.js.map +1 -0
- package/dist/plugin.d.ts +10 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +22 -0
- package/dist/plugin.js.map +1 -0
- package/dist/stt/index.d.ts +3 -0
- package/dist/stt/index.d.ts.map +1 -0
- package/dist/stt/index.js +6 -0
- package/dist/stt/index.js.map +1 -0
- package/dist/stt/stream_adapter.d.ts +28 -0
- package/dist/stt/stream_adapter.d.ts.map +1 -0
- package/dist/stt/stream_adapter.js +82 -0
- package/dist/stt/stream_adapter.js.map +1 -0
- package/dist/stt/stt.d.ts +34 -0
- package/dist/stt/stt.d.ts.map +1 -0
- package/dist/stt/stt.js +30 -0
- package/dist/stt/stt.js.map +1 -0
- package/dist/tokenize.d.ts +15 -0
- package/dist/tokenize.d.ts.map +1 -0
- package/dist/tokenize.js +12 -0
- package/dist/tokenize.js.map +1 -0
- package/dist/tts/index.d.ts +4 -0
- package/dist/tts/index.d.ts.map +1 -0
- package/dist/tts/index.js +7 -0
- package/dist/tts/index.js.map +1 -0
- package/dist/tts/stream_adapter.d.ts +26 -0
- package/dist/tts/stream_adapter.d.ts.map +1 -0
- package/dist/tts/stream_adapter.js +77 -0
- package/dist/tts/stream_adapter.js.map +1 -0
- package/dist/tts/tts.d.ts +37 -0
- package/dist/tts/tts.d.ts.map +1 -0
- package/dist/tts/tts.js +48 -0
- package/dist/tts/tts.js.map +1 -0
- package/dist/utils.d.ts +4 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +29 -0
- package/dist/utils.js.map +1 -0
- package/dist/vad.d.ts +28 -0
- package/dist/vad.d.ts.map +1 -0
- package/dist/vad.js +14 -0
- package/dist/vad.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +5 -0
- package/dist/version.js.map +1 -0
- package/dist/worker.d.ts +84 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +296 -0
- package/dist/worker.js.map +1 -0
- package/package.json +31 -0
- package/src/cli.ts +79 -0
- package/src/generator.ts +18 -0
- package/src/http_server.ts +47 -0
- package/src/index.ts +18 -0
- package/src/ipc/job_main.ts +83 -0
- package/src/ipc/job_process.ts +96 -0
- package/src/ipc/protocol.ts +51 -0
- package/src/job_context.ts +49 -0
- package/src/job_request.ts +118 -0
- package/src/log.ts +13 -0
- package/src/plugin.ts +28 -0
- package/src/stt/index.ts +6 -0
- package/src/stt/stream_adapter.ts +104 -0
- package/src/stt/stt.ts +58 -0
- package/src/tokenize.ts +22 -0
- package/src/tts/index.ts +23 -0
- package/src/tts/stream_adapter.ts +92 -0
- package/src/tts/tts.ts +78 -0
- package/src/utils.ts +37 -0
- package/src/vad.ts +42 -0
- package/src/version.ts +5 -0
- package/src/worker.ts +384 -0
- package/tsconfig.json +10 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config file for API Extractor. For more info, please visit: https://api-extractor.com
|
|
3
|
+
*/
|
|
4
|
+
{
|
|
5
|
+
"$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Optionally specifies another JSON config file that this file extends from. This provides a way for
|
|
9
|
+
* standard settings to be shared across multiple projects.
|
|
10
|
+
*
|
|
11
|
+
* If the path starts with "./" or "../", the path is resolved relative to the folder of the file that contains
|
|
12
|
+
* the "extends" field. Otherwise, the first path segment is interpreted as an NPM package name, and will be
|
|
13
|
+
* resolved using NodeJS require().
|
|
14
|
+
*
|
|
15
|
+
* SUPPORTED TOKENS: none
|
|
16
|
+
* DEFAULT VALUE: ""
|
|
17
|
+
*/
|
|
18
|
+
"extends": "../api-extractor-shared.json",
|
|
19
|
+
"mainEntryPointFilePath": "./dist/index.d.ts"
|
|
20
|
+
}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAOA,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AA4BzD,eAAO,MAAM,MAAM,SAAU,aAAa,SA2CzC,CAAC"}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// SPDX-FileCopyrightText: 2024 LiveKit, Inc.
|
|
2
|
+
//
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
import { Command, Option } from 'commander';
|
|
5
|
+
import { log } from './log.js';
|
|
6
|
+
import { version } from './version.js';
|
|
7
|
+
import { Worker } from './worker.js';
|
|
8
|
+
const runWorker = async (args) => {
|
|
9
|
+
log.level = args.logLevel;
|
|
10
|
+
const worker = new Worker(args.opts);
|
|
11
|
+
process.on('SIGINT', async () => {
|
|
12
|
+
await worker.close();
|
|
13
|
+
log.info('worker closed');
|
|
14
|
+
process.exit(130); // SIGINT exit code
|
|
15
|
+
});
|
|
16
|
+
try {
|
|
17
|
+
await worker.run();
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
log.fatal('worker failed');
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
export const runApp = (opts) => {
|
|
25
|
+
const program = new Command()
|
|
26
|
+
.name('agents')
|
|
27
|
+
.description('LiveKit Agents CLI')
|
|
28
|
+
.version(version)
|
|
29
|
+
.addOption(new Option('--log-level <level>', 'Set the logging level')
|
|
30
|
+
.choices(['trace', 'debug', 'info', 'warn', 'error', 'fatal'])
|
|
31
|
+
.default('trace'))
|
|
32
|
+
.addOption(new Option('--url <string>', 'LiveKit server or Cloud project websocket URL')
|
|
33
|
+
.makeOptionMandatory(true)
|
|
34
|
+
.env('LIVEKIT_URL'))
|
|
35
|
+
.addOption(new Option('--api-key <string>', "LiveKit server or Cloud project's API key")
|
|
36
|
+
.makeOptionMandatory(true)
|
|
37
|
+
.env('LIVEKIT_API_KEY'))
|
|
38
|
+
.addOption(new Option('--api-secret <string>', "LiveKit server or Cloud project's API secret")
|
|
39
|
+
.makeOptionMandatory(true)
|
|
40
|
+
.env('LIVEKIT_API_SECRET'));
|
|
41
|
+
program
|
|
42
|
+
.command('start')
|
|
43
|
+
.description('Start the worker in production mode')
|
|
44
|
+
.action(() => {
|
|
45
|
+
const options = program.optsWithGlobals();
|
|
46
|
+
opts.wsURL = options.url || opts.wsURL;
|
|
47
|
+
opts.apiKey = options.apiKey || opts.apiKey;
|
|
48
|
+
opts.apiSecret = options.apiSecret || opts.apiSecret;
|
|
49
|
+
runWorker({
|
|
50
|
+
opts,
|
|
51
|
+
production: true,
|
|
52
|
+
watch: false,
|
|
53
|
+
logLevel: options.logLevel,
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
program.parse();
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,EAAE;AACF,sCAAsC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAsB,MAAM,aAAa,CAAC;AAUzD,MAAM,SAAS,GAAG,KAAK,EAAE,IAAa,EAAE,EAAE;IACxC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC1B,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAErC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB;IACxC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAmB,EAAE,EAAE;IAC5C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SAC1B,IAAI,CAAC,QAAQ,CAAC;SACd,WAAW,CAAC,oBAAoB,CAAC;SACjC,OAAO,CAAC,OAAO,CAAC;SAChB,SAAS,CACR,IAAI,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;SACvD,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC7D,OAAO,CAAC,OAAO,CAAC,CACpB;SACA,SAAS,CACR,IAAI,MAAM,CAAC,gBAAgB,EAAE,+CAA+C,CAAC;SAC1E,mBAAmB,CAAC,IAAI,CAAC;SACzB,GAAG,CAAC,aAAa,CAAC,CACtB;SACA,SAAS,CACR,IAAI,MAAM,CAAC,oBAAoB,EAAE,2CAA2C,CAAC;SAC1E,mBAAmB,CAAC,IAAI,CAAC;SACzB,GAAG,CAAC,iBAAiB,CAAC,CAC1B;SACA,SAAS,CACR,IAAI,MAAM,CAAC,uBAAuB,EAAE,8CAA8C,CAAC;SAChF,mBAAmB,CAAC,IAAI,CAAC;SACzB,GAAG,CAAC,oBAAoB,CAAC,CAC7B,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,qCAAqC,CAAC;SAClD,MAAM,CAAC,GAAG,EAAE;QACX,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;QACrD,SAAS,CAAC;YACR,IAAI;YACJ,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { JobContext } from './job_context.js';
|
|
2
|
+
type entryFunction = (job: JobContext) => Promise<void>;
|
|
3
|
+
export interface Agent {
|
|
4
|
+
entry: entryFunction;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Helper to define an agent according to the required interface.
|
|
8
|
+
* @example `export default defineAgent(myAgent);`
|
|
9
|
+
*/
|
|
10
|
+
export declare function defineAgent(entry: entryFunction): Agent;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,KAAK,aAAa,GAAG,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAExD,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,aAAa,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,KAAK,CAEvD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAoB;IAC9C,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { type Server } from 'http';
|
|
3
|
+
export declare class HTTPServer {
|
|
4
|
+
host: string;
|
|
5
|
+
port: number;
|
|
6
|
+
app: Server;
|
|
7
|
+
constructor(host: string, port: number);
|
|
8
|
+
run(): Promise<void>;
|
|
9
|
+
close(): Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=http_server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http_server.d.ts","sourceRoot":"","sources":["../src/http_server.ts"],"names":[],"mappings":";AAGA,OAAO,EAAwB,KAAK,MAAM,EAAqC,MAAM,MAAM,CAAC;AAO5F,qBAAa,UAAU;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;gBAEA,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAchC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IASpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ7B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// SPDX-FileCopyrightText: 2024 LiveKit, Inc.
|
|
2
|
+
//
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
import { createServer } from 'http';
|
|
5
|
+
const healthCheck = async (res) => {
|
|
6
|
+
res.writeHead(200);
|
|
7
|
+
res.end('OK');
|
|
8
|
+
};
|
|
9
|
+
export class HTTPServer {
|
|
10
|
+
host;
|
|
11
|
+
port;
|
|
12
|
+
app;
|
|
13
|
+
constructor(host, port) {
|
|
14
|
+
this.host = host;
|
|
15
|
+
this.port = port;
|
|
16
|
+
this.app = createServer((req, res) => {
|
|
17
|
+
if (req.url === '/') {
|
|
18
|
+
healthCheck(res);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
res.writeHead(404);
|
|
22
|
+
res.end('not found');
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
async run() {
|
|
27
|
+
return new Promise((resolve, reject) => {
|
|
28
|
+
this.app.listen(this.port, this.host, (err) => {
|
|
29
|
+
if (err)
|
|
30
|
+
reject(err);
|
|
31
|
+
resolve();
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
async close() {
|
|
36
|
+
return new Promise((resolve, reject) => {
|
|
37
|
+
this.app.close((err) => {
|
|
38
|
+
if (err)
|
|
39
|
+
reject(err);
|
|
40
|
+
resolve();
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=http_server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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,MAAM,CAAC;AAE5F,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;IAEZ,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,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
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as cli from './cli.js';
|
|
2
|
+
import * as stt from './stt/index.js';
|
|
3
|
+
import * as tts from './tts/index.js';
|
|
4
|
+
export * from './vad.js';
|
|
5
|
+
export * from './plugin.js';
|
|
6
|
+
export * from './version.js';
|
|
7
|
+
export * from './job_context.js';
|
|
8
|
+
export * from './job_request.js';
|
|
9
|
+
export * from './worker.js';
|
|
10
|
+
export * from './utils.js';
|
|
11
|
+
export * from './log.js';
|
|
12
|
+
export * from './generator.js';
|
|
13
|
+
export { cli, stt, tts };
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,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,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// SPDX-FileCopyrightText: 2024 LiveKit, Inc.
|
|
2
|
+
//
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
import * as cli from './cli.js';
|
|
5
|
+
import * as stt from './stt/index.js';
|
|
6
|
+
import * as tts from './tts/index.js';
|
|
7
|
+
export * from './vad.js';
|
|
8
|
+
export * from './plugin.js';
|
|
9
|
+
export * from './version.js';
|
|
10
|
+
export * from './job_context.js';
|
|
11
|
+
export * from './job_request.js';
|
|
12
|
+
export * from './worker.js';
|
|
13
|
+
export * from './utils.js';
|
|
14
|
+
export * from './log.js';
|
|
15
|
+
export * from './generator.js';
|
|
16
|
+
export { cli, stt, tts };
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,EAAE;AACF,sCAAsC;AACtC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,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,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job_main.d.ts","sourceRoot":"","sources":["../../src/ipc/job_main.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,KAAK,YAAY,EAAQ,MAAM,eAAe,CAAC;AAIxD,OAAO,EAAe,KAAK,WAAW,EAA2B,MAAM,eAAe,CAAC;AAEvF,eAAO,MAAM,MAAM,SAAU,WAAW,KAAG,YAE1C,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// SPDX-FileCopyrightText: 2024 LiveKit, Inc.
|
|
2
|
+
//
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
import { ServerMessage } from '@livekit/protocol';
|
|
5
|
+
import { Room } from '@livekit/rtc-node';
|
|
6
|
+
import { fork } from 'child_process';
|
|
7
|
+
import { EventEmitter, once } from 'events';
|
|
8
|
+
import { JobContext } from '../job_context.js';
|
|
9
|
+
import { log } from '../log.js';
|
|
10
|
+
import { IPC_MESSAGE } from './protocol.js';
|
|
11
|
+
export const runJob = (args) => {
|
|
12
|
+
return fork(import.meta.filename, [args.raw, args.entry, args.fallbackURL]);
|
|
13
|
+
};
|
|
14
|
+
if (process.send) {
|
|
15
|
+
// process.argv:
|
|
16
|
+
// [0] `node'
|
|
17
|
+
// [1] import.meta.filename
|
|
18
|
+
// [2] proto.JobAssignment, serialized to JSON string
|
|
19
|
+
// [3] import.meta.filename of function containing entry file
|
|
20
|
+
// [4] fallback URL in case JobAssignment.url is empty
|
|
21
|
+
const msg = new ServerMessage();
|
|
22
|
+
msg.fromJsonString(process.argv[2]);
|
|
23
|
+
const args = msg.message.value;
|
|
24
|
+
const room = new Room();
|
|
25
|
+
const closeEvent = new EventEmitter();
|
|
26
|
+
let shuttingDown = false;
|
|
27
|
+
let closed = false;
|
|
28
|
+
process.on('message', (msg) => {
|
|
29
|
+
if (msg.type === IPC_MESSAGE.ShutdownRequest) {
|
|
30
|
+
shuttingDown = true;
|
|
31
|
+
closed = true;
|
|
32
|
+
closeEvent.emit('close');
|
|
33
|
+
}
|
|
34
|
+
else if (msg.type === IPC_MESSAGE.Ping) {
|
|
35
|
+
process.send({
|
|
36
|
+
type: IPC_MESSAGE.Pong,
|
|
37
|
+
lastTimestamp: msg.timestamp,
|
|
38
|
+
timestamp: Date.now(),
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
// don't do anything on C-c
|
|
43
|
+
process.on('SIGINT', () => { });
|
|
44
|
+
const conn = room.connect(args.url || process.argv[4], args.token);
|
|
45
|
+
const start = () => {
|
|
46
|
+
if (room.isConnected && !closed) {
|
|
47
|
+
process.send({ type: IPC_MESSAGE.StartJobResponse });
|
|
48
|
+
// here we import the file containing the exported entry function, and call it.
|
|
49
|
+
// the file must export default an Agent, usually using defineAgent().
|
|
50
|
+
import(process.argv[3]).then((agent) => {
|
|
51
|
+
agent.default.entry(new JobContext(closeEvent, args.job, room));
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
new Promise(() => {
|
|
56
|
+
conn
|
|
57
|
+
.then(() => {
|
|
58
|
+
if (!closed)
|
|
59
|
+
start();
|
|
60
|
+
})
|
|
61
|
+
.catch((err) => {
|
|
62
|
+
if (!closed)
|
|
63
|
+
process.send({ type: IPC_MESSAGE.StartJobResponse, err });
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
await once(closeEvent, 'close');
|
|
67
|
+
log.debug('disconnecting from room');
|
|
68
|
+
await room.disconnect();
|
|
69
|
+
if (shuttingDown) {
|
|
70
|
+
process.send({ type: IPC_MESSAGE.ShutdownResponse });
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
process.send({ type: IPC_MESSAGE.UserExit });
|
|
74
|
+
}
|
|
75
|
+
process.exit();
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=job_main.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job_main.js","sourceRoot":"","sources":["../../src/ipc/job_main.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
+
import type { Job } from '@livekit/protocol';
|
|
4
|
+
import type { ChildProcess } from 'child_process';
|
|
5
|
+
import type { Logger } from 'pino';
|
|
6
|
+
import type { AcceptData } from '../job_request.js';
|
|
7
|
+
import { type JobMainArgs } from './protocol.js';
|
|
8
|
+
export declare class JobProcess {
|
|
9
|
+
#private;
|
|
10
|
+
args: JobMainArgs;
|
|
11
|
+
logger: Logger;
|
|
12
|
+
process?: ChildProcess;
|
|
13
|
+
startTimeout?: ReturnType<typeof setTimeout>;
|
|
14
|
+
pongTimeout?: ReturnType<typeof setTimeout>;
|
|
15
|
+
pingInterval?: ReturnType<typeof setInterval>;
|
|
16
|
+
constructor(job: Job, acceptData: AcceptData, raw: string, fallbackURL: string);
|
|
17
|
+
get job(): Job;
|
|
18
|
+
close(): Promise<void>;
|
|
19
|
+
clear(): Promise<void>;
|
|
20
|
+
run(): Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=job_process.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job_process.d.ts","sourceRoot":"","sources":["../../src/ipc/job_process.ts"],"names":[],"mappings":";;AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAEL,KAAK,WAAW,EAIjB,MAAM,eAAe,CAAC;AAOvB,qBAAa,UAAU;;IAErB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAC7C,WAAW,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAC5C,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;gBAElC,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAM9E,IAAI,GAAG,IAAI,GAAG,CAEb;IAEK,KAAK;IAQL,KAAK;IAML,GAAG;CAwCV"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { once } from 'events';
|
|
2
|
+
import { log } from '../log.js';
|
|
3
|
+
import { IPC_MESSAGE, } from './protocol.js';
|
|
4
|
+
const START_TIMEOUT = 90 * 1000;
|
|
5
|
+
const PING_INTERVAL = 5 * 1000;
|
|
6
|
+
const PING_TIMEOUT = 90 * 1000;
|
|
7
|
+
const HIGH_PING_THRESHOLD = 10;
|
|
8
|
+
export class JobProcess {
|
|
9
|
+
#job;
|
|
10
|
+
args;
|
|
11
|
+
logger;
|
|
12
|
+
process;
|
|
13
|
+
startTimeout;
|
|
14
|
+
pongTimeout;
|
|
15
|
+
pingInterval;
|
|
16
|
+
constructor(job, acceptData, raw, fallbackURL) {
|
|
17
|
+
this.#job = job;
|
|
18
|
+
this.args = { entry: acceptData.entry, raw, fallbackURL };
|
|
19
|
+
this.logger = log.child({ job_id: this.#job.id });
|
|
20
|
+
}
|
|
21
|
+
get job() {
|
|
22
|
+
return this.#job;
|
|
23
|
+
}
|
|
24
|
+
async close() {
|
|
25
|
+
this.logger.debug('closing job process');
|
|
26
|
+
await this.clear();
|
|
27
|
+
this.process.send({ type: IPC_MESSAGE.ShutdownRequest });
|
|
28
|
+
await once(this.process, 'disconnect');
|
|
29
|
+
this.logger.info('job process closed');
|
|
30
|
+
}
|
|
31
|
+
async clear() {
|
|
32
|
+
clearTimeout(this.startTimeout);
|
|
33
|
+
clearTimeout(this.pongTimeout);
|
|
34
|
+
clearInterval(this.pingInterval);
|
|
35
|
+
}
|
|
36
|
+
async run() {
|
|
37
|
+
let resp = undefined;
|
|
38
|
+
this.startTimeout = setTimeout(() => {
|
|
39
|
+
if (resp === undefined) {
|
|
40
|
+
this.logger.error('process start timed out, killing job');
|
|
41
|
+
this.process?.kill();
|
|
42
|
+
this.clear();
|
|
43
|
+
}
|
|
44
|
+
}, START_TIMEOUT);
|
|
45
|
+
this.pingInterval = setInterval(() => {
|
|
46
|
+
this.process?.send({ type: IPC_MESSAGE.Ping, timestamp: Date.now() });
|
|
47
|
+
}, PING_INTERVAL);
|
|
48
|
+
this.pongTimeout = setTimeout(() => {
|
|
49
|
+
this.logger.error('job ping timed out, killing job');
|
|
50
|
+
this.process?.kill();
|
|
51
|
+
this.clear();
|
|
52
|
+
}, PING_TIMEOUT);
|
|
53
|
+
this.process = await import('./job_main.js').then((main) => main.runJob(this.args));
|
|
54
|
+
this.process.on('message', (msg) => {
|
|
55
|
+
if (msg.type === IPC_MESSAGE.StartJobResponse) {
|
|
56
|
+
resp = msg;
|
|
57
|
+
}
|
|
58
|
+
else if (msg.type === IPC_MESSAGE.Pong) {
|
|
59
|
+
const delay = Date.now() - msg.timestamp;
|
|
60
|
+
if (delay > HIGH_PING_THRESHOLD) {
|
|
61
|
+
this.logger.warn(`job is unresponsive (${delay}ms delay)`);
|
|
62
|
+
}
|
|
63
|
+
this.pongTimeout?.refresh();
|
|
64
|
+
}
|
|
65
|
+
else if (msg.type === IPC_MESSAGE.UserExit || msg.type === IPC_MESSAGE.ShutdownResponse) {
|
|
66
|
+
this.logger.debug('job exiting');
|
|
67
|
+
this.clear();
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
await once(this.process, 'disconnect');
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=job_process.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job_process.js","sourceRoot":"","sources":["../../src/ipc/job_process.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export type JobMainArgs = {
|
|
2
|
+
entry: string;
|
|
3
|
+
raw: string;
|
|
4
|
+
fallbackURL: string;
|
|
5
|
+
};
|
|
6
|
+
export interface Message {
|
|
7
|
+
type: IPC_MESSAGE;
|
|
8
|
+
}
|
|
9
|
+
export interface StartJobResponse extends Message {
|
|
10
|
+
type: IPC_MESSAGE.StartJobResponse;
|
|
11
|
+
err?: Error;
|
|
12
|
+
}
|
|
13
|
+
export interface Ping extends Message {
|
|
14
|
+
type: IPC_MESSAGE.Ping;
|
|
15
|
+
timestamp: number;
|
|
16
|
+
}
|
|
17
|
+
export interface Pong extends Message {
|
|
18
|
+
type: IPC_MESSAGE.Pong;
|
|
19
|
+
lastTimestamp: number;
|
|
20
|
+
timestamp: number;
|
|
21
|
+
}
|
|
22
|
+
export interface ShutdownRequest extends Message {
|
|
23
|
+
type: IPC_MESSAGE.ShutdownRequest;
|
|
24
|
+
}
|
|
25
|
+
export interface ShutdownResponse extends Message {
|
|
26
|
+
type: IPC_MESSAGE.ShutdownResponse;
|
|
27
|
+
}
|
|
28
|
+
export interface UserExit extends Message {
|
|
29
|
+
type: IPC_MESSAGE.UserExit;
|
|
30
|
+
}
|
|
31
|
+
export declare enum IPC_MESSAGE {
|
|
32
|
+
StartJobRequest = 0,
|
|
33
|
+
StartJobResponse = 1,
|
|
34
|
+
Ping = 2,
|
|
35
|
+
Pong = 3,
|
|
36
|
+
ShutdownRequest = 4,
|
|
37
|
+
ShutdownResponse = 5,
|
|
38
|
+
UserExit = 6
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/ipc/protocol.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,gBAAiB,SAAQ,OAAO;IAC/C,IAAI,EAAE,WAAW,CAAC,gBAAgB,CAAC;IACnC,GAAG,CAAC,EAAE,KAAK,CAAC;CACb;AAED,MAAM,WAAW,IAAK,SAAQ,OAAO;IACnC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,IAAK,SAAQ,OAAO;IACnC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAgB,SAAQ,OAAO;IAC9C,IAAI,EAAE,WAAW,CAAC,eAAe,CAAC;CACnC;AAED,MAAM,WAAW,gBAAiB,SAAQ,OAAO;IAC/C,IAAI,EAAE,WAAW,CAAC,gBAAgB,CAAC;CACpC;AAED,MAAM,WAAW,QAAS,SAAQ,OAAO;IACvC,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC;CAC5B;AAED,oBAAY,WAAW;IACrB,eAAe,IAAA;IACf,gBAAgB,IAAA;IAChB,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,eAAe,IAAA;IACf,gBAAgB,IAAA;IAChB,QAAQ,IAAA;CACT"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// SPDX-FileCopyrightText: 2024 LiveKit, Inc.
|
|
2
|
+
//
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
export var IPC_MESSAGE;
|
|
5
|
+
(function (IPC_MESSAGE) {
|
|
6
|
+
IPC_MESSAGE[IPC_MESSAGE["StartJobRequest"] = 0] = "StartJobRequest";
|
|
7
|
+
IPC_MESSAGE[IPC_MESSAGE["StartJobResponse"] = 1] = "StartJobResponse";
|
|
8
|
+
IPC_MESSAGE[IPC_MESSAGE["Ping"] = 2] = "Ping";
|
|
9
|
+
IPC_MESSAGE[IPC_MESSAGE["Pong"] = 3] = "Pong";
|
|
10
|
+
IPC_MESSAGE[IPC_MESSAGE["ShutdownRequest"] = 4] = "ShutdownRequest";
|
|
11
|
+
IPC_MESSAGE[IPC_MESSAGE["ShutdownResponse"] = 5] = "ShutdownResponse";
|
|
12
|
+
IPC_MESSAGE[IPC_MESSAGE["UserExit"] = 6] = "UserExit";
|
|
13
|
+
})(IPC_MESSAGE || (IPC_MESSAGE = {}));
|
|
14
|
+
//# sourceMappingURL=protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/ipc/protocol.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,EAAE;AACF,sCAAsC;AAwCtC,MAAM,CAAN,IAAY,WAQX;AARD,WAAY,WAAW;IACrB,mEAAe,CAAA;IACf,qEAAgB,CAAA;IAChB,6CAAI,CAAA;IACJ,6CAAI,CAAA;IACJ,mEAAe,CAAA;IACf,qEAAgB,CAAA;IAChB,qDAAQ,CAAA;AACV,CAAC,EARW,WAAW,KAAX,WAAW,QAQtB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import type { Job } from '@livekit/protocol';
|
|
3
|
+
import type { LocalParticipant, RemoteParticipant, Room } from '@livekit/rtc-node';
|
|
4
|
+
import type { EventEmitter } from 'events';
|
|
5
|
+
export declare class JobContext {
|
|
6
|
+
#private;
|
|
7
|
+
tx: EventEmitter;
|
|
8
|
+
constructor(tx: EventEmitter, job: Job, room: Room, publisher?: RemoteParticipant | undefined);
|
|
9
|
+
get id(): string;
|
|
10
|
+
get job(): Job;
|
|
11
|
+
get room(): Room;
|
|
12
|
+
get publisher(): RemoteParticipant | undefined;
|
|
13
|
+
get agent(): LocalParticipant | undefined;
|
|
14
|
+
shutdown(): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=job_context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job_context.d.ts","sourceRoot":"","sources":["../src/job_context.ts"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C,qBAAa,UAAU;;IAIrB,EAAE,EAAE,YAAY,CAAC;gBAGf,EAAE,EAAE,YAAY,EAChB,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,SAAS,GAAE,iBAAiB,GAAG,SAAqB;IAQtD,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,GAAG,IAAI,GAAG,CAEb;IAED,IAAI,IAAI,IAAI,IAAI,CAEf;IAED,IAAI,SAAS,IAAI,iBAAiB,GAAG,SAAS,CAE7C;IAED,IAAI,KAAK,IAAI,gBAAgB,GAAG,SAAS,CAExC;IAEK,QAAQ;CAGf"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export class JobContext {
|
|
2
|
+
#job;
|
|
3
|
+
#room;
|
|
4
|
+
#publisher;
|
|
5
|
+
tx;
|
|
6
|
+
constructor(tx, job, room, publisher = undefined) {
|
|
7
|
+
this.#job = job;
|
|
8
|
+
this.#room = room;
|
|
9
|
+
this.#publisher = publisher;
|
|
10
|
+
this.tx = tx;
|
|
11
|
+
}
|
|
12
|
+
get id() {
|
|
13
|
+
return this.#job.id;
|
|
14
|
+
}
|
|
15
|
+
get job() {
|
|
16
|
+
return this.#job;
|
|
17
|
+
}
|
|
18
|
+
get room() {
|
|
19
|
+
return this.#room;
|
|
20
|
+
}
|
|
21
|
+
get publisher() {
|
|
22
|
+
return this.#publisher;
|
|
23
|
+
}
|
|
24
|
+
get agent() {
|
|
25
|
+
return this.#room.localParticipant;
|
|
26
|
+
}
|
|
27
|
+
async shutdown() {
|
|
28
|
+
this.tx.emit('close');
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=job_context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job_context.js","sourceRoot":"","sources":["../src/job_context.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,UAAU;IACrB,IAAI,CAAM;IACV,KAAK,CAAO;IACZ,UAAU,CAAqB;IAC/B,EAAE,CAAe;IAEjB,YACE,EAAgB,EAChB,GAAQ,EACR,IAAU,EACV,YAA2C,SAAS;QAEpD,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACtB,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;CACF"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import type { Job, ParticipantInfo, Room } from '@livekit/protocol';
|
|
3
|
+
import { EventEmitter } from 'events';
|
|
4
|
+
declare enum AutoDisconnect {
|
|
5
|
+
ROOM_EMPTY = 0,
|
|
6
|
+
PUBLISHER_LEFT = 1,
|
|
7
|
+
NONE = 2
|
|
8
|
+
}
|
|
9
|
+
export declare enum AutoSubscribe {
|
|
10
|
+
SUBSCRIBE_ALL = 0,
|
|
11
|
+
SUBSCRIBE_NONE = 1,
|
|
12
|
+
VIDEO_ONLY = 2,
|
|
13
|
+
AUDIO_ONLY = 3
|
|
14
|
+
}
|
|
15
|
+
export type AcceptData = {
|
|
16
|
+
entry: string;
|
|
17
|
+
autoSubscribe: AutoSubscribe;
|
|
18
|
+
autoDisconnect: AutoDisconnect;
|
|
19
|
+
name: string;
|
|
20
|
+
identity: string;
|
|
21
|
+
metadata: string;
|
|
22
|
+
assign: EventEmitter;
|
|
23
|
+
};
|
|
24
|
+
export type AvailRes = {
|
|
25
|
+
avail: boolean;
|
|
26
|
+
data?: AcceptData;
|
|
27
|
+
};
|
|
28
|
+
export declare class JobRequest {
|
|
29
|
+
#private;
|
|
30
|
+
tx: EventEmitter;
|
|
31
|
+
logger: import("pino").default.Logger<never>;
|
|
32
|
+
constructor(job: Job, tx: EventEmitter);
|
|
33
|
+
get id(): string;
|
|
34
|
+
get job(): Job;
|
|
35
|
+
get room(): Room | undefined;
|
|
36
|
+
get publisher(): ParticipantInfo | undefined;
|
|
37
|
+
get answered(): boolean;
|
|
38
|
+
reject(): Promise<void>;
|
|
39
|
+
accept(entry: string, autoSubscribe?: AutoSubscribe, autoDisconnect?: AutoDisconnect, name?: string, identity?: string, metadata?: string): Promise<void>;
|
|
40
|
+
}
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=job_request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job_request.d.ts","sourceRoot":"","sources":["../src/job_request.ts"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAWtC,aAAK,cAAc;IACjB,UAAU,IAAA;IACV,cAAc,IAAA;IACd,IAAI,IAAA;CACL;AAED,oBAAY,aAAa;IACvB,aAAa,IAAA;IACb,cAAc,IAAA;IACd,UAAU,IAAA;IACV,UAAU,IAAA;CACX;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF,qBAAa,UAAU;;IAGrB,EAAE,EAAE,YAAY,CAAC;IACjB,MAAM,uCAAgC;gBAE1B,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,YAAY;IAKtC,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,GAAG,IAAI,GAAG,CAEb;IAED,IAAI,IAAI,IAAI,IAAI,GAAG,SAAS,CAE3B;IAED,IAAI,SAAS,IAAI,eAAe,GAAG,SAAS,CAE3C;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAEK,MAAM;IASN,MAAM,CACV,KAAK,EAAE,MAAM,EACb,aAAa,GAAE,aAA2C,EAC1D,cAAc,GAAE,cAA0C,EAC1D,IAAI,GAAE,MAAW,EACjB,QAAQ,GAAE,MAAW,EACrB,QAAQ,GAAE,MAAW;CA4BxB"}
|