@guava-ai/guava-sdk 0.5.0 → 0.7.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 (44) hide show
  1. package/bin/example-runner.ts +28 -0
  2. package/dist/bin/example-runner.d.ts +2 -0
  3. package/dist/bin/example-runner.js +60 -0
  4. package/dist/bin/example-runner.js.map +1 -0
  5. package/dist/examples/credit-card-activation.d.ts +1 -1
  6. package/dist/examples/credit-card-activation.js +40 -7
  7. package/dist/examples/credit-card-activation.js.map +1 -1
  8. package/dist/examples/property-insurance.d.ts +1 -1
  9. package/dist/examples/property-insurance.js +41 -8
  10. package/dist/examples/property-insurance.js.map +1 -1
  11. package/dist/examples/scheduling-outbound.d.ts +1 -1
  12. package/dist/examples/scheduling-outbound.js +54 -21
  13. package/dist/examples/scheduling-outbound.js.map +1 -1
  14. package/dist/examples/thai-palace.d.ts +1 -1
  15. package/dist/examples/thai-palace.js +42 -9
  16. package/dist/examples/thai-palace.js.map +1 -1
  17. package/dist/package.json +6 -6
  18. package/dist/src/action_item.js +51 -13
  19. package/dist/src/action_item.js.map +1 -1
  20. package/dist/src/call-controller.js +22 -19
  21. package/dist/src/call-controller.js.map +1 -1
  22. package/dist/src/commands.js +66 -30
  23. package/dist/src/commands.js.map +1 -1
  24. package/dist/src/events.js +72 -35
  25. package/dist/src/events.js.map +1 -1
  26. package/dist/src/example-data.js +6 -2
  27. package/dist/src/example-data.js.map +1 -1
  28. package/dist/src/helpers/openai.js +52 -16
  29. package/dist/src/helpers/openai.js.map +1 -1
  30. package/dist/src/index.js +71 -29
  31. package/dist/src/index.js.map +1 -1
  32. package/dist/src/logging.js +6 -2
  33. package/dist/src/logging.js.map +1 -1
  34. package/dist/src/telemetry.js +18 -12
  35. package/dist/src/telemetry.js.map +1 -1
  36. package/dist/src/utils.js +9 -4
  37. package/dist/src/utils.js.map +1 -1
  38. package/examples/credit-card-activation.ts +1 -5
  39. package/examples/property-insurance.ts +1 -5
  40. package/examples/scheduling-outbound.ts +13 -17
  41. package/examples/thai-palace.ts +1 -5
  42. package/package.json +6 -6
  43. package/src/index.ts +1 -1
  44. package/bin/example-runner.js +0 -33
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env node
2
+ import * as schedulingOutbound from "../examples/scheduling-outbound";
3
+ import * as propertyInsurance from "../examples/property-insurance";
4
+ import * as creditCardActivation from "../examples/credit-card-activation";
5
+ import * as thaiPalace from "../examples/thai-palace";
6
+
7
+ const EXAMPLES = {
8
+ "scheduling-outbound": schedulingOutbound,
9
+ "property-insurance": propertyInsurance,
10
+ "credit-card-activation": creditCardActivation,
11
+ "thai-palace": thaiPalace,
12
+ };
13
+
14
+ const exampleName = process.argv[2];
15
+ if (!exampleName) {
16
+ console.error("Usage: guava-example <example-name> <example-args>");
17
+ console.error("Available examples:", Object.keys(EXAMPLES).join(", "))
18
+ process.exit(1);
19
+ }
20
+
21
+ if (!(exampleName in EXAMPLES)) {
22
+ console.error(`Unknown example "${exampleName}". Available examples: ${Object.keys(EXAMPLES).join(", ")}`);
23
+ process.exit(1);
24
+ }
25
+
26
+ (async () => {
27
+ await EXAMPLES[exampleName as keyof typeof EXAMPLES].run(process.argv.slice(3));
28
+ })();
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,60 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ const schedulingOutbound = __importStar(require("../examples/scheduling-outbound"));
38
+ const propertyInsurance = __importStar(require("../examples/property-insurance"));
39
+ const creditCardActivation = __importStar(require("../examples/credit-card-activation"));
40
+ const thaiPalace = __importStar(require("../examples/thai-palace"));
41
+ const EXAMPLES = {
42
+ "scheduling-outbound": schedulingOutbound,
43
+ "property-insurance": propertyInsurance,
44
+ "credit-card-activation": creditCardActivation,
45
+ "thai-palace": thaiPalace,
46
+ };
47
+ const exampleName = process.argv[2];
48
+ if (!exampleName) {
49
+ console.error("Usage: guava-example <example-name> <example-args>");
50
+ console.error("Available examples:", Object.keys(EXAMPLES).join(", "));
51
+ process.exit(1);
52
+ }
53
+ if (!(exampleName in EXAMPLES)) {
54
+ console.error(`Unknown example "${exampleName}". Available examples: ${Object.keys(EXAMPLES).join(", ")}`);
55
+ process.exit(1);
56
+ }
57
+ (async () => {
58
+ await EXAMPLES[exampleName].run(process.argv.slice(3));
59
+ })();
60
+ //# sourceMappingURL=example-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example-runner.js","sourceRoot":"","sources":["../../bin/example-runner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,oFAAsE;AACtE,kFAAoE;AACpE,yFAA2E;AAC3E,oEAAsD;AAEtD,MAAM,QAAQ,GAAG;IACf,qBAAqB,EAAE,kBAAkB;IACzC,oBAAoB,EAAE,iBAAiB;IACvC,wBAAwB,EAAE,oBAAoB;IAC9C,aAAa,EAAE,UAAU;CAC1B,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,CAAA;IACtE,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,QAAQ,CAAC,WAAoC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAClF,CAAC,CAAC,EAAE,CAAC"}
@@ -1 +1 @@
1
- export declare function run(_args: string[]): void;
1
+ export declare function run(_args: string[]): Promise<void>;
@@ -1,5 +1,41 @@
1
- import { IntentRecognizer } from "../src/helpers/openai.js";
2
- import * as guava from "../src/index.js";
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
+ const openai_ts_1 = require("../src/helpers/openai.js");
38
+ const guava = __importStar(require("../src/index.js"));
3
39
  const CUSTOMER_DB = [
4
40
  {
5
41
  name: "John Smith",
@@ -18,7 +54,7 @@ class CreditCardActivationController extends guava.CallController {
18
54
  intentRecognizer;
19
55
  constructor(logger) {
20
56
  super(logger);
21
- this.intentRecognizer = new IntentRecognizer(this.choices, logger);
57
+ this.intentRecognizer = new openai_ts_1.IntentRecognizer(this.choices, logger);
22
58
  this.setPersona({
23
59
  organizationName: ORGANIZATION_NAME,
24
60
  agentPurpose: `You are a customer service voice agent that activates credit cards for customers of ${ORGANIZATION_NAME}.`,
@@ -133,12 +169,9 @@ class CreditCardActivationController extends guava.CallController {
133
169
  await this.findCustomer();
134
170
  }
135
171
  }
136
- export function run(_args) {
172
+ async function run(_args) {
137
173
  new guava.Client().listenInbound({
138
174
  agent_number: process.env.GUAVA_AGENT_NUMBER,
139
175
  }, (logger) => new CreditCardActivationController(logger));
140
176
  }
141
- if (import.meta.main) {
142
- run([]);
143
- }
144
177
  //# sourceMappingURL=credit-card-activation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"credit-card-activation.js","sourceRoot":"","sources":["../../examples/credit-card-activation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAC;AASzC,MAAM,WAAW,GAAe;IAC9B;QACE,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,WAAW;QAChB,iBAAiB,EAAE;YACjB,kBAAkB,EAAE,GAAG;SACxB;KACF;CACF,CAAC;AAEF,SAAS,iBAAiB,CAAC,GAAW;IACpC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AAE/C,MAAM,8BAA+B,SAAQ,KAAK,CAAC,cAAc;IACvD,OAAO,GAAG,CAAC,sBAAsB,EAAE,eAAe,CAAU,CAAC;IAC7D,gBAAgB,CAAwC;IAChE,YAAY,MAAc;QACxB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACnE,IAAI,CAAC,UAAU,CAAC;YACd,gBAAgB,EAAE,iBAAiB;YACnC,YAAY,EAAE,uFAAuF,iBAAiB,GAAG;SAC1H,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CACb,oEAAoE,iBAAiB,gEAAgE,CACtJ,CAAC;QACF,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEQ,KAAK,CAAC,QAAQ,CAAC,MAAc;QACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC;QAC7C,IAAI,MAAM,KAAK,sBAAsB,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,OAAO,+CAA+C,CAAC;QACzD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,IAAI,QAA8B,CAAC;QACnC,IAAI,UAAkB,CAAC;QACvB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,IAAI,CAAC,SAAS,CAAC;gBACnB,SAAS,EAAE;oBACT,KAAK,CAAC,KAAK,CAAC;wBACV,WAAW,EAAE,gDAAgD;wBAC7D,GAAG,EAAE,wBAAwB;wBAC7B,SAAS,EAAE,SAAS;wBACpB,QAAQ,EAAE,IAAI;qBACf,CAAC;iBACH;aACF,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;YACzD,IAAI,GAAW,CAAC;YAChB,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACjC,GAAG,GAAG,QAAQ,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,gFAAgF;gBAChF,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC;YACD,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC,eAAe,CAClB,yJAAyJ,CAC1J,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,SAAS,CAAC;oBACnB,SAAS,EACP,sIAAsI;oBACxI,SAAS,EAAE;wBACT,KAAK,CAAC,KAAK,CAAC;4BACV,WAAW,EAAE,gEAAgE,QAAQ,CAAC,IAAI,GAAG;4BAC7F,GAAG,EAAE,WAAW;4BAChB,SAAS,EAAE,iBAAiB;4BAC5B,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;4BACtB,QAAQ,EAAE,IAAI;yBACf,CAAC;qBACH;iBACF,CAAC,CAAC;gBAEH,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC;oBACxC,IAAI,CAAC,eAAe,CAClB,+HAA+H,CAChI,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,eAAe,CAClB,4FAA4F,CAC7F,CAAC;QACF,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,IAAI,CAAC,SAAS,CAAC;gBACnB,SAAS,EAAE;oBACT,KAAK,CAAC,KAAK,CAAC;wBACV,SAAS,EAAE,SAAS;wBACpB,WAAW,EAAE,gEAAgE;wBAC7E,GAAG,EAAE,oBAAoB;wBACzB,QAAQ,EAAE,IAAI;qBACf,CAAC;iBACH;aACF,CAAC,CAAC;YAEH,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAW,CAAC;YAC3D,IAAI,CAAC,CAAC,UAAU,IAAI,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC,eAAe,CAClB,iIAAiI,CAClI,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,eAAe,CAClB,iIAAiI,CAClI,CAAC;gBACF,MAAM;YACR,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,QAAQ,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC1D,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,IAAI,CAAC,SAAS,CAAC;gBACnB,SAAS,EAAE;oBACT,KAAK,CAAC,KAAK,CAAC;wBACV,SAAS,EAAE,SAAS;wBACpB,GAAG,EAAE,eAAe;wBACpB,WAAW,EAAE,yDAAyD;wBACtE,QAAQ,EAAE,IAAI;qBACf,CAAC;iBACH;aACF,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAW,CAAC;YAC/D,IAAI,aAAa,KAAK,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAC5C,IAAI,CAAC,eAAe,CAClB,0HAA0H,CAC3H,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,CAAC,MAAM,CACT,6HAA6H,CAC9H,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,IAAI,CAAC,eAAe,CAClB,2HAA2H,CAC5H,CAAC;QAEF,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,UAAU,GAAG,CAAC,KAAe;IACjC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,aAAa,CAC9B;QACE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAmB;KAC9C,EACD,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,8BAA8B,CAAC,MAAM,CAAC,CACvD,CAAC;AACJ,CAAC;AAED,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,GAAG,CAAC,EAAE,CAAC,CAAC;AACV,CAAC"}
1
+ {"version":3,"file":"credit-card-activation.js","sourceRoot":"","sources":["../../examples/credit-card-activation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export declare function run(args: string[]): void;
1
+ export declare function run(args: string[]): Promise<void>;
@@ -1,11 +1,47 @@
1
- import * as guava from "../src/index.js";
2
- import { DocumentQA } from "../src/helpers/openai.js";
3
- import { PROPERTY_INSURANCE_POLICY } from "../src/example-data.js";
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
+ const guava = __importStar(require("../src/index.js"));
38
+ const openai_ts_1 = require("../src/helpers/openai.js");
39
+ const example_data_ts_1 = require("../src/example-data.js");
4
40
  class InsuranceCallController extends guava.CallController {
5
41
  documentQA;
6
42
  constructor() {
7
43
  super();
8
- this.documentQA = new DocumentQA("harper-valley-property-insurance", PROPERTY_INSURANCE_POLICY);
44
+ this.documentQA = new openai_ts_1.DocumentQA("harper-valley-property-insurance", example_data_ts_1.PROPERTY_INSURANCE_POLICY);
9
45
  this.setPersona({
10
46
  organizationName: "Harper Valley Property Insurance",
11
47
  });
@@ -17,7 +53,7 @@ class InsuranceCallController extends guava.CallController {
17
53
  return await this.documentQA.ask(question);
18
54
  }
19
55
  }
20
- export function run(args) {
56
+ async function run(args) {
21
57
  const [phone] = args;
22
58
  if (!phone) {
23
59
  console.error("Usage: guava-example property-insurance <phone>");
@@ -25,7 +61,4 @@ export function run(args) {
25
61
  }
26
62
  new guava.Client().createOutbound(process.env.GUAVA_AGENT_NUMBER, phone, new InsuranceCallController());
27
63
  }
28
- if (import.meta.main) {
29
- run(process.argv.slice(2));
30
- }
31
64
  //# sourceMappingURL=property-insurance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"property-insurance.js","sourceRoot":"","sources":["../../examples/property-insurance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,uBAAwB,SAAQ,KAAK,CAAC,cAAc;IAChD,UAAU,CAAa;IAC/B;QACE,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,kCAAkC,EAAE,yBAAyB,CAAC,CAAC;QAEhG,IAAI,CAAC,UAAU,CAAC;YACd,gBAAgB,EAAE,kCAAkC;SACrD,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC;YACX,SAAS,EACP,kKAAkK;SACrK,CAAC,CAAC;IACL,CAAC;IAEQ,KAAK,CAAC,UAAU,CAAC,QAAgB;QACxC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,MAAM,UAAU,GAAG,CAAC,IAAc;IAChC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAErB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,cAAc,CAC/B,OAAO,CAAC,GAAG,CAAC,kBAAmB,EAC/B,KAAK,EACL,IAAI,uBAAuB,EAAE,CAC9B,CAAC;AACJ,CAAC;AAED,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"property-insurance.js","sourceRoot":"","sources":["../../examples/property-insurance.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,kBAaC;AAtCD,uDAAyC;AACzC,wDAAsD;AACtD,4DAAmE;AAEnE,MAAM,uBAAwB,SAAQ,KAAK,CAAC,cAAc;IAChD,UAAU,CAAa;IAC/B;QACE,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,UAAU,GAAG,IAAI,sBAAU,CAAC,kCAAkC,EAAE,2CAAyB,CAAC,CAAC;QAEhG,IAAI,CAAC,UAAU,CAAC;YACd,gBAAgB,EAAE,kCAAkC;SACrD,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC;YACX,SAAS,EACP,kKAAkK;SACrK,CAAC,CAAC;IACL,CAAC;IAEQ,KAAK,CAAC,UAAU,CAAC,QAAgB;QACxC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;CACF;AAEM,KAAK,UAAU,GAAG,CAAC,IAAc;IACtC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAErB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,cAAc,CAC/B,OAAO,CAAC,GAAG,CAAC,kBAAmB,EAC/B,KAAK,EACL,IAAI,uBAAuB,EAAE,CAC9B,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- export declare function run(args: string[]): void;
1
+ export declare function run(args: string[]): Promise<void>;
@@ -1,6 +1,42 @@
1
- import * as guava from "../src/index.js";
2
- import { DatetimeFilter } from "../src/helpers/openai.js";
3
- import { mockAppointmentsForFuture } from "../src/example-data.js";
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
+ const guava = __importStar(require("../src/index.js"));
38
+ const openai_ts_1 = require("../src/helpers/openai.js");
39
+ const example_data_ts_1 = require("../src/example-data.js");
4
40
  class SchedulingController extends guava.CallController {
5
41
  patientName;
6
42
  datetimeFilter;
@@ -9,10 +45,10 @@ class SchedulingController extends guava.CallController {
9
45
  this.patientName = patientName;
10
46
  // This is a basic appointment time selector that pulls from a mock list of appointments.
11
47
  // In production, you would likely replace this with your own agentic scheduling backend.
12
- this.datetimeFilter = new DatetimeFilter({
13
- sourceList: mockAppointmentsForFuture(),
48
+ this.datetimeFilter = new openai_ts_1.DatetimeFilter({
49
+ sourceList: (0, example_data_ts_1.mockAppointmentsForFuture)(),
14
50
  });
15
- // Use setPersona to set basic information about the agent, as well as it's high-level purpose.
51
+ // Use setPersona to set basic information about the agent, as well as its high-level purpose.
16
52
  this.setPersona({
17
53
  organizationName: "Bright Smile Dental",
18
54
  agentName: "Grace",
@@ -25,30 +61,30 @@ class SchedulingController extends guava.CallController {
25
61
  });
26
62
  }
27
63
  scheduleRecipient() {
28
- // In the branch where we reached the intended participant,
29
- // set a task to collect the desired appointment time.
64
+ // We have now confirmed that we are talking to the patient.
65
+ // Set the Agent's current task to collect the desired appointment time.
30
66
  this.setTask({
31
67
  // The check list is an ordered list of items for the agent to go through.
68
+ // It can include short prompts as well as Fields to capture structured information.
32
69
  checklist: [
33
- // guava.Say instructions are verbatim.
34
- guava.Say("Let me look to see what appointment times we have available."),
70
+ "tell them that it's been a while since their regular cleaning with Dr. Teeth, and ask if they would like to schedule an appointment now.",
35
71
  // We have one field to collect, which is the appointment_time.
36
72
  guava.Field({
37
73
  key: "appointment_time",
38
74
  fieldType: "calendar_slot",
39
75
  description: "Find a time that works for the caller",
40
- // This field has a choice generator attached. The agent will invoke this function
41
- // with a natural language query, allowing the caller to select between the different options.
42
- // The agent can potentially invoke the callback multiple times if the caller rejects the options
43
- // or provides a new query.
76
+ // The choiceGenerator will be called when negotiating a calendar slot.
77
+ // We respond with a list of datetime options based on the user's
78
+ // criteria, which is summarized in the query string.
44
79
  choiceGenerator: async (query) => {
45
- // Use the simple DatetimeFilter class we instantiated earlier.
80
+ // Query will have some natural language preferences like "early morning" or
81
+ // "next week". The dateTime filter queries our calendar for matching slots.
46
82
  const result = await this.datetimeFilter.filter(query, { maxResults: 3 });
47
- this.logger.info("Choice generator results: %s", JSON.stringify(result));
83
+ this.logger.info("Appointment slot matches: %s", JSON.stringify(result));
48
84
  return result;
49
85
  },
50
86
  }),
51
- guava.Say("Your appointment has been confirmed! Have a nice day."),
87
+ "tell them their appointment has been confirmed and answer any questions before ending the call.",
52
88
  ],
53
89
  }, () => this.hangup("Thank them for their time and hang up the call."));
54
90
  }
@@ -63,7 +99,7 @@ class SchedulingController extends guava.CallController {
63
99
  }
64
100
  }
65
101
  }
66
- export function run(args) {
102
+ async function run(args) {
67
103
  const [toNumber, patientName = "Benjamin Buttons"] = args;
68
104
  if (!toNumber) {
69
105
  console.error("Usage: guava-example scheduling-outbound <phone> [name]");
@@ -71,7 +107,4 @@ export function run(args) {
71
107
  }
72
108
  new guava.Client().createOutbound(process.env.GUAVA_AGENT_NUMBER, toNumber, new SchedulingController(patientName));
73
109
  }
74
- if (import.meta.main) {
75
- run(process.argv.slice(2));
76
- }
77
110
  //# sourceMappingURL=scheduling-outbound.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scheduling-outbound.js","sourceRoot":"","sources":["../../examples/scheduling-outbound.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheduling-outbound.js","sourceRoot":"","sources":["../../examples/scheduling-outbound.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+EA,kBAaC;AA5FD,uDAAyC;AACzC,wDAA0D;AAC1D,4DAAmE;AAEnE,MAAM,oBAAqB,SAAQ,KAAK,CAAC,cAAc;IACpC,WAAW,CAAS;IACpB,cAAc,CAAiB;IAEhD,YAAY,WAAmB;QAC7B,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,yFAAyF;QACzF,yFAAyF;QACzF,IAAI,CAAC,cAAc,GAAG,IAAI,0BAAc,CAAC;YACvC,UAAU,EAAE,IAAA,2CAAyB,GAAE;SACxC,CAAC,CAAC;QAEH,8FAA8F;QAC9F,IAAI,CAAC,UAAU,CAAC;YACd,gBAAgB,EAAE,qBAAqB;YACvC,SAAS,EAAE,OAAO;YAClB,YAAY,EAAE,mBAAmB,WAAW,6CAA6C;SAC1F,CAAC,CAAC;QAEH,kGAAkG;QAClG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;YACjC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACzC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE;SAC7C,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB;QACvB,4DAA4D;QAC5D,wEAAwE;QACxE,IAAI,CAAC,OAAO,CACV;YACE,0EAA0E;YAC1E,oFAAoF;YACpF,SAAS,EAAE;gBACT,0IAA0I;gBAC1I,+DAA+D;gBAC/D,KAAK,CAAC,KAAK,CAAC;oBACV,GAAG,EAAE,kBAAkB;oBACvB,SAAS,EAAE,eAAe;oBAC1B,WAAW,EAAE,uCAAuC;oBAEpD,uEAAuE;oBACvE,iEAAiE;oBACjE,qDAAqD;oBACrD,eAAe,EAAE,KAAK,EAAE,KAAa,EAAE,EAAE;wBACvC,4EAA4E;wBAC5E,4EAA4E;wBAC5E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;wBAC1E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;wBACzE,OAAO,MAAM,CAAC;oBAChB,CAAC;iBACF,CAAC;gBACF,iGAAiG;aAClG;SACF,EACD,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,iDAAiD,CAAC,CACrE,CAAC;IACJ,CAAC;IAEO,oBAAoB;QAC1B,IAAI,CAAC,MAAM,CAAC,kDAAkD,CAAC,CAAC;IAClE,CAAC;IAEQ,aAAa;QACpB,0DAA0D;QAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QACvD,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,YAAY,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;CACF;AAEM,KAAK,UAAU,GAAG,CAAC,IAAc;IACtC,MAAM,CAAC,QAAQ,EAAE,WAAW,GAAG,kBAAkB,CAAC,GAAG,IAAI,CAAC;IAE1D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,cAAc,CAC/B,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAC9B,QAAQ,EACR,IAAI,oBAAoB,CAAC,WAAW,CAAC,CACtC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- export declare function run(_args: string[]): void;
1
+ export declare function run(_args: string[]): Promise<void>;
@@ -1,12 +1,48 @@
1
- import * as guava from "../src/index.js";
2
- import { getConsoleLogger } from "../src/logging.js";
3
- import { IntentRecognizer } from "../src/helpers/openai.js";
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
+ const guava = __importStar(require("../src/index.js"));
38
+ const logging_ts_1 = require("../src/logging.js");
39
+ const openai_ts_1 = require("../src/helpers/openai.js");
4
40
  class ThaiPalaceCallController extends guava.CallController {
5
41
  choices = ["restaurant waitlist", "anything else"];
6
42
  intentRecognizer;
7
43
  constructor(logger) {
8
44
  super(logger);
9
- this.intentRecognizer = new IntentRecognizer(this.choices, logger);
45
+ this.intentRecognizer = new openai_ts_1.IntentRecognizer(this.choices, logger);
10
46
  this.setPersona({
11
47
  organizationName: "Thai Palace",
12
48
  });
@@ -52,10 +88,7 @@ class ThaiPalaceCallController extends guava.CallController {
52
88
  }
53
89
  }
54
90
  }
55
- export function run(_args) {
56
- new guava.Client().listenInbound({ agent_number: process.env.GUAVA_AGENT_NUMBER }, (logger) => new ThaiPalaceCallController(getConsoleLogger("debug")));
57
- }
58
- if (import.meta.main) {
59
- run([]);
91
+ async function run(_args) {
92
+ new guava.Client().listenInbound({ agent_number: process.env.GUAVA_AGENT_NUMBER }, (logger) => new ThaiPalaceCallController((0, logging_ts_1.getConsoleLogger)("debug")));
60
93
  }
61
94
  //# sourceMappingURL=thai-palace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"thai-palace.js","sourceRoot":"","sources":["../../examples/thai-palace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAe,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,wBAAyB,SAAQ,KAAK,CAAC,cAAc;IACjD,OAAO,GAAG,CAAC,qBAAqB,EAAE,eAAe,CAAU,CAAC;IAC5D,gBAAgB,CAAwC;IAChE,YAAY,MAAc;QACxB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACnE,IAAI,CAAC,UAAU,CAAC;YACd,gBAAgB,EAAE,aAAa;SAChC,CAAC,CAAC;IACL,CAAC;IAEQ,KAAK,CAAC,cAAc,CAAC,WAAoB;QAChD,MAAM,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,OAAO,CACV;YACE,SAAS,EAAE;6CAC0B;YACrC,SAAS,EAAE;gBACT,KAAK,CAAC,KAAK,CAAC;oBACV,GAAG,EAAE,aAAa;oBAClB,SAAS,EAAE,MAAM;oBACjB,WAAW,EAAE,sCAAsC;iBACpD,CAAC;gBACF,KAAK,CAAC,KAAK,CAAC;oBACV,GAAG,EAAE,YAAY;oBACjB,SAAS,EAAE,SAAS;oBACpB,WAAW,EAAE,gCAAgC;iBAC9C,CAAC;gBACF,KAAK,CAAC,KAAK,CAAC;oBACV,GAAG,EAAE,cAAc;oBACnB,SAAS,EAAE,MAAM;oBACjB,WAAW,EAAE,0CAA0C;iBACxD,CAAC;gBACF,wEAAwE;aACzE;SACF,EACD,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CACpB,CAAC;IACJ,CAAC;IAEQ,KAAK,CAAC,QAAQ,CAAC,MAAc;QACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC;QAC7C,IAAI,MAAM,KAAK,qBAAqB,EAAE,CAAC;YACrC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,OAAO,6DAA6D,CAAC;QACvE,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,GAAG,CAAC,KAAe;IACjC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,aAAa,CAC9B,EAAE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAmB,EAAE,EACjD,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,wBAAwB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CACpE,CAAC;AACJ,CAAC;AAED,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,GAAG,CAAC,EAAE,CAAC,CAAC;AACV,CAAC"}
1
+ {"version":3,"file":"thai-palace.js","sourceRoot":"","sources":["../../examples/thai-palace.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DA,kBAKC;AAlED,uDAAyC;AACzC,kDAAkE;AAClE,wDAA4D;AAE5D,MAAM,wBAAyB,SAAQ,KAAK,CAAC,cAAc;IACjD,OAAO,GAAG,CAAC,qBAAqB,EAAE,eAAe,CAAU,CAAC;IAC5D,gBAAgB,CAAwC;IAChE,YAAY,MAAc;QACxB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,gBAAgB,GAAG,IAAI,4BAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACnE,IAAI,CAAC,UAAU,CAAC;YACd,gBAAgB,EAAE,aAAa;SAChC,CAAC,CAAC;IACL,CAAC;IAEQ,KAAK,CAAC,cAAc,CAAC,WAAoB;QAChD,MAAM,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,OAAO,CACV;YACE,SAAS,EAAE;6CAC0B;YACrC,SAAS,EAAE;gBACT,KAAK,CAAC,KAAK,CAAC;oBACV,GAAG,EAAE,aAAa;oBAClB,SAAS,EAAE,MAAM;oBACjB,WAAW,EAAE,sCAAsC;iBACpD,CAAC;gBACF,KAAK,CAAC,KAAK,CAAC;oBACV,GAAG,EAAE,YAAY;oBACjB,SAAS,EAAE,SAAS;oBACpB,WAAW,EAAE,gCAAgC;iBAC9C,CAAC;gBACF,KAAK,CAAC,KAAK,CAAC;oBACV,GAAG,EAAE,cAAc;oBACnB,SAAS,EAAE,MAAM;oBACjB,WAAW,EAAE,0CAA0C;iBACxD,CAAC;gBACF,wEAAwE;aACzE;SACF,EACD,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CACpB,CAAC;IACJ,CAAC;IAEQ,KAAK,CAAC,QAAQ,CAAC,MAAc;QACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC;QAC7C,IAAI,MAAM,KAAK,qBAAqB,EAAE,CAAC;YACrC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,OAAO,6DAA6D,CAAC;QACvE,CAAC;IACH,CAAC;CACF;AAEM,KAAK,UAAU,GAAG,CAAC,KAAe;IACvC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,aAAa,CAC9B,EAAE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAmB,EAAE,EACjD,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,wBAAwB,CAAC,IAAA,6BAAgB,EAAC,OAAO,CAAC,CAAC,CACpE,CAAC;AACJ,CAAC"}
package/dist/package.json CHANGED
@@ -2,22 +2,22 @@
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.0",
6
- "type": "module",
5
+ "version": "0.7.0",
6
+ "type": "commonjs",
7
7
  "main": "dist/src/index.js",
8
8
  "types": "dist/src/index.d.ts",
9
9
  "exports": {
10
10
  ".": {
11
11
  "types": "./dist/src/index.d.ts",
12
- "import": "./dist/src/index.js"
12
+ "default": "./dist/src/index.js"
13
13
  },
14
14
  "./helpers/openai": {
15
15
  "types": "./dist/src/helpers/openai.d.ts",
16
- "import": "./dist/src/helpers/openai.js"
16
+ "default": "./dist/src/helpers/openai.js"
17
17
  },
18
18
  "./example-data": {
19
19
  "types": "./dist/src/example-data.d.ts",
20
- "import": "./dist/src/example-data.js"
20
+ "default": "./dist/src/example-data.js"
21
21
  }
22
22
  },
23
23
  "devDependencies": {
@@ -28,7 +28,7 @@
28
28
  "typescript": "^5.9.3"
29
29
  },
30
30
  "bin": {
31
- "guava-example": "./bin/example-runner.js"
31
+ "guava-example": "./dist/bin/example-runner.js"
32
32
  },
33
33
  "dependencies": {
34
34
  "openai": "^6.16.0",
@@ -1,11 +1,49 @@
1
- import * as z from "zod";
2
- export const FieldItemType = z.union(["text", "date", "datetime", "integer", "multiple_choice", "calendar_slot"].map((val) => z.literal(val)));
3
- export const FieldItem = z
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.ActionItem = exports.TodoItem = exports.SayItem = exports.SerializableFieldItem = exports.FieldItem = exports.FieldItemType = void 0;
37
+ exports.Field = Field;
38
+ exports.Say = Say;
39
+ const z = __importStar(require("zod"));
40
+ exports.FieldItemType = z.union(["text", "date", "datetime", "integer", "multiple_choice", "calendar_slot"].map((val) => z.literal(val)));
41
+ exports.FieldItem = z
4
42
  .object({
5
43
  item_type: z.literal("field"),
6
44
  key: z.string(),
7
45
  description: z.string(),
8
- field_type: FieldItemType,
46
+ field_type: exports.FieldItemType,
9
47
  required: z.boolean().default(true),
10
48
  choices: z.array(z.string()).default([]),
11
49
  choiceGenerator: z.custom((val) => typeof val === "function").optional(),
@@ -16,28 +54,28 @@ export const FieldItem = z
16
54
  }
17
55
  return true;
18
56
  });
19
- export const SerializableFieldItem = z.object({
57
+ exports.SerializableFieldItem = z.object({
20
58
  item_type: z.literal("field"),
21
59
  key: z.string(),
22
60
  description: z.string(),
23
- field_type: FieldItemType,
61
+ field_type: exports.FieldItemType,
24
62
  required: z.boolean().default(true),
25
63
  choices: z.array(z.string()).default([]),
26
64
  is_search_field: z.boolean().default(false),
27
65
  });
28
- export const SayItem = z.object({
66
+ exports.SayItem = z.object({
29
67
  item_type: z.literal("say"),
30
68
  statement: z.string(),
31
69
  key: z.string().default(() => Math.random().toString(16).substring(2, 6)),
32
70
  });
33
- export const TodoItem = z.object({
71
+ exports.TodoItem = z.object({
34
72
  item_type: z.literal("todo"),
35
73
  description: z.string(),
36
74
  key: z.string().default(() => Math.random().toString(16).substring(2, 6)),
37
75
  });
38
- export const ActionItem = z.union([SerializableFieldItem, SayItem, TodoItem]);
39
- export function Field(options) {
40
- return FieldItem.parse({
76
+ exports.ActionItem = z.union([exports.SerializableFieldItem, exports.SayItem, exports.TodoItem]);
77
+ function Field(options) {
78
+ return exports.FieldItem.parse({
41
79
  item_type: "field",
42
80
  key: options.key,
43
81
  description: options.description,
@@ -47,8 +85,8 @@ export function Field(options) {
47
85
  choiceGenerator: options.choiceGenerator,
48
86
  });
49
87
  }
50
- export function Say(statement) {
51
- return SayItem.parse({
88
+ function Say(statement) {
89
+ return exports.SayItem.parse({
52
90
  item_type: "say",
53
91
  statement: statement,
54
92
  });