@guava-ai/guava-sdk 0.20.0 → 0.22.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.
@@ -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;CACnD,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"}
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: string;
61
+ description?: string;
62
+ question?: string;
59
63
  fieldType: FieldItemType;
60
64
  required?: boolean;
61
65
  choices?: string[];
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DA,sBAmBC;AAED,kBAKC;AAvFD,uCAAyB;AAEZ,QAAA,aAAa,GAAG,CAAC,CAAC,KAAK,CACjC,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAE,eAAe,CAAW,CAAC,GAAG,CACxF,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CACxB,CACF,CAAC;AAKW,QAAA,SAAS,GAAG,CAAC;KACvB,MAAM,CAAC;IACN,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC7B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,qBAAa;IACzB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,eAAe,EAAE,CAAC,CAAC,MAAM,CAAkB,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC,QAAQ,EAAE;IACzF,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACvC,CAAC;KACD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;IAChB,IAAI,KAAK,CAAC,UAAU,KAAK,iBAAiB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACxE,OAAO,CAAC,WAAW,CACjB,8EAA8E,EAC9E,aAAa,CACd,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC,CAAC;AAGQ,QAAA,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC7B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,qBAAa;IACzB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAC5C,CAAC,CAAC;AAGU,QAAA,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAC1E,CAAC,CAAC;AAGU,QAAA,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAC1E,CAAC,CAAC;AAGU,QAAA,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,6BAAqB,EAAE,eAAO,EAAE,gBAAQ,CAAC,CAAC,CAAC;AAG9E,SAAgB,KAAK,CAAC,OAQrB;IACC,OAAO,iBAAS,CAAC,KAAK,CAAC;QACrB,SAAS,EAAE,OAAO;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,UAAU,EAAE,OAAO,CAAC,SAAS;QAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,GAAG,CAAC,SAAiB;IACnC,OAAO,eAAO,CAAC,KAAK,CAAC;QACnB,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE,SAAS;KACrB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"action-item.js","sourceRoot":"","sources":["../../src/action-item.ts"],"names":[],"mappings":"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"}
@@ -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(`v2/connect-call/${callId}`, this._client.getWebsocketBase());
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) {
@@ -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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"}
@@ -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"}
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "0.20.0";
1
+ export declare const SDK_VERSION = "0.22.0";
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SDK_VERSION = void 0;
4
- exports.SDK_VERSION = "0.20.0";
4
+ exports.SDK_VERSION = "0.22.0";
5
5
  //# sourceMappingURL=version.js.map
@@ -1,6 +1,8 @@
1
1
  # Examples
2
2
 
3
- - [help-desk.ts](./help-desk.ts) - An inbound phone call example for a furniture retailer that uses `DocumentQA` to answer product questions and `IntentRecognizer` to classify caller intent, then transfers the caller to the appropriate department (sales, delivery and returns, account management, or general support).
4
- - [property-insurance.ts](./property-insurance.ts) - An inbound phone call example (supporting both phone and WebRTC) that uses `DocumentQA` and RAG to answer caller questions about a property insurance policy.
5
- - [restaurant-waitlist.ts](./restaurant-waitlist.ts) - An inbound phone call example (supporting both phone and WebRTC) where the agent collects caller name, party size, and phone number to add the caller to a restaurant waitlist, then hangs up after confirming the details.
6
- - [scheduling-outbound.ts](./scheduling-outbound.ts) - An outbound phone call example where the agent calls a dental patient, verifies they are available, and schedules a cleaning appointment by searching available calendar slots using a `DatetimeFilter`.
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.20.0",
5
+ "version": "0.22.0",
6
6
  "type": "commonjs",
7
7
  "main": "dist/src/index.js",
8
8
  "types": "dist/src/index.d.ts",
@@ -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: string;
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(`v2/connect-call/${callId}`, this._client.getWebsocketBase());
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.20.0";
1
+ export const SDK_VERSION = "0.22.0";