@guava-ai/guava-sdk 0.23.0 → 0.25.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 (91) hide show
  1. package/README.md +13 -3
  2. package/bin/example-runner.ts +138 -11
  3. package/dist/bin/example-runner.d.ts +23 -6
  4. package/dist/bin/example-runner.js +112 -9
  5. package/dist/bin/example-runner.js.map +1 -1
  6. package/dist/examples/{example.test.js → agent-testing.test.js} +2 -2
  7. package/dist/examples/agent-testing.test.js.map +1 -0
  8. package/dist/examples/help-desk.js +22 -8
  9. package/dist/examples/help-desk.js.map +1 -1
  10. package/dist/examples/multiple-agents.d.ts +1 -0
  11. package/dist/examples/multiple-agents.js +52 -0
  12. package/dist/examples/multiple-agents.js.map +1 -0
  13. package/dist/examples/property-insurance.js +14 -3
  14. package/dist/examples/property-insurance.js.map +1 -1
  15. package/dist/examples/restaurant-waitlist.js +9 -1
  16. package/dist/examples/restaurant-waitlist.js.map +1 -1
  17. package/dist/examples/scheduling-outbound.js +5 -6
  18. package/dist/examples/scheduling-outbound.js.map +1 -1
  19. package/dist/src/action-item.d.ts +4 -4
  20. package/dist/src/action-item.js +1 -1
  21. package/dist/src/action-item.js.map +1 -1
  22. package/dist/src/agent.d.ts +31 -11
  23. package/dist/src/agent.js +278 -135
  24. package/dist/src/agent.js.map +1 -1
  25. package/dist/src/call.d.ts +12 -1
  26. package/dist/src/call.js +87 -24
  27. package/dist/src/call.js.map +1 -1
  28. package/dist/src/client.d.ts +3 -0
  29. package/dist/src/client.js +6 -0
  30. package/dist/src/client.js.map +1 -1
  31. package/dist/src/commands.d.ts +37 -9
  32. package/dist/src/commands.js +13 -3
  33. package/dist/src/commands.js.map +1 -1
  34. package/dist/src/events.d.ts +28 -1
  35. package/dist/src/events.js +10 -2
  36. package/dist/src/events.js.map +1 -1
  37. package/dist/src/example-utils.d.ts +2 -0
  38. package/dist/src/example-utils.js +115 -0
  39. package/dist/src/example-utils.js.map +1 -0
  40. package/dist/src/health.d.ts +35 -0
  41. package/dist/src/health.js +99 -0
  42. package/dist/src/health.js.map +1 -0
  43. package/dist/src/helpers/index.d.ts +1 -0
  44. package/dist/src/helpers/index.js +9 -0
  45. package/dist/src/helpers/index.js.map +1 -0
  46. package/dist/src/helpers/llm.d.ts +43 -1
  47. package/dist/src/helpers/llm.js +247 -0
  48. package/dist/src/helpers/llm.js.map +1 -1
  49. package/dist/src/helpers/server-rag.d.ts +25 -0
  50. package/dist/src/helpers/server-rag.js +119 -0
  51. package/dist/src/helpers/server-rag.js.map +1 -0
  52. package/dist/src/index.d.ts +3 -1
  53. package/dist/src/index.js +4 -1
  54. package/dist/src/index.js.map +1 -1
  55. package/dist/src/runner.d.ts +10 -0
  56. package/dist/src/runner.js +101 -0
  57. package/dist/src/runner.js.map +1 -0
  58. package/dist/src/socket/protocol.d.ts +4 -4
  59. package/dist/src/testing/mocks.d.ts +6 -0
  60. package/dist/src/testing/mocks.js +12 -0
  61. package/dist/src/testing/mocks.js.map +1 -1
  62. package/dist/src/testing/session.d.ts +7 -0
  63. package/dist/src/testing/session.js +3 -22
  64. package/dist/src/testing/session.js.map +1 -1
  65. package/dist/src/version.d.ts +1 -1
  66. package/dist/src/version.js +1 -1
  67. package/examples/{example.test.ts → agent-testing.test.ts} +1 -1
  68. package/examples/help-desk.ts +21 -12
  69. package/examples/multiple-agents.ts +18 -0
  70. package/examples/property-insurance.ts +15 -3
  71. package/examples/restaurant-waitlist.ts +10 -1
  72. package/examples/scheduling-outbound.ts +5 -6
  73. package/package.json +9 -1
  74. package/src/action-item.ts +1 -1
  75. package/src/agent.ts +273 -147
  76. package/src/call.ts +115 -24
  77. package/src/client.ts +7 -0
  78. package/src/commands.ts +16 -2
  79. package/src/events.ts +11 -1
  80. package/src/example-utils.ts +87 -0
  81. package/src/health.ts +120 -0
  82. package/src/helpers/index.ts +2 -0
  83. package/src/helpers/llm.ts +170 -1
  84. package/src/helpers/server-rag.ts +132 -0
  85. package/src/index.ts +3 -1
  86. package/src/runner.ts +39 -0
  87. package/src/testing/mocks.ts +17 -0
  88. package/src/testing/session.ts +2 -22
  89. package/src/version.ts +1 -1
  90. package/dist/examples/example.test.js.map +0 -1
  91. /package/dist/examples/{example.test.d.ts → agent-testing.test.d.ts} +0 -0
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.InboundTunnelCommand = exports.AnyCommand = exports.RetryTaskCommand = exports.ChoiceResultCommand = exports.ActionSuggestionCommand = exports.RegisteredHooksCommand = exports.TransferCommand = exports.SendInstructionCommand = exports.SetLanguageModeCommand = exports.Language = exports.SetPersona = exports.AnswerQuestionCommand = exports.ReadScriptCommand = exports.SetTaskCommand = exports.AcceptInboundCallCommand = exports.RejectInboundCallCommand = exports.ListenInboundCommand = exports.StartOutboundCallCommand = void 0;
36
+ exports.InboundTunnelCommand = exports.AnyCommand = exports.SetAgentDTMFCommand = exports.RetryTaskCommand = exports.ChoiceResultCommand = exports.ActionSuggestionCommand = exports.ActionCandidate = exports.RegisteredHooksCommand = exports.TransferCommand = exports.SendInstructionCommand = exports.SetLanguageModeCommand = exports.Language = exports.SetPersona = exports.AnswerQuestionCommand = exports.ReadScriptCommand = exports.SetTaskCommand = exports.AcceptInboundCallCommand = exports.RejectInboundCallCommand = exports.ListenInboundCommand = exports.StartOutboundCallCommand = void 0;
37
37
  const z = __importStar(require("zod"));
38
38
  const action_item_ts_1 = require("./action-item.js");
39
39
  exports.StartOutboundCallCommand = z.strictObject({
@@ -100,12 +100,17 @@ exports.RegisteredHooksCommand = z.strictObject({
100
100
  has_on_question: z.boolean(),
101
101
  has_on_intent: z.boolean(),
102
102
  has_on_action_requested: z.boolean().optional().default(false),
103
+ has_on_escalate: z.boolean().optional().default(false),
104
+ accept_dtmf_for_numbers: z.boolean().default(true),
105
+ });
106
+ exports.ActionCandidate = z.strictObject({
107
+ key: z.string(),
108
+ description: z.string().default(""),
103
109
  });
104
110
  exports.ActionSuggestionCommand = z.strictObject({
105
111
  command_type: z.literal("action-suggestion"),
106
112
  intent_id: z.string(),
107
- action_key: z.string().nullable(),
108
- action_description: z.string().default(""),
113
+ actions: z.array(exports.ActionCandidate),
109
114
  });
110
115
  exports.ChoiceResultCommand = z.strictObject({
111
116
  command_type: z.literal("choice-query-result"),
@@ -118,6 +123,10 @@ exports.RetryTaskCommand = z.strictObject({
118
123
  command_type: z.literal("retry-task"),
119
124
  reason: z.string(),
120
125
  });
126
+ exports.SetAgentDTMFCommand = z.strictObject({
127
+ command_type: z.literal("set-agent-dtmf"),
128
+ enabled: z.boolean(),
129
+ });
121
130
  exports.AnyCommand = z.union([
122
131
  exports.StartOutboundCallCommand,
123
132
  exports.ListenInboundCommand,
@@ -134,6 +143,7 @@ exports.AnyCommand = z.union([
134
143
  exports.ChoiceResultCommand,
135
144
  exports.ActionSuggestionCommand,
136
145
  exports.RetryTaskCommand,
146
+ exports.SetAgentDTMFCommand,
137
147
  ]);
138
148
  exports.InboundTunnelCommand = z.strictObject({
139
149
  call_id: z.string(),
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/commands.ts"],"names":[],"mappings":"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"}
@@ -11,11 +11,13 @@ export declare const InboundCallEvent: z.ZodObject<{
11
11
  }, z.core.$strip>;
12
12
  export type InboundCallEvent = z.infer<typeof InboundCallEvent>;
13
13
  /**
14
- * @description The caller has said something.
14
+ * @description The caller has said something. For utterances with the same id,
15
+ * all but the latest is out of date.
15
16
  */
16
17
  export declare const CallerSpeechEvent: z.ZodObject<{
17
18
  event_type: z.ZodLiteral<"caller-speech">;
18
19
  utterance: z.ZodString;
20
+ utterance_id: z.ZodOptional<z.ZodString>;
19
21
  }, z.core.$strip>;
20
22
  export type CallerSpeechEvent = z.infer<typeof CallerSpeechEvent>;
21
23
  /**
@@ -123,8 +125,17 @@ export declare const DTMFPressedEvent: z.ZodObject<{
123
125
  C: "C";
124
126
  D: "D";
125
127
  }>;
128
+ recent_digits: z.ZodDefault<z.ZodString>;
126
129
  }, z.core.$strip>;
127
130
  export type DTMFPressedEvent = z.infer<typeof DTMFPressedEvent>;
131
+ export declare const EscalateEvent: z.ZodObject<{
132
+ event_type: z.ZodLiteral<"escalate">;
133
+ requested_by: z.ZodDefault<z.ZodEnum<{
134
+ human: "human";
135
+ agent: "agent";
136
+ }>>;
137
+ }, z.core.$strip>;
138
+ export type EscalateEvent = z.infer<typeof EscalateEvent>;
128
139
  export declare const GuavaEvent: z.ZodDiscriminatedUnion<[z.ZodObject<{
129
140
  event_type: z.ZodLiteral<"session-started">;
130
141
  session_id: z.ZodString;
@@ -135,6 +146,7 @@ export declare const GuavaEvent: z.ZodDiscriminatedUnion<[z.ZodObject<{
135
146
  }, z.core.$strip>, z.ZodObject<{
136
147
  event_type: z.ZodLiteral<"caller-speech">;
137
148
  utterance: z.ZodString;
149
+ utterance_id: z.ZodOptional<z.ZodString>;
138
150
  }, z.core.$strip>, z.ZodObject<{
139
151
  event_type: z.ZodLiteral<"agent-speech">;
140
152
  utterance: z.ZodString;
@@ -188,6 +200,12 @@ export declare const GuavaEvent: z.ZodDiscriminatedUnion<[z.ZodObject<{
188
200
  }, z.core.$strip>, z.ZodObject<{
189
201
  event_type: z.ZodLiteral<"execute-action">;
190
202
  action_key: z.ZodString;
203
+ }, z.core.$strip>, z.ZodObject<{
204
+ event_type: z.ZodLiteral<"escalate">;
205
+ requested_by: z.ZodDefault<z.ZodEnum<{
206
+ human: "human";
207
+ agent: "agent";
208
+ }>>;
191
209
  }, z.core.$strip>, z.ZodObject<{
192
210
  event_type: z.ZodLiteral<"dtmf">;
193
211
  digit: z.ZodEnum<{
@@ -208,6 +226,7 @@ export declare const GuavaEvent: z.ZodDiscriminatedUnion<[z.ZodObject<{
208
226
  C: "C";
209
227
  D: "D";
210
228
  }>;
229
+ recent_digits: z.ZodDefault<z.ZodString>;
211
230
  }, z.core.$strip>], "event_type">;
212
231
  export type GuavaEvent = z.infer<typeof GuavaEvent>;
213
232
  export declare function decodeEventDict(data: Record<string, unknown>): GuavaEvent | null;
@@ -224,6 +243,7 @@ export declare const InboundTunnelEvent: z.ZodObject<{
224
243
  }, z.core.$strip>, z.ZodObject<{
225
244
  event_type: z.ZodLiteral<"caller-speech">;
226
245
  utterance: z.ZodString;
246
+ utterance_id: z.ZodOptional<z.ZodString>;
227
247
  }, z.core.$strip>, z.ZodObject<{
228
248
  event_type: z.ZodLiteral<"agent-speech">;
229
249
  utterance: z.ZodString;
@@ -277,6 +297,12 @@ export declare const InboundTunnelEvent: z.ZodObject<{
277
297
  }, z.core.$strip>, z.ZodObject<{
278
298
  event_type: z.ZodLiteral<"execute-action">;
279
299
  action_key: z.ZodString;
300
+ }, z.core.$strip>, z.ZodObject<{
301
+ event_type: z.ZodLiteral<"escalate">;
302
+ requested_by: z.ZodDefault<z.ZodEnum<{
303
+ human: "human";
304
+ agent: "agent";
305
+ }>>;
280
306
  }, z.core.$strip>, z.ZodObject<{
281
307
  event_type: z.ZodLiteral<"dtmf">;
282
308
  digit: z.ZodEnum<{
@@ -297,6 +323,7 @@ export declare const InboundTunnelEvent: z.ZodObject<{
297
323
  C: "C";
298
324
  D: "D";
299
325
  }>;
326
+ recent_digits: z.ZodDefault<z.ZodString>;
300
327
  }, z.core.$strip>], "event_type">;
301
328
  }, z.core.$strip>;
302
329
  export type InboundTunnelEvent = z.infer<typeof InboundTunnelEvent>;
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.InboundTunnelEvent = exports.GuavaEvent = exports.DTMFPressedEvent = exports.ExecuteActionEvent = exports.ActionRequestEvent = exports.ChoiceQueryEvent = exports.BotSessionEnded = exports.OutboundCallFailed = exports.OutboundCallConnected = exports.TaskCompletedEvent = exports.ActionItemCompletedEvent = exports.IntentEvent = exports.AgentQuestionEvent = exports.WarningEvent = exports.ErrorEvent = exports.AgentSpeechEvent = exports.CallerSpeechEvent = exports.InboundCallEvent = exports.SessionStartedEvent = void 0;
36
+ exports.InboundTunnelEvent = exports.GuavaEvent = exports.EscalateEvent = exports.DTMFPressedEvent = exports.ExecuteActionEvent = exports.ActionRequestEvent = exports.ChoiceQueryEvent = exports.BotSessionEnded = exports.OutboundCallFailed = exports.OutboundCallConnected = exports.TaskCompletedEvent = exports.ActionItemCompletedEvent = exports.IntentEvent = exports.AgentQuestionEvent = exports.WarningEvent = exports.ErrorEvent = exports.AgentSpeechEvent = exports.CallerSpeechEvent = exports.InboundCallEvent = exports.SessionStartedEvent = void 0;
37
37
  exports.decodeEventDict = decodeEventDict;
38
38
  exports.decodeEvent = decodeEvent;
39
39
  const z = __importStar(require("zod"));
@@ -47,11 +47,13 @@ exports.InboundCallEvent = z.object({
47
47
  agent_number: z.e164().nullable(),
48
48
  });
49
49
  /**
50
- * @description The caller has said something.
50
+ * @description The caller has said something. For utterances with the same id,
51
+ * all but the latest is out of date.
51
52
  */
52
53
  exports.CallerSpeechEvent = z.object({
53
54
  event_type: z.literal("caller-speech"),
54
55
  utterance: z.string(),
56
+ utterance_id: z.string().optional(),
55
57
  });
56
58
  /**
57
59
  * @description The agent has said something.
@@ -125,6 +127,11 @@ exports.ExecuteActionEvent = z.object({
125
127
  exports.DTMFPressedEvent = z.object({
126
128
  event_type: z.literal("dtmf"),
127
129
  digit: z.enum(["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "*", "#", "A", "B", "C", "D"]),
130
+ recent_digits: z.string().default(""),
131
+ });
132
+ exports.EscalateEvent = z.object({
133
+ event_type: z.literal("escalate"),
134
+ requested_by: z.enum(["human", "agent"]).default("human"),
128
135
  });
129
136
  exports.GuavaEvent = z.discriminatedUnion("event_type", [
130
137
  exports.SessionStartedEvent,
@@ -143,6 +150,7 @@ exports.GuavaEvent = z.discriminatedUnion("event_type", [
143
150
  exports.ChoiceQueryEvent,
144
151
  exports.ActionRequestEvent,
145
152
  exports.ExecuteActionEvent,
153
+ exports.EscalateEvent,
146
154
  exports.DTMFPressedEvent,
147
155
  ]);
148
156
  const _KNOWN_EVENT_TYPES = new Set(exports.GuavaEvent.options.map((schema) => schema.shape.event_type.value));
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyLA,0CAaC;AAED,kCAkBC;AA1ND,uCAAyB;AAEZ,QAAA,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;IACxC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;CACvB,CAAC,CAAC;AAGU,QAAA,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;IACrC,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAClC,YAAY,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAGH;;;GAGG;AACU,QAAA,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;IAEtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAGH;;GAEG;AACU,QAAA,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;IAErC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACxC,CAAC,CAAC;AAGU,QAAA,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAGU,QAAA,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAGU,QAAA,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACvC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAGU,QAAA,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC/B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;CAC3B,CAAC,CAAC;AAGU,QAAA,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;IACzC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;CACrB,CAAC,CAAC;AAGU,QAAA,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IAElC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAGU,QAAA,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC;CACjD,CAAC,CAAC;AAGU,QAAA,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC;IAE7C,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE;IACnB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;CACzB,CAAC,CAAC;AAGU,QAAA,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;IAC1C,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC;QACzB,aAAa;QACb,YAAY;QACZ,aAAa;QACb,cAAc;QACd,WAAW;KACZ,CAAC;IACF,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAChC,CAAC,CAAC;AAMU,QAAA,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;IACrC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAGU,QAAA,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;CAC3B,CAAC,CAAC;AAGU,QAAA,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACvC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;CACvB,CAAC,CAAC;AAqBU,QAAA,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/F,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACtC,CAAC,CAAC;AAGU,QAAA,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IACjC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;CAC1D,CAAC,CAAC;AAGU,QAAA,UAAU,GAAG,CAAC,CAAC,kBAAkB,CAAC,YAAY,EAAE;IAC3D,2BAAmB;IACnB,wBAAgB;IAChB,yBAAiB;IACjB,wBAAgB;IAChB,kBAAU;IACV,oBAAY;IACZ,0BAAkB;IAClB,mBAAW;IACX,gCAAwB;IACxB,0BAAkB;IAClB,6BAAqB;IACrB,0BAAkB;IAClB,uBAAe;IACf,wBAAgB;IAChB,0BAAkB;IAClB,0BAAkB;IAClB,qBAAa;IACb,wBAAgB;CACjB,CAAC,CAAC;AAGH,MAAM,kBAAkB,GAAgB,IAAI,GAAG,CAC7C,kBAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAClE,CAAC;AAEF,SAAgB,eAAe,CAAC,IAA6B;IAC3D,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,8CAA8C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAChF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,WAAW,CACjB,kCAAkC,IAAI,CAAC,UAAU,0CAA0C,CAC5F,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,kBAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,SAAgB,WAAW,CACzB,gBAA0D;IAE1D,IAAI,IAAyB,CAAC;IAC9B,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QACzC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACtC,CAAC;SAAM,IAAI,gBAAgB,YAAY,WAAW,EAAE,CAAC;QACnD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAChE,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC3C,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;YACnC,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAEY,QAAA,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,KAAK,EAAE,kBAAU;CAClB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function getAgentNumber(): Promise<string>;
2
+ export declare function terminalPicker(options: string[], prompt?: string): Promise<string>;
@@ -0,0 +1,115 @@
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.getAgentNumber = getAgentNumber;
37
+ exports.terminalPicker = terminalPicker;
38
+ const process = __importStar(require("node:process"));
39
+ const client_ts_1 = require("./client.js");
40
+ async function getAgentNumber() {
41
+ if (process.env.GUAVA_AGENT_NUMBER)
42
+ return process.env.GUAVA_AGENT_NUMBER;
43
+ const client = new client_ts_1.Client();
44
+ const numbers = await client.listNumbers();
45
+ if (numbers.length === 0) {
46
+ console.error("No agent phone numbers found. Please purchase a number first.");
47
+ process.exit(1);
48
+ }
49
+ if (numbers.length === 1)
50
+ return numbers[0].phoneNumber;
51
+ if (process.stdin.isTTY && process.stdout.isTTY) {
52
+ return terminalPicker(numbers.map((n) => n.phoneNumber), "Multiple agent phone numbers found. Select one");
53
+ }
54
+ console.error(`Multiple agent phone numbers found: ${numbers.map((n) => n.phoneNumber).join(", ")}. Please set GUAVA_AGENT_NUMBER.`);
55
+ process.exit(1);
56
+ }
57
+ async function terminalPicker(options, prompt = "Select an option") {
58
+ if (!options.length)
59
+ throw new Error("options must be non-empty");
60
+ if (!process.stdin.isTTY || !process.stdout.isTTY)
61
+ throw new Error("terminalPicker requires a TTY stdin and stdout");
62
+ return new Promise((resolve, reject) => {
63
+ let selected = 0;
64
+ let renderedLines = 0;
65
+ function render() {
66
+ const lines = [`${prompt}:`];
67
+ for (let i = 0; i < options.length; i++) {
68
+ lines.push(`${i === selected ? "❯" : " "} ${options[i]}`);
69
+ }
70
+ if (renderedLines > 0)
71
+ process.stdout.write(`\x1b[${renderedLines}F`);
72
+ for (const line of lines) {
73
+ process.stdout.write("\r\x1b[2K");
74
+ process.stdout.write(line);
75
+ process.stdout.write("\n");
76
+ }
77
+ for (let i = 0; i < renderedLines - lines.length; i++) {
78
+ process.stdout.write("\r\x1b[2K\n");
79
+ }
80
+ renderedLines = lines.length;
81
+ }
82
+ function cleanup() {
83
+ process.stdin.removeListener("data", onData);
84
+ process.stdin.setRawMode(false);
85
+ process.stdin.pause();
86
+ process.stdout.write("\x1b[?25h");
87
+ }
88
+ function onData(data) {
89
+ const ch = data.toString();
90
+ if (ch === "\r" || ch === "\n") {
91
+ cleanup();
92
+ process.stdout.write(`\r\x1b[2KSelected: ${options[selected]}\n`);
93
+ resolve(options[selected]);
94
+ }
95
+ else if (ch === "\x03") {
96
+ cleanup();
97
+ reject(new Error("Interrupted"));
98
+ }
99
+ else if (ch === "\x1b[A") {
100
+ selected = (selected - 1 + options.length) % options.length;
101
+ render();
102
+ }
103
+ else if (ch === "\x1b[B") {
104
+ selected = (selected + 1) % options.length;
105
+ render();
106
+ }
107
+ }
108
+ process.stdin.setRawMode(true);
109
+ process.stdin.resume();
110
+ process.stdout.write("\x1b[?25l");
111
+ render();
112
+ process.stdin.on("data", onData);
113
+ });
114
+ }
115
+ //# sourceMappingURL=example-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example-utils.js","sourceRoot":"","sources":["../../src/example-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { type Logger } from "./logging.ts";
2
+ export type HealthState = "starting" | "live" | "stopped";
3
+ export declare class HealthContext {
4
+ private _state;
5
+ setState(newState: HealthState): void;
6
+ ready(): void;
7
+ stopped(): void;
8
+ isLive(): boolean;
9
+ }
10
+ export declare class MultiHealthContext {
11
+ private _ctxs;
12
+ createCtx(): HealthContext;
13
+ isLive(): boolean;
14
+ }
15
+ export interface HealthServerOptions {
16
+ host?: string;
17
+ port?: number;
18
+ logger?: Logger;
19
+ }
20
+ export declare class HealthServer implements AsyncDisposable {
21
+ private readonly _server;
22
+ private readonly _logger;
23
+ private _stopping;
24
+ private constructor();
25
+ static start(healthCtx: HealthContext | MultiHealthContext, options?: HealthServerOptions): Promise<HealthServer>;
26
+ stop(): Promise<void>;
27
+ [Symbol.asyncDispose](): Promise<void>;
28
+ }
29
+ /**
30
+ * Returns an AsyncDisposable that, when the GUAVA_HEALTH_SERVER env var is
31
+ * truthy ("yes", "true", "on"), starts an HTTP health check server exposing
32
+ * `/live` on port 4828. Otherwise returns a no-op disposable. Intended for use
33
+ * with `await using`.
34
+ */
35
+ export declare function getHealthServer(healthCtx: HealthContext | MultiHealthContext): Promise<AsyncDisposable>;
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HealthServer = exports.MultiHealthContext = exports.HealthContext = void 0;
4
+ exports.getHealthServer = getHealthServer;
5
+ const node_http_1 = require("node:http");
6
+ const logging_ts_1 = require("./logging.js");
7
+ class HealthContext {
8
+ _state = "starting";
9
+ setState(newState) {
10
+ this._state = newState;
11
+ }
12
+ ready() {
13
+ this.setState("live");
14
+ }
15
+ stopped() {
16
+ this.setState("stopped");
17
+ }
18
+ isLive() {
19
+ return this._state === "live";
20
+ }
21
+ }
22
+ exports.HealthContext = HealthContext;
23
+ class MultiHealthContext {
24
+ _ctxs = [];
25
+ createCtx() {
26
+ const ctx = new HealthContext();
27
+ this._ctxs.push(ctx);
28
+ return ctx;
29
+ }
30
+ isLive() {
31
+ return this._ctxs.length > 0 && this._ctxs.every((ctx) => ctx.isLive());
32
+ }
33
+ }
34
+ exports.MultiHealthContext = MultiHealthContext;
35
+ class HealthServer {
36
+ _server;
37
+ _logger;
38
+ _stopping = null;
39
+ constructor(server, logger) {
40
+ this._server = server;
41
+ this._logger = logger;
42
+ }
43
+ static async start(healthCtx, options = {}) {
44
+ const host = options.host ?? "0.0.0.0";
45
+ const port = options.port ?? 4828;
46
+ const logger = options.logger ?? (0, logging_ts_1.getDefaultLogger)();
47
+ const server = (0, node_http_1.createServer)((req, res) => {
48
+ if (req.method === "GET" && req.url === "/live") {
49
+ res.statusCode = healthCtx.isLive() ? 200 : 503;
50
+ }
51
+ else {
52
+ res.statusCode = 404;
53
+ }
54
+ res.end();
55
+ });
56
+ await new Promise((resolve, reject) => {
57
+ server.once("error", reject);
58
+ server.listen(port, host, () => {
59
+ server.off("error", reject);
60
+ resolve();
61
+ });
62
+ });
63
+ logger.info("Health check server listening on http://%s:%d/live", host, port);
64
+ return new HealthServer(server, logger);
65
+ }
66
+ stop() {
67
+ if (this._stopping)
68
+ return this._stopping;
69
+ this._logger.info("Health check server shutting down.");
70
+ this._stopping = new Promise((resolve, reject) => {
71
+ this._server.closeAllConnections();
72
+ this._server.close((err) => (err ? reject(err) : resolve()));
73
+ });
74
+ return this._stopping;
75
+ }
76
+ async [Symbol.asyncDispose]() {
77
+ await this.stop();
78
+ }
79
+ }
80
+ exports.HealthServer = HealthServer;
81
+ const NOOP_DISPOSABLE = {
82
+ async [Symbol.asyncDispose]() { },
83
+ };
84
+ function isEnabled() {
85
+ const value = (process.env.GUAVA_HEALTH_SERVER ?? "false").toLowerCase().trim();
86
+ return value === "yes" || value === "true" || value === "on";
87
+ }
88
+ /**
89
+ * Returns an AsyncDisposable that, when the GUAVA_HEALTH_SERVER env var is
90
+ * truthy ("yes", "true", "on"), starts an HTTP health check server exposing
91
+ * `/live` on port 4828. Otherwise returns a no-op disposable. Intended for use
92
+ * with `await using`.
93
+ */
94
+ async function getHealthServer(healthCtx) {
95
+ if (!isEnabled())
96
+ return NOOP_DISPOSABLE;
97
+ return HealthServer.start(healthCtx);
98
+ }
99
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/health.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { DatetimeFilter, DocumentQA, IntentRecognizer } from "./llm.ts";
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IntentRecognizer = exports.DocumentQA = exports.DatetimeFilter = void 0;
4
+ /* This file must not include the OpenAI helpers. */
5
+ var llm_ts_1 = require("./llm.js");
6
+ Object.defineProperty(exports, "DatetimeFilter", { enumerable: true, get: function () { return llm_ts_1.DatetimeFilter; } });
7
+ Object.defineProperty(exports, "DocumentQA", { enumerable: true, get: function () { return llm_ts_1.DocumentQA; } });
8
+ Object.defineProperty(exports, "IntentRecognizer", { enumerable: true, get: function () { return llm_ts_1.IntentRecognizer; } });
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/helpers/index.ts"],"names":[],"mappings":";;;AAAA,oDAAoD;AACpD,mCAAwE;AAA/D,wGAAA,cAAc,OAAA;AAAE,oGAAA,UAAU,OAAA;AAAE,0GAAA,gBAAgB,OAAA"}
@@ -1,2 +1,44 @@
1
- import type { Client } from "../client.ts";
1
+ import * as z from "zod";
2
+ import type { SuggestedAction } from "../agent.ts";
3
+ import { Client } from "../client.ts";
2
4
  export declare function _generate(client: Client, prompt: string, jsonSchema?: object): Promise<string>;
5
+ export declare class DocumentQA {
6
+ private readonly _rag;
7
+ private readonly _instructions;
8
+ private readonly _initialized;
9
+ constructor({ documents, ids, instructions, namespace, }?: {
10
+ documents?: string | string[];
11
+ ids?: string[];
12
+ instructions?: string;
13
+ namespace?: string;
14
+ });
15
+ upsertDocument(key: string, text: string): Promise<void>;
16
+ addDocument(text: string): Promise<void>;
17
+ deleteDocument(key: string): Promise<void>;
18
+ clear(): Promise<void>;
19
+ ask(question: string): Promise<string>;
20
+ }
21
+ export declare const _filterSchema: z.ZodObject<{
22
+ matching_appointments: z.ZodArray<z.ZodString>;
23
+ other_appointments: z.ZodArray<z.ZodString>;
24
+ }, z.core.$strip>;
25
+ export declare class DatetimeFilter {
26
+ private readonly _client;
27
+ private readonly _slotsStr;
28
+ constructor(sourceList: string[]);
29
+ filter(query: string, { maxResults }?: {
30
+ maxResults?: number;
31
+ }): Promise<[string[], string[]]>;
32
+ }
33
+ export declare function _makeIntentSchema(choiceList: [string, ...string[]]): z.ZodObject<{
34
+ possible_matches: z.ZodArray<z.ZodEnum<{
35
+ [x: string]: string;
36
+ }>>;
37
+ }, z.core.$strip>;
38
+ export declare class IntentRecognizer {
39
+ private readonly _client;
40
+ private readonly _intentChoices;
41
+ private readonly _schema;
42
+ constructor(intentChoices: string[] | Record<string, string>);
43
+ classify(intent: string): Promise<SuggestedAction[] | null>;
44
+ }