@guava-ai/guava-sdk 0.1.0 → 0.3.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/README.md +19 -0
- package/dist/examples/credit-card-activation.d.ts +1 -0
- package/dist/examples/credit-card-activation.js +162 -0
- package/dist/examples/credit-card-activation.js.map +1 -0
- package/dist/examples/property-insurance.js +6 -2
- package/dist/examples/property-insurance.js.map +1 -1
- package/dist/examples/thai-palace.d.ts +1 -0
- package/dist/examples/thai-palace.js +79 -0
- package/dist/examples/thai-palace.js.map +1 -0
- package/dist/package.json +1 -1
- package/dist/src/action_item.d.ts +2 -2
- package/dist/src/action_item.js +1 -1
- package/dist/src/action_item.js.map +1 -1
- package/dist/src/commands.d.ts +9 -9
- package/dist/src/commands.js +5 -4
- package/dist/src/commands.js.map +1 -1
- package/dist/src/example_data.js.map +1 -1
- package/dist/src/helpers/openai.d.ts +6 -1
- package/dist/src/helpers/openai.js +24 -4
- package/dist/src/helpers/openai.js.map +1 -1
- package/dist/src/index.d.ts +105 -9
- package/dist/src/index.js +197 -53
- package/dist/src/index.js.map +1 -1
- package/examples/credit-card-activation.ts +188 -0
- package/examples/property-insurance.ts +11 -7
- package/examples/thai-palace.ts +74 -0
- package/package.json +2 -2
- package/src/action_item.ts +5 -2
- package/src/commands.ts +11 -5
- package/src/example_data.ts +1 -1
- package/src/helpers/openai.ts +35 -7
- package/src/index.ts +246 -78
package/dist/src/index.d.ts
CHANGED
|
@@ -3,34 +3,112 @@ import { type Logger } from "./logging.ts";
|
|
|
3
3
|
import { type Command } from "./commands.ts";
|
|
4
4
|
import { type GuavaEvent, type CallerSpeechEvent, type AgentSpeechEvent } from "./events.ts";
|
|
5
5
|
import type { Field, Say } from "./action_item.ts";
|
|
6
|
+
/**
|
|
7
|
+
* Interface between Guava services and user-supplied code
|
|
8
|
+
*/
|
|
6
9
|
export declare class CallController {
|
|
7
10
|
private _commandQueue;
|
|
8
11
|
private _on_complete_current_task?;
|
|
9
12
|
private _current_task_id?;
|
|
10
|
-
|
|
13
|
+
/**
|
|
14
|
+
* @protected
|
|
15
|
+
* @description logger used to emit diagnostics
|
|
16
|
+
*/
|
|
17
|
+
protected logger: Logger;
|
|
11
18
|
private _drain?;
|
|
19
|
+
private _fieldValues;
|
|
12
20
|
constructor(logger: Logger);
|
|
21
|
+
/**
|
|
22
|
+
* @description Supply a function used to consume commands from the internal command queue.
|
|
23
|
+
*
|
|
24
|
+
* The function is expected to remove from the argument array commands that it has handled (iterating
|
|
25
|
+
* through the result of `Array.splice(0)` is sufficient)
|
|
26
|
+
*/
|
|
13
27
|
setDrain(newDrain: (_: Command[]) => Promise<void>): void;
|
|
28
|
+
/**
|
|
29
|
+
* @description [inbound] receive a call, and process further.
|
|
30
|
+
*/
|
|
14
31
|
protected acceptCall(): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* @description read a span of text verbatim
|
|
34
|
+
*/
|
|
15
35
|
protected readScript(script: string): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* @description [inbound] reject a call
|
|
38
|
+
*/
|
|
16
39
|
protected rejectCall(): Promise<void>;
|
|
17
|
-
protected addInfo(
|
|
40
|
+
protected addInfo(_info: string): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* @description read a span of text non-verbatim
|
|
43
|
+
*/
|
|
18
44
|
protected sendInstruction(instruction: string): Promise<void>;
|
|
19
|
-
|
|
20
|
-
|
|
45
|
+
/**
|
|
46
|
+
* @description provide identifiers the agent will use to identify the virtual agent
|
|
47
|
+
*/
|
|
48
|
+
protected setPersona(args: {
|
|
49
|
+
organizationName?: string;
|
|
50
|
+
agentName?: string;
|
|
51
|
+
agentPurpose?: string;
|
|
52
|
+
}): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* @description direct the agent to collect information
|
|
55
|
+
* @param goal {} an objective string and/or a checklist of information to collect
|
|
56
|
+
* @param on_complete {} a callback to call once the information is available from the agent
|
|
57
|
+
* @param args {} arguments to pass through to the `on_complete` callback
|
|
58
|
+
*/
|
|
59
|
+
protected setTask(goal: TaskObjective, on_complete?: (...c: any[]) => void, ...args: any[]): void;
|
|
60
|
+
/**
|
|
61
|
+
* @description direct the agent to collect information, continuing execution once the agent has collected the information
|
|
62
|
+
* @param goal {} an objective string and/or a checklist of information to collect
|
|
63
|
+
*/
|
|
64
|
+
protected awaitTask(goal: TaskObjective): Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* @description retrieve a piece of information that the agent has collected
|
|
67
|
+
* @param key {string} key of the field checklist item
|
|
68
|
+
*/
|
|
69
|
+
protected getField(key: string): unknown;
|
|
70
|
+
/**
|
|
71
|
+
* @description [inbound] hang up an accepted call
|
|
72
|
+
*/
|
|
21
73
|
protected hangup(final_instructions?: string): Promise<void>;
|
|
74
|
+
/**
|
|
75
|
+
* @description transfer an accepted call
|
|
76
|
+
*/
|
|
22
77
|
protected transfer(to_number: string, transfer_message?: string): void;
|
|
23
78
|
private sendCommand;
|
|
24
79
|
private flush;
|
|
25
80
|
onEvent(event: GuavaEvent): Promise<void>;
|
|
26
81
|
/**
|
|
27
|
-
* @
|
|
82
|
+
* @abstract
|
|
83
|
+
* @description called when an inbound call is received. The overriding function must start
|
|
84
|
+
* with `await super.onIncomingCall(from_number)`
|
|
28
85
|
*/
|
|
29
86
|
onIncomingCall(from_number?: string): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* @abstract
|
|
89
|
+
* @description called when a call is connected by the API, whether inbound or outbound
|
|
90
|
+
*/
|
|
30
91
|
onCallStart(): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* @abstract
|
|
94
|
+
* @description called when the caller speaks to the agent.
|
|
95
|
+
*/
|
|
31
96
|
onCallerSpeech(event: CallerSpeechEvent): Promise<void>;
|
|
97
|
+
/**
|
|
98
|
+
* @abstract
|
|
99
|
+
* @description called when the agent speaks to the caller.
|
|
100
|
+
*/
|
|
32
101
|
onAgentSpeech(event: AgentSpeechEvent): Promise<void>;
|
|
102
|
+
/**
|
|
103
|
+
* @abstract
|
|
104
|
+
* @description called when the caller expresses a task they wish to execute
|
|
105
|
+
*/
|
|
33
106
|
onIntent(intent: string): Promise<string | null>;
|
|
107
|
+
/**
|
|
108
|
+
* @abstract
|
|
109
|
+
* @description called when the agent needs to respond to a question that it doesn't know
|
|
110
|
+
* the answer to.
|
|
111
|
+
*/
|
|
34
112
|
onQuestion(question: string): Promise<string>;
|
|
35
113
|
}
|
|
36
114
|
export type InboundConnection = {
|
|
@@ -38,6 +116,12 @@ export type InboundConnection = {
|
|
|
38
116
|
} | {
|
|
39
117
|
webrtc_code: string;
|
|
40
118
|
};
|
|
119
|
+
export type TaskObjective = {
|
|
120
|
+
objective: string;
|
|
121
|
+
} | {
|
|
122
|
+
objective?: string;
|
|
123
|
+
checklist: (Field | Say | string)[];
|
|
124
|
+
};
|
|
41
125
|
export declare class Client {
|
|
42
126
|
private _apiKey;
|
|
43
127
|
private _baseUrl;
|
|
@@ -46,13 +130,25 @@ export declare class Client {
|
|
|
46
130
|
private _controller?;
|
|
47
131
|
private messageHandler?;
|
|
48
132
|
constructor(apiKey?: string, baseUrl?: string, logger?: Logger);
|
|
49
|
-
private getHttpBase;
|
|
50
133
|
private getWebsocketBase;
|
|
134
|
+
private getHttpBase;
|
|
51
135
|
private headers;
|
|
136
|
+
/**
|
|
137
|
+
* @description use the Guava API to call out to a number
|
|
138
|
+
*/
|
|
52
139
|
createOutbound(fromNumber: string | undefined, toNumber: string, callControllerFactory?: (logger: Logger) => CallController): void;
|
|
53
|
-
replaceHandler
|
|
140
|
+
private replaceHandler;
|
|
54
141
|
private uninitializedOutbound;
|
|
55
142
|
private initializedOutbound;
|
|
56
|
-
setInboundHandler(agent_number: string, public_url: string, inbound_token: string): void
|
|
57
|
-
|
|
143
|
+
setInboundHandler(agent_number: string, public_url: string, inbound_token: string): Promise<void>;
|
|
144
|
+
/**
|
|
145
|
+
* @description use the Guava API to receive calls at a given number
|
|
146
|
+
*/
|
|
147
|
+
listenInbound<U extends CallController>(conn: InboundConnection, controllerClassFactory: (logger: Logger) => U): InboundListener;
|
|
148
|
+
}
|
|
149
|
+
declare class InboundListener {
|
|
150
|
+
private ws;
|
|
151
|
+
constructor(ws: WebSocket);
|
|
152
|
+
close(): void;
|
|
58
153
|
}
|
|
154
|
+
export {};
|
package/dist/src/index.js
CHANGED
|
@@ -9,29 +9,42 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import WebSocket from "ws";
|
|
11
11
|
import { getConsoleLogger } from "./logging.js";
|
|
12
|
-
import { acceptInboundCallCommand, startOutboundCallCommand, setPersona, setTaskCommand, answerQuestionCommand, sendInstructionCommand, readScriptCommand, rejectInboundCallCommand, transferCommand, listenInboundCommand, } from "./commands.js";
|
|
12
|
+
import { acceptInboundCallCommand, startOutboundCallCommand, setPersona, setTaskCommand, answerQuestionCommand, sendInstructionCommand, readScriptCommand, rejectInboundCallCommand, transferCommand, listenInboundCommand, inboundTunnelCommand, } from "./commands.js";
|
|
13
13
|
import * as z from "zod";
|
|
14
|
-
import { errorEvent, sessionStartedEvent, decodeEvent, } from "./events.js";
|
|
14
|
+
import { errorEvent, sessionStartedEvent, decodeEvent, inboundTunnelEvent, } from "./events.js";
|
|
15
15
|
import pkgdata from "../package.json" with { type: "json" };
|
|
16
16
|
import os from "node:os";
|
|
17
|
-
const DEFAULT_BASE_URL = "
|
|
18
|
-
const DEFAULT_LOG_LEVEL = "
|
|
17
|
+
const DEFAULT_BASE_URL = "https://guava-dev.gridspace.com/";
|
|
18
|
+
const DEFAULT_LOG_LEVEL = "debug";
|
|
19
19
|
/**
|
|
20
20
|
* @description convenience function for stringifying data according to a schema
|
|
21
21
|
*/
|
|
22
22
|
function stringifyZod(schema, data) {
|
|
23
23
|
return JSON.stringify(schema.parse(data));
|
|
24
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Interface between Guava services and user-supplied code
|
|
27
|
+
*/
|
|
25
28
|
export class CallController {
|
|
26
29
|
constructor(logger) {
|
|
27
30
|
this._commandQueue = [];
|
|
31
|
+
this._fieldValues = {};
|
|
28
32
|
// Set up the default logger.
|
|
29
|
-
this.
|
|
33
|
+
this.logger = logger;
|
|
30
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* @description Supply a function used to consume commands from the internal command queue.
|
|
37
|
+
*
|
|
38
|
+
* The function is expected to remove from the argument array commands that it has handled (iterating
|
|
39
|
+
* through the result of `Array.splice(0)` is sufficient)
|
|
40
|
+
*/
|
|
31
41
|
setDrain(newDrain) {
|
|
32
42
|
this._drain = newDrain;
|
|
33
43
|
this.flush();
|
|
34
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* @description [inbound] receive a call, and process further.
|
|
47
|
+
*/
|
|
35
48
|
acceptCall() {
|
|
36
49
|
return __awaiter(this, void 0, void 0, function* () {
|
|
37
50
|
yield this.sendCommand(acceptInboundCallCommand, {
|
|
@@ -39,6 +52,9 @@ export class CallController {
|
|
|
39
52
|
});
|
|
40
53
|
});
|
|
41
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* @description read a span of text verbatim
|
|
57
|
+
*/
|
|
42
58
|
readScript(script) {
|
|
43
59
|
return __awaiter(this, void 0, void 0, function* () {
|
|
44
60
|
yield this.sendCommand(readScriptCommand, {
|
|
@@ -47,6 +63,9 @@ export class CallController {
|
|
|
47
63
|
});
|
|
48
64
|
});
|
|
49
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* @description [inbound] reject a call
|
|
68
|
+
*/
|
|
50
69
|
rejectCall() {
|
|
51
70
|
return __awaiter(this, void 0, void 0, function* () {
|
|
52
71
|
yield this.sendCommand(rejectInboundCallCommand, {
|
|
@@ -54,11 +73,14 @@ export class CallController {
|
|
|
54
73
|
});
|
|
55
74
|
});
|
|
56
75
|
}
|
|
57
|
-
addInfo(
|
|
76
|
+
addInfo(_info) {
|
|
58
77
|
return __awaiter(this, void 0, void 0, function* () {
|
|
59
78
|
throw new Error("not implemeneted");
|
|
60
79
|
});
|
|
61
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* @description read a span of text non-verbatim
|
|
83
|
+
*/
|
|
62
84
|
sendInstruction(instruction) {
|
|
63
85
|
return __awaiter(this, void 0, void 0, function* () {
|
|
64
86
|
yield this.sendCommand(sendInstructionCommand, {
|
|
@@ -67,38 +89,80 @@ export class CallController {
|
|
|
67
89
|
});
|
|
68
90
|
});
|
|
69
91
|
}
|
|
70
|
-
|
|
92
|
+
/**
|
|
93
|
+
* @description provide identifiers the agent will use to identify the virtual agent
|
|
94
|
+
*/
|
|
95
|
+
setPersona(args) {
|
|
71
96
|
return __awaiter(this, void 0, void 0, function* () {
|
|
72
97
|
yield this.sendCommand(setPersona, {
|
|
73
98
|
command_type: "set-persona",
|
|
74
|
-
organization_name:
|
|
75
|
-
agent_name:
|
|
76
|
-
agent_purpose:
|
|
99
|
+
organization_name: args.organizationName,
|
|
100
|
+
agent_name: args.agentName,
|
|
101
|
+
agent_purpose: args.agentPurpose,
|
|
77
102
|
});
|
|
78
103
|
});
|
|
79
104
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
105
|
+
/**
|
|
106
|
+
* @description direct the agent to collect information
|
|
107
|
+
* @param goal {} an objective string and/or a checklist of information to collect
|
|
108
|
+
* @param on_complete {} a callback to call once the information is available from the agent
|
|
109
|
+
* @param args {} arguments to pass through to the `on_complete` callback
|
|
110
|
+
*/
|
|
111
|
+
setTask(goal, on_complete = () => { }, ...args) {
|
|
112
|
+
var _a;
|
|
113
|
+
this._current_task_id = Math.random().toString(16).substring(2, 8);
|
|
114
|
+
this._on_complete_current_task = on_complete.bind(this, ...args);
|
|
115
|
+
if (!("checklist" in goal)) {
|
|
116
|
+
this.sendCommand(setTaskCommand, {
|
|
117
|
+
command_type: "set-task",
|
|
118
|
+
task_id: this._current_task_id,
|
|
119
|
+
objective: goal.objective,
|
|
120
|
+
action_items: [],
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
const action_items = goal.checklist.map((item) => typeof item == "string"
|
|
88
125
|
? {
|
|
89
126
|
item_type: "todo",
|
|
90
127
|
description: item,
|
|
91
128
|
}
|
|
92
129
|
: item);
|
|
93
|
-
this._on_complete_current_task = on_complete.apply(this, args);
|
|
94
130
|
this.sendCommand(setTaskCommand, {
|
|
95
131
|
command_type: "set-task",
|
|
96
132
|
task_id: this._current_task_id,
|
|
97
|
-
objective: objective,
|
|
98
|
-
action_items
|
|
133
|
+
objective: (_a = goal.objective) !== null && _a !== void 0 ? _a : "",
|
|
134
|
+
action_items,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* @description direct the agent to collect information, continuing execution once the agent has collected the information
|
|
140
|
+
* @param goal {} an objective string and/or a checklist of information to collect
|
|
141
|
+
*/
|
|
142
|
+
awaitTask(goal) {
|
|
143
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
144
|
+
return new Promise((resolve) => {
|
|
145
|
+
this.setTask(goal, (_args) => {
|
|
146
|
+
resolve();
|
|
147
|
+
});
|
|
99
148
|
});
|
|
100
149
|
});
|
|
101
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* @description retrieve a piece of information that the agent has collected
|
|
153
|
+
* @param key {string} key of the field checklist item
|
|
154
|
+
*/
|
|
155
|
+
getField(key) {
|
|
156
|
+
if (key in this._fieldValues) {
|
|
157
|
+
return this._fieldValues[key];
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* @description [inbound] hang up an accepted call
|
|
165
|
+
*/
|
|
102
166
|
hangup() {
|
|
103
167
|
return __awaiter(this, arguments, void 0, function* (final_instructions = "") {
|
|
104
168
|
let instructions;
|
|
@@ -111,6 +175,9 @@ export class CallController {
|
|
|
111
175
|
this.sendInstruction(instructions);
|
|
112
176
|
});
|
|
113
177
|
}
|
|
178
|
+
/**
|
|
179
|
+
* @description transfer an accepted call
|
|
180
|
+
*/
|
|
114
181
|
transfer(to_number, transfer_message) {
|
|
115
182
|
const message = transfer_message !== null && transfer_message !== void 0 ? transfer_message : "I'm transferring you now";
|
|
116
183
|
this.sendCommand(transferCommand, {
|
|
@@ -123,7 +190,7 @@ export class CallController {
|
|
|
123
190
|
return __awaiter(this, void 0, void 0, function* () {
|
|
124
191
|
const command = schema.parse(data);
|
|
125
192
|
this._commandQueue.push(command);
|
|
126
|
-
this.
|
|
193
|
+
this.logger.debug(`Command queued: ${JSON.stringify(command)}`);
|
|
127
194
|
yield this.flush();
|
|
128
195
|
});
|
|
129
196
|
}
|
|
@@ -143,7 +210,7 @@ export class CallController {
|
|
|
143
210
|
}
|
|
144
211
|
else if (event.event_type == "agent-question") {
|
|
145
212
|
try {
|
|
146
|
-
this.
|
|
213
|
+
this.logger.info(`Received question from bot: ${event.question}`);
|
|
147
214
|
const answer = yield this.onQuestion(event.question);
|
|
148
215
|
yield this.sendCommand(answerQuestionCommand, {
|
|
149
216
|
command_type: "answer-question",
|
|
@@ -152,7 +219,7 @@ export class CallController {
|
|
|
152
219
|
});
|
|
153
220
|
}
|
|
154
221
|
catch (e) {
|
|
155
|
-
this.
|
|
222
|
+
this.logger.error("Error occured while answering question.");
|
|
156
223
|
yield this.sendCommand(answerQuestionCommand, {
|
|
157
224
|
command_type: "answer-question",
|
|
158
225
|
question_id: event.question_id,
|
|
@@ -161,12 +228,12 @@ export class CallController {
|
|
|
161
228
|
}
|
|
162
229
|
}
|
|
163
230
|
else if (event.event_type == "intent") {
|
|
164
|
-
this.
|
|
231
|
+
this.logger.info(`Received intent ${event.intent_id} from bot: ${event.intent_summary}`);
|
|
165
232
|
const intent_response = yield this.onIntent(event.intent_summary);
|
|
166
233
|
if (intent_response) {
|
|
167
|
-
const response_str = `Responding to intent ${event.intent_id}: ${
|
|
168
|
-
this.
|
|
169
|
-
this.sendInstruction(
|
|
234
|
+
const response_str = `Responding to intent ${event.intent_id}: ${intent_response}`;
|
|
235
|
+
this.logger.info(response_str);
|
|
236
|
+
this.sendInstruction(intent_response);
|
|
170
237
|
}
|
|
171
238
|
}
|
|
172
239
|
else if (event.event_type == "task-done") {
|
|
@@ -181,7 +248,10 @@ export class CallController {
|
|
|
181
248
|
}
|
|
182
249
|
}
|
|
183
250
|
else if (event.event_type == "action-item-done") {
|
|
184
|
-
|
|
251
|
+
this._fieldValues[event.key] = event.payload;
|
|
252
|
+
if (event.key && event.payload) {
|
|
253
|
+
this.logger.info(`Field ${event.key} updated with value: ${event.payload}`);
|
|
254
|
+
}
|
|
185
255
|
}
|
|
186
256
|
else if (event.event_type == "inbound-call") {
|
|
187
257
|
this.onIncomingCall(event.caller_number);
|
|
@@ -191,44 +261,67 @@ export class CallController {
|
|
|
191
261
|
// no-op, don't warn
|
|
192
262
|
}
|
|
193
263
|
else if (event.event_type == "error") {
|
|
194
|
-
this.
|
|
264
|
+
this.logger.error(`The Guava agent reported an error: ${event.content}`);
|
|
195
265
|
}
|
|
196
266
|
else {
|
|
197
|
-
this.
|
|
267
|
+
this.logger.warn(`Unhandled event: ${JSON.stringify(event)}`);
|
|
198
268
|
}
|
|
199
269
|
});
|
|
200
270
|
}
|
|
201
271
|
// callbacks
|
|
202
272
|
/**
|
|
203
|
-
* @
|
|
273
|
+
* @abstract
|
|
274
|
+
* @description called when an inbound call is received. The overriding function must start
|
|
275
|
+
* with `await super.onIncomingCall(from_number)`
|
|
204
276
|
*/
|
|
205
277
|
onIncomingCall(from_number) {
|
|
206
278
|
return __awaiter(this, void 0, void 0, function* () {
|
|
207
279
|
yield this.onCallStart();
|
|
208
280
|
});
|
|
209
281
|
}
|
|
282
|
+
/**
|
|
283
|
+
* @abstract
|
|
284
|
+
* @description called when a call is connected by the API, whether inbound or outbound
|
|
285
|
+
*/
|
|
210
286
|
onCallStart() {
|
|
211
287
|
return __awaiter(this, void 0, void 0, function* () { });
|
|
212
288
|
}
|
|
289
|
+
/**
|
|
290
|
+
* @abstract
|
|
291
|
+
* @description called when the caller speaks to the agent.
|
|
292
|
+
*/
|
|
213
293
|
onCallerSpeech(event) {
|
|
214
294
|
return __awaiter(this, void 0, void 0, function* () { });
|
|
215
295
|
}
|
|
296
|
+
/**
|
|
297
|
+
* @abstract
|
|
298
|
+
* @description called when the agent speaks to the caller.
|
|
299
|
+
*/
|
|
216
300
|
onAgentSpeech(event) {
|
|
217
301
|
return __awaiter(this, void 0, void 0, function* () { });
|
|
218
302
|
}
|
|
303
|
+
/**
|
|
304
|
+
* @abstract
|
|
305
|
+
* @description called when the caller expresses a task they wish to execute
|
|
306
|
+
*/
|
|
219
307
|
onIntent(intent) {
|
|
220
308
|
return __awaiter(this, void 0, void 0, function* () {
|
|
221
309
|
return "Unfortunately I'm not able to help with that.";
|
|
222
310
|
});
|
|
223
311
|
}
|
|
312
|
+
/**
|
|
313
|
+
* @abstract
|
|
314
|
+
* @description called when the agent needs to respond to a question that it doesn't know
|
|
315
|
+
* the answer to.
|
|
316
|
+
*/
|
|
224
317
|
onQuestion(question) {
|
|
225
318
|
return __awaiter(this, void 0, void 0, function* () {
|
|
226
319
|
return "I don't have an answer to that question.";
|
|
227
320
|
});
|
|
228
321
|
}
|
|
229
322
|
}
|
|
230
|
-
const
|
|
231
|
-
const
|
|
323
|
+
const http_start = /^http:\/\//;
|
|
324
|
+
const https_start = /^https:\/\//;
|
|
232
325
|
export class Client {
|
|
233
326
|
constructor(apiKey, baseUrl, logger) {
|
|
234
327
|
// Set up the default logger.
|
|
@@ -259,18 +352,18 @@ export class Client {
|
|
|
259
352
|
throw new Error("Guava API key must be provided either as argument to client constructor, or in environment variable GUAVA_API_KEY.");
|
|
260
353
|
}
|
|
261
354
|
}
|
|
262
|
-
|
|
263
|
-
if (
|
|
355
|
+
getWebsocketBase() {
|
|
356
|
+
if (http_start.test(this._baseUrl)) {
|
|
264
357
|
return `ws://${this._baseUrl.substring("ws://".length)}`;
|
|
265
358
|
}
|
|
266
|
-
else if (
|
|
359
|
+
else if (https_start.test(this._baseUrl)) {
|
|
267
360
|
return `wss://${this._baseUrl.substring("wss://".length)}`;
|
|
268
361
|
}
|
|
269
362
|
else {
|
|
270
363
|
throw new Error(`Invalid base URL: ${this._baseUrl}}`);
|
|
271
364
|
}
|
|
272
365
|
}
|
|
273
|
-
|
|
366
|
+
getHttpBase() {
|
|
274
367
|
return this._baseUrl;
|
|
275
368
|
}
|
|
276
369
|
headers() {
|
|
@@ -283,8 +376,11 @@ export class Client {
|
|
|
283
376
|
"x-guava-sdk-version": pkgdata.version,
|
|
284
377
|
};
|
|
285
378
|
}
|
|
379
|
+
/**
|
|
380
|
+
* @description use the Guava API to call out to a number
|
|
381
|
+
*/
|
|
286
382
|
createOutbound(fromNumber, toNumber, callControllerFactory) {
|
|
287
|
-
const url = new URL("create-outbound", this.getWebsocketBase())
|
|
383
|
+
const url = new URL("v1/create-outbound", this.getWebsocketBase());
|
|
288
384
|
const ws = new WebSocket(url, {
|
|
289
385
|
headers: this.headers(),
|
|
290
386
|
});
|
|
@@ -343,7 +439,6 @@ export class Client {
|
|
|
343
439
|
// move to next state
|
|
344
440
|
this.replaceHandler(this.initializedOutbound.bind(this));
|
|
345
441
|
}
|
|
346
|
-
// this._controller?.flush();
|
|
347
442
|
}
|
|
348
443
|
initializedOutbound(ev) {
|
|
349
444
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -363,16 +458,30 @@ export class Client {
|
|
|
363
458
|
this._ws.close();
|
|
364
459
|
}
|
|
365
460
|
}
|
|
366
|
-
// this._controller?.flush();
|
|
367
461
|
});
|
|
368
462
|
}
|
|
369
463
|
setInboundHandler(agent_number, public_url, inbound_token) {
|
|
370
|
-
|
|
464
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
465
|
+
const response = yield fetch(new URL(`v1/inbound-handler/${agent_number}`, this.getHttpBase()), {
|
|
466
|
+
method: "PUT",
|
|
467
|
+
headers: this.headers(),
|
|
468
|
+
body: JSON.stringify({
|
|
469
|
+
handler_url: public_url,
|
|
470
|
+
handler_token: inbound_token,
|
|
471
|
+
}),
|
|
472
|
+
});
|
|
473
|
+
if (!response.ok) {
|
|
474
|
+
throw new Error("Failed to set inbound handler");
|
|
475
|
+
}
|
|
476
|
+
});
|
|
371
477
|
}
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
478
|
+
/**
|
|
479
|
+
* @description use the Guava API to receive calls at a given number
|
|
480
|
+
*/
|
|
481
|
+
listenInbound(conn, controllerClassFactory) {
|
|
482
|
+
const callControllers = {};
|
|
483
|
+
// return a way to *stop* listening
|
|
484
|
+
const url = new URL("v1/listen-inbound", this.getWebsocketBase());
|
|
376
485
|
const ws = new WebSocket(url, {
|
|
377
486
|
headers: this.headers(),
|
|
378
487
|
});
|
|
@@ -384,17 +493,52 @@ export class Client {
|
|
|
384
493
|
else {
|
|
385
494
|
webrtc_code = conn.webrtc_code;
|
|
386
495
|
}
|
|
387
|
-
ws.send(stringifyZod(listenInboundCommand, {
|
|
388
|
-
command_type: "listen-inbound",
|
|
389
|
-
agent_number: agent_number,
|
|
390
|
-
webrtc_code: webrtc_code,
|
|
391
|
-
}));
|
|
392
496
|
this._logger.info(`Listening for calls to ${agent_number !== null && agent_number !== void 0 ? agent_number : webrtc_code}`);
|
|
393
497
|
if (webrtc_code) {
|
|
394
|
-
// converted to print, but should be logger?
|
|
395
498
|
const debugurl = new URL(`debug-webrtc?webrtc_code=${webrtc_code}`, this.getHttpBase());
|
|
396
|
-
this._logger.debug(`WebRTC DebugURL: ${
|
|
499
|
+
this._logger.debug(`WebRTC DebugURL: ${debugurl}`);
|
|
397
500
|
}
|
|
501
|
+
ws.addEventListener("open", (_ev) => {
|
|
502
|
+
ws.send(stringifyZod(listenInboundCommand, {
|
|
503
|
+
command_type: "listen-inbound",
|
|
504
|
+
agent_number: agent_number,
|
|
505
|
+
webrtc_code: webrtc_code,
|
|
506
|
+
}));
|
|
507
|
+
});
|
|
508
|
+
ws.addEventListener("close", (_ev) => {
|
|
509
|
+
ws.removeAllListeners();
|
|
510
|
+
});
|
|
511
|
+
ws.addEventListener("message", (ev) => {
|
|
512
|
+
const tunnel_event = inboundTunnelEvent.parse(JSON.parse(ev.data.toString("utf8")));
|
|
513
|
+
if (!(tunnel_event.call_id in callControllers)) {
|
|
514
|
+
this._logger.info(`Received tunnel event for new call ID: ${tunnel_event.call_id}. Creating call controller.`);
|
|
515
|
+
const newController = controllerClassFactory(this._logger);
|
|
516
|
+
newController.setDrain((commands) => __awaiter(this, void 0, void 0, function* () {
|
|
517
|
+
for (const command of commands.splice(0)) {
|
|
518
|
+
this._logger.debug(`Sending command: ${JSON.stringify(command)} for call ID: ${tunnel_event.call_id}`);
|
|
519
|
+
ws.send(stringifyZod(inboundTunnelCommand, {
|
|
520
|
+
call_id: tunnel_event.call_id,
|
|
521
|
+
command,
|
|
522
|
+
}));
|
|
523
|
+
}
|
|
524
|
+
}));
|
|
525
|
+
callControllers[tunnel_event.call_id] = newController;
|
|
526
|
+
newController.onEvent(tunnel_event.event);
|
|
527
|
+
}
|
|
528
|
+
else {
|
|
529
|
+
// no threading, so manually forward to onEvent!
|
|
530
|
+
callControllers[tunnel_event.call_id].onEvent(tunnel_event.event);
|
|
531
|
+
}
|
|
532
|
+
});
|
|
533
|
+
return new InboundListener(ws);
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
class InboundListener {
|
|
537
|
+
constructor(ws) {
|
|
538
|
+
this.ws = ws;
|
|
539
|
+
}
|
|
540
|
+
close() {
|
|
541
|
+
this.ws.close();
|
|
398
542
|
}
|
|
399
543
|
}
|
|
400
544
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|