@assemblyline-agents/livekit 5.0.10 → 6.0.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 +24 -7
- package/ai.assemblyline/connections/livekit.json +34 -0
- package/ai.assemblyline/index.cjs +9 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +4 -5
- package/dist/client.js.map +1 -1
- package/dist/connection.d.ts +3 -0
- package/dist/connection.d.ts.map +1 -0
- package/dist/connection.js +106 -0
- package/dist/connection.js.map +1 -0
- package/dist/index.d.ts +3 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -12
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +1 -20
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -2
- package/dist/types.js.map +1 -1
- package/dist/util.d.ts +0 -4
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +0 -27
- package/dist/util.js.map +1 -1
- package/package.json +6 -4
- package/plugin.json +11 -0
- package/dist/tools.d.ts +0 -6
- package/dist/tools.d.ts.map +0 -1
- package/dist/tools.js +0 -170
- package/dist/tools.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,18 +1,35 @@
|
|
|
1
1
|
# @assemblyline-agents/livekit
|
|
2
2
|
|
|
3
|
-
Official
|
|
3
|
+
Official LiveKit voice, telephony, and agent-dispatch plugin.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
## Install
|
|
5
|
+
## Add the plugin
|
|
8
6
|
|
|
9
7
|
```sh
|
|
10
|
-
|
|
8
|
+
assembly-line add livekit agent
|
|
11
9
|
```
|
|
12
10
|
|
|
13
|
-
|
|
11
|
+
Set `LIVEKIT_URL`, `LIVEKIT_API_KEY`, and `LIVEKIT_API_SECRET`. The selected
|
|
12
|
+
plugin contributes one LiveKit connection and three approval-gated tools:
|
|
13
|
+
|
|
14
|
+
- `livekit_dispatch_agent`
|
|
15
|
+
- `livekit_outbound_call`
|
|
16
|
+
- `livekit_transfer_call`
|
|
17
|
+
|
|
18
|
+
Optional defaults come from `LIVEKIT_VOICE_AGENT_NAME` and
|
|
19
|
+
`LIVEKIT_OUTBOUND_TRUNK_ID`. There is no generic `plugins.livekit.config`
|
|
20
|
+
surface in `agent.md`.
|
|
21
|
+
|
|
22
|
+
Change tool authority through typed exceptions. For example:
|
|
23
|
+
|
|
24
|
+
```yaml
|
|
25
|
+
capabilities:
|
|
26
|
+
livekit:
|
|
27
|
+
tools:
|
|
28
|
+
disable: [livekit_transfer_call]
|
|
29
|
+
```
|
|
14
30
|
|
|
15
|
-
|
|
31
|
+
The package also exports its client, token helpers, connection factory, and
|
|
32
|
+
tool factories for developers implementing another reviewed plugin.
|
|
16
33
|
|
|
17
34
|
## License
|
|
18
35
|
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kind": "livekit",
|
|
3
|
+
"role": "connection",
|
|
4
|
+
"packageName": "@assemblyline-agents/livekit",
|
|
5
|
+
"helper": "defineLiveKitConnection",
|
|
6
|
+
"protocol": "sdk",
|
|
7
|
+
"provider": "livekit",
|
|
8
|
+
"description": "LiveKit server API credentials for voice agent dispatch and SIP calls.",
|
|
9
|
+
"capabilities": [
|
|
10
|
+
"agent:dispatch",
|
|
11
|
+
"sip:outbound-call",
|
|
12
|
+
"sip:transfer"
|
|
13
|
+
],
|
|
14
|
+
"scopes": [
|
|
15
|
+
"room:admin",
|
|
16
|
+
"sip:call",
|
|
17
|
+
"sip:admin"
|
|
18
|
+
],
|
|
19
|
+
"subject": "environment",
|
|
20
|
+
"tools": {
|
|
21
|
+
"allow": ["dispatch_agent", "outbound_call", "transfer_call"]
|
|
22
|
+
},
|
|
23
|
+
"readToolPatterns": ["dispatch_agent", "outbound_call", "transfer_call"],
|
|
24
|
+
"writeToolPatterns": ["dispatch_agent", "outbound_call", "transfer_call"],
|
|
25
|
+
"requiredConfig": [
|
|
26
|
+
"LIVEKIT_URL"
|
|
27
|
+
],
|
|
28
|
+
"optionalConfig": ["LIVEKIT_OUTBOUND_TRUNK_ID", "LIVEKIT_VOICE_AGENT_NAME"],
|
|
29
|
+
"requiredCredentials": [
|
|
30
|
+
"LIVEKIT_API_KEY",
|
|
31
|
+
"LIVEKIT_API_SECRET"
|
|
32
|
+
],
|
|
33
|
+
"optionalCredentials": []
|
|
34
|
+
}
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,KAAK,EACV,0BAA0B,EAC1B,gCAAgC,EAChC,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,EAIpB,kCAAkC,EACnC,MAAM,YAAY,CAAC;AAGpB,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;gBAEb,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS;CAS5D;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,uBAAuB,GAAG,MAAM,CAmB/E;AAED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB,GAAG,aAAa,CAErF;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAoC;IACxD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;gBAEzC,OAAO,GAAE,oBAAyB;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,KAAK,EACV,0BAA0B,EAC1B,gCAAgC,EAChC,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,EAIpB,kCAAkC,EACnC,MAAM,YAAY,CAAC;AAGpB,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;gBAEb,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS;CAS5D;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,uBAAuB,GAAG,MAAM,CAmB/E;AAED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB,GAAG,aAAa,CAErF;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAoC;IACxD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;gBAEzC,OAAO,GAAE,oBAAyB;IASxC,cAAc,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,UAAU,CAAC;IAatE,cAAc,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,UAAU,CAAC;IAQtE,YAAY,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,UAAU,CAAC;IAQlE,oBAAoB,CAAC,KAAK,EAAE,gCAAgC,GAAG,OAAO,CAAC,UAAU,CAAC;IAgClF,sBAAsB,CAAC,KAAK,EAAE,kCAAkC,GAAG,OAAO,CAAC,UAAU,CAAC;IAUtF,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC;YAIjC,KAAK;CA4BpB"}
|
package/dist/client.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createHmac } from "node:crypto";
|
|
2
2
|
import { fetchWithPolicy } from "@assemblyline-agents/runtime";
|
|
3
|
-
import { compactJsonObject, isJsonObject,
|
|
3
|
+
import { compactJsonObject, isJsonObject, requiredValue, stringValue } from "./util.js";
|
|
4
4
|
export class LiveKitApiError extends Error {
|
|
5
5
|
status;
|
|
6
6
|
body;
|
|
@@ -52,10 +52,9 @@ export class LiveKitClient {
|
|
|
52
52
|
now;
|
|
53
53
|
tokenTtlSeconds;
|
|
54
54
|
constructor(options = {}) {
|
|
55
|
-
|
|
56
|
-
this.
|
|
57
|
-
this.
|
|
58
|
-
this.apiSecret = requiredValue(options.apiSecret ?? env.LIVEKIT_API_SECRET, "LIVEKIT_API_SECRET");
|
|
55
|
+
this.url = liveKitApiBaseUrl(requiredValue(options.url, "LIVEKIT_URL"));
|
|
56
|
+
this.apiKey = requiredValue(options.apiKey, "LIVEKIT_API_KEY");
|
|
57
|
+
this.apiSecret = requiredValue(options.apiSecret, "LIVEKIT_API_SECRET");
|
|
59
58
|
this.fetchImpl = options.fetch ?? fetch;
|
|
60
59
|
this.now = options.now;
|
|
61
60
|
this.tokenTtlSeconds = options.tokenTtlSeconds;
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAa/D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { LiveKitConnectionOptions } from "./types.js";
|
|
2
|
+
export declare function defineBrokeredLiveKitConnection(options?: LiveKitConnectionOptions): import("@assemblyline-agents/core").ConnectionDefinitionFactory<import("@assemblyline-agents/core").SdkApiConnectionDefinition>;
|
|
3
|
+
//# sourceMappingURL=connection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAgE,wBAAwB,EAAsC,MAAM,YAAY,CAAC;AAuC7J,wBAAgB,+BAA+B,CAAC,OAAO,GAAE,wBAA6B,mIAmDrF"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { defineSdkApiPluginConnection } from "@assemblyline-agents/core";
|
|
3
|
+
import connectionContract from "../ai.assemblyline/connections/livekit.json" with { type: "json" };
|
|
4
|
+
import { createLiveKitClient } from "./client.js";
|
|
5
|
+
import { compactJsonObject, generatedRoomName, requiredValue } from "./util.js";
|
|
6
|
+
const PLUGIN = connectionContract;
|
|
7
|
+
const OPERATIONS = [
|
|
8
|
+
{
|
|
9
|
+
name: "dispatch_agent",
|
|
10
|
+
description: "Dispatch a named LiveKit voice agent to a LiveKit room.",
|
|
11
|
+
inputSchema: {
|
|
12
|
+
type: "object", additionalProperties: false,
|
|
13
|
+
properties: { roomName: { type: "string" }, agentName: { type: "string" }, metadata: {}, restartPolicy: { type: "string" } },
|
|
14
|
+
required: ["roomName"]
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: "outbound_call",
|
|
19
|
+
description: "Start an outbound phone call through LiveKit SIP.",
|
|
20
|
+
inputSchema: {
|
|
21
|
+
type: "object", additionalProperties: false,
|
|
22
|
+
properties: {
|
|
23
|
+
phoneNumber: { type: "string" }, roomName: { type: "string" }, agentName: { type: "string" },
|
|
24
|
+
outboundTrunkId: { type: "string" }, participantIdentity: { type: "string" }, participantName: { type: "string" },
|
|
25
|
+
metadata: {}, waitUntilAnswered: { type: "boolean" }, dtmf: { type: "string" }, krispEnabled: { type: "boolean" }, displayName: { type: "string" }
|
|
26
|
+
},
|
|
27
|
+
required: ["phoneNumber"]
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: "transfer_call",
|
|
32
|
+
description: "Transfer a LiveKit SIP participant to another phone number or SIP endpoint.",
|
|
33
|
+
inputSchema: {
|
|
34
|
+
type: "object", additionalProperties: false,
|
|
35
|
+
properties: { roomName: { type: "string" }, participantIdentity: { type: "string" }, transferTo: { type: "string" }, playDialtone: { type: "boolean" } },
|
|
36
|
+
required: ["roomName", "participantIdentity", "transferTo"]
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
];
|
|
40
|
+
export function defineBrokeredLiveKitConnection(options = {}) {
|
|
41
|
+
return defineSdkApiPluginConnection(PLUGIN, {
|
|
42
|
+
...(options.description ? { description: options.description } : {}),
|
|
43
|
+
...(options.required !== undefined ? { required: options.required } : {}),
|
|
44
|
+
operations: OPERATIONS,
|
|
45
|
+
execute: async (operation, input, context) => {
|
|
46
|
+
const client = createLiveKitClient({
|
|
47
|
+
url: requiredValue(context.config.LIVEKIT_URL, "LIVEKIT_URL"),
|
|
48
|
+
apiKey: await context.credentials.get("LIVEKIT_API_KEY", { purpose: `LiveKit ${operation}`, delivery: "sdk" }),
|
|
49
|
+
apiSecret: await context.credentials.get("LIVEKIT_API_SECRET", { purpose: `LiveKit ${operation}`, delivery: "sdk" }),
|
|
50
|
+
...(context.fetch ? { fetch: context.fetch } : {})
|
|
51
|
+
});
|
|
52
|
+
if (operation === "dispatch_agent") {
|
|
53
|
+
const roomName = requiredString(input.roomName, "roomName");
|
|
54
|
+
const agentName = requiredValue(optionalString(input.agentName) ?? context.config.LIVEKIT_VOICE_AGENT_NAME, "agentName");
|
|
55
|
+
const request = { roomName, agentName };
|
|
56
|
+
if (input.metadata !== undefined)
|
|
57
|
+
request.metadata = input.metadata;
|
|
58
|
+
if (typeof input.restartPolicy === "string")
|
|
59
|
+
request.restartPolicy = input.restartPolicy;
|
|
60
|
+
return compactJsonObject({ provider: "livekit", action: operation, roomName, agentName, dispatch: await client.createDispatch(request) });
|
|
61
|
+
}
|
|
62
|
+
if (operation === "outbound_call") {
|
|
63
|
+
const phoneNumber = requiredString(input.phoneNumber, "phoneNumber");
|
|
64
|
+
const roomName = optionalString(input.roomName) ?? generatedRoomName("assembly-line-call", randomUUID());
|
|
65
|
+
const agentName = optionalString(input.agentName) ?? context.config.LIVEKIT_VOICE_AGENT_NAME;
|
|
66
|
+
const outboundTrunkId = optionalString(input.outboundTrunkId) ?? context.config.LIVEKIT_OUTBOUND_TRUNK_ID;
|
|
67
|
+
const dispatch = agentName ? await client.createDispatch({ roomName, agentName, ...(input.metadata !== undefined ? { metadata: input.metadata } : {}) }) : undefined;
|
|
68
|
+
const sip = {
|
|
69
|
+
phoneNumber,
|
|
70
|
+
roomName,
|
|
71
|
+
participantIdentity: optionalString(input.participantIdentity) ?? phoneNumber,
|
|
72
|
+
waitUntilAnswered: input.waitUntilAnswered !== false
|
|
73
|
+
};
|
|
74
|
+
if (outboundTrunkId)
|
|
75
|
+
sip.outboundTrunkId = outboundTrunkId;
|
|
76
|
+
if (typeof input.participantName === "string")
|
|
77
|
+
sip.participantName = input.participantName;
|
|
78
|
+
if (typeof input.dtmf === "string")
|
|
79
|
+
sip.dtmf = input.dtmf;
|
|
80
|
+
if (typeof input.krispEnabled === "boolean")
|
|
81
|
+
sip.krispEnabled = input.krispEnabled;
|
|
82
|
+
if (typeof input.displayName === "string")
|
|
83
|
+
sip.displayName = input.displayName;
|
|
84
|
+
return compactJsonObject({ provider: "livekit", action: operation, roomName, agentName, dispatch, participant: await client.createSipParticipant(sip) });
|
|
85
|
+
}
|
|
86
|
+
if (operation === "transfer_call") {
|
|
87
|
+
const request = {
|
|
88
|
+
roomName: requiredString(input.roomName, "roomName"),
|
|
89
|
+
participantIdentity: requiredString(input.participantIdentity, "participantIdentity"),
|
|
90
|
+
transferTo: requiredString(input.transferTo, "transferTo")
|
|
91
|
+
};
|
|
92
|
+
if (typeof input.playDialtone === "boolean")
|
|
93
|
+
request.playDialtone = input.playDialtone;
|
|
94
|
+
return compactJsonObject({ provider: "livekit", action: operation, result: await client.transferSipParticipant(request) });
|
|
95
|
+
}
|
|
96
|
+
throw new Error(`Unsupported LiveKit operation: ${operation}.`);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
function optionalString(value) {
|
|
101
|
+
return typeof value === "string" && value.trim() ? value.trim() : undefined;
|
|
102
|
+
}
|
|
103
|
+
function requiredString(value, name) {
|
|
104
|
+
return requiredValue(optionalString(value), name);
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=connection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { type ConnectionDefinition } from "@assemblyline-agents/core";
|
|
2
1
|
import type { LiveKitConnectionOptions } from "./types.js";
|
|
3
|
-
export {
|
|
2
|
+
export { type CreateLiveKitDispatchInput, type CreateLiveKitSipParticipantInput, type DeleteLiveKitDispatchInput, type ListLiveKitDispatchInput, type LiveKitAccessTokenInput, type LiveKitClientOptions, type LiveKitConnectionOptions, type LiveKitOutboundTrunkConfig, type LiveKitSipGrant, type LiveKitVideoGrant, type TransferLiveKitSipParticipantInput } from "./types.js";
|
|
4
3
|
export { LiveKitApiError, LiveKitClient, createLiveKitAccessToken, createLiveKitClient } from "./client.js";
|
|
5
|
-
export
|
|
6
|
-
export declare
|
|
4
|
+
export declare function defineLiveKitConnection(options?: LiveKitConnectionOptions): import("@assemblyline-agents/core").ConnectionDefinitionFactory<import("@assemblyline-agents/core").SdkApiConnectionDefinition>;
|
|
5
|
+
export declare const assemblyLinePlugin: import("@assemblyline-agents/core").PluginModule;
|
|
7
6
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAK3D,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,gCAAgC,EACrC,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,kCAAkC,EACxC,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE5G,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,wBAA6B,mIAE7E;AAED,eAAO,MAAM,kBAAkB,kDAA0C,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,16 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import connectionContract from "../ai.assemblyline/connections/livekit.json" with { type: "json" };
|
|
2
|
+
import { definePlugin } from "@assemblyline-agents/core";
|
|
3
|
+
import { defineBrokeredLiveKitConnection } from "./connection.js";
|
|
4
|
+
const PLUGIN = connectionContract;
|
|
3
5
|
export { LiveKitApiError, LiveKitClient, createLiveKitAccessToken, createLiveKitClient } from "./client.js";
|
|
4
|
-
export { defineLiveKitDispatchAgentTool, defineLiveKitOutboundCallTool, defineLiveKitTransferCallTool } from "./tools.js";
|
|
5
6
|
export function defineLiveKitConnection(options = {}) {
|
|
6
|
-
return
|
|
7
|
-
description: options.description ?? "LiveKit server API credentials for voice agent dispatch and SIP calls.",
|
|
8
|
-
provider: "livekit",
|
|
9
|
-
binding: adapter("livekit"),
|
|
10
|
-
scopes: ["room:admin", "sip:call", "sip:admin"],
|
|
11
|
-
capabilities: ["agent:dispatch", "sip:outbound-call", "sip:transfer"],
|
|
12
|
-
subject: "environment",
|
|
13
|
-
required: options.required ?? false
|
|
14
|
-
});
|
|
7
|
+
return defineBrokeredLiveKitConnection(options);
|
|
15
8
|
}
|
|
9
|
+
export const assemblyLinePlugin = definePlugin({ connections: [PLUGIN] });
|
|
16
10
|
//# 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,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,6CAA6C,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACnG,OAAO,EAAE,YAAY,EAAiC,MAAM,2BAA2B,CAAC;AAExF,OAAO,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AAElE,MAAM,MAAM,GAAG,kBAAyD,CAAC;AAezE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE5G,MAAM,UAAU,uBAAuB,CAAC,UAAoC,EAAE;IAC5E,OAAO,+BAA+B,CAAC,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const LIVEKIT_REQUIRED_ENV: readonly ["LIVEKIT_URL", "LIVEKIT_API_KEY", "LIVEKIT_API_SECRET"];
|
|
3
|
-
export declare const LIVEKIT_OPTIONAL_ENV: readonly ["LIVEKIT_OUTBOUND_TRUNK_ID", "LIVEKIT_VOICE_AGENT_NAME"];
|
|
4
|
-
export interface LiveKitEnvironment {
|
|
5
|
-
LIVEKIT_URL?: string;
|
|
6
|
-
LIVEKIT_API_KEY?: string;
|
|
7
|
-
LIVEKIT_API_SECRET?: string;
|
|
8
|
-
LIVEKIT_OUTBOUND_TRUNK_ID?: string;
|
|
9
|
-
LIVEKIT_VOICE_AGENT_NAME?: string;
|
|
10
|
-
}
|
|
1
|
+
import type { JsonObject, JsonValue } from "@assemblyline-agents/core";
|
|
11
2
|
export interface LiveKitVideoGrant {
|
|
12
3
|
roomCreate?: boolean;
|
|
13
4
|
roomList?: boolean;
|
|
@@ -46,7 +37,6 @@ export interface LiveKitClientOptions {
|
|
|
46
37
|
url?: string;
|
|
47
38
|
apiKey?: string;
|
|
48
39
|
apiSecret?: string;
|
|
49
|
-
env?: Record<string, string | undefined>;
|
|
50
40
|
fetch?: typeof fetch;
|
|
51
41
|
now?: () => Date | number;
|
|
52
42
|
tokenTtlSeconds?: number;
|
|
@@ -120,15 +110,6 @@ export interface TransferLiveKitSipParticipantInput {
|
|
|
120
110
|
transferTo: string;
|
|
121
111
|
playDialtone?: boolean;
|
|
122
112
|
}
|
|
123
|
-
export interface LiveKitToolOptions {
|
|
124
|
-
description?: string;
|
|
125
|
-
needsApproval?: boolean | ApprovalPolicy;
|
|
126
|
-
agentName?: string;
|
|
127
|
-
outboundTrunkId?: string;
|
|
128
|
-
roomPrefix?: string;
|
|
129
|
-
waitUntilAnswered?: boolean;
|
|
130
|
-
client?: LiveKitClientOptions;
|
|
131
|
-
}
|
|
132
113
|
export interface LiveKitConnectionOptions {
|
|
133
114
|
description?: string;
|
|
134
115
|
required?: boolean;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/dist/util.d.ts
CHANGED
|
@@ -4,10 +4,6 @@ export declare function compactJsonObject(input: Record<string, unknown>): JsonO
|
|
|
4
4
|
export declare function publicJson(input: unknown): JsonObject;
|
|
5
5
|
export declare function isJsonObject(value: unknown): value is JsonObject;
|
|
6
6
|
export declare function recordValue(value: unknown): Record<string, unknown> | undefined;
|
|
7
|
-
export declare function valueAt(record: unknown, key: string): unknown;
|
|
8
|
-
export declare function stringFrom(record: unknown, ...keys: string[]): string | undefined;
|
|
9
|
-
export declare function booleanFrom(record: unknown, ...keys: string[]): boolean | undefined;
|
|
10
7
|
export declare function stringValue(value: unknown): string | undefined;
|
|
11
8
|
export declare function requiredValue(value: string | undefined, name: string): string;
|
|
12
|
-
export declare function processEnv(): Record<string, string | undefined>;
|
|
13
9
|
//# sourceMappingURL=util.d.ts.map
|
package/dist/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,2BAA2B,CAAC;AAEvE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtE;AAMD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAQ5E;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAWrD;AAmBD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEhE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAE/E;AAED,wBAAgB,
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,2BAA2B,CAAC;AAEvE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtE;AAMD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAQ5E;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAWrD;AAmBD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEhE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAE/E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE9D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAG7E"}
|
package/dist/util.js
CHANGED
|
@@ -55,30 +55,6 @@ export function isJsonObject(value) {
|
|
|
55
55
|
export function recordValue(value) {
|
|
56
56
|
return value && typeof value === "object" && !Array.isArray(value) ? value : undefined;
|
|
57
57
|
}
|
|
58
|
-
export function valueAt(record, key) {
|
|
59
|
-
return recordValue(record)?.[key];
|
|
60
|
-
}
|
|
61
|
-
export function stringFrom(record, ...keys) {
|
|
62
|
-
const source = recordValue(record);
|
|
63
|
-
if (!source)
|
|
64
|
-
return undefined;
|
|
65
|
-
for (const key of keys) {
|
|
66
|
-
const value = stringValue(source[key]);
|
|
67
|
-
if (value)
|
|
68
|
-
return value;
|
|
69
|
-
}
|
|
70
|
-
return undefined;
|
|
71
|
-
}
|
|
72
|
-
export function booleanFrom(record, ...keys) {
|
|
73
|
-
const source = recordValue(record);
|
|
74
|
-
if (!source)
|
|
75
|
-
return undefined;
|
|
76
|
-
for (const key of keys) {
|
|
77
|
-
if (typeof source[key] === "boolean")
|
|
78
|
-
return source[key];
|
|
79
|
-
}
|
|
80
|
-
return undefined;
|
|
81
|
-
}
|
|
82
58
|
export function stringValue(value) {
|
|
83
59
|
return typeof value === "string" && value.trim().length > 0 ? value : undefined;
|
|
84
60
|
}
|
|
@@ -87,7 +63,4 @@ export function requiredValue(value, name) {
|
|
|
87
63
|
throw new Error(`Missing required LiveKit value: ${name}.`);
|
|
88
64
|
return value.trim();
|
|
89
65
|
}
|
|
90
|
-
export function processEnv() {
|
|
91
|
-
return typeof process === "object" && process?.env ? process.env : {};
|
|
92
|
-
}
|
|
93
66
|
//# sourceMappingURL=util.js.map
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@assemblyline-agents/livekit",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -9,12 +9,14 @@
|
|
|
9
9
|
}
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@assemblyline-agents/
|
|
13
|
-
"@assemblyline-agents/
|
|
12
|
+
"@assemblyline-agents/runtime": "6.0.1",
|
|
13
|
+
"@assemblyline-agents/core": "6.0.1"
|
|
14
14
|
},
|
|
15
15
|
"description": "Official Assembly Line LiveKit voice, telephony, and agent-dispatch plugin.",
|
|
16
16
|
"files": [
|
|
17
|
-
"dist"
|
|
17
|
+
"dist",
|
|
18
|
+
"plugin.json",
|
|
19
|
+
"ai.assemblyline"
|
|
18
20
|
],
|
|
19
21
|
"engines": {
|
|
20
22
|
"node": ">=22.19.0"
|
package/plugin.json
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
|
+
"name": "livekit",
|
|
4
|
+
"version": "6.0.1",
|
|
5
|
+
"description": "Official Assembly Line LiveKit voice, telephony, and agent-dispatch plugin.",
|
|
6
|
+
"extensions": {
|
|
7
|
+
"ai.assemblyline": {
|
|
8
|
+
"entry": "./ai.assemblyline/index.cjs"
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
}
|
package/dist/tools.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { type ToolDefinition } from "@assemblyline-agents/core";
|
|
2
|
-
import type { LiveKitToolOptions } from "./types.js";
|
|
3
|
-
export declare function defineLiveKitDispatchAgentTool(options?: LiveKitToolOptions): ToolDefinition;
|
|
4
|
-
export declare function defineLiveKitOutboundCallTool(options?: LiveKitToolOptions): ToolDefinition;
|
|
5
|
-
export declare function defineLiveKitTransferCallTool(options?: LiveKitToolOptions): ToolDefinition;
|
|
6
|
-
//# sourceMappingURL=tools.d.ts.map
|
package/dist/tools.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+C,KAAK,cAAc,EAA6B,MAAM,2BAA2B,CAAC;AAExI,OAAO,KAAK,EAAgE,kBAAkB,EAAsC,MAAM,YAAY,CAAC;AAGvJ,wBAAgB,8BAA8B,CAAC,OAAO,GAAE,kBAAuB,GAAG,cAAc,CAsC/F;AAED,wBAAgB,6BAA6B,CAAC,OAAO,GAAE,kBAAuB,GAAG,cAAc,CA6E9F;AAED,wBAAgB,6BAA6B,CAAC,OAAO,GAAE,kBAAuB,GAAG,cAAc,CA8B9F"}
|
package/dist/tools.js
DELETED
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
import { defineTool } from "@assemblyline-agents/core";
|
|
2
|
-
import { createLiveKitClient } from "./client.js";
|
|
3
|
-
import { compactJsonObject, generatedRoomName, publicJson, requiredValue } from "./util.js";
|
|
4
|
-
export function defineLiveKitDispatchAgentTool(options = {}) {
|
|
5
|
-
return withLiveKitToolDefaults(defineTool({
|
|
6
|
-
description: "Dispatch a named LiveKit voice agent to a LiveKit room.",
|
|
7
|
-
sideEffect: "external",
|
|
8
|
-
inputSchema: {
|
|
9
|
-
type: "object",
|
|
10
|
-
additionalProperties: false,
|
|
11
|
-
properties: {
|
|
12
|
-
roomName: { type: "string", description: "LiveKit room name to dispatch the agent into." },
|
|
13
|
-
agentName: { type: "string", description: "LiveKit agent dispatch name. Defaults to tool options or LIVEKIT_VOICE_AGENT_NAME." },
|
|
14
|
-
metadata: { description: "Optional JSON-serializable metadata string or object passed to the LiveKit agent job." },
|
|
15
|
-
restartPolicy: { type: "string", enum: ["JRP_ON_FAILURE", "JRP_NEVER"], description: "Optional LiveKit job restart policy." }
|
|
16
|
-
},
|
|
17
|
-
required: ["roomName"]
|
|
18
|
-
},
|
|
19
|
-
async execute(input, ctx) {
|
|
20
|
-
const request = input;
|
|
21
|
-
const client = liveKitClientFromToolContext(ctx, options);
|
|
22
|
-
const env = toolEnv(ctx, options);
|
|
23
|
-
const agentName = requiredValue(request.agentName ?? options.agentName ?? env.LIVEKIT_VOICE_AGENT_NAME, "agentName");
|
|
24
|
-
const dispatchInput = {
|
|
25
|
-
roomName: request.roomName,
|
|
26
|
-
agentName
|
|
27
|
-
};
|
|
28
|
-
if (request.metadata !== undefined)
|
|
29
|
-
dispatchInput.metadata = request.metadata;
|
|
30
|
-
if (request.restartPolicy)
|
|
31
|
-
dispatchInput.restartPolicy = request.restartPolicy;
|
|
32
|
-
const dispatch = await client.createDispatch(dispatchInput);
|
|
33
|
-
const result = compactJsonObject({
|
|
34
|
-
provider: "livekit",
|
|
35
|
-
action: "dispatch_agent",
|
|
36
|
-
roomName: request.roomName,
|
|
37
|
-
agentName,
|
|
38
|
-
dispatch
|
|
39
|
-
});
|
|
40
|
-
await ctx.emit("livekit.agent_dispatched", publicJson(result));
|
|
41
|
-
return result;
|
|
42
|
-
}
|
|
43
|
-
}), options);
|
|
44
|
-
}
|
|
45
|
-
export function defineLiveKitOutboundCallTool(options = {}) {
|
|
46
|
-
return withLiveKitToolDefaults(defineTool({
|
|
47
|
-
description: "Start an outbound phone call through LiveKit SIP, optionally dispatching a LiveKit voice agent into the call room first.",
|
|
48
|
-
sideEffect: "external",
|
|
49
|
-
inputSchema: {
|
|
50
|
-
type: "object",
|
|
51
|
-
additionalProperties: false,
|
|
52
|
-
properties: {
|
|
53
|
-
phoneNumber: { type: "string", description: "Destination phone number, ideally in E.164 format." },
|
|
54
|
-
roomName: { type: "string", description: "LiveKit room for the call. Defaults to a generated call room." },
|
|
55
|
-
agentName: { type: "string", description: "Optional LiveKit agent dispatch name to join before dialing." },
|
|
56
|
-
outboundTrunkId: { type: "string", description: "LiveKit outbound trunk ID. Defaults to tool options or LIVEKIT_OUTBOUND_TRUNK_ID." },
|
|
57
|
-
participantIdentity: { type: "string", description: "Optional identity for the SIP participant." },
|
|
58
|
-
participantName: { type: "string", description: "Optional display name for the SIP participant." },
|
|
59
|
-
metadata: { description: "Optional JSON-serializable metadata passed to the LiveKit agent dispatch." },
|
|
60
|
-
waitUntilAnswered: { type: "boolean", description: "Wait for the callee to answer before returning." },
|
|
61
|
-
dtmf: { type: "string", description: "Optional DTMF digits for extensions; use w for a half-second delay." },
|
|
62
|
-
krispEnabled: { type: "boolean", description: "Enable Krisp noise cancellation for the callee when supported." },
|
|
63
|
-
displayName: { type: "string", description: "Optional caller display name." }
|
|
64
|
-
},
|
|
65
|
-
required: ["phoneNumber"]
|
|
66
|
-
},
|
|
67
|
-
async execute(input, ctx) {
|
|
68
|
-
const request = input;
|
|
69
|
-
const env = toolEnv(ctx, options);
|
|
70
|
-
const roomName = request.roomName ?? generatedRoomName(options.roomPrefix ?? "assembly-line-call", ctx.runId);
|
|
71
|
-
const agentName = request.agentName ?? options.agentName ?? env.LIVEKIT_VOICE_AGENT_NAME;
|
|
72
|
-
const outboundTrunkId = request.outboundTrunkId ?? options.outboundTrunkId ?? env.LIVEKIT_OUTBOUND_TRUNK_ID;
|
|
73
|
-
const client = liveKitClientFromToolContext(ctx, options);
|
|
74
|
-
const dispatch = agentName
|
|
75
|
-
? await client.createDispatch({
|
|
76
|
-
roomName,
|
|
77
|
-
agentName,
|
|
78
|
-
metadata: request.metadata ?? {
|
|
79
|
-
phone_number: request.phoneNumber,
|
|
80
|
-
assembly_line_run_id: ctx.runId,
|
|
81
|
-
source: "assembly-line"
|
|
82
|
-
}
|
|
83
|
-
})
|
|
84
|
-
: undefined;
|
|
85
|
-
const sipInput = {
|
|
86
|
-
phoneNumber: request.phoneNumber,
|
|
87
|
-
roomName,
|
|
88
|
-
participantIdentity: request.participantIdentity ?? request.phoneNumber,
|
|
89
|
-
participantMetadata: { assembly_line_run_id: ctx.runId },
|
|
90
|
-
waitUntilAnswered: request.waitUntilAnswered ?? options.waitUntilAnswered ?? true
|
|
91
|
-
};
|
|
92
|
-
if (outboundTrunkId)
|
|
93
|
-
sipInput.outboundTrunkId = outboundTrunkId;
|
|
94
|
-
if (request.participantName)
|
|
95
|
-
sipInput.participantName = request.participantName;
|
|
96
|
-
if (request.dtmf)
|
|
97
|
-
sipInput.dtmf = request.dtmf;
|
|
98
|
-
if (request.krispEnabled !== undefined)
|
|
99
|
-
sipInput.krispEnabled = request.krispEnabled;
|
|
100
|
-
if (request.displayName)
|
|
101
|
-
sipInput.displayName = request.displayName;
|
|
102
|
-
const participant = await client.createSipParticipant(sipInput);
|
|
103
|
-
const result = compactJsonObject({
|
|
104
|
-
provider: "livekit",
|
|
105
|
-
action: "outbound_call",
|
|
106
|
-
roomName,
|
|
107
|
-
agentName,
|
|
108
|
-
dispatch,
|
|
109
|
-
participant
|
|
110
|
-
});
|
|
111
|
-
await ctx.emit("livekit.outbound_call_started", publicJson(result));
|
|
112
|
-
return result;
|
|
113
|
-
}
|
|
114
|
-
}), options);
|
|
115
|
-
}
|
|
116
|
-
export function defineLiveKitTransferCallTool(options = {}) {
|
|
117
|
-
return withLiveKitToolDefaults(defineTool({
|
|
118
|
-
description: "Transfer a LiveKit SIP participant to another phone number or SIP endpoint.",
|
|
119
|
-
sideEffect: "external",
|
|
120
|
-
inputSchema: {
|
|
121
|
-
type: "object",
|
|
122
|
-
additionalProperties: false,
|
|
123
|
-
properties: {
|
|
124
|
-
roomName: { type: "string", description: "LiveKit room containing the SIP participant." },
|
|
125
|
-
participantIdentity: { type: "string", description: "Identity of the SIP participant to transfer." },
|
|
126
|
-
transferTo: { type: "string", description: "Phone number or SIP URI to transfer the call to." },
|
|
127
|
-
playDialtone: { type: "boolean", description: "Play dial tone during transfer." }
|
|
128
|
-
},
|
|
129
|
-
required: ["roomName", "participantIdentity", "transferTo"]
|
|
130
|
-
},
|
|
131
|
-
async execute(input, ctx) {
|
|
132
|
-
const request = input;
|
|
133
|
-
const result = await liveKitClientFromToolContext(ctx, options).transferSipParticipant(request);
|
|
134
|
-
const output = compactJsonObject({
|
|
135
|
-
provider: "livekit",
|
|
136
|
-
action: "transfer_call",
|
|
137
|
-
roomName: request.roomName,
|
|
138
|
-
participantIdentity: request.participantIdentity,
|
|
139
|
-
transferTo: request.transferTo,
|
|
140
|
-
result
|
|
141
|
-
});
|
|
142
|
-
await ctx.emit("livekit.call_transferred", publicJson(output));
|
|
143
|
-
return output;
|
|
144
|
-
}
|
|
145
|
-
}), options);
|
|
146
|
-
}
|
|
147
|
-
function liveKitClientFromToolContext(ctx, options) {
|
|
148
|
-
return createLiveKitClient({
|
|
149
|
-
...(options.client ?? {}),
|
|
150
|
-
env: toolEnv(ctx, options),
|
|
151
|
-
fetch: options.client?.fetch ?? ctx.channel?.fetch ?? fetch
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
|
-
function toolEnv(ctx, options) {
|
|
155
|
-
return {
|
|
156
|
-
...ctx.config,
|
|
157
|
-
...(options.client?.env ?? {})
|
|
158
|
-
};
|
|
159
|
-
}
|
|
160
|
-
function withLiveKitToolDefaults(definition, options) {
|
|
161
|
-
if (options.description)
|
|
162
|
-
definition.description = options.description;
|
|
163
|
-
definition.needsApproval = options.needsApproval ?? {
|
|
164
|
-
mode: "always",
|
|
165
|
-
reason: "LiveKit phone calls and agent dispatches create external realtime sessions.",
|
|
166
|
-
sideEffect: "external"
|
|
167
|
-
};
|
|
168
|
-
return definition;
|
|
169
|
-
}
|
|
170
|
-
//# sourceMappingURL=tools.js.map
|
package/dist/tools.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|