@guava-ai/guava-sdk 0.3.0 → 0.4.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.
Files changed (57) hide show
  1. package/bin/example-runner.js +16 -7
  2. package/dist/examples/credit-card-activation.js +94 -112
  3. package/dist/examples/credit-card-activation.js.map +1 -1
  4. package/dist/examples/property-insurance.js +12 -26
  5. package/dist/examples/property-insurance.js.map +1 -1
  6. package/dist/examples/scheduling-outbound.d.ts +1 -0
  7. package/dist/examples/scheduling-outbound.js +62 -0
  8. package/dist/examples/scheduling-outbound.js.map +1 -0
  9. package/dist/examples/thai-palace.js +25 -43
  10. package/dist/examples/thai-palace.js.map +1 -1
  11. package/dist/package.json +7 -5
  12. package/dist/src/action_item.d.ts +34 -12
  13. package/dist/src/action_item.js +34 -7
  14. package/dist/src/action_item.js.map +1 -1
  15. package/dist/src/call-controller.d.ts +137 -0
  16. package/dist/src/call-controller.js +433 -0
  17. package/dist/src/call-controller.js.map +1 -0
  18. package/dist/src/commands.d.ts +67 -27
  19. package/dist/src/commands.js +41 -27
  20. package/dist/src/commands.js.map +1 -1
  21. package/dist/src/events.d.ts +47 -30
  22. package/dist/src/events.js +42 -36
  23. package/dist/src/events.js.map +1 -1
  24. package/dist/src/example_data.d.ts +1 -0
  25. package/dist/src/example_data.js +33 -0
  26. package/dist/src/example_data.js.map +1 -1
  27. package/dist/src/helpers/openai.d.ts +12 -1
  28. package/dist/src/helpers/openai.js +168 -68
  29. package/dist/src/helpers/openai.js.map +1 -1
  30. package/dist/src/index.d.ts +6 -121
  31. package/dist/src/index.js +249 -483
  32. package/dist/src/index.js.map +1 -1
  33. package/dist/src/logging.d.ts +2 -1
  34. package/dist/src/logging.js +32 -7
  35. package/dist/src/logging.js.map +1 -1
  36. package/dist/src/telemetry.d.ts +23 -0
  37. package/dist/src/telemetry.js +98 -0
  38. package/dist/src/telemetry.js.map +1 -0
  39. package/dist/src/utils.d.ts +3 -0
  40. package/dist/src/utils.js +28 -0
  41. package/dist/src/utils.js.map +1 -0
  42. package/examples/biome.json +5 -0
  43. package/examples/credit-card-activation.ts +20 -26
  44. package/examples/property-insurance.ts +6 -16
  45. package/examples/scheduling-outbound.ts +80 -0
  46. package/examples/thai-palace.ts +10 -13
  47. package/package.json +7 -5
  48. package/src/action_item.ts +53 -13
  49. package/src/call-controller.ts +451 -0
  50. package/src/commands.ts +58 -42
  51. package/src/events.ts +66 -51
  52. package/src/example_data.ts +42 -0
  53. package/src/helpers/openai.ts +73 -18
  54. package/src/index.ts +81 -403
  55. package/src/logging.ts +39 -7
  56. package/src/telemetry.ts +125 -0
  57. package/src/utils.ts +32 -0
@@ -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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"}
@@ -5,5 +5,6 @@ export interface Logger {
5
5
  warn(format: string, ...args: unknown[]): any;
6
6
  error(format: string, ...args: unknown[]): any;
7
7
  }
8
- export declare function getConsoleLogger(loggerLevel: LogLevel): Logger;
8
+ export declare function getConsoleLogger(loggerLevel: LogLevel, useColor?: boolean): Logger;
9
+ export declare function getDefaultLogger(): Logger;
9
10
  export {};
@@ -5,22 +5,47 @@ const LOG_RANKS = {
5
5
  info: 3,
6
6
  debug: 4,
7
7
  };
8
+ const ANSI_RESET = "\x1b[0m";
9
+ const LEVEL_COLORS = {
10
+ off: "",
11
+ debug: "\x1b[38;5;245m", // gray
12
+ info: "",
13
+ warn: "\x1b[38;5;214m", // orange
14
+ error: "\x1b[38;5;196m", // red
15
+ };
8
16
  function shouldLog(messageLevel, loggerLevel) {
9
- if (!LOG_RANKS.hasOwnProperty(messageLevel)) {
17
+ if (!Object.hasOwn(LOG_RANKS, messageLevel)) {
10
18
  throw new Error(`Invalid log level: ${String(messageLevel)}`);
11
19
  }
12
- if (!LOG_RANKS.hasOwnProperty(loggerLevel)) {
20
+ if (!Object.hasOwn(LOG_RANKS, loggerLevel)) {
13
21
  throw new Error(`Invalid logger level: ${String(loggerLevel)}`);
14
22
  }
15
23
  return LOG_RANKS[messageLevel] <= LOG_RANKS[loggerLevel];
16
24
  }
17
25
  function noop(format, ...args) { }
18
- export function getConsoleLogger(loggerLevel) {
26
+ function makeColoredMethod(fn, level, useColor) {
27
+ if (!useColor)
28
+ return fn.bind(console);
29
+ return (format, ...args) => fn(`${LEVEL_COLORS[level]}[${level}] ${format}${ANSI_RESET}`, ...args);
30
+ }
31
+ export function getConsoleLogger(loggerLevel, useColor = false) {
19
32
  return {
20
- debug: shouldLog("debug", loggerLevel) ? console.debug.bind(console) : noop,
21
- info: shouldLog("info", loggerLevel) ? console.info.bind(console) : noop,
22
- warn: shouldLog("warn", loggerLevel) ? console.warn.bind(console) : noop,
23
- error: shouldLog("error", loggerLevel) ? console.error.bind(console) : noop,
33
+ debug: shouldLog("debug", loggerLevel)
34
+ ? makeColoredMethod(console.debug, "debug", useColor)
35
+ : noop,
36
+ info: shouldLog("info", loggerLevel) ? makeColoredMethod(console.info, "info", useColor) : noop,
37
+ warn: shouldLog("warn", loggerLevel) ? makeColoredMethod(console.warn, "warn", useColor) : noop,
38
+ error: shouldLog("error", loggerLevel)
39
+ ? makeColoredMethod(console.error, "error", useColor)
40
+ : noop,
24
41
  };
25
42
  }
43
+ export function getDefaultLogger() {
44
+ const level = (process.env.LOG_LEVEL ?? "info").toLowerCase();
45
+ if (!Object.hasOwn(LOG_RANKS, level)) {
46
+ throw new Error(`Unknown log level in LOG_LEVEL env var: ${level}`);
47
+ }
48
+ const useColor = process.stderr.isTTY === true && !process.env.NO_COLOR;
49
+ return getConsoleLogger(level, useColor);
50
+ }
26
51
  //# sourceMappingURL=logging.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/logging.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS,GAA6B;IAC1C,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AASF,SAAS,SAAS,CAAC,YAAsB,EAAE,WAAqB;IAC9D,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,SAAS,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,IAAI,CAAC,MAAc,EAAE,GAAG,IAAe,IAAG,CAAC;AAEpD,MAAM,UAAU,gBAAgB,CAAC,WAAqB;IACpD,OAAO;QACL,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;QAC3E,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;QACxE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;QACxE,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;KAC5E,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/logging.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export declare const TelemetryEvent: {
2
+ readonly METHOD_CALL: "method-call";
3
+ readonly EXCEPTION_RAISED: "exception-raised";
4
+ };
5
+ export type TelemetryEvent = (typeof TelemetryEvent)[keyof typeof TelemetryEvent];
6
+ export declare abstract class BaseTelemetryClient {
7
+ protected sdkHeaders: Record<string, string>;
8
+ abstract sendEvent(event: TelemetryEvent, data?: Record<string, unknown>): void;
9
+ setSdkHeaders(headers: Record<string, string>): void;
10
+ trackClass(onlyExceptions?: Set<string>): <T extends abstract new (...args: unknown[]) => object>(target: T, _context: ClassDecoratorContext<T>) => T;
11
+ }
12
+ export declare class TelemetryClient extends BaseTelemetryClient {
13
+ private queue;
14
+ private timer;
15
+ private readonly baseUrl;
16
+ constructor();
17
+ sendEvent(event: TelemetryEvent, data?: Record<string, unknown>): void;
18
+ private uploadEvents;
19
+ }
20
+ export declare class NoOpTelemetryClient extends BaseTelemetryClient {
21
+ sendEvent(_event: TelemetryEvent, _data?: Record<string, unknown>): void;
22
+ }
23
+ export declare const telemetryClient: BaseTelemetryClient;
@@ -0,0 +1,98 @@
1
+ import { getDefaultLogger } from "./logging.js";
2
+ import { getBaseUrl, fetchOrThrow } from "./utils.js";
3
+ const QUEUE_MAX_SIZE = 100;
4
+ const UPLOAD_INTERVAL_MS = 10_000;
5
+ const debugEnabled = ["yes", "true"].includes((process.env.GUAVA_DEBUG_TELEMETRY ?? "false").toLowerCase().trim());
6
+ const logger = debugEnabled
7
+ ? getDefaultLogger()
8
+ : { debug: () => { }, info: () => { }, warn: () => { }, error: () => { } };
9
+ export const TelemetryEvent = {
10
+ METHOD_CALL: "method-call",
11
+ EXCEPTION_RAISED: "exception-raised",
12
+ };
13
+ export class BaseTelemetryClient {
14
+ sdkHeaders = {};
15
+ setSdkHeaders(headers) {
16
+ this.sdkHeaders = headers;
17
+ }
18
+ trackClass(onlyExceptions = new Set()) {
19
+ const client = this;
20
+ return (target, _context) => {
21
+ // TODO: Wrap public methods.
22
+ // Wrap the constructor
23
+ const trackConstructorCalls = !onlyExceptions.has("constructor");
24
+ class Wrapped extends target {
25
+ constructor(...args) {
26
+ try {
27
+ if (trackConstructorCalls) {
28
+ client.sendEvent(TelemetryEvent.METHOD_CALL, {
29
+ function_name: `${target.name}.constructor`,
30
+ });
31
+ }
32
+ super(...args);
33
+ }
34
+ catch (e) {
35
+ client.sendEvent(TelemetryEvent.EXCEPTION_RAISED, {
36
+ function_name: `${target.name}.constructor`,
37
+ exception: String(e),
38
+ });
39
+ throw e;
40
+ }
41
+ }
42
+ }
43
+ Object.defineProperty(Wrapped, "name", { value: target.name });
44
+ return Wrapped;
45
+ };
46
+ }
47
+ }
48
+ export class TelemetryClient extends BaseTelemetryClient {
49
+ queue = [];
50
+ timer;
51
+ baseUrl;
52
+ constructor() {
53
+ super();
54
+ this.baseUrl = getBaseUrl();
55
+ this.timer = setInterval(() => {
56
+ void this.uploadEvents();
57
+ }, UPLOAD_INTERVAL_MS);
58
+ // Don't prevent the process from exiting naturally
59
+ this.timer.unref();
60
+ // Trigger an immediate upload on uncaught exception.
61
+ process.on("uncaughtExceptionMonitor", async () => {
62
+ await this.uploadEvents();
63
+ });
64
+ }
65
+ sendEvent(event, data = {}) {
66
+ logger.debug(`Sending telemetry event ${event}, ${JSON.stringify(data)}`);
67
+ if (this.queue.length >= QUEUE_MAX_SIZE)
68
+ return;
69
+ this.queue.push({ timestamp_ms: Date.now(), event_type: event, data });
70
+ }
71
+ async uploadEvents() {
72
+ const payload = this.queue.splice(0);
73
+ if (!payload.length) {
74
+ logger.debug("No events to upload.");
75
+ return;
76
+ }
77
+ logger.debug(`Uploading ${payload.length} telemetry events.`);
78
+ try {
79
+ const url = new URL("v1/upload-telemetry", this.baseUrl);
80
+ await fetchOrThrow(url, {
81
+ method: "POST",
82
+ headers: { ...this.sdkHeaders, "Content-Type": "application/json" },
83
+ body: JSON.stringify({ events: payload }),
84
+ });
85
+ }
86
+ catch (e) {
87
+ logger.error(`Telemetry upload failed: ${String(e)}`);
88
+ }
89
+ }
90
+ }
91
+ export class NoOpTelemetryClient extends BaseTelemetryClient {
92
+ sendEvent(_event, _data) { }
93
+ }
94
+ const isDisabled = ["yes", "true"].includes((process.env.GUAVA_DISABLE_TELEMETRY ?? "false").toLowerCase().trim());
95
+ export const telemetryClient = isDisabled
96
+ ? new NoOpTelemetryClient()
97
+ : new TelemetryClient();
98
+ //# sourceMappingURL=telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/telemetry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const DEFAULT_BASE_URL = "https://guava-dev.gridspace.com/";
2
+ export declare function getBaseUrl(): string;
3
+ export declare function fetchOrThrow(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
@@ -0,0 +1,28 @@
1
+ export const DEFAULT_BASE_URL = "https://guava-dev.gridspace.com/";
2
+ export function getBaseUrl() {
3
+ return process.env.GUAVA_BASE_URL ?? DEFAULT_BASE_URL;
4
+ }
5
+ class HttpStatusError extends Error {
6
+ status;
7
+ statusText;
8
+ body;
9
+ response;
10
+ constructor(status, statusText, body, response) {
11
+ super(`HTTP ${status} ${statusText}${body ? ` — ${body}` : ""}`);
12
+ this.status = status;
13
+ this.statusText = statusText;
14
+ this.body = body;
15
+ this.response = response;
16
+ this.name = "HttpStatusError";
17
+ }
18
+ }
19
+ export async function fetchOrThrow(input, init) {
20
+ // biome-ignore lint: The wrapper must call fetch.
21
+ const res = await fetch(input, init);
22
+ if (!res.ok) {
23
+ const body = await res.text().catch(() => "");
24
+ throw new HttpStatusError(res.status, res.statusText, body, res);
25
+ }
26
+ return res;
27
+ }
28
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,kCAAkC,CAAC;AAEnE,MAAM,UAAU,UAAU;IACxB,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,gBAAgB,CAAC;AACxD,CAAC;AAED,MAAM,eAAgB,SAAQ,KAAK;IAEf;IACA;IACA;IACA;IAJlB,YACkB,MAAc,EACd,UAAkB,EAClB,IAAY,EACZ,QAAkB;QAElC,KAAK,CAAC,QAAQ,MAAM,IAAI,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QALjD,WAAM,GAAN,MAAM,CAAQ;QACd,eAAU,GAAV,UAAU,CAAQ;QAClB,SAAI,GAAJ,IAAI,CAAQ;QACZ,aAAQ,GAAR,QAAQ,CAAU;QAGlC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAwB,EACxB,IAAkB;IAElB,kDAAkD;IAClD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAErC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,5 @@
1
+ {
2
+ "root": false,
3
+ "extends": "//",
4
+ "plugins": ["../custom-rules/examples.grit"]
5
+ }
@@ -19,7 +19,7 @@ const CUSTOMER_DB: Customer[] = [
19
19
  ];
20
20
 
21
21
  function findCustomerBySSN(ssn: string): Customer | undefined {
22
- return CUSTOMER_DB.find((c) => c.ssn == ssn);
22
+ return CUSTOMER_DB.find((c) => c.ssn === ssn);
23
23
  }
24
24
 
25
25
  const ORGANIZATION_NAME = "Harper Valley Bank";
@@ -43,7 +43,7 @@ class CreditCardActivationController extends guava.CallController {
43
43
  override async onIntent(intent: string) {
44
44
  const choice = await this.intentRecognizer.classify(intent);
45
45
  this.logger.info(`Chosen intent: ${choice}`);
46
- if (choice == "activate credit card") {
46
+ if (choice === "activate credit card") {
47
47
  await this.activateCreditCard();
48
48
  return null;
49
49
  } else {
@@ -57,19 +57,18 @@ class CreditCardActivationController extends guava.CallController {
57
57
  while (true) {
58
58
  await this.awaitTask({
59
59
  checklist: [
60
- {
61
- item_type: "field",
60
+ guava.Field({
62
61
  description: "Could you give me your social security number?",
63
62
  key: "social_security_number",
64
- field_type: "integer",
63
+ fieldType: "integer",
65
64
  required: true,
66
- },
65
+ }),
67
66
  ],
68
67
  });
69
68
 
70
69
  const ssn_data = this.getField("social_security_number");
71
70
  let ssn: string;
72
- if (typeof ssn_data == "string") {
71
+ if (typeof ssn_data === "string") {
73
72
  ssn = ssn_data;
74
73
  } else {
75
74
  // Should we assume all payloads are strings? or leave room by returning unknown
@@ -85,18 +84,17 @@ class CreditCardActivationController extends guava.CallController {
85
84
  objective:
86
85
  "We were able to identify the customer using the Social Security Number they have provided. We're going to confirm the client's name.",
87
86
  checklist: [
88
- {
89
- item_type: "field",
87
+ guava.Field({
90
88
  description: `We're going to confirm the client's name. Am I speaking with ${customer.name}?`,
91
89
  key: "is_client",
92
- field_type: "multiple_choice",
90
+ fieldType: "multiple_choice",
93
91
  choices: ["yes", "no"],
94
92
  required: true,
95
- },
93
+ }),
96
94
  ],
97
95
  });
98
96
 
99
- if (this.getField("is_client") == "no") {
97
+ if (this.getField("is_client") === "no") {
100
98
  this.sendInstruction(
101
99
  "We were unable to identify the client's name in our files. Let the caller know this, and re-ask their social security number.",
102
100
  );
@@ -112,14 +110,12 @@ class CreditCardActivationController extends guava.CallController {
112
110
  while (true) {
113
111
  await this.awaitTask({
114
112
  checklist: [
115
- {
116
- item_type: "field",
117
- field_type: "integer",
118
- description:
119
- "Could you read me the digits on the front of your credit card?",
113
+ guava.Field({
114
+ fieldType: "integer",
115
+ description: "Could you read me the digits on the front of your credit card?",
120
116
  key: "credit_card_number",
121
117
  required: true,
122
- },
118
+ }),
123
119
  ],
124
120
  });
125
121
 
@@ -140,19 +136,17 @@ class CreditCardActivationController extends guava.CallController {
140
136
  while (true) {
141
137
  await this.awaitTask({
142
138
  checklist: [
143
- {
144
- item_type: "field",
145
- field_type: "integer",
139
+ guava.Field({
140
+ fieldType: "integer",
146
141
  key: "security_code",
147
- description:
148
- "To wrap up, could I get the security code on your card?",
142
+ description: "To wrap up, could I get the security code on your card?",
149
143
  required: true,
150
- },
144
+ }),
151
145
  ],
152
146
  });
153
147
 
154
148
  const security_code = this.getField("security_code") as string;
155
- if (security_code != correctCvv.toString()) {
149
+ if (security_code !== correctCvv.toString()) {
156
150
  this.sendInstruction(
157
151
  "We were unable to match the security code to the credit card. Let the caller know this and re-ask for the security code.",
158
152
  );
@@ -175,7 +169,7 @@ class CreditCardActivationController extends guava.CallController {
175
169
  }
176
170
 
177
171
  export function run(_args: string[]) {
178
- const conn = new guava.Client().listenInbound(
172
+ new guava.Client().listenInbound(
179
173
  {
180
174
  agent_number: process.env.GUAVA_AGENT_NUMBER!,
181
175
  },
@@ -1,25 +1,15 @@
1
- import { parseArgs } from "node:util";
2
1
  import * as guava from "../src/index.ts";
3
2
  import { DocumentQA } from "../src/helpers/openai.ts";
4
- import { readFileSync } from "node:fs";
5
- import * as path from "node:path";
6
- import type { Logger } from "../src/logging.ts";
7
3
  import { PROPERTY_INSURANCE_POLICY } from "../src/example_data.ts";
8
4
 
9
5
  class InsuranceCallController extends guava.CallController {
10
6
  private documentQA: DocumentQA;
11
- constructor(logger: Logger) {
12
- super(logger);
13
-
14
- this.documentQA = new DocumentQA(
15
- "harper-valley-property-insurance",
16
- PROPERTY_INSURANCE_POLICY,
17
- logger,
18
- );
19
- }
7
+ constructor() {
8
+ super();
9
+
10
+ this.documentQA = new DocumentQA("harper-valley-property-insurance", PROPERTY_INSURANCE_POLICY);
20
11
 
21
- override async onCallStart(): Promise<void> {
22
- await this.setPersona({
12
+ this.setPersona({
23
13
  organizationName: "Harper Valley Property Insurance",
24
14
  });
25
15
  this.setTask({
@@ -44,7 +34,7 @@ export function run(args: string[]) {
44
34
  new guava.Client().createOutbound(
45
35
  process.env.GUAVA_AGENT_NUMBER!,
46
36
  phone,
47
- (logger) => new InsuranceCallController(logger),
37
+ new InsuranceCallController(),
48
38
  );
49
39
  }
50
40
 
@@ -0,0 +1,80 @@
1
+ import * as guava from "../src/index.ts";
2
+ import { DatetimeFilter } from "../src/helpers/openai.ts";
3
+ import { mockAppointmentsForFuture } from "../src/example_data.ts";
4
+
5
+ class SchedulingController extends guava.CallController {
6
+ private readonly patientName: string;
7
+ private readonly datetimeFilter: DatetimeFilter;
8
+
9
+ constructor(patientName: string) {
10
+ super();
11
+
12
+ this.patientName = patientName;
13
+ this.datetimeFilter = new DatetimeFilter({
14
+ sourceList: mockAppointmentsForFuture(),
15
+ });
16
+
17
+ this.setPersona({
18
+ organizationName: "Bright Smile Dental",
19
+ agentName: "Grace",
20
+ agentPurpose: `You are calling ${patientName} to help them schedule a dental appointment`,
21
+ });
22
+
23
+ this.reachPerson(this.patientName, {
24
+ onSuccess: () => this.scheduleRecipient(),
25
+ onFailure: () => this.recipientUnavailable(),
26
+ });
27
+ }
28
+
29
+ private scheduleRecipient() {
30
+ this.setTask(
31
+ {
32
+ checklist: [
33
+ guava.Say("Let me look to see what appointment times we have available."),
34
+ guava.Field({
35
+ key: "appointment_time",
36
+ fieldType: "calendar_slot",
37
+ description: "Find a time that works for the caller",
38
+ choiceGenerator: async (query: string) => {
39
+ const result = await this.datetimeFilter.filter(query, { maxResults: 3 });
40
+ this.logger.info("Choice generator results: %s", JSON.stringify(result));
41
+ return result;
42
+ },
43
+ }),
44
+ guava.Say("Your appointment has been confirmed! Have a nice day."),
45
+ ],
46
+ },
47
+ () => this.hangup("Thank them for their time and hang up the call."),
48
+ );
49
+ }
50
+
51
+ private recipientUnavailable() {
52
+ this.hangup("Apologize for your mistake and hang up the call.");
53
+ }
54
+
55
+ override onSessionDone() {
56
+ const selectedTime = this.getField("appointment_time");
57
+ if (selectedTime) {
58
+ this.logger.info(`Appointment confirmed for: ${selectedTime}`);
59
+ }
60
+ }
61
+ }
62
+
63
+ export function run(args: string[]) {
64
+ const [toNumber, patientName = "Benjamin Buttons"] = args;
65
+
66
+ if (!toNumber) {
67
+ console.error("Usage: guava-example scheduling-outbound <phone> [name]");
68
+ process.exit(1);
69
+ }
70
+
71
+ new guava.Client().createOutbound(
72
+ process.env.GUAVA_AGENT_NUMBER,
73
+ toNumber,
74
+ new SchedulingController(patientName),
75
+ );
76
+ }
77
+
78
+ if (import.meta.main) {
79
+ run(process.argv.slice(2));
80
+ }
@@ -25,24 +25,21 @@ class ThaiPalaceCallController extends guava.CallController {
25
25
  objective: `You are a virtual assistant for a restaurant called Thai Palace.
26
26
  Your job is to add callers to the waitlist.`,
27
27
  checklist: [
28
- {
29
- item_type: "field",
28
+ guava.Field({
30
29
  key: "caller_name",
31
- field_type: "text",
30
+ fieldType: "text",
32
31
  description: "The name to be added to the waitlist",
33
- },
34
- {
35
- item_type: "field",
32
+ }),
33
+ guava.Field({
36
34
  key: "party_size",
37
- field_type: "integer",
35
+ fieldType: "integer",
38
36
  description: "The number of people attending",
39
- },
40
- {
41
- item_type: "field",
37
+ }),
38
+ guava.Field({
42
39
  key: "phone_number",
43
- field_type: "text",
40
+ fieldType: "text",
44
41
  description: "phone number to text when table is ready",
45
- },
42
+ }),
46
43
  "Read the phone number back to the caller to make sure you got it right",
47
44
  ],
48
45
  },
@@ -53,7 +50,7 @@ class ThaiPalaceCallController extends guava.CallController {
53
50
  override async onIntent(intent: string) {
54
51
  const choice = await this.intentRecognizer.classify(intent);
55
52
  this.logger.info(`Chosen intent: ${choice}`);
56
- if (choice == "restaurant waitlist") {
53
+ if (choice === "restaurant waitlist") {
57
54
  this.setThaiPalaceTask();
58
55
  return null;
59
56
  } else {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@guava-ai/guava-sdk",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "type": "module",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",
@@ -8,6 +8,7 @@
8
8
  "@biomejs/biome": "2.3.11",
9
9
  "@types/node": "^25.0.7",
10
10
  "@types/ws": "^8.18.1",
11
+ "tsx": "^4.21.0",
11
12
  "typescript": "^5.9.3"
12
13
  },
13
14
  "bin": {
@@ -20,10 +21,11 @@
20
21
  },
21
22
  "scripts": {
22
23
  "typecheck": "tsc --noEmit",
23
- "lint": "biome lint",
24
- "format": "biome format --write ./src",
25
- "format-ex": "biome format --write ./examples",
26
- "check": "npm run typecheck && npm audit",
24
+ "lint": "biome lint --max-diagnostics=none",
25
+ "lint-fix": "biome lint --max-diagnostics=none --write",
26
+ "check-format": "biome format ./src ./examples",
27
+ "format": "biome format --write ./src ./examples",
28
+ "check": "npm run typecheck && npm audit && npm run lint && npm run check-format",
27
29
  "clean": "rm -rf ./dist",
28
30
  "build": "tsc",
29
31
  "prepublishOnly": "npm run clean && npm run build"