@guava-ai/guava-sdk 0.20.0 → 0.21.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/bin/example-runner.ts +1 -0
- package/dist/bin/example-runner.d.ts +1 -0
- package/dist/bin/example-runner.js +1 -0
- package/dist/bin/example-runner.js.map +1 -1
- package/dist/examples/polling-campaign.d.ts +1 -0
- package/dist/examples/polling-campaign.js +106 -0
- package/dist/examples/polling-campaign.js.map +1 -0
- package/dist/src/action-item.d.ts +8 -4
- package/dist/src/action-item.js +5 -2
- package/dist/src/action-item.js.map +1 -1
- package/dist/src/agent.d.ts +14 -1
- package/dist/src/agent.js +67 -2
- package/dist/src/agent.js.map +1 -1
- package/dist/src/commands.d.ts +6 -3
- package/dist/src/guavadialer-events.d.ts +49 -0
- package/dist/src/guavadialer-events.js +76 -0
- package/dist/src/guavadialer-events.js.map +1 -0
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/examples/README.md +6 -4
- package/examples/polling-campaign.ts +79 -0
- package/package.json +1 -1
- package/src/action-item.ts +7 -3
- package/src/agent.ts +76 -1
- package/src/guavadialer-events.ts +51 -0
- package/src/version.ts +1 -1
package/bin/example-runner.ts
CHANGED
|
@@ -5,6 +5,7 @@ const EXAMPLES = {
|
|
|
5
5
|
"property-insurance": () => import("../examples/property-insurance"),
|
|
6
6
|
"restaurant-waitlist": () => import("../examples/restaurant-waitlist"),
|
|
7
7
|
"help-desk": () => import("../examples/help-desk"),
|
|
8
|
+
"polling-campaign": () => import("../examples/polling-campaign"),
|
|
8
9
|
};
|
|
9
10
|
|
|
10
11
|
const exampleName = process.argv[2];
|
|
@@ -4,5 +4,6 @@ declare const EXAMPLES: {
|
|
|
4
4
|
"property-insurance": () => Promise<typeof import("../examples/property-insurance")>;
|
|
5
5
|
"restaurant-waitlist": () => Promise<typeof import("../examples/restaurant-waitlist")>;
|
|
6
6
|
"help-desk": () => Promise<typeof import("../examples/help-desk")>;
|
|
7
|
+
"polling-campaign": () => Promise<typeof import("../examples/polling-campaign")>;
|
|
7
8
|
};
|
|
8
9
|
declare const exampleName: string;
|
|
@@ -37,6 +37,7 @@ const EXAMPLES = {
|
|
|
37
37
|
"property-insurance": () => Promise.resolve().then(() => __importStar(require("../examples/property-insurance"))),
|
|
38
38
|
"restaurant-waitlist": () => Promise.resolve().then(() => __importStar(require("../examples/restaurant-waitlist"))),
|
|
39
39
|
"help-desk": () => Promise.resolve().then(() => __importStar(require("../examples/help-desk"))),
|
|
40
|
+
"polling-campaign": () => Promise.resolve().then(() => __importStar(require("../examples/polling-campaign"))),
|
|
40
41
|
};
|
|
41
42
|
const exampleName = process.argv[2];
|
|
42
43
|
if (!exampleName) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example-runner.js","sourceRoot":"","sources":["../../bin/example-runner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,MAAM,QAAQ,GAAG;IACf,qBAAqB,EAAE,GAAG,EAAE,mDAAQ,iCAAiC,GAAC;IACtE,oBAAoB,EAAE,GAAG,EAAE,mDAAQ,gCAAgC,GAAC;IACpE,qBAAqB,EAAE,GAAG,EAAE,mDAAQ,iCAAiC,GAAC;IACtE,WAAW,EAAE,GAAG,EAAE,mDAAQ,uBAAuB,GAAC;
|
|
1
|
+
{"version":3,"file":"example-runner.js","sourceRoot":"","sources":["../../bin/example-runner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,MAAM,QAAQ,GAAG;IACf,qBAAqB,EAAE,GAAG,EAAE,mDAAQ,iCAAiC,GAAC;IACtE,oBAAoB,EAAE,GAAG,EAAE,mDAAQ,gCAAgC,GAAC;IACpE,qBAAqB,EAAE,GAAG,EAAE,mDAAQ,iCAAiC,GAAC;IACtE,WAAW,EAAE,GAAG,EAAE,mDAAQ,uBAAuB,GAAC;IAClD,kBAAkB,EAAE,GAAG,EAAE,mDAAQ,8BAA8B,GAAC;CACjE,CAAC;AAEF,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpC,IAAI,CAAC,WAAW,EAAE,CAAC;IACjB,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACpE,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,CAAC,CAAC,WAAW,IAAI,QAAQ,CAAC,EAAE,CAAC;IAC/B,OAAO,CAAC,KAAK,CAAC,oBAAoB,WAAW,0BAA0B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,CAAC,KAAK,IAAI,EAAE;IACV,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,WAAoC,CAAC,EAAE,CAAC;IACnE,MAAM,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC,CAAC,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function run(args: string[]): Promise<void>;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.run = run;
|
|
37
|
+
/**
|
|
38
|
+
* This example attaches a political polling agent to an ongoing Guava campaign.
|
|
39
|
+
*
|
|
40
|
+
* To use this, first create a campaign from the dashboard or CLI and add contacts.
|
|
41
|
+
* Then, run this script with the campaign code and the Agent will start making calls
|
|
42
|
+
* to those registered contacts.
|
|
43
|
+
*
|
|
44
|
+
* Usage: guava-example polling-campaign <campaign-code>
|
|
45
|
+
*/
|
|
46
|
+
const guava = __importStar(require("@guava-ai/guava-sdk"));
|
|
47
|
+
const agent = new guava.Agent({
|
|
48
|
+
name: "Jordan",
|
|
49
|
+
organization: "Harper Valley Research Center",
|
|
50
|
+
purpose: "Conduct a non-partisan political opinion poll",
|
|
51
|
+
});
|
|
52
|
+
agent.onCallStart(async (call) => {
|
|
53
|
+
const firstName = await call.getVariable("first_name");
|
|
54
|
+
await call.reachPerson(firstName, {
|
|
55
|
+
greeting: `Hi, is this ${firstName}? I'm calling from the Harper Valley Research Center. ` +
|
|
56
|
+
"We're conducting a brief, non-partisan poll about issues affecting your State.",
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
agent.onReachPerson(async (call, outcome) => {
|
|
60
|
+
if (outcome === "available") {
|
|
61
|
+
const firstName = await call.getVariable("first_name");
|
|
62
|
+
await call.setTask({
|
|
63
|
+
taskId: "political_poll",
|
|
64
|
+
objective: `Conduct a brief political opinion poll with ${firstName}. ` +
|
|
65
|
+
"Be polite, non-partisan, and respect their time.",
|
|
66
|
+
checklist: [
|
|
67
|
+
guava.Field({
|
|
68
|
+
key: "top_issue",
|
|
69
|
+
description: "The most important issue to the respondent right now",
|
|
70
|
+
fieldType: "text",
|
|
71
|
+
question: "What would you say is the most important issue facing your state right now?",
|
|
72
|
+
}),
|
|
73
|
+
guava.Field({
|
|
74
|
+
key: "governor_approval",
|
|
75
|
+
description: "Approval rating of the current governor",
|
|
76
|
+
fieldType: "multiple_choice",
|
|
77
|
+
question: "Do you approve or disapprove of the job the current governor is doing?",
|
|
78
|
+
choices: ["approve", "disapprove", "no_opinion"],
|
|
79
|
+
}),
|
|
80
|
+
guava.Field({
|
|
81
|
+
key: "likely_to_vote",
|
|
82
|
+
description: "How likely the respondent is to vote in the next election",
|
|
83
|
+
fieldType: "multiple_choice",
|
|
84
|
+
question: "How likely are you to vote in the upcoming election?",
|
|
85
|
+
choices: ["very_likely", "likely", "unlikely", "very_unlikely"],
|
|
86
|
+
}),
|
|
87
|
+
],
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
await call.hangup("Appropriately end the call.");
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
agent.onTaskComplete("political_poll", async (call) => {
|
|
95
|
+
// Here is where you would read the poll results using call.getField(...)
|
|
96
|
+
await call.hangup("Thank them for participating and let them know the results will be published next month.");
|
|
97
|
+
});
|
|
98
|
+
async function run(args) {
|
|
99
|
+
const [campaignCode] = args;
|
|
100
|
+
if (!campaignCode) {
|
|
101
|
+
console.error("Usage: guava-example polling-campaign <campaign-code>");
|
|
102
|
+
process.exit(1);
|
|
103
|
+
}
|
|
104
|
+
await agent.attachCampaign(campaignCode);
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=polling-campaign.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polling-campaign.js","sourceRoot":"","sources":["../../examples/polling-campaign.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqEA,kBASC;AA9ED;;;;;;;;GAQG;AACH,2DAA6C;AAE7C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;IAC5B,IAAI,EAAE,QAAQ;IACd,YAAY,EAAE,+BAA+B;IAC7C,OAAO,EAAE,+CAA+C;CACzD,CAAC,CAAC;AAEH,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,IAAgB,EAAE,EAAE;IAC3C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACvD,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;QAChC,QAAQ,EACN,eAAe,SAAS,wDAAwD;YAChF,gFAAgF;KACnF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,IAAgB,EAAE,OAAe,EAAE,EAAE;IAC9D,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACvD,MAAM,IAAI,CAAC,OAAO,CAAC;YACjB,MAAM,EAAE,gBAAgB;YACxB,SAAS,EACP,+CAA+C,SAAS,IAAI;gBAC5D,kDAAkD;YACpD,SAAS,EAAE;gBACT,KAAK,CAAC,KAAK,CAAC;oBACV,GAAG,EAAE,WAAW;oBAChB,WAAW,EAAE,sDAAsD;oBACnE,SAAS,EAAE,MAAM;oBACjB,QAAQ,EAAE,6EAA6E;iBACxF,CAAC;gBACF,KAAK,CAAC,KAAK,CAAC;oBACV,GAAG,EAAE,mBAAmB;oBACxB,WAAW,EAAE,yCAAyC;oBACtD,SAAS,EAAE,iBAAiB;oBAC5B,QAAQ,EAAE,wEAAwE;oBAClF,OAAO,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC;iBACjD,CAAC;gBACF,KAAK,CAAC,KAAK,CAAC;oBACV,GAAG,EAAE,gBAAgB;oBACrB,WAAW,EAAE,2DAA2D;oBACxE,SAAS,EAAE,iBAAiB;oBAC5B,QAAQ,EAAE,sDAAsD;oBAChE,OAAO,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,CAAC;iBAChE,CAAC;aACH;SACF,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC;IACnD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,cAAc,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;IACpD,yEAAyE;IACzE,MAAM,IAAI,CAAC,MAAM,CACf,0FAA0F,CAC3F,CAAC;AACJ,CAAC,CAAC,CAAC;AAEI,KAAK,UAAU,GAAG,CAAC,IAAc;IACtC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;IAE5B,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -5,7 +5,8 @@ export type ChoiceGenerator = (query: string) => Promise<[string[], string[]]>;
|
|
|
5
5
|
export declare const FieldItem: z.ZodObject<{
|
|
6
6
|
item_type: z.ZodLiteral<"field">;
|
|
7
7
|
key: z.ZodString;
|
|
8
|
-
description: z.ZodString
|
|
8
|
+
description: z.ZodDefault<z.ZodString>;
|
|
9
|
+
question: z.ZodDefault<z.ZodString>;
|
|
9
10
|
field_type: z.ZodUnion<z.ZodLiteral<"text" | "date" | "datetime" | "integer" | "multiple_choice" | "calendar_slot">[]>;
|
|
10
11
|
required: z.ZodDefault<z.ZodBoolean>;
|
|
11
12
|
choices: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
@@ -16,7 +17,8 @@ export type FieldItem = z.input<typeof FieldItem>;
|
|
|
16
17
|
export declare const SerializableFieldItem: z.ZodObject<{
|
|
17
18
|
item_type: z.ZodLiteral<"field">;
|
|
18
19
|
key: z.ZodString;
|
|
19
|
-
description: z.ZodString
|
|
20
|
+
description: z.ZodDefault<z.ZodString>;
|
|
21
|
+
question: z.ZodDefault<z.ZodString>;
|
|
20
22
|
field_type: z.ZodUnion<z.ZodLiteral<"text" | "date" | "datetime" | "integer" | "multiple_choice" | "calendar_slot">[]>;
|
|
21
23
|
required: z.ZodDefault<z.ZodBoolean>;
|
|
22
24
|
choices: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
@@ -38,7 +40,8 @@ export type TodoItem = z.input<typeof TodoItem>;
|
|
|
38
40
|
export declare const ActionItem: z.ZodUnion<readonly [z.ZodObject<{
|
|
39
41
|
item_type: z.ZodLiteral<"field">;
|
|
40
42
|
key: z.ZodString;
|
|
41
|
-
description: z.ZodString
|
|
43
|
+
description: z.ZodDefault<z.ZodString>;
|
|
44
|
+
question: z.ZodDefault<z.ZodString>;
|
|
42
45
|
field_type: z.ZodUnion<z.ZodLiteral<"text" | "date" | "datetime" | "integer" | "multiple_choice" | "calendar_slot">[]>;
|
|
43
46
|
required: z.ZodDefault<z.ZodBoolean>;
|
|
44
47
|
choices: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
@@ -55,7 +58,8 @@ export declare const ActionItem: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
55
58
|
export type ActionItem = z.input<typeof ActionItem>;
|
|
56
59
|
export declare function Field(options: {
|
|
57
60
|
key: string;
|
|
58
|
-
description
|
|
61
|
+
description?: string;
|
|
62
|
+
question?: string;
|
|
59
63
|
fieldType: FieldItemType;
|
|
60
64
|
required?: boolean;
|
|
61
65
|
choices?: string[];
|
package/dist/src/action-item.js
CHANGED
|
@@ -42,7 +42,8 @@ exports.FieldItem = z
|
|
|
42
42
|
.object({
|
|
43
43
|
item_type: z.literal("field"),
|
|
44
44
|
key: z.string(),
|
|
45
|
-
description: z.string(),
|
|
45
|
+
description: z.string().default(""),
|
|
46
|
+
question: z.string().default(""),
|
|
46
47
|
field_type: exports.FieldItemType,
|
|
47
48
|
required: z.boolean().default(true),
|
|
48
49
|
choices: z.array(z.string()).default([]),
|
|
@@ -58,7 +59,8 @@ exports.FieldItem = z
|
|
|
58
59
|
exports.SerializableFieldItem = z.object({
|
|
59
60
|
item_type: z.literal("field"),
|
|
60
61
|
key: z.string(),
|
|
61
|
-
description: z.string(),
|
|
62
|
+
description: z.string().default(""),
|
|
63
|
+
question: z.string().default(""),
|
|
62
64
|
field_type: exports.FieldItemType,
|
|
63
65
|
required: z.boolean().default(true),
|
|
64
66
|
choices: z.array(z.string()).default([]),
|
|
@@ -80,6 +82,7 @@ function Field(options) {
|
|
|
80
82
|
item_type: "field",
|
|
81
83
|
key: options.key,
|
|
82
84
|
description: options.description,
|
|
85
|
+
question: options.question,
|
|
83
86
|
field_type: options.fieldType,
|
|
84
87
|
required: options.required,
|
|
85
88
|
choices: options.choices,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-item.js","sourceRoot":"","sources":["../../src/action-item.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"action-item.js","sourceRoot":"","sources":["../../src/action-item.ts"],"names":[],"mappings":"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"}
|
package/dist/src/agent.d.ts
CHANGED
|
@@ -72,7 +72,7 @@ export declare class Agent {
|
|
|
72
72
|
callLocal(): Promise<void>;
|
|
73
73
|
private _dispatchEvent;
|
|
74
74
|
_initCall(variables?: Record<string, any>): Promise<Call>;
|
|
75
|
-
_attachToCall(callId: string, initialVariables?: Record<string, any>, testSession?: TestSession): Promise<void>;
|
|
75
|
+
_attachToCall(callId: string, initialVariables?: Record<string, any>, testSession?: TestSession, route?: string): Promise<void>;
|
|
76
76
|
_listenInbound(conn: InboundConnection): Promise<void>;
|
|
77
77
|
private _handleAssignedCall;
|
|
78
78
|
/**
|
|
@@ -138,6 +138,19 @@ export declare class Agent {
|
|
|
138
138
|
* affecting the original agent.
|
|
139
139
|
*/
|
|
140
140
|
patch(): Agent;
|
|
141
|
+
private _serveCampaign;
|
|
142
|
+
/**
|
|
143
|
+
* Attach this agent to an active Guava campaign and handle outbound calls.
|
|
144
|
+
*
|
|
145
|
+
* Blocks until the campaign connection is closed.
|
|
146
|
+
*
|
|
147
|
+
* @param campaignCode - The campaign code (e.g. `gcmp-...`). Create a campaign
|
|
148
|
+
* and upload contacts via the Guava dashboard or CLI before calling this.
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* await agent.attachCampaign("gcmp-abc123");
|
|
152
|
+
*/
|
|
153
|
+
attachCampaign(campaignCode: string): Promise<void>;
|
|
141
154
|
/** @deprecated Use {@link listenPhone} instead. */
|
|
142
155
|
inboundPhone(phoneNumber: string): Promise<void>;
|
|
143
156
|
/** @deprecated Use {@link callPhone} instead. */
|
package/dist/src/agent.js
CHANGED
|
@@ -132,6 +132,7 @@ const commands_ts_1 = require("./commands.js");
|
|
|
132
132
|
const events_ts_1 = require("./events.js");
|
|
133
133
|
const telemetry_ts_1 = require("./telemetry.js");
|
|
134
134
|
const client_ts_1 = require("./socket/client.js");
|
|
135
|
+
const guavadialer_events_ts_1 = require("./guavadialer-events.js");
|
|
135
136
|
const ListenInbound = __importStar(require("./socket/listen-inbound.js"));
|
|
136
137
|
const session_ts_1 = require("./testing/session.js");
|
|
137
138
|
const protocol_ts_1 = require("./testing/protocol.js");
|
|
@@ -445,11 +446,11 @@ let Agent = (() => {
|
|
|
445
446
|
}
|
|
446
447
|
return call;
|
|
447
448
|
}
|
|
448
|
-
async _attachToCall(callId, initialVariables = {}, testSession) {
|
|
449
|
+
async _attachToCall(callId, initialVariables = {}, testSession, route = "v2/connect-call") {
|
|
449
450
|
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
450
451
|
try {
|
|
451
452
|
const call = await this._initCall(initialVariables);
|
|
452
|
-
const url = new URL(
|
|
453
|
+
const url = new URL(`${route}/${callId}`, this._client.getWebsocketBase());
|
|
453
454
|
const socket = __addDisposableResource(env_1, await new client_ts_1.GuavaSocket(`call-connection-${callId}`, url.toString(), this._client, (cmd) => cmd, (payload) => (0, events_ts_1.decodeEventDict)(payload), 18000).connect(), true);
|
|
454
455
|
await call.setDrain(async (commands) => {
|
|
455
456
|
for (const command of commands.splice(0)) {
|
|
@@ -727,6 +728,70 @@ Choose "speak" and provide your next utterance, or choose "hangup" if the conver
|
|
|
727
728
|
cloned._onDtmf = this._onDtmf;
|
|
728
729
|
return cloned;
|
|
729
730
|
}
|
|
731
|
+
async _serveCampaign(campaignCode) {
|
|
732
|
+
const env_3 = { stack: [], error: void 0, hasError: false };
|
|
733
|
+
try {
|
|
734
|
+
const campaignUrl = new URL(`v1/campaigns/${campaignCode}`, this._client.getHttpBase());
|
|
735
|
+
const campaignResponse = await (0, utils_ts_1.fetchOrThrow)(campaignUrl, {
|
|
736
|
+
headers: await this._client.headers(),
|
|
737
|
+
});
|
|
738
|
+
const campaign = (await campaignResponse.json());
|
|
739
|
+
const wsUrl = new URL(`v1/serve-campaign/${campaign.id}`, this._client.getWebsocketBase());
|
|
740
|
+
this._logger.info("Connecting to campaign '%s' (id: %s).", campaign.name, campaign.id);
|
|
741
|
+
const socket = __addDisposableResource(env_3, await new client_ts_1.GuavaSocket("serve-campaign", wsUrl.toString(), this._client, (msg) => msg, guavadialer_events_ts_1.decodeServerMessage).connect(), true);
|
|
742
|
+
const activeCalls = [];
|
|
743
|
+
try {
|
|
744
|
+
for await (const msg of socket) {
|
|
745
|
+
switch (msg.message_type) {
|
|
746
|
+
case "listen-started":
|
|
747
|
+
this._logger.info("Listening for calls on campaign '%s'. Ready.", campaign.name);
|
|
748
|
+
break;
|
|
749
|
+
case "initiate-and-assign-call": {
|
|
750
|
+
const { call_id, contact_data } = msg;
|
|
751
|
+
const data = contact_data;
|
|
752
|
+
const logPhone = data?.phone_number ?? "?";
|
|
753
|
+
this._logger.info("Ready to make call, id %s — initiating call setup and dispatch for contact %s.", call_id, logPhone);
|
|
754
|
+
activeCalls.push((async () => {
|
|
755
|
+
socket.send({ message_type: "controller-ready", call_id });
|
|
756
|
+
const variables = data?.data ?? {};
|
|
757
|
+
await this._attachToCall(call_id, variables, undefined, "v2/connect-campaign-call");
|
|
758
|
+
})());
|
|
759
|
+
break;
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
}
|
|
763
|
+
}
|
|
764
|
+
catch (e) {
|
|
765
|
+
if (!(e instanceof client_ts_1.GuavaSocketClosedError))
|
|
766
|
+
throw e;
|
|
767
|
+
this._logger.info("Campaign '%s' disconnected.", campaign.name);
|
|
768
|
+
}
|
|
769
|
+
await Promise.all(activeCalls);
|
|
770
|
+
}
|
|
771
|
+
catch (e_3) {
|
|
772
|
+
env_3.error = e_3;
|
|
773
|
+
env_3.hasError = true;
|
|
774
|
+
}
|
|
775
|
+
finally {
|
|
776
|
+
const result_3 = __disposeResources(env_3);
|
|
777
|
+
if (result_3)
|
|
778
|
+
await result_3;
|
|
779
|
+
}
|
|
780
|
+
}
|
|
781
|
+
/**
|
|
782
|
+
* Attach this agent to an active Guava campaign and handle outbound calls.
|
|
783
|
+
*
|
|
784
|
+
* Blocks until the campaign connection is closed.
|
|
785
|
+
*
|
|
786
|
+
* @param campaignCode - The campaign code (e.g. `gcmp-...`). Create a campaign
|
|
787
|
+
* and upload contacts via the Guava dashboard or CLI before calling this.
|
|
788
|
+
*
|
|
789
|
+
* @example
|
|
790
|
+
* await agent.attachCampaign("gcmp-abc123");
|
|
791
|
+
*/
|
|
792
|
+
async attachCampaign(campaignCode) {
|
|
793
|
+
return this._serveCampaign(campaignCode);
|
|
794
|
+
}
|
|
730
795
|
/* ===== Aliases to be removed at some point. ===== */
|
|
731
796
|
/** @deprecated Use {@link listenPhone} instead. */
|
|
732
797
|
async inboundPhone(phoneNumber) {
|
package/dist/src/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/src/commands.d.ts
CHANGED
|
@@ -26,7 +26,8 @@ export declare const SetTaskCommand: z.ZodObject<{
|
|
|
26
26
|
action_items: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
27
27
|
item_type: z.ZodLiteral<"field">;
|
|
28
28
|
key: z.ZodString;
|
|
29
|
-
description: z.ZodString
|
|
29
|
+
description: z.ZodDefault<z.ZodString>;
|
|
30
|
+
question: z.ZodDefault<z.ZodString>;
|
|
30
31
|
field_type: z.ZodUnion<z.ZodLiteral<"text" | "date" | "datetime" | "integer" | "multiple_choice" | "calendar_slot">[]>;
|
|
31
32
|
required: z.ZodDefault<z.ZodBoolean>;
|
|
32
33
|
choices: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
@@ -146,7 +147,8 @@ export declare const AnyCommand: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
146
147
|
action_items: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
147
148
|
item_type: z.ZodLiteral<"field">;
|
|
148
149
|
key: z.ZodString;
|
|
149
|
-
description: z.ZodString
|
|
150
|
+
description: z.ZodDefault<z.ZodString>;
|
|
151
|
+
question: z.ZodDefault<z.ZodString>;
|
|
150
152
|
field_type: z.ZodUnion<z.ZodLiteral<"text" | "date" | "datetime" | "integer" | "multiple_choice" | "calendar_slot">[]>;
|
|
151
153
|
required: z.ZodDefault<z.ZodBoolean>;
|
|
152
154
|
choices: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
@@ -240,7 +242,8 @@ export declare const InboundTunnelCommand: z.ZodObject<{
|
|
|
240
242
|
action_items: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
241
243
|
item_type: z.ZodLiteral<"field">;
|
|
242
244
|
key: z.ZodString;
|
|
243
|
-
description: z.ZodString
|
|
245
|
+
description: z.ZodDefault<z.ZodString>;
|
|
246
|
+
question: z.ZodDefault<z.ZodString>;
|
|
244
247
|
field_type: z.ZodUnion<z.ZodLiteral<"text" | "date" | "datetime" | "integer" | "multiple_choice" | "calendar_slot">[]>;
|
|
245
248
|
required: z.ZodDefault<z.ZodBoolean>;
|
|
246
249
|
choices: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import * as z from "zod";
|
|
2
|
+
export declare const ListenStarted: z.ZodObject<{
|
|
3
|
+
message_type: z.ZodLiteral<"listen-started">;
|
|
4
|
+
other_listeners: z.ZodNumber;
|
|
5
|
+
}, z.core.$strip>;
|
|
6
|
+
export type ListenStarted = z.infer<typeof ListenStarted>;
|
|
7
|
+
/**
|
|
8
|
+
* @description Sent from the server when it wants to start a call and has assigned it to the appropriate pod.
|
|
9
|
+
*/
|
|
10
|
+
export declare const InitiateAndAssignCall: z.ZodObject<{
|
|
11
|
+
message_type: z.ZodLiteral<"initiate-and-assign-call">;
|
|
12
|
+
call_id: z.ZodString;
|
|
13
|
+
contact_data: z.ZodUnknown;
|
|
14
|
+
}, z.core.$strip>;
|
|
15
|
+
export type InitiateAndAssignCall = z.infer<typeof InitiateAndAssignCall>;
|
|
16
|
+
/**
|
|
17
|
+
* @description Sent from the client when it has initiated a call controller and is ready to connect to the call.
|
|
18
|
+
*/
|
|
19
|
+
export declare const ControllerReady: z.ZodObject<{
|
|
20
|
+
message_type: z.ZodLiteral<"controller-ready">;
|
|
21
|
+
call_id: z.ZodString;
|
|
22
|
+
}, z.core.$strip>;
|
|
23
|
+
export type ControllerReady = z.infer<typeof ControllerReady>;
|
|
24
|
+
/**
|
|
25
|
+
* @description Sent from the client when the controller failed to initialize (e.g. timeout). The server should release any resources held for this call.
|
|
26
|
+
*/
|
|
27
|
+
export declare const InitControllerFailed: z.ZodObject<{
|
|
28
|
+
message_type: z.ZodLiteral<"init-controller-failed">;
|
|
29
|
+
call_id: z.ZodString;
|
|
30
|
+
}, z.core.$strip>;
|
|
31
|
+
export type InitControllerFailed = z.infer<typeof InitControllerFailed>;
|
|
32
|
+
export declare const ServerMessage: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
33
|
+
message_type: z.ZodLiteral<"listen-started">;
|
|
34
|
+
other_listeners: z.ZodNumber;
|
|
35
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
36
|
+
message_type: z.ZodLiteral<"initiate-and-assign-call">;
|
|
37
|
+
call_id: z.ZodString;
|
|
38
|
+
contact_data: z.ZodUnknown;
|
|
39
|
+
}, z.core.$strip>], "message_type">;
|
|
40
|
+
export type ServerMessage = z.infer<typeof ServerMessage>;
|
|
41
|
+
export declare const ClientMessage: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
42
|
+
message_type: z.ZodLiteral<"controller-ready">;
|
|
43
|
+
call_id: z.ZodString;
|
|
44
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
45
|
+
message_type: z.ZodLiteral<"init-controller-failed">;
|
|
46
|
+
call_id: z.ZodString;
|
|
47
|
+
}, z.core.$strip>], "message_type">;
|
|
48
|
+
export type ClientMessage = z.infer<typeof ClientMessage>;
|
|
49
|
+
export declare function decodeServerMessage(payload: Record<string, unknown>): ServerMessage;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.ClientMessage = exports.ServerMessage = exports.InitControllerFailed = exports.ControllerReady = exports.InitiateAndAssignCall = exports.ListenStarted = void 0;
|
|
37
|
+
exports.decodeServerMessage = decodeServerMessage;
|
|
38
|
+
const z = __importStar(require("zod"));
|
|
39
|
+
exports.ListenStarted = z.object({
|
|
40
|
+
message_type: z.literal("listen-started"),
|
|
41
|
+
other_listeners: z.number().int(),
|
|
42
|
+
});
|
|
43
|
+
/**
|
|
44
|
+
* @description Sent from the server when it wants to start a call and has assigned it to the appropriate pod.
|
|
45
|
+
*/
|
|
46
|
+
exports.InitiateAndAssignCall = z.object({
|
|
47
|
+
message_type: z.literal("initiate-and-assign-call"),
|
|
48
|
+
call_id: z.string(),
|
|
49
|
+
contact_data: z.unknown(),
|
|
50
|
+
});
|
|
51
|
+
/**
|
|
52
|
+
* @description Sent from the client when it has initiated a call controller and is ready to connect to the call.
|
|
53
|
+
*/
|
|
54
|
+
exports.ControllerReady = z.object({
|
|
55
|
+
message_type: z.literal("controller-ready"),
|
|
56
|
+
call_id: z.string(),
|
|
57
|
+
});
|
|
58
|
+
/**
|
|
59
|
+
* @description Sent from the client when the controller failed to initialize (e.g. timeout). The server should release any resources held for this call.
|
|
60
|
+
*/
|
|
61
|
+
exports.InitControllerFailed = z.object({
|
|
62
|
+
message_type: z.literal("init-controller-failed"),
|
|
63
|
+
call_id: z.string(),
|
|
64
|
+
});
|
|
65
|
+
exports.ServerMessage = z.discriminatedUnion("message_type", [
|
|
66
|
+
exports.ListenStarted,
|
|
67
|
+
exports.InitiateAndAssignCall,
|
|
68
|
+
]);
|
|
69
|
+
exports.ClientMessage = z.discriminatedUnion("message_type", [
|
|
70
|
+
exports.ControllerReady,
|
|
71
|
+
exports.InitControllerFailed,
|
|
72
|
+
]);
|
|
73
|
+
function decodeServerMessage(payload) {
|
|
74
|
+
return exports.ServerMessage.parse(payload);
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=guavadialer-events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guavadialer-events.js","sourceRoot":"","sources":["../../src/guavadialer-events.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,kDAEC;AAlDD,uCAAyB;AAEZ,QAAA,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACzC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;CAClC,CAAC,CAAC;AAGH;;GAEG;AACU,QAAA,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC;IACnD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE;CAC1B,CAAC,CAAC;AAGH;;GAEG;AACU,QAAA,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAGH;;GAEG;AACU,QAAA,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC;IACjD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAGU,QAAA,aAAa,GAAG,CAAC,CAAC,kBAAkB,CAAC,cAAc,EAAE;IAChE,qBAAa;IACb,6BAAqB;CACtB,CAAC,CAAC;AAGU,QAAA,aAAa,GAAG,CAAC,CAAC,kBAAkB,CAAC,cAAc,EAAE;IAChE,uBAAe;IACf,4BAAoB;CACrB,CAAC,CAAC;AAGH,SAAgB,mBAAmB,CAAC,OAAgC;IAClE,OAAO,qBAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC"}
|
package/dist/src/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const SDK_VERSION = "0.
|
|
1
|
+
export declare const SDK_VERSION = "0.21.0";
|
package/dist/src/version.js
CHANGED
package/examples/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# Examples
|
|
2
2
|
|
|
3
|
-
- [
|
|
4
|
-
- [
|
|
5
|
-
- [
|
|
6
|
-
- [
|
|
3
|
+
- [example.test.ts](./example.test.ts) - Agent testing example demonstrating `agent.test()`, `agent.testRoleplay()`, `agent.patch()`, and `session.evaluate()` for unit testing handlers, scripted conversation flows, LLM-driven roleplay, and natural-language pass/fail evaluation.
|
|
4
|
+
- [help-desk.ts](./help-desk.ts) - An inbound call agent for a furniture retailer that uses `DocumentQA` for RAG-based question answering and `IntentRecognizer` to classify caller intent and route to the appropriate department.
|
|
5
|
+
- [polling-campaign.ts](./polling-campaign.ts) - Attaches a political polling agent to an existing Guava campaign via `attachCampaign()`, uses `reachPerson()` to confirm availability, then conducts a structured poll with text and multiple-choice fields.
|
|
6
|
+
- [property-insurance.ts](./property-insurance.ts) - A simple inbound call agent that uses `DocumentQA` and RAG to answer questions about a property insurance policy.
|
|
7
|
+
- [restaurant-waitlist.ts](./restaurant-waitlist.ts) - An inbound call agent that collects a caller's name, party size, and phone number to add them to a restaurant waitlist using a structured task checklist.
|
|
8
|
+
- [scheduling-outbound.ts](./scheduling-outbound.ts) - An outbound call agent for a dental office that calls patients to schedule appointments, using `reachPerson()` for human detection and `DatetimeFilter` for searchable calendar slot availability.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This example attaches a political polling agent to an ongoing Guava campaign.
|
|
3
|
+
*
|
|
4
|
+
* To use this, first create a campaign from the dashboard or CLI and add contacts.
|
|
5
|
+
* Then, run this script with the campaign code and the Agent will start making calls
|
|
6
|
+
* to those registered contacts.
|
|
7
|
+
*
|
|
8
|
+
* Usage: guava-example polling-campaign <campaign-code>
|
|
9
|
+
*/
|
|
10
|
+
import * as guava from "@guava-ai/guava-sdk";
|
|
11
|
+
|
|
12
|
+
const agent = new guava.Agent({
|
|
13
|
+
name: "Jordan",
|
|
14
|
+
organization: "Harper Valley Research Center",
|
|
15
|
+
purpose: "Conduct a non-partisan political opinion poll",
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
agent.onCallStart(async (call: guava.Call) => {
|
|
19
|
+
const firstName = await call.getVariable("first_name");
|
|
20
|
+
await call.reachPerson(firstName, {
|
|
21
|
+
greeting:
|
|
22
|
+
`Hi, is this ${firstName}? I'm calling from the Harper Valley Research Center. ` +
|
|
23
|
+
"We're conducting a brief, non-partisan poll about issues affecting your State.",
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
agent.onReachPerson(async (call: guava.Call, outcome: string) => {
|
|
28
|
+
if (outcome === "available") {
|
|
29
|
+
const firstName = await call.getVariable("first_name");
|
|
30
|
+
await call.setTask({
|
|
31
|
+
taskId: "political_poll",
|
|
32
|
+
objective:
|
|
33
|
+
`Conduct a brief political opinion poll with ${firstName}. ` +
|
|
34
|
+
"Be polite, non-partisan, and respect their time.",
|
|
35
|
+
checklist: [
|
|
36
|
+
guava.Field({
|
|
37
|
+
key: "top_issue",
|
|
38
|
+
description: "The most important issue to the respondent right now",
|
|
39
|
+
fieldType: "text",
|
|
40
|
+
question: "What would you say is the most important issue facing your state right now?",
|
|
41
|
+
}),
|
|
42
|
+
guava.Field({
|
|
43
|
+
key: "governor_approval",
|
|
44
|
+
description: "Approval rating of the current governor",
|
|
45
|
+
fieldType: "multiple_choice",
|
|
46
|
+
question: "Do you approve or disapprove of the job the current governor is doing?",
|
|
47
|
+
choices: ["approve", "disapprove", "no_opinion"],
|
|
48
|
+
}),
|
|
49
|
+
guava.Field({
|
|
50
|
+
key: "likely_to_vote",
|
|
51
|
+
description: "How likely the respondent is to vote in the next election",
|
|
52
|
+
fieldType: "multiple_choice",
|
|
53
|
+
question: "How likely are you to vote in the upcoming election?",
|
|
54
|
+
choices: ["very_likely", "likely", "unlikely", "very_unlikely"],
|
|
55
|
+
}),
|
|
56
|
+
],
|
|
57
|
+
});
|
|
58
|
+
} else {
|
|
59
|
+
await call.hangup("Appropriately end the call.");
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
agent.onTaskComplete("political_poll", async (call) => {
|
|
64
|
+
// Here is where you would read the poll results using call.getField(...)
|
|
65
|
+
await call.hangup(
|
|
66
|
+
"Thank them for participating and let them know the results will be published next month.",
|
|
67
|
+
);
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
export async function run(args: string[]) {
|
|
71
|
+
const [campaignCode] = args;
|
|
72
|
+
|
|
73
|
+
if (!campaignCode) {
|
|
74
|
+
console.error("Usage: guava-example polling-campaign <campaign-code>");
|
|
75
|
+
process.exit(1);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
await agent.attachCampaign(campaignCode);
|
|
79
|
+
}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@guava-ai/guava-sdk",
|
|
3
3
|
"description": "The official TypeScript SDK for building Guava voice agents.",
|
|
4
4
|
"homepage": "https://docs.goguava.ai/typescript-sdk/",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.21.0",
|
|
6
6
|
"type": "commonjs",
|
|
7
7
|
"main": "dist/src/index.js",
|
|
8
8
|
"types": "dist/src/index.d.ts",
|
package/src/action-item.ts
CHANGED
|
@@ -13,7 +13,8 @@ export const FieldItem = z
|
|
|
13
13
|
.object({
|
|
14
14
|
item_type: z.literal("field"),
|
|
15
15
|
key: z.string(),
|
|
16
|
-
description: z.string(),
|
|
16
|
+
description: z.string().default(""),
|
|
17
|
+
question: z.string().default(""),
|
|
17
18
|
field_type: FieldItemType,
|
|
18
19
|
required: z.boolean().default(true),
|
|
19
20
|
choices: z.array(z.string()).default([]),
|
|
@@ -34,7 +35,8 @@ export type FieldItem = z.input<typeof FieldItem>;
|
|
|
34
35
|
export const SerializableFieldItem = z.object({
|
|
35
36
|
item_type: z.literal("field"),
|
|
36
37
|
key: z.string(),
|
|
37
|
-
description: z.string(),
|
|
38
|
+
description: z.string().default(""),
|
|
39
|
+
question: z.string().default(""),
|
|
38
40
|
field_type: FieldItemType,
|
|
39
41
|
required: z.boolean().default(true),
|
|
40
42
|
choices: z.array(z.string()).default([]),
|
|
@@ -61,7 +63,8 @@ export type ActionItem = z.input<typeof ActionItem>;
|
|
|
61
63
|
|
|
62
64
|
export function Field(options: {
|
|
63
65
|
key: string;
|
|
64
|
-
description
|
|
66
|
+
description?: string;
|
|
67
|
+
question?: string;
|
|
65
68
|
fieldType: FieldItemType;
|
|
66
69
|
required?: boolean;
|
|
67
70
|
choices?: string[];
|
|
@@ -72,6 +75,7 @@ export function Field(options: {
|
|
|
72
75
|
item_type: "field",
|
|
73
76
|
key: options.key,
|
|
74
77
|
description: options.description,
|
|
78
|
+
question: options.question,
|
|
75
79
|
field_type: options.fieldType,
|
|
76
80
|
required: options.required,
|
|
77
81
|
choices: options.choices,
|
package/src/agent.ts
CHANGED
|
@@ -20,6 +20,11 @@ import {
|
|
|
20
20
|
} from "./events.ts";
|
|
21
21
|
import { telemetryClient } from "./telemetry.ts";
|
|
22
22
|
import { GuavaSocket, GuavaSocketClosedError } from "./socket/client.ts";
|
|
23
|
+
import {
|
|
24
|
+
type ClientMessage as DialerClientMessage,
|
|
25
|
+
type ServerMessage as DialerServerMessage,
|
|
26
|
+
decodeServerMessage as decodeDialerServerMessage,
|
|
27
|
+
} from "./guavadialer-events.ts";
|
|
23
28
|
import * as ListenInbound from "./socket/listen-inbound.ts";
|
|
24
29
|
import type { CallInfo } from "./socket/call-info.ts";
|
|
25
30
|
import { TestSession } from "./testing/session.ts";
|
|
@@ -352,10 +357,11 @@ export class Agent {
|
|
|
352
357
|
callId: string,
|
|
353
358
|
initialVariables: Record<string, any> = {},
|
|
354
359
|
testSession?: TestSession,
|
|
360
|
+
route: string = "v2/connect-call",
|
|
355
361
|
): Promise<void> {
|
|
356
362
|
const call = await this._initCall(initialVariables);
|
|
357
363
|
|
|
358
|
-
const url = new URL(
|
|
364
|
+
const url = new URL(`${route}/${callId}`, this._client.getWebsocketBase());
|
|
359
365
|
await using socket = await new GuavaSocket<Command, GuavaEvent | null>(
|
|
360
366
|
`call-connection-${callId}`,
|
|
361
367
|
url.toString(),
|
|
@@ -674,6 +680,75 @@ Choose "speak" and provide your next utterance, or choose "hangup" if the conver
|
|
|
674
680
|
return cloned;
|
|
675
681
|
}
|
|
676
682
|
|
|
683
|
+
private async _serveCampaign(campaignCode: string): Promise<void> {
|
|
684
|
+
const campaignUrl = new URL(`v1/campaigns/${campaignCode}`, this._client.getHttpBase());
|
|
685
|
+
const campaignResponse = await fetchOrThrow(campaignUrl, {
|
|
686
|
+
headers: await this._client.headers(),
|
|
687
|
+
});
|
|
688
|
+
const campaign = (await campaignResponse.json()) as { id: string; name: string };
|
|
689
|
+
|
|
690
|
+
const wsUrl = new URL(`v1/serve-campaign/${campaign.id}`, this._client.getWebsocketBase());
|
|
691
|
+
this._logger.info("Connecting to campaign '%s' (id: %s).", campaign.name, campaign.id);
|
|
692
|
+
|
|
693
|
+
await using socket = await new GuavaSocket<DialerClientMessage, DialerServerMessage>(
|
|
694
|
+
"serve-campaign",
|
|
695
|
+
wsUrl.toString(),
|
|
696
|
+
this._client,
|
|
697
|
+
(msg) => msg as unknown as Record<string, unknown>,
|
|
698
|
+
decodeDialerServerMessage,
|
|
699
|
+
).connect();
|
|
700
|
+
|
|
701
|
+
const activeCalls: Promise<void>[] = [];
|
|
702
|
+
|
|
703
|
+
try {
|
|
704
|
+
for await (const msg of socket) {
|
|
705
|
+
switch (msg.message_type) {
|
|
706
|
+
case "listen-started":
|
|
707
|
+
this._logger.info("Listening for calls on campaign '%s'. Ready.", campaign.name);
|
|
708
|
+
break;
|
|
709
|
+
case "initiate-and-assign-call": {
|
|
710
|
+
const { call_id, contact_data } = msg;
|
|
711
|
+
const data = contact_data as Record<string, unknown> | null;
|
|
712
|
+
const logPhone = (data?.phone_number as string | undefined) ?? "?";
|
|
713
|
+
this._logger.info(
|
|
714
|
+
"Ready to make call, id %s — initiating call setup and dispatch for contact %s.",
|
|
715
|
+
call_id,
|
|
716
|
+
logPhone,
|
|
717
|
+
);
|
|
718
|
+
activeCalls.push(
|
|
719
|
+
(async () => {
|
|
720
|
+
socket.send({ message_type: "controller-ready", call_id });
|
|
721
|
+
const variables = (data?.data as Record<string, unknown>) ?? {};
|
|
722
|
+
await this._attachToCall(call_id, variables, undefined, "v2/connect-campaign-call");
|
|
723
|
+
})(),
|
|
724
|
+
);
|
|
725
|
+
break;
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
} catch (e) {
|
|
730
|
+
if (!(e instanceof GuavaSocketClosedError)) throw e;
|
|
731
|
+
this._logger.info("Campaign '%s' disconnected.", campaign.name);
|
|
732
|
+
}
|
|
733
|
+
|
|
734
|
+
await Promise.all(activeCalls);
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
/**
|
|
738
|
+
* Attach this agent to an active Guava campaign and handle outbound calls.
|
|
739
|
+
*
|
|
740
|
+
* Blocks until the campaign connection is closed.
|
|
741
|
+
*
|
|
742
|
+
* @param campaignCode - The campaign code (e.g. `gcmp-...`). Create a campaign
|
|
743
|
+
* and upload contacts via the Guava dashboard or CLI before calling this.
|
|
744
|
+
*
|
|
745
|
+
* @example
|
|
746
|
+
* await agent.attachCampaign("gcmp-abc123");
|
|
747
|
+
*/
|
|
748
|
+
async attachCampaign(campaignCode: string): Promise<void> {
|
|
749
|
+
return this._serveCampaign(campaignCode);
|
|
750
|
+
}
|
|
751
|
+
|
|
677
752
|
/* ===== Aliases to be removed at some point. ===== */
|
|
678
753
|
/** @deprecated Use {@link listenPhone} instead. */
|
|
679
754
|
async inboundPhone(phoneNumber: string): Promise<void> {
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import * as z from "zod";
|
|
2
|
+
|
|
3
|
+
export const ListenStarted = z.object({
|
|
4
|
+
message_type: z.literal("listen-started"),
|
|
5
|
+
other_listeners: z.number().int(),
|
|
6
|
+
});
|
|
7
|
+
export type ListenStarted = z.infer<typeof ListenStarted>;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @description Sent from the server when it wants to start a call and has assigned it to the appropriate pod.
|
|
11
|
+
*/
|
|
12
|
+
export const InitiateAndAssignCall = z.object({
|
|
13
|
+
message_type: z.literal("initiate-and-assign-call"),
|
|
14
|
+
call_id: z.string(),
|
|
15
|
+
contact_data: z.unknown(),
|
|
16
|
+
});
|
|
17
|
+
export type InitiateAndAssignCall = z.infer<typeof InitiateAndAssignCall>;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @description Sent from the client when it has initiated a call controller and is ready to connect to the call.
|
|
21
|
+
*/
|
|
22
|
+
export const ControllerReady = z.object({
|
|
23
|
+
message_type: z.literal("controller-ready"),
|
|
24
|
+
call_id: z.string(),
|
|
25
|
+
});
|
|
26
|
+
export type ControllerReady = z.infer<typeof ControllerReady>;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @description Sent from the client when the controller failed to initialize (e.g. timeout). The server should release any resources held for this call.
|
|
30
|
+
*/
|
|
31
|
+
export const InitControllerFailed = z.object({
|
|
32
|
+
message_type: z.literal("init-controller-failed"),
|
|
33
|
+
call_id: z.string(),
|
|
34
|
+
});
|
|
35
|
+
export type InitControllerFailed = z.infer<typeof InitControllerFailed>;
|
|
36
|
+
|
|
37
|
+
export const ServerMessage = z.discriminatedUnion("message_type", [
|
|
38
|
+
ListenStarted,
|
|
39
|
+
InitiateAndAssignCall,
|
|
40
|
+
]);
|
|
41
|
+
export type ServerMessage = z.infer<typeof ServerMessage>;
|
|
42
|
+
|
|
43
|
+
export const ClientMessage = z.discriminatedUnion("message_type", [
|
|
44
|
+
ControllerReady,
|
|
45
|
+
InitControllerFailed,
|
|
46
|
+
]);
|
|
47
|
+
export type ClientMessage = z.infer<typeof ClientMessage>;
|
|
48
|
+
|
|
49
|
+
export function decodeServerMessage(payload: Record<string, unknown>): ServerMessage {
|
|
50
|
+
return ServerMessage.parse(payload);
|
|
51
|
+
}
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const SDK_VERSION = "0.
|
|
1
|
+
export const SDK_VERSION = "0.21.0";
|