@guava-ai/guava-sdk 0.18.0 → 0.20.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 (102) hide show
  1. package/dist/examples/example.test.d.ts +5 -0
  2. package/dist/examples/example.test.js +46 -0
  3. package/dist/examples/example.test.js.map +1 -0
  4. package/dist/examples/help-desk.d.ts +3 -1
  5. package/dist/examples/help-desk.js +25 -9
  6. package/dist/examples/help-desk.js.map +1 -1
  7. package/dist/examples/property-insurance.js +4 -1
  8. package/dist/examples/property-insurance.js.map +1 -1
  9. package/dist/examples/restaurant-waitlist.js +4 -1
  10. package/dist/examples/restaurant-waitlist.js.map +1 -1
  11. package/dist/examples/scheduling-outbound.js +6 -0
  12. package/dist/examples/scheduling-outbound.js.map +1 -1
  13. package/dist/src/action-item.d.ts +4 -4
  14. package/dist/src/agent.d.ts +85 -18
  15. package/dist/src/agent.js +404 -129
  16. package/dist/src/agent.js.map +1 -1
  17. package/dist/src/auth.d.ts +27 -0
  18. package/dist/src/auth.js +127 -0
  19. package/dist/src/auth.js.map +1 -0
  20. package/dist/src/call.d.ts +1 -1
  21. package/dist/src/call.js +2 -2
  22. package/dist/src/call.js.map +1 -1
  23. package/dist/src/client.d.ts +38 -12
  24. package/dist/src/client.js +88 -16
  25. package/dist/src/client.js.map +1 -1
  26. package/dist/src/commands.d.ts +3 -3
  27. package/dist/src/events.d.ts +87 -0
  28. package/dist/src/events.js +25 -6
  29. package/dist/src/events.js.map +1 -1
  30. package/dist/src/helpers/llm.d.ts +2 -0
  31. package/dist/src/helpers/llm.js +17 -0
  32. package/dist/src/helpers/llm.js.map +1 -0
  33. package/dist/src/index.d.ts +4 -0
  34. package/dist/src/index.js +5 -1
  35. package/dist/src/index.js.map +1 -1
  36. package/dist/src/logging.js +16 -11
  37. package/dist/src/logging.js.map +1 -1
  38. package/dist/src/sms.d.ts +19 -0
  39. package/dist/src/sms.js +52 -0
  40. package/dist/src/sms.js.map +1 -0
  41. package/dist/src/socket/call-info.d.ts +35 -0
  42. package/dist/src/socket/call-info.js +59 -0
  43. package/dist/src/socket/call-info.js.map +1 -0
  44. package/dist/src/socket/client.d.ts +51 -0
  45. package/dist/src/socket/client.js +455 -0
  46. package/dist/src/socket/client.js.map +1 -0
  47. package/dist/src/socket/listen-inbound.d.ts +83 -0
  48. package/dist/src/socket/listen-inbound.js +82 -0
  49. package/dist/src/socket/listen-inbound.js.map +1 -0
  50. package/dist/src/socket/protocol.d.ts +127 -0
  51. package/dist/src/socket/protocol.js +69 -0
  52. package/dist/src/socket/protocol.js.map +1 -0
  53. package/dist/src/socket/utils.d.ts +8 -0
  54. package/dist/src/socket/utils.js +26 -0
  55. package/dist/src/socket/utils.js.map +1 -0
  56. package/dist/src/telemetry.d.ts +3 -3
  57. package/dist/src/telemetry.js +9 -7
  58. package/dist/src/telemetry.js.map +1 -1
  59. package/dist/src/testing/chat.d.ts +2 -0
  60. package/dist/src/testing/chat.js +181 -0
  61. package/dist/src/testing/chat.js.map +1 -0
  62. package/dist/src/testing/mocks.d.ts +6 -0
  63. package/dist/src/testing/mocks.js +14 -0
  64. package/dist/src/testing/mocks.js.map +1 -0
  65. package/dist/src/testing/protocol.d.ts +46 -0
  66. package/dist/src/testing/protocol.js +61 -0
  67. package/dist/src/testing/protocol.js.map +1 -0
  68. package/dist/src/testing/session.d.ts +26 -0
  69. package/dist/src/testing/session.js +219 -0
  70. package/dist/src/testing/session.js.map +1 -0
  71. package/dist/src/utils.d.ts +2 -0
  72. package/dist/src/utils.js +19 -1
  73. package/dist/src/utils.js.map +1 -1
  74. package/dist/src/version.d.ts +1 -1
  75. package/dist/src/version.js +1 -1
  76. package/examples/example.test.ts +58 -0
  77. package/examples/help-desk.ts +14 -3
  78. package/examples/property-insurance.ts +3 -1
  79. package/examples/restaurant-waitlist.ts +3 -1
  80. package/examples/scheduling-outbound.ts +7 -0
  81. package/package.json +10 -2
  82. package/src/agent.ts +386 -166
  83. package/src/auth.ts +109 -0
  84. package/src/call.ts +3 -3
  85. package/src/client.ts +119 -18
  86. package/src/events.ts +52 -10
  87. package/src/helpers/llm.ts +20 -0
  88. package/src/index.ts +4 -0
  89. package/src/logging.ts +21 -13
  90. package/src/sms.ts +17 -0
  91. package/src/socket/call-info.ts +30 -0
  92. package/src/socket/client.ts +433 -0
  93. package/src/socket/listen-inbound.ts +62 -0
  94. package/src/socket/protocol.ts +89 -0
  95. package/src/socket/utils.ts +25 -0
  96. package/src/telemetry.ts +11 -8
  97. package/src/testing/chat.ts +196 -0
  98. package/src/testing/mocks.ts +12 -0
  99. package/src/testing/protocol.ts +40 -0
  100. package/src/testing/session.ts +218 -0
  101. package/src/utils.ts +19 -1
  102. package/src/version.ts +1 -1
@@ -72,8 +72,17 @@ export declare const OutboundCallFailed: z.ZodObject<{
72
72
  export type OutboundCallFailed = z.infer<typeof OutboundCallFailed>;
73
73
  export declare const BotSessionEnded: z.ZodObject<{
74
74
  event_type: z.ZodLiteral<"bot-session-ended">;
75
+ termination_reason: z.ZodEnum<{
76
+ "user-hangup": "user-hangup";
77
+ "bot-hangup": "bot-hangup";
78
+ "bot-failure": "bot-failure";
79
+ "bot-transfer": "bot-transfer";
80
+ voicemail: "voicemail";
81
+ }>;
75
82
  }, z.core.$strip>;
76
83
  export type BotSessionEnded = z.infer<typeof BotSessionEnded>;
84
+ /** Why a bot session ended. */
85
+ export type TerminationReason = BotSessionEnded["termination_reason"];
77
86
  export declare const ChoiceQueryEvent: z.ZodObject<{
78
87
  event_type: z.ZodLiteral<"choice-query">;
79
88
  field_key: z.ZodString;
@@ -92,6 +101,29 @@ export declare const ExecuteActionEvent: z.ZodObject<{
92
101
  action_key: z.ZodString;
93
102
  }, z.core.$strip>;
94
103
  export type ExecuteActionEvent = z.infer<typeof ExecuteActionEvent>;
104
+ export type DTMFDigit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "*" | "#" | "A" | "B" | "C" | "D";
105
+ export declare const DTMFPressedEvent: z.ZodObject<{
106
+ event_type: z.ZodLiteral<"dtmf">;
107
+ digit: z.ZodEnum<{
108
+ 0: "0";
109
+ 1: "1";
110
+ 2: "2";
111
+ 3: "3";
112
+ 4: "4";
113
+ 5: "5";
114
+ 6: "6";
115
+ 7: "7";
116
+ 8: "8";
117
+ 9: "9";
118
+ "*": "*";
119
+ "#": "#";
120
+ A: "A";
121
+ B: "B";
122
+ C: "C";
123
+ D: "D";
124
+ }>;
125
+ }, z.core.$strip>;
126
+ export type DTMFPressedEvent = z.infer<typeof DTMFPressedEvent>;
95
127
  export declare const GuavaEvent: z.ZodDiscriminatedUnion<[z.ZodObject<{
96
128
  event_type: z.ZodLiteral<"session-started">;
97
129
  session_id: z.ZodString;
@@ -135,6 +167,13 @@ export declare const GuavaEvent: z.ZodDiscriminatedUnion<[z.ZodObject<{
135
167
  error_reason: z.ZodString;
136
168
  }, z.core.$strip>, z.ZodObject<{
137
169
  event_type: z.ZodLiteral<"bot-session-ended">;
170
+ termination_reason: z.ZodEnum<{
171
+ "user-hangup": "user-hangup";
172
+ "bot-hangup": "bot-hangup";
173
+ "bot-failure": "bot-failure";
174
+ "bot-transfer": "bot-transfer";
175
+ voicemail: "voicemail";
176
+ }>;
138
177
  }, z.core.$strip>, z.ZodObject<{
139
178
  event_type: z.ZodLiteral<"choice-query">;
140
179
  field_key: z.ZodString;
@@ -147,8 +186,29 @@ export declare const GuavaEvent: z.ZodDiscriminatedUnion<[z.ZodObject<{
147
186
  }, z.core.$strip>, z.ZodObject<{
148
187
  event_type: z.ZodLiteral<"execute-action">;
149
188
  action_key: z.ZodString;
189
+ }, z.core.$strip>, z.ZodObject<{
190
+ event_type: z.ZodLiteral<"dtmf">;
191
+ digit: z.ZodEnum<{
192
+ 0: "0";
193
+ 1: "1";
194
+ 2: "2";
195
+ 3: "3";
196
+ 4: "4";
197
+ 5: "5";
198
+ 6: "6";
199
+ 7: "7";
200
+ 8: "8";
201
+ 9: "9";
202
+ "*": "*";
203
+ "#": "#";
204
+ A: "A";
205
+ B: "B";
206
+ C: "C";
207
+ D: "D";
208
+ }>;
150
209
  }, z.core.$strip>], "event_type">;
151
210
  export type GuavaEvent = z.infer<typeof GuavaEvent>;
211
+ export declare function decodeEventDict(data: Record<string, unknown>): GuavaEvent | null;
152
212
  export declare function decodeEvent(serialized_event: string | ArrayBuffer | Buffer | Buffer[]): GuavaEvent | null;
153
213
  export declare const InboundTunnelEvent: z.ZodObject<{
154
214
  call_id: z.ZodString;
@@ -195,6 +255,13 @@ export declare const InboundTunnelEvent: z.ZodObject<{
195
255
  error_reason: z.ZodString;
196
256
  }, z.core.$strip>, z.ZodObject<{
197
257
  event_type: z.ZodLiteral<"bot-session-ended">;
258
+ termination_reason: z.ZodEnum<{
259
+ "user-hangup": "user-hangup";
260
+ "bot-hangup": "bot-hangup";
261
+ "bot-failure": "bot-failure";
262
+ "bot-transfer": "bot-transfer";
263
+ voicemail: "voicemail";
264
+ }>;
198
265
  }, z.core.$strip>, z.ZodObject<{
199
266
  event_type: z.ZodLiteral<"choice-query">;
200
267
  field_key: z.ZodString;
@@ -207,6 +274,26 @@ export declare const InboundTunnelEvent: z.ZodObject<{
207
274
  }, z.core.$strip>, z.ZodObject<{
208
275
  event_type: z.ZodLiteral<"execute-action">;
209
276
  action_key: z.ZodString;
277
+ }, z.core.$strip>, z.ZodObject<{
278
+ event_type: z.ZodLiteral<"dtmf">;
279
+ digit: z.ZodEnum<{
280
+ 0: "0";
281
+ 1: "1";
282
+ 2: "2";
283
+ 3: "3";
284
+ 4: "4";
285
+ 5: "5";
286
+ 6: "6";
287
+ 7: "7";
288
+ 8: "8";
289
+ 9: "9";
290
+ "*": "*";
291
+ "#": "#";
292
+ A: "A";
293
+ B: "B";
294
+ C: "C";
295
+ D: "D";
296
+ }>;
210
297
  }, z.core.$strip>], "event_type">;
211
298
  }, z.core.$strip>;
212
299
  export type InboundTunnelEvent = z.infer<typeof InboundTunnelEvent>;
@@ -33,7 +33,8 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.InboundTunnelEvent = exports.GuavaEvent = 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.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
+ exports.decodeEventDict = decodeEventDict;
37
38
  exports.decodeEvent = decodeEvent;
38
39
  const z = __importStar(require("zod"));
39
40
  exports.SessionStartedEvent = z.object({
@@ -97,6 +98,13 @@ exports.OutboundCallFailed = z.object({
97
98
  });
98
99
  exports.BotSessionEnded = z.object({
99
100
  event_type: z.literal("bot-session-ended"),
101
+ termination_reason: z.enum([
102
+ "user-hangup",
103
+ "bot-hangup",
104
+ "bot-failure",
105
+ "bot-transfer",
106
+ "voicemail",
107
+ ]),
100
108
  });
101
109
  exports.ChoiceQueryEvent = z.object({
102
110
  event_type: z.literal("choice-query"),
@@ -113,6 +121,10 @@ exports.ExecuteActionEvent = z.object({
113
121
  event_type: z.literal("execute-action"),
114
122
  action_key: z.string(),
115
123
  });
124
+ exports.DTMFPressedEvent = z.object({
125
+ event_type: z.literal("dtmf"),
126
+ digit: z.enum(["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "*", "#", "A", "B", "C", "D"]),
127
+ });
116
128
  exports.GuavaEvent = z.discriminatedUnion("event_type", [
117
129
  exports.SessionStartedEvent,
118
130
  exports.InboundCallEvent,
@@ -130,8 +142,19 @@ exports.GuavaEvent = z.discriminatedUnion("event_type", [
130
142
  exports.ChoiceQueryEvent,
131
143
  exports.ActionRequestEvent,
132
144
  exports.ExecuteActionEvent,
145
+ exports.DTMFPressedEvent,
133
146
  ]);
134
147
  const _KNOWN_EVENT_TYPES = new Set(exports.GuavaEvent.options.map((schema) => schema.shape.event_type.value));
148
+ function decodeEventDict(data) {
149
+ if (typeof data.event_type !== "string") {
150
+ throw new Error(`Received event with non-string event_type: ${JSON.stringify(data.event_type)}`);
151
+ }
152
+ if (!_KNOWN_EVENT_TYPES.has(data.event_type)) {
153
+ process.emitWarning(`Received an unknown event type ${data.event_type}. Update to a newer version of this SDK.`);
154
+ return null;
155
+ }
156
+ return exports.GuavaEvent.parse(data);
157
+ }
135
158
  function decodeEvent(serialized_event) {
136
159
  let data;
137
160
  if (typeof serialized_event === "string") {
@@ -150,11 +173,7 @@ function decodeEvent(serialized_event) {
150
173
  else {
151
174
  data = JSON.parse(serialized_event.toString("utf8"));
152
175
  }
153
- if (!_KNOWN_EVENT_TYPES.has(data.event_type)) {
154
- process.emitWarning(`Received an unknown event type ${data.event_type}. Update to a newer version of this SDK.`);
155
- return null;
156
- }
157
- return exports.GuavaEvent.parse(data);
176
+ return decodeEventDict(data);
158
177
  }
159
178
  exports.InboundTunnelEvent = z.object({
160
179
  call_id: z.string(),
@@ -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":"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"}
@@ -0,0 +1,2 @@
1
+ import type { Client } from "../client.ts";
2
+ export declare function _generate(client: Client, prompt: string, jsonSchema?: object): Promise<string>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._generate = _generate;
4
+ const utils_ts_1 = require("../utils.js");
5
+ async function _generate(client, prompt, jsonSchema) {
6
+ const url = new URL("v1/llm/generate", client.getHttpBase());
7
+ const body = { prompt };
8
+ if (jsonSchema !== undefined)
9
+ body.json_schema = jsonSchema;
10
+ const response = await (0, utils_ts_1.fetchOrThrow)(url, {
11
+ method: "POST",
12
+ headers: { ...(await client.headers()), "Content-Type": "application/json" },
13
+ body: JSON.stringify(body),
14
+ });
15
+ return (await response.json()).text;
16
+ }
17
+ //# sourceMappingURL=llm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm.js","sourceRoot":"","sources":["../../../src/helpers/llm.ts"],"names":[],"mappings":";;AAGA,8BAgBC;AAlBD,0CAA2C;AAEpC,KAAK,UAAU,SAAS,CAC7B,MAAc,EACd,MAAc,EACd,UAAmB;IAEnB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7D,MAAM,IAAI,GAA4B,EAAE,MAAM,EAAE,CAAC;IACjD,IAAI,UAAU,KAAK,SAAS;QAAE,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAE5D,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAY,EAAC,GAAG,EAAE;QACvC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC5E,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IAEH,OAAQ,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAsB,CAAC,IAAI,CAAC;AAC5D,CAAC"}
@@ -1,6 +1,10 @@
1
1
  export { Client, type InboundConnection } from "./client.ts";
2
+ export type { SmsMessage } from "./sms.ts";
2
3
  export { CallController, type TaskObjective } from "./call-controller.ts";
3
4
  export { Say, Field } from "./action-item.ts";
4
5
  export { Logger, getConsoleLogger, getDefaultLogger } from "./logging.ts";
5
6
  export { Agent, CallInfo } from "./agent.ts";
6
7
  export { Call } from "./call.ts";
8
+ export type { BotSessionEnded, TerminationReason, DTMFPressedEvent, DTMFDigit } from "./events.ts";
9
+ export { TestSession } from "./testing/session.ts";
10
+ export { MockCall } from "./testing/mocks.ts";
package/dist/src/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Call = exports.Agent = exports.getDefaultLogger = exports.getConsoleLogger = exports.Field = exports.Say = exports.CallController = exports.Client = void 0;
3
+ exports.MockCall = exports.TestSession = exports.Call = exports.Agent = exports.getDefaultLogger = exports.getConsoleLogger = exports.Field = exports.Say = exports.CallController = exports.Client = void 0;
4
4
  var client_ts_1 = require("./client.js");
5
5
  Object.defineProperty(exports, "Client", { enumerable: true, get: function () { return client_ts_1.Client; } });
6
6
  var call_controller_ts_1 = require("./call-controller.js");
@@ -15,4 +15,8 @@ var agent_ts_1 = require("./agent.js");
15
15
  Object.defineProperty(exports, "Agent", { enumerable: true, get: function () { return agent_ts_1.Agent; } });
16
16
  var call_ts_1 = require("./call.js");
17
17
  Object.defineProperty(exports, "Call", { enumerable: true, get: function () { return call_ts_1.Call; } });
18
+ var session_ts_1 = require("./testing/session.js");
19
+ Object.defineProperty(exports, "TestSession", { enumerable: true, get: function () { return session_ts_1.TestSession; } });
20
+ var mocks_ts_1 = require("./testing/mocks.js");
21
+ Object.defineProperty(exports, "MockCall", { enumerable: true, get: function () { return mocks_ts_1.MockCall; } });
18
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAA6D;AAApD,mGAAA,MAAM,OAAA;AACf,2DAA0E;AAAjE,oHAAA,cAAc,OAAA;AACvB,mDAA8C;AAArC,qGAAA,GAAG,OAAA;AAAE,uGAAA,KAAK,OAAA;AACnB,2CAA0E;AAAzD,8GAAA,gBAAgB,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AACnD,uCAA6C;AAApC,iGAAA,KAAK,OAAA;AACd,qCAAiC;AAAxB,+FAAA,IAAI,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAA6D;AAApD,mGAAA,MAAM,OAAA;AAEf,2DAA0E;AAAjE,oHAAA,cAAc,OAAA;AACvB,mDAA8C;AAArC,qGAAA,GAAG,OAAA;AAAE,uGAAA,KAAK,OAAA;AACnB,2CAA0E;AAAzD,8GAAA,gBAAgB,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AACnD,uCAA6C;AAApC,iGAAA,KAAK,OAAA;AACd,qCAAiC;AAAxB,+FAAA,IAAI,OAAA;AAEb,mDAAmD;AAA1C,yGAAA,WAAW,OAAA;AACpB,+CAA8C;AAArC,oGAAA,QAAQ,OAAA"}
@@ -27,21 +27,26 @@ function shouldLog(messageLevel, loggerLevel) {
27
27
  return LOG_RANKS[messageLevel] <= LOG_RANKS[loggerLevel];
28
28
  }
29
29
  function noop(format, ...args) { }
30
- function makeColoredMethod(fn, level, useColor) {
30
+ function makeColoredMethod(level, useColor) {
31
31
  if (!useColor)
32
- return fn.bind(console);
33
- return (format, ...args) => fn(`${LEVEL_COLORS[level]}[${level.toLocaleUpperCase()}] ${format}${ANSI_RESET}`, ...args);
32
+ return (format, ...args) => console[level](format, ...args);
33
+ return (format, ...args) => {
34
+ const now = new Date();
35
+ const time = now.toLocaleTimeString("en-US", {
36
+ hour12: false,
37
+ hour: "2-digit",
38
+ minute: "2-digit",
39
+ second: "2-digit",
40
+ });
41
+ console[level](`${LEVEL_COLORS[level]}[${level.toLocaleUpperCase().padEnd(5)} ${time}] ${format}${ANSI_RESET}`, ...args);
42
+ };
34
43
  }
35
44
  function getConsoleLogger(loggerLevel, useColor = false) {
36
45
  return {
37
- debug: shouldLog("debug", loggerLevel)
38
- ? makeColoredMethod(console.debug, "debug", useColor)
39
- : noop,
40
- info: shouldLog("info", loggerLevel) ? makeColoredMethod(console.info, "info", useColor) : noop,
41
- warn: shouldLog("warn", loggerLevel) ? makeColoredMethod(console.warn, "warn", useColor) : noop,
42
- error: shouldLog("error", loggerLevel)
43
- ? makeColoredMethod(console.error, "error", useColor)
44
- : noop,
46
+ debug: shouldLog("debug", loggerLevel) ? makeColoredMethod("debug", useColor) : noop,
47
+ info: shouldLog("info", loggerLevel) ? makeColoredMethod("info", useColor) : noop,
48
+ warn: shouldLog("warn", loggerLevel) ? makeColoredMethod("warn", useColor) : noop,
49
+ error: shouldLog("error", loggerLevel) ? makeColoredMethod("error", useColor) : noop,
45
50
  };
46
51
  }
47
52
  function getDefaultLogger() {
@@ -1 +1 @@
1
- {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/logging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/logging.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import * as z from "zod";
2
+ /**
3
+ * An inbound SMS message received on one of your Guava numbers.
4
+ *
5
+ * Field names mirror the wire format returned by `GET /v1/messages`.
6
+ */
7
+ export declare const SmsMessage: z.ZodObject<{
8
+ id: z.ZodString;
9
+ from_number: z.ZodString;
10
+ to_number: z.ZodString;
11
+ content: z.ZodString;
12
+ received_at: z.ZodString;
13
+ modality: z.ZodLiteral<"sms">;
14
+ direction: z.ZodEnum<{
15
+ inbound: "inbound";
16
+ outbound: "outbound";
17
+ }>;
18
+ }, z.core.$strip>;
19
+ export type SmsMessage = z.infer<typeof SmsMessage>;
@@ -0,0 +1,52 @@
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.SmsMessage = void 0;
37
+ const z = __importStar(require("zod"));
38
+ /**
39
+ * An inbound SMS message received on one of your Guava numbers.
40
+ *
41
+ * Field names mirror the wire format returned by `GET /v1/messages`.
42
+ */
43
+ exports.SmsMessage = z.object({
44
+ id: z.string(),
45
+ from_number: z.string(),
46
+ to_number: z.string(),
47
+ content: z.string(),
48
+ received_at: z.string(),
49
+ modality: z.literal("sms"),
50
+ direction: z.enum(["inbound", "outbound"]),
51
+ });
52
+ //# sourceMappingURL=sms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sms.js","sourceRoot":"","sources":["../../src/sms.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AAEzB;;;;GAIG;AACU,QAAA,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC1B,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;CAC3C,CAAC,CAAC"}
@@ -0,0 +1,35 @@
1
+ import * as z from "zod";
2
+ export declare const PSTNCallInfo: z.ZodObject<{
3
+ call_type: z.ZodLiteral<"pstn">;
4
+ from_number: z.ZodNullable<z.ZodString>;
5
+ to_number: z.ZodString;
6
+ caller_id: z.ZodNullable<z.ZodString>;
7
+ }, z.core.$strip>;
8
+ export type PSTNCallInfo = z.infer<typeof PSTNCallInfo>;
9
+ export declare const WebRTCCallInfo: z.ZodObject<{
10
+ call_type: z.ZodLiteral<"webrtc">;
11
+ webrtc_code: z.ZodString;
12
+ }, z.core.$strip>;
13
+ export type WebRTCCallInfo = z.infer<typeof WebRTCCallInfo>;
14
+ export declare const SIPCallInfo: z.ZodObject<{
15
+ call_type: z.ZodLiteral<"sip">;
16
+ from_aor: z.ZodString;
17
+ sip_code: z.ZodOptional<z.ZodString>;
18
+ sip_headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
19
+ }, z.core.$strip>;
20
+ export type SIPCallInfo = z.infer<typeof SIPCallInfo>;
21
+ export declare const CallInfo: z.ZodDiscriminatedUnion<[z.ZodObject<{
22
+ call_type: z.ZodLiteral<"pstn">;
23
+ from_number: z.ZodNullable<z.ZodString>;
24
+ to_number: z.ZodString;
25
+ caller_id: z.ZodNullable<z.ZodString>;
26
+ }, z.core.$strip>, z.ZodObject<{
27
+ call_type: z.ZodLiteral<"webrtc">;
28
+ webrtc_code: z.ZodString;
29
+ }, z.core.$strip>, z.ZodObject<{
30
+ call_type: z.ZodLiteral<"sip">;
31
+ from_aor: z.ZodString;
32
+ sip_code: z.ZodOptional<z.ZodString>;
33
+ sip_headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
34
+ }, z.core.$strip>], "call_type">;
35
+ export type CallInfo = z.infer<typeof CallInfo>;
@@ -0,0 +1,59 @@
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.CallInfo = exports.SIPCallInfo = exports.WebRTCCallInfo = exports.PSTNCallInfo = void 0;
37
+ const z = __importStar(require("zod"));
38
+ exports.PSTNCallInfo = z.object({
39
+ call_type: z.literal("pstn"),
40
+ from_number: z.string().nullable(),
41
+ to_number: z.string(),
42
+ caller_id: z.string().nullable(),
43
+ });
44
+ exports.WebRTCCallInfo = z.object({
45
+ call_type: z.literal("webrtc"),
46
+ webrtc_code: z.string(),
47
+ });
48
+ exports.SIPCallInfo = z.object({
49
+ call_type: z.literal("sip"),
50
+ from_aor: z.string(),
51
+ sip_code: z.string().optional(),
52
+ sip_headers: z.record(z.string(), z.string()).default({}),
53
+ });
54
+ exports.CallInfo = z.discriminatedUnion("call_type", [
55
+ exports.PSTNCallInfo,
56
+ exports.WebRTCCallInfo,
57
+ exports.SIPCallInfo,
58
+ ]);
59
+ //# sourceMappingURL=call-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-info.js","sourceRoot":"","sources":["../../../src/socket/call-info.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AAEZ,QAAA,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAGU,QAAA,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC9B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;CACxB,CAAC,CAAC;AAGU,QAAA,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC1D,CAAC,CAAC;AAGU,QAAA,QAAQ,GAAG,CAAC,CAAC,kBAAkB,CAAC,WAAW,EAAE;IACxD,oBAAY;IACZ,sBAAc;IACd,mBAAW;CACZ,CAAC,CAAC"}
@@ -0,0 +1,51 @@
1
+ import type { Client } from "../client.ts";
2
+ import type { Logger } from "../logging.ts";
3
+ import { type CloseReason } from "./protocol.ts";
4
+ export declare class GuavaSocketClosedError extends Error {
5
+ readonly reason: CloseReason;
6
+ readonly description: string;
7
+ constructor(reason?: CloseReason, description?: string);
8
+ }
9
+ export declare class GuavaSocketConnectionFailed extends Error {
10
+ constructor();
11
+ }
12
+ export declare class GuavaSocket<SendT, RecvT> {
13
+ private readonly _name;
14
+ private readonly _connectionUrl;
15
+ private readonly _client;
16
+ private readonly _serializer;
17
+ private readonly _deserializer;
18
+ private readonly _maxAgeSeconds?;
19
+ private readonly _socketCreateTime;
20
+ private readonly _connectionId;
21
+ private readonly _openCounter;
22
+ private readonly _logger;
23
+ private _lastSeenSequence;
24
+ private _lastSentSequence;
25
+ private _rtxBuffer;
26
+ private _state;
27
+ private _ws?;
28
+ private _shouldClose;
29
+ private _closeReason?;
30
+ private _closeDescription?;
31
+ private _recvBuffer;
32
+ private _recvWaiters;
33
+ private _readyResolve?;
34
+ private _readyReject?;
35
+ private _reconnectLoopPromise?;
36
+ constructor(_name: string, _connectionUrl: string, _client: Client, _serializer: (msg: SendT) => Record<string, unknown>, _deserializer: (payload: Record<string, unknown>) => RecvT, _maxAgeSeconds?: number | undefined, logger?: Logger);
37
+ isOpen(): boolean;
38
+ private _setCloseReason;
39
+ private _pruneRtxBuffer;
40
+ private _pushPayload;
41
+ private _rejectAllWaiters;
42
+ private _establishSocket;
43
+ private _runConnection;
44
+ private _reconnectLoop;
45
+ connect(): Promise<this>;
46
+ [Symbol.asyncDispose](): Promise<void>;
47
+ close(): Promise<void>;
48
+ send(message: SendT): void;
49
+ _recv(): Promise<RecvT>;
50
+ [Symbol.asyncIterator](): AsyncGenerator<RecvT>;
51
+ }