@guava-ai/guava-sdk 0.23.0 → 0.24.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/dist/examples/help-desk.js +22 -8
  2. package/dist/examples/help-desk.js.map +1 -1
  3. package/dist/examples/property-insurance.js +14 -3
  4. package/dist/examples/property-insurance.js.map +1 -1
  5. package/dist/examples/restaurant-waitlist.js +9 -1
  6. package/dist/examples/restaurant-waitlist.js.map +1 -1
  7. package/dist/examples/scheduling-outbound.js +2 -4
  8. package/dist/examples/scheduling-outbound.js.map +1 -1
  9. package/dist/src/action-item.d.ts +4 -4
  10. package/dist/src/action-item.js +1 -1
  11. package/dist/src/action-item.js.map +1 -1
  12. package/dist/src/agent.d.ts +18 -6
  13. package/dist/src/agent.js +269 -121
  14. package/dist/src/agent.js.map +1 -1
  15. package/dist/src/call.d.ts +9 -1
  16. package/dist/src/call.js +24 -1
  17. package/dist/src/call.js.map +1 -1
  18. package/dist/src/commands.d.ts +37 -9
  19. package/dist/src/commands.js +13 -3
  20. package/dist/src/commands.js.map +1 -1
  21. package/dist/src/events.d.ts +28 -1
  22. package/dist/src/events.js +10 -2
  23. package/dist/src/events.js.map +1 -1
  24. package/dist/src/health.d.ts +35 -0
  25. package/dist/src/health.js +99 -0
  26. package/dist/src/health.js.map +1 -0
  27. package/dist/src/helpers/index.d.ts +1 -0
  28. package/dist/src/helpers/index.js +9 -0
  29. package/dist/src/helpers/index.js.map +1 -0
  30. package/dist/src/helpers/llm.d.ts +33 -1
  31. package/dist/src/helpers/llm.js +220 -0
  32. package/dist/src/helpers/llm.js.map +1 -1
  33. package/dist/src/helpers/server-rag.d.ts +25 -0
  34. package/dist/src/helpers/server-rag.js +119 -0
  35. package/dist/src/helpers/server-rag.js.map +1 -0
  36. package/dist/src/socket/protocol.d.ts +4 -4
  37. package/dist/src/testing/mocks.d.ts +6 -0
  38. package/dist/src/testing/mocks.js +12 -0
  39. package/dist/src/testing/mocks.js.map +1 -1
  40. package/dist/src/version.d.ts +1 -1
  41. package/dist/src/version.js +1 -1
  42. package/examples/help-desk.ts +21 -12
  43. package/examples/property-insurance.ts +15 -3
  44. package/examples/restaurant-waitlist.ts +10 -1
  45. package/examples/scheduling-outbound.ts +2 -4
  46. package/package.json +5 -1
  47. package/src/action-item.ts +1 -1
  48. package/src/agent.ts +261 -127
  49. package/src/call.ts +37 -1
  50. package/src/commands.ts +16 -2
  51. package/src/events.ts +11 -1
  52. package/src/health.ts +120 -0
  53. package/src/helpers/index.ts +2 -0
  54. package/src/helpers/llm.ts +178 -1
  55. package/src/helpers/server-rag.ts +132 -0
  56. package/src/testing/mocks.ts +17 -0
  57. package/src/version.ts +1 -1
@@ -36,23 +36,29 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.agent = void 0;
37
37
  exports.run = run;
38
38
  const guava = __importStar(require("@guava-ai/guava-sdk"));
39
- const openai_1 = require("@guava-ai/guava-sdk/helpers/openai");
39
+ const helpers_1 = require("@guava-ai/guava-sdk/helpers");
40
+ const helpers_2 = require("@guava-ai/guava-sdk/helpers");
40
41
  const example_data_1 = require("@guava-ai/guava-sdk/example-data");
41
- const guava_sdk_1 = require("@guava-ai/guava-sdk");
42
42
  exports.agent = new guava.Agent({
43
43
  name: "Nova",
44
44
  organization: "Clearfield Home & Living",
45
45
  purpose: "Answer questions and route callers to the appropriate department.",
46
46
  });
47
- const logger = (0, guava_sdk_1.getDefaultLogger)();
48
- const documentQA = new openai_1.DocumentQA("clearfield-home-living-qa", example_data_1.FURNITURE_RETAILER_QA);
49
- const intentRecognizer = new openai_1.IntentRecognizer(["sales", "delivery-and-returns", "account-management", "other"], logger);
47
+ const documentQA = new helpers_1.DocumentQA({
48
+ documents: example_data_1.FURNITURE_RETAILER_QA,
49
+ namespace: "clearfield-home-living-qa",
50
+ });
51
+ const intentRecognizer = new helpers_2.IntentRecognizer([
52
+ "sales",
53
+ "delivery-and-returns",
54
+ "account-management",
55
+ "other",
56
+ ]);
50
57
  exports.agent.onQuestion(async (_call, question) => {
51
58
  return await documentQA.ask(question);
52
59
  });
53
60
  exports.agent.onActionRequest(async (_call, request) => {
54
- const key = await intentRecognizer.classify(request);
55
- return { key };
61
+ return await intentRecognizer.classify(request);
56
62
  });
57
63
  exports.agent.onAction("sales", async (call) => {
58
64
  call.transfer("+15555555555", "Notify the caller that you will be transferring them to the Sales department.");
@@ -73,6 +79,14 @@ async function run(args) {
73
79
  else if (args.includes("--phone")) {
74
80
  exports.agent.listenPhone(process.env.GUAVA_AGENT_NUMBER);
75
81
  }
82
+ else if (args.includes("--sip")) {
83
+ const sipCode = args[args.indexOf("--sip") + 1];
84
+ if (!sipCode) {
85
+ console.error("Error: --sip requires a SIP code argument.");
86
+ process.exit(1);
87
+ }
88
+ await exports.agent.listenSip(sipCode);
89
+ }
76
90
  else if (args.includes("--local")) {
77
91
  await exports.agent.callLocal();
78
92
  }
@@ -80,7 +94,7 @@ async function run(args) {
80
94
  await exports.agent.chat();
81
95
  }
82
96
  else {
83
- console.error("Usage: guava-example help-desk --phone | --webrtc | --local | --chat");
97
+ console.error("Usage: guava-example help-desk --phone | --webrtc | --sip | --local | --chat");
84
98
  process.exit(1);
85
99
  }
86
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"help-desk.js","sourceRoot":"","sources":["../../examples/help-desk.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDA,kBAaC;AAtED,2DAA6C;AAC7C,+DAAkF;AAClF,mEAAyE;AACzE,mDAAuD;AAE1C,QAAA,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;IACnC,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE,0BAA0B;IACxC,OAAO,EAAE,mEAAmE;CAC7E,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAA,4BAAgB,GAAE,CAAC;AAElC,MAAM,UAAU,GAAG,IAAI,mBAAU,CAAC,2BAA2B,EAAE,oCAAqB,CAAC,CAAC;AAEtF,MAAM,gBAAgB,GAAG,IAAI,yBAAgB,CAC3C,CAAC,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,OAAO,CAAU,EACzE,MAAM,CACP,CAAC;AAEF,aAAK,CAAC,UAAU,CAAC,KAAK,EAAE,KAAiB,EAAE,QAAgB,EAAE,EAAE;IAC7D,OAAO,MAAM,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEH,aAAK,CAAC,eAAe,CAAC,KAAK,EAAE,KAAiB,EAAE,OAAe,EAAE,EAAE;IACjE,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACrD,OAAO,EAAE,GAAG,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,aAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,IAAgB,EAAE,EAAE;IACjD,IAAI,CAAC,QAAQ,CACX,cAAc,EACd,+EAA+E,CAChF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,aAAK,CAAC,QAAQ,CAAC,sBAAsB,EAAE,KAAK,EAAE,IAAgB,EAAE,EAAE;IAChE,IAAI,CAAC,QAAQ,CACX,cAAc,EACd,8FAA8F,CAC/F,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,aAAK,CAAC,QAAQ,CAAC,oBAAoB,EAAE,KAAK,EAAE,IAAgB,EAAE,EAAE;IAC9D,IAAI,CAAC,QAAQ,CACX,cAAc,EACd,4FAA4F,CAC7F,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,aAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,IAAgB,EAAE,EAAE;IACjD,IAAI,CAAC,QAAQ,CACX,cAAc,EACd,mFAAmF,CACpF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEI,KAAK,UAAU,GAAG,CAAC,IAAc;IACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,aAAK,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,aAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAmB,CAAC,CAAC;IACrD,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,MAAM,aAAK,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,MAAM,aAAK,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;QACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"help-desk.js","sourceRoot":"","sources":["../../examples/help-desk.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DA,kBAoBC;AA/ED,2DAA6C;AAC7C,yDAAyD;AACzD,yDAA+D;AAC/D,mEAAyE;AAE5D,QAAA,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;IACnC,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE,0BAA0B;IACxC,OAAO,EAAE,mEAAmE;CAC7E,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,IAAI,oBAAU,CAAC;IAChC,SAAS,EAAE,oCAAqB;IAChC,SAAS,EAAE,2BAA2B;CACvC,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,IAAI,0BAAgB,CAAC;IAC5C,OAAO;IACP,sBAAsB;IACtB,oBAAoB;IACpB,OAAO;CACR,CAAC,CAAC;AAEH,aAAK,CAAC,UAAU,CAAC,KAAK,EAAE,KAAiB,EAAE,QAAgB,EAAE,EAAE;IAC7D,OAAO,MAAM,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEH,aAAK,CAAC,eAAe,CAAC,KAAK,EAAE,KAAiB,EAAE,OAAe,EAAE,EAAE;IACjE,OAAO,MAAM,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC;AAEH,aAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,IAAgB,EAAE,EAAE;IACjD,IAAI,CAAC,QAAQ,CACX,cAAc,EACd,+EAA+E,CAChF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,aAAK,CAAC,QAAQ,CAAC,sBAAsB,EAAE,KAAK,EAAE,IAAgB,EAAE,EAAE;IAChE,IAAI,CAAC,QAAQ,CACX,cAAc,EACd,8FAA8F,CAC/F,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,aAAK,CAAC,QAAQ,CAAC,oBAAoB,EAAE,KAAK,EAAE,IAAgB,EAAE,EAAE;IAC9D,IAAI,CAAC,QAAQ,CACX,cAAc,EACd,4FAA4F,CAC7F,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,aAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,IAAgB,EAAE,EAAE;IACjD,IAAI,CAAC,QAAQ,CACX,cAAc,EACd,mFAAmF,CACpF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEI,KAAK,UAAU,GAAG,CAAC,IAAc;IACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,aAAK,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,aAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAmB,CAAC,CAAC;IACrD,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,aAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,MAAM,aAAK,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,MAAM,aAAK,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,8EAA8E,CAAC,CAAC;QAC9F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -35,7 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.run = run;
37
37
  const guava = __importStar(require("@guava-ai/guava-sdk"));
38
- const openai_1 = require("@guava-ai/guava-sdk/helpers/openai");
38
+ const helpers_1 = require("@guava-ai/guava-sdk/helpers");
39
39
  const example_data_1 = require("@guava-ai/guava-sdk/example-data");
40
40
  const agent = new guava.Agent({
41
41
  organization: "Harper Valley Property Insurance",
@@ -43,7 +43,10 @@ const agent = new guava.Agent({
43
43
  });
44
44
  // This is a built-in knowledge base helper that we will use for this example.
45
45
  // You can use any RAG system you prefer.
46
- const documentQA = new openai_1.DocumentQA("harper-valley-property-insurance", example_data_1.PROPERTY_INSURANCE_POLICY);
46
+ const documentQA = new helpers_1.DocumentQA({
47
+ documents: example_data_1.PROPERTY_INSURANCE_POLICY,
48
+ namespace: "harper-valley-property-insurance",
49
+ });
47
50
  // When the Agent is asked a question that it cannot answer, it will invoke the on_question callback.
48
51
  agent.onQuestion(async (call, question) => {
49
52
  // Forward the Agent's question to the knowledge base and return the answer.
@@ -57,6 +60,14 @@ async function run(args) {
57
60
  else if (args.includes("--phone")) {
58
61
  agent.listenPhone(process.env.GUAVA_AGENT_NUMBER);
59
62
  }
63
+ else if (args.includes("--sip")) {
64
+ const sipCode = args[args.indexOf("--sip") + 1];
65
+ if (!sipCode) {
66
+ console.error("Error: --sip requires a SIP code argument.");
67
+ process.exit(1);
68
+ }
69
+ await agent.listenSip(sipCode);
70
+ }
60
71
  else if (args.includes("--local")) {
61
72
  await agent.callLocal();
62
73
  }
@@ -64,7 +75,7 @@ async function run(args) {
64
75
  await agent.chat();
65
76
  }
66
77
  else {
67
- console.error("Usage: guava-example property-insurance --phone | --webrtc | --local | --chat");
78
+ console.error("Usage: guava-example property-insurance --phone | --webrtc | --sip | --local | --chat");
68
79
  process.exit(1);
69
80
  }
70
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"property-insurance.js","sourceRoot":"","sources":["../../examples/property-insurance.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,kBAaC;AAjCD,2DAA6C;AAC7C,+DAAgE;AAChE,mEAA6E;AAE7E,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;IAC5B,YAAY,EAAE,kCAAkC;IAChD,OAAO,EAAE,wFAAwF;CAClG,CAAC,CAAC;AAEH,8EAA8E;AAC9E,yCAAyC;AACzC,MAAM,UAAU,GAAG,IAAI,mBAAU,CAAC,kCAAkC,EAAE,wCAAyB,CAAC,CAAC;AAEjG,qGAAqG;AACrG,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,IAAgB,EAAE,QAAgB,EAAE,EAAE;IAC5D,4EAA4E;IAC5E,2DAA2D;IAC3D,OAAO,MAAM,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEI,KAAK,UAAU,GAAG,CAAC,IAAc;IACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAmB,CAAC,CAAC;IACrD,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,+EAA+E,CAAC,CAAC;QAC/F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"property-insurance.js","sourceRoot":"","sources":["../../examples/property-insurance.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,kBAsBC;AA7CD,2DAA6C;AAC7C,yDAAyD;AACzD,mEAA6E;AAE7E,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;IAC5B,YAAY,EAAE,kCAAkC;IAChD,OAAO,EAAE,wFAAwF;CAClG,CAAC,CAAC;AAEH,8EAA8E;AAC9E,yCAAyC;AACzC,MAAM,UAAU,GAAG,IAAI,oBAAU,CAAC;IAChC,SAAS,EAAE,wCAAyB;IACpC,SAAS,EAAE,kCAAkC;CAC9C,CAAC,CAAC;AAEH,qGAAqG;AACrG,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,IAAgB,EAAE,QAAgB,EAAE,EAAE;IAC5D,4EAA4E;IAC5E,2DAA2D;IAC3D,OAAO,MAAM,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEI,KAAK,UAAU,GAAG,CAAC,IAAc;IACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAmB,CAAC,CAAC;IACrD,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CACX,uFAAuF,CACxF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -75,6 +75,14 @@ async function run(args) {
75
75
  else if (args.includes("--phone")) {
76
76
  agent.listenPhone(process.env.GUAVA_AGENT_NUMBER);
77
77
  }
78
+ else if (args.includes("--sip")) {
79
+ const sipCode = args[args.indexOf("--sip") + 1];
80
+ if (!sipCode) {
81
+ console.error("Error: --sip requires a SIP code argument.");
82
+ process.exit(1);
83
+ }
84
+ await agent.listenSip(sipCode);
85
+ }
78
86
  else if (args.includes("--local")) {
79
87
  await agent.callLocal();
80
88
  }
@@ -82,7 +90,7 @@ async function run(args) {
82
90
  await agent.chat();
83
91
  }
84
92
  else {
85
- console.error("Usage: guava-example restaurant-waitlist --phone | --webrtc | --local | --chat");
93
+ console.error("Usage: guava-example restaurant-waitlist --phone | --webrtc | --sip | --local | --chat");
86
94
  process.exit(1);
87
95
  }
88
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"restaurant-waitlist.js","sourceRoot":"","sources":["../../examples/restaurant-waitlist.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA,kBAaC;AAzDD,2DAA6C;AAC7C,mDAAuD;AAEvD,MAAM,MAAM,GAAG,IAAA,4BAAgB,GAAE,CAAC;AAElC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;IAC5B,IAAI,EAAE,KAAK;IACX,YAAY,EAAE,aAAa;IAC3B,OAAO,EAAE,8CAA8C;CACxD,CAAC,CAAC;AAEH,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,SAAyB,EAAE,EAAE;IACvD,6FAA6F;IAC7F,8FAA8F;IAC9F,uBAAuB;IACvB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,IAAgB,EAAE,EAAE;IAC3C,MAAM,IAAI,CAAC,OAAO,CAAC;QACjB,MAAM,EAAE,UAAU;QAClB,SAAS,EAAE,2EAA2E;QACtF,SAAS,EAAE;YACT,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;YAC5F,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;YACzF,KAAK,CAAC,KAAK,CAAC;gBACV,GAAG,EAAE,cAAc;gBACnB,SAAS,EAAE,MAAM;gBACjB,WAAW,EAAE,8CAA8C;aAC5D,CAAC;YACF,sDAAsD;SACvD;KACF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,IAAgB,EAAE,EAAE;IAC1D,MAAM,CAAC,IAAI,CACT,qCAAqC,EACrC,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAClC,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAClC,CAAC;IACF,MAAM,IAAI,CAAC,MAAM,CAAC,0EAA0E,CAAC,CAAC;AAChG,CAAC,CAAC,CAAC;AAEI,KAAK,UAAU,GAAG,CAAC,IAAc;IACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAmB,CAAC,CAAC;IACrD,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAC;QAChG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"restaurant-waitlist.js","sourceRoot":"","sources":["../../examples/restaurant-waitlist.ts"],"names":[],"mappings":"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"}
@@ -35,15 +35,13 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.run = run;
37
37
  const guava = __importStar(require("@guava-ai/guava-sdk"));
38
- const openai_1 = require("@guava-ai/guava-sdk/helpers/openai");
38
+ const helpers_1 = require("@guava-ai/guava-sdk/helpers");
39
39
  const example_data_1 = require("@guava-ai/guava-sdk/example-data");
40
40
  const agent = new guava.Agent({
41
41
  organization: "Bright Smile Dental",
42
42
  purpose: "You are calling patients to help them schedule a dental appointment",
43
43
  });
44
- const datetimeFilter = new openai_1.DatetimeFilter({
45
- sourceList: (0, example_data_1.mockAppointmentsForFuture)(),
46
- });
44
+ const datetimeFilter = new helpers_1.DatetimeFilter((0, example_data_1.mockAppointmentsForFuture)());
47
45
  agent.onCallStart(async (call) => {
48
46
  await call.reachPerson(await call.getVariable("patientName"));
49
47
  });
@@ -1 +1 @@
1
- {"version":3,"file":"scheduling-outbound.js","sourceRoot":"","sources":["../../examples/scheduling-outbound.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,kBAkBC;AA/DD,2DAA6C;AAC7C,+DAAoE;AACpE,mEAA6E;AAE7E,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;IAC5B,YAAY,EAAE,qBAAqB;IACnC,OAAO,EAAE,qEAAqE;CAC/E,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,IAAI,uBAAc,CAAC;IACxC,UAAU,EAAE,IAAA,wCAAyB,GAAE;CACxC,CAAC,CAAC;AAEH,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,IAAgB,EAAE,EAAE;IAC3C,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;AAChE,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,aAAa,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IAC7D,OAAO,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;AACzD,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,IAAgB,EAAE,OAAe,EAAE,EAAE;IAC9D,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,MAAM,IAAI,CAAC,OAAO,CAAC;YACjB,MAAM,EAAE,sBAAsB;YAC9B,SAAS,EAAE;gBACT,+EAA+E;gBAC/E,KAAK,CAAC,KAAK,CAAC;oBACV,GAAG,EAAE,kBAAkB;oBACvB,SAAS,EAAE,eAAe;oBAC1B,WAAW,EAAE,uCAAuC;oBACpD,UAAU,EAAE,IAAI;iBACjB,CAAC;gBACF,iGAAiG;aAClG;SACF,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,CAAC,MAAM,CAAC,kDAAkD,CAAC,CAAC;IACxE,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,cAAc,CAAC,sBAAsB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;IAC1D,MAAM,IAAI,CAAC,MAAM,CAAC,iDAAiD,CAAC,CAAC;AACvE,CAAC,CAAC,CAAC;AAEI,KAAK,UAAU,GAAG,CAAC,IAAc;IACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,kBAAkB,CAAC;QAC3E,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;QAClC,OAAO;IACT,CAAC;IAED,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,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,EAAE;QACxD,WAAW,EAAE,WAAW;KACzB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"scheduling-outbound.js","sourceRoot":"","sources":["../../examples/scheduling-outbound.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,kBAkBC;AA7DD,2DAA6C;AAC7C,yDAA6D;AAC7D,mEAA6E;AAE7E,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;IAC5B,YAAY,EAAE,qBAAqB;IACnC,OAAO,EAAE,qEAAqE;CAC/E,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,IAAI,wBAAc,CAAC,IAAA,wCAAyB,GAAE,CAAC,CAAC;AAEvE,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,IAAgB,EAAE,EAAE;IAC3C,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;AAChE,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,aAAa,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IAC7D,OAAO,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;AACzD,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,IAAgB,EAAE,OAAe,EAAE,EAAE;IAC9D,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,MAAM,IAAI,CAAC,OAAO,CAAC;YACjB,MAAM,EAAE,sBAAsB;YAC9B,SAAS,EAAE;gBACT,+EAA+E;gBAC/E,KAAK,CAAC,KAAK,CAAC;oBACV,GAAG,EAAE,kBAAkB;oBACvB,SAAS,EAAE,eAAe;oBAC1B,WAAW,EAAE,uCAAuC;oBACpD,UAAU,EAAE,IAAI;iBACjB,CAAC;gBACF,iGAAiG;aAClG;SACF,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,CAAC,MAAM,CAAC,kDAAkD,CAAC,CAAC;IACxE,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,cAAc,CAAC,sBAAsB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;IAC1D,MAAM,IAAI,CAAC,MAAM,CAAC,iDAAiD,CAAC,CAAC;AACvE,CAAC,CAAC,CAAC;AAEI,KAAK,UAAU,GAAG,CAAC,IAAc;IACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,kBAAkB,CAAC;QAC3E,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;QAClC,OAAO;IACT,CAAC;IAED,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,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,EAAE;QACxD,WAAW,EAAE,WAAW;KACzB,CAAC,CAAC;AACL,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import * as z from "zod";
2
- export declare const FieldItemType: z.ZodUnion<z.ZodLiteral<"text" | "date" | "datetime" | "integer" | "multiple_choice" | "calendar_slot">[]>;
2
+ export declare const FieldItemType: z.ZodUnion<z.ZodLiteral<"text" | "date" | "integer" | "digit_sequence" | "multiple_choice" | "calendar_slot">[]>;
3
3
  export type FieldItemType = z.input<typeof FieldItemType>;
4
4
  export type ChoiceGenerator = (query: string) => Promise<[string[], string[]]>;
5
5
  export declare const FieldItem: z.ZodObject<{
@@ -7,7 +7,7 @@ export declare const FieldItem: z.ZodObject<{
7
7
  key: z.ZodString;
8
8
  description: z.ZodDefault<z.ZodString>;
9
9
  question: z.ZodDefault<z.ZodString>;
10
- field_type: z.ZodUnion<z.ZodLiteral<"text" | "date" | "datetime" | "integer" | "multiple_choice" | "calendar_slot">[]>;
10
+ field_type: z.ZodUnion<z.ZodLiteral<"text" | "date" | "integer" | "digit_sequence" | "multiple_choice" | "calendar_slot">[]>;
11
11
  required: z.ZodDefault<z.ZodBoolean>;
12
12
  choices: z.ZodDefault<z.ZodArray<z.ZodString>>;
13
13
  choiceGenerator: z.ZodOptional<z.ZodCustom<ChoiceGenerator, ChoiceGenerator>>;
@@ -19,7 +19,7 @@ export declare const SerializableFieldItem: z.ZodObject<{
19
19
  key: z.ZodString;
20
20
  description: z.ZodDefault<z.ZodString>;
21
21
  question: z.ZodDefault<z.ZodString>;
22
- field_type: z.ZodUnion<z.ZodLiteral<"text" | "date" | "datetime" | "integer" | "multiple_choice" | "calendar_slot">[]>;
22
+ field_type: z.ZodUnion<z.ZodLiteral<"text" | "date" | "integer" | "digit_sequence" | "multiple_choice" | "calendar_slot">[]>;
23
23
  required: z.ZodDefault<z.ZodBoolean>;
24
24
  choices: z.ZodDefault<z.ZodArray<z.ZodString>>;
25
25
  is_search_field: z.ZodDefault<z.ZodBoolean>;
@@ -42,7 +42,7 @@ export declare const ActionItem: z.ZodUnion<readonly [z.ZodObject<{
42
42
  key: z.ZodString;
43
43
  description: z.ZodDefault<z.ZodString>;
44
44
  question: z.ZodDefault<z.ZodString>;
45
- field_type: z.ZodUnion<z.ZodLiteral<"text" | "date" | "datetime" | "integer" | "multiple_choice" | "calendar_slot">[]>;
45
+ field_type: z.ZodUnion<z.ZodLiteral<"text" | "date" | "integer" | "digit_sequence" | "multiple_choice" | "calendar_slot">[]>;
46
46
  required: z.ZodDefault<z.ZodBoolean>;
47
47
  choices: z.ZodDefault<z.ZodArray<z.ZodString>>;
48
48
  is_search_field: z.ZodDefault<z.ZodBoolean>;
@@ -37,7 +37,7 @@ exports.ActionItem = exports.TodoItem = exports.SayItem = exports.SerializableFi
37
37
  exports.Field = Field;
38
38
  exports.Say = Say;
39
39
  const z = __importStar(require("zod"));
40
- exports.FieldItemType = z.union(["text", "date", "datetime", "integer", "multiple_choice", "calendar_slot"].map((val) => z.literal(val)));
40
+ exports.FieldItemType = z.union(["text", "date", "integer", "digit_sequence", "multiple_choice", "calendar_slot"].map((val) => z.literal(val)));
41
41
  exports.FieldItem = z
42
42
  .object({
43
43
  item_type: z.literal("field"),
@@ -1 +1 @@
1
- {"version":3,"file":"action-item.js","sourceRoot":"","sources":["../../src/action-item.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"action-item.js","sourceRoot":"","sources":["../../src/action-item.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
+ import { type AgentSpeechEvent, type BotSessionEnded, type CallerSpeechEvent, type DTMFPressedEvent, type EscalateEvent } from "./events.ts";
2
+ import { HealthContext } from "./health.ts";
1
3
  import { Call } from "./index.ts";
2
- import { type CallerSpeechEvent, type AgentSpeechEvent, type BotSessionEnded, type DTMFPressedEvent } from "./events.ts";
3
4
  import type { CallInfo } from "./socket/call-info.ts";
4
5
  import { TestSession } from "./testing/session.ts";
5
6
  export type { CallInfo } from "./socket/call-info.ts";
@@ -16,11 +17,15 @@ export type InboundConnection = {
16
17
  agent_number: string;
17
18
  } | {
18
19
  webrtc_code: string;
20
+ } | {
21
+ sip_code: string;
19
22
  };
20
23
  export declare class Agent {
21
24
  private _name?;
22
25
  private _organization?;
23
26
  private _purpose?;
27
+ private _voice?;
28
+ private _acceptDtmfForNumbers;
24
29
  private _logger;
25
30
  private _client;
26
31
  private _onCallReceived;
@@ -34,12 +39,16 @@ export declare class Agent {
34
39
  private _onActionRequested?;
35
40
  private _onActionGeneric?;
36
41
  private _onActionHandlers;
42
+ private _onValidateHandlers;
37
43
  private _onSessionEnd?;
44
+ private _onEscalate?;
38
45
  private _onDtmf?;
39
46
  constructor(args?: {
40
47
  name?: string;
41
48
  organization?: string;
42
49
  purpose?: string;
50
+ voice?: string;
51
+ acceptDtmf?: boolean;
43
52
  });
44
53
  onCallReceived(callback: (callInfo: CallInfo) => Promise<IncomingCallAction>): void;
45
54
  onCallStart(callback: (call: Call) => Promise<void>): void;
@@ -48,11 +57,13 @@ export declare class Agent {
48
57
  onQuestion(callback: (call: Call, question: string) => Promise<string>): void;
49
58
  onTaskComplete(callback: (call: Call, taskId: string) => Promise<void>): void;
50
59
  onTaskComplete(taskName: string, callback: (call: Call) => Promise<void>): void;
60
+ onValidate(fieldKey: string, callback: (call: Call, value: unknown) => Promise<true | [false, string]>): void;
51
61
  onSearchQuery(fieldKey: string, callback: (call: Call, query: string) => Promise<[string[], string[]]>): void;
52
- onActionRequest(callback: (call: Call, intentSummary: string) => Promise<SuggestedAction | undefined>): void;
62
+ onActionRequest(callback: (call: Call, intentSummary: string) => Promise<SuggestedAction | SuggestedAction[] | null | undefined>): void;
53
63
  onAction(callback: (call: Call, actionKey: string) => Promise<void>): void;
54
64
  onAction(actionKey: string, callback: (call: Call) => Promise<void>): void;
55
65
  onSessionEnd(callback: (call: Call, event: BotSessionEnded) => Promise<void>): void;
66
+ onEscalate(callback: (call: Call, event: EscalateEvent) => Promise<void>): void;
56
67
  onDtmf(callback: (call: Call, event: DTMFPressedEvent) => Promise<void>): void;
57
68
  get handlers(): {
58
69
  onCallReceived: (callInfo: CallInfo) => Promise<IncomingCallAction>;
@@ -62,18 +73,19 @@ export declare class Agent {
62
73
  onQuestion: (call: Call, question: string) => Promise<string>;
63
74
  onTaskComplete: (taskId: string, call: Call) => Promise<void>;
64
75
  onSearchQuery: (fieldKey: string, call: Call, query: string) => Promise<[string[], string[]]>;
65
- onActionRequest: (call: Call, intentSummary: string) => Promise<SuggestedAction | undefined>;
76
+ onActionRequest: (call: Call, intentSummary: string) => Promise<SuggestedAction | SuggestedAction[] | null | undefined>;
66
77
  onAction: (actionKey: string, call: Call) => Promise<void>;
67
78
  onSessionEnd: (call: Call, event: BotSessionEnded) => Promise<void>;
68
79
  };
69
80
  onReachPerson(callback: (call: Call, availability: string) => Promise<void>): void;
70
81
  listenPhone(phoneNumber: string): Promise<void>;
71
82
  listenWebrtc(webrtcCode?: string): Promise<void>;
83
+ listenSip(sipCode: string): Promise<void>;
72
84
  callLocal(): Promise<void>;
73
85
  private _dispatchEvent;
74
- _initCall(variables?: Record<string, any>): Promise<Call>;
75
- _attachToCall(callId: string, initialVariables?: Record<string, any>, testSession?: TestSession, route?: string): Promise<void>;
76
- _listenInbound(conn: InboundConnection): Promise<void>;
86
+ _initCall(callId: string, callInfo: CallInfo, variables?: Record<string, any>): Promise<Call>;
87
+ _attachToCall(callId: string, callInfo: CallInfo, initialVariables?: Record<string, any>, testSession?: TestSession, route?: string): Promise<void>;
88
+ _listenInbound(healthCtx: HealthContext, conn: InboundConnection): Promise<void>;
77
89
  private _handleAssignedCall;
78
90
  /**
79
91
  * @description use the Guava API to call out to a number