@guava-ai/guava-sdk 0.17.0 → 0.19.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 (100) 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 +81 -16
  15. package/dist/src/agent.js +394 -127
  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 +4 -11
  24. package/dist/src/client.js +22 -14
  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 +22 -0
  28. package/dist/src/events.js +19 -5
  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 +2 -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/socket/call-info.d.ts +35 -0
  39. package/dist/src/socket/call-info.js +59 -0
  40. package/dist/src/socket/call-info.js.map +1 -0
  41. package/dist/src/socket/client.d.ts +51 -0
  42. package/dist/src/socket/client.js +455 -0
  43. package/dist/src/socket/client.js.map +1 -0
  44. package/dist/src/socket/listen-inbound.d.ts +83 -0
  45. package/dist/src/socket/listen-inbound.js +82 -0
  46. package/dist/src/socket/listen-inbound.js.map +1 -0
  47. package/dist/src/socket/protocol.d.ts +127 -0
  48. package/dist/src/socket/protocol.js +69 -0
  49. package/dist/src/socket/protocol.js.map +1 -0
  50. package/dist/src/socket/utils.d.ts +8 -0
  51. package/dist/src/socket/utils.js +26 -0
  52. package/dist/src/socket/utils.js.map +1 -0
  53. package/dist/src/telemetry.d.ts +3 -3
  54. package/dist/src/telemetry.js +9 -7
  55. package/dist/src/telemetry.js.map +1 -1
  56. package/dist/src/testing/chat.d.ts +2 -0
  57. package/dist/src/testing/chat.js +181 -0
  58. package/dist/src/testing/chat.js.map +1 -0
  59. package/dist/src/testing/mocks.d.ts +6 -0
  60. package/dist/src/testing/mocks.js +14 -0
  61. package/dist/src/testing/mocks.js.map +1 -0
  62. package/dist/src/testing/protocol.d.ts +46 -0
  63. package/dist/src/testing/protocol.js +61 -0
  64. package/dist/src/testing/protocol.js.map +1 -0
  65. package/dist/src/testing/session.d.ts +26 -0
  66. package/dist/src/testing/session.js +219 -0
  67. package/dist/src/testing/session.js.map +1 -0
  68. package/dist/src/utils.d.ts +1 -0
  69. package/dist/src/utils.js +15 -1
  70. package/dist/src/utils.js.map +1 -1
  71. package/dist/src/version.d.ts +1 -1
  72. package/dist/src/version.js +1 -1
  73. package/dist/src/webrtc-helper.js +11 -11
  74. package/examples/example.test.ts +58 -0
  75. package/examples/help-desk.ts +14 -3
  76. package/examples/property-insurance.ts +3 -1
  77. package/examples/restaurant-waitlist.ts +3 -1
  78. package/examples/scheduling-outbound.ts +7 -0
  79. package/package.json +9 -1
  80. package/src/agent.ts +372 -162
  81. package/src/auth.ts +109 -0
  82. package/src/call.ts +3 -3
  83. package/src/client.ts +32 -15
  84. package/src/events.ts +24 -10
  85. package/src/helpers/llm.ts +20 -0
  86. package/src/index.ts +2 -0
  87. package/src/logging.ts +21 -13
  88. package/src/socket/call-info.ts +30 -0
  89. package/src/socket/client.ts +433 -0
  90. package/src/socket/listen-inbound.ts +62 -0
  91. package/src/socket/protocol.ts +89 -0
  92. package/src/socket/utils.ts +25 -0
  93. package/src/telemetry.ts +11 -8
  94. package/src/testing/chat.ts +196 -0
  95. package/src/testing/mocks.ts +12 -0
  96. package/src/testing/protocol.ts +40 -0
  97. package/src/testing/session.ts +218 -0
  98. package/src/utils.ts +15 -1
  99. package/src/version.ts +1 -1
  100. package/src/webrtc-helper.ts +11 -11
@@ -0,0 +1,455 @@
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 __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
19
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
20
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
21
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
22
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
23
+ var _, done = false;
24
+ for (var i = decorators.length - 1; i >= 0; i--) {
25
+ var context = {};
26
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
27
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
28
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
29
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
30
+ if (kind === "accessor") {
31
+ if (result === void 0) continue;
32
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
33
+ if (_ = accept(result.get)) descriptor.get = _;
34
+ if (_ = accept(result.set)) descriptor.set = _;
35
+ if (_ = accept(result.init)) initializers.unshift(_);
36
+ }
37
+ else if (_ = accept(result)) {
38
+ if (kind === "field") initializers.unshift(_);
39
+ else descriptor[key] = _;
40
+ }
41
+ }
42
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
43
+ done = true;
44
+ };
45
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
46
+ var useValue = arguments.length > 2;
47
+ for (var i = 0; i < initializers.length; i++) {
48
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
49
+ }
50
+ return useValue ? value : void 0;
51
+ };
52
+ var __importStar = (this && this.__importStar) || (function () {
53
+ var ownKeys = function(o) {
54
+ ownKeys = Object.getOwnPropertyNames || function (o) {
55
+ var ar = [];
56
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
57
+ return ar;
58
+ };
59
+ return ownKeys(o);
60
+ };
61
+ return function (mod) {
62
+ if (mod && mod.__esModule) return mod;
63
+ var result = {};
64
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
65
+ __setModuleDefault(result, mod);
66
+ return result;
67
+ };
68
+ })();
69
+ var __importDefault = (this && this.__importDefault) || function (mod) {
70
+ return (mod && mod.__esModule) ? mod : { "default": mod };
71
+ };
72
+ Object.defineProperty(exports, "__esModule", { value: true });
73
+ exports.GuavaSocket = exports.GuavaSocketConnectionFailed = exports.GuavaSocketClosedError = void 0;
74
+ const ws_1 = __importDefault(require("ws"));
75
+ const node_crypto_1 = require("node:crypto");
76
+ const z = __importStar(require("zod"));
77
+ const logging_ts_1 = require("../logging.js");
78
+ const utils_ts_1 = require("./utils.js");
79
+ const telemetry_ts_1 = require("../telemetry.js");
80
+ const protocol_ts_1 = require("./protocol.js");
81
+ function sleep(ms) {
82
+ return new Promise((resolve) => setTimeout(resolve, ms));
83
+ }
84
+ function reconnectDelay(attempt) {
85
+ if (attempt <= 3)
86
+ return 1000 + (Math.random() - 0.5) * 1000;
87
+ if (attempt <= 5)
88
+ return 5000 + (Math.random() - 0.5) * 4000;
89
+ return 10_000 + (Math.random() - 0.5) * 10_000;
90
+ }
91
+ const MAX_RECONNECT_ATTEMPTS = 10;
92
+ const MAX_CONNECTIONS_PER_MINUTE = 15;
93
+ const PING_INTERVAL_MS = 10_000;
94
+ const SOCKET_DEAD_TIMEOUT_MS = 30_000;
95
+ class GuavaSocketClosedError extends Error {
96
+ reason;
97
+ description;
98
+ constructor(reason, description) {
99
+ const r = reason ?? "unknown";
100
+ const d = description ?? "No description provided.";
101
+ super(`Guava socket closed. Reason: ${r}. Description: ${d}`);
102
+ this.reason = r;
103
+ this.description = d;
104
+ }
105
+ }
106
+ exports.GuavaSocketClosedError = GuavaSocketClosedError;
107
+ class GuavaSocketConnectionFailed extends Error {
108
+ constructor() {
109
+ super("Couldn't connect to the Guava server after multiple attempts.");
110
+ }
111
+ }
112
+ exports.GuavaSocketConnectionFailed = GuavaSocketConnectionFailed;
113
+ const HandshakeResponse = z.union([protocol_ts_1.GuavaOpenAck, protocol_ts_1.GuavaClose]);
114
+ function _sendMessage(ws, message) {
115
+ ws.send(JSON.stringify(message));
116
+ }
117
+ let GuavaSocket = (() => {
118
+ let _classDecorators = [telemetry_ts_1.telemetryClient.trackClass()];
119
+ let _classDescriptor;
120
+ let _classExtraInitializers = [];
121
+ let _classThis;
122
+ var GuavaSocket = class {
123
+ static { _classThis = this; }
124
+ static {
125
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
126
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
127
+ GuavaSocket = _classThis = _classDescriptor.value;
128
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
129
+ __runInitializers(_classThis, _classExtraInitializers);
130
+ }
131
+ _name;
132
+ _connectionUrl;
133
+ _client;
134
+ _serializer;
135
+ _deserializer;
136
+ _maxAgeSeconds;
137
+ _socketCreateTime = Date.now();
138
+ _connectionId = (0, node_crypto_1.randomBytes)(10).toString("hex");
139
+ _openCounter = new utils_ts_1.EventCounter(60);
140
+ _logger;
141
+ _lastSeenSequence = 0;
142
+ _lastSentSequence = 0;
143
+ _rtxBuffer = [];
144
+ _state = "never-opened";
145
+ _ws;
146
+ _shouldClose = false;
147
+ _closeReason;
148
+ _closeDescription;
149
+ // Async recv queue: buffered payloads waiting to be consumed, and waiters blocked on _recv()
150
+ _recvBuffer = [];
151
+ _recvWaiters = [];
152
+ _readyResolve;
153
+ _readyReject;
154
+ _reconnectLoopPromise;
155
+ constructor(_name, _connectionUrl, _client, _serializer, _deserializer, _maxAgeSeconds, logger) {
156
+ this._name = _name;
157
+ this._connectionUrl = _connectionUrl;
158
+ this._client = _client;
159
+ this._serializer = _serializer;
160
+ this._deserializer = _deserializer;
161
+ this._maxAgeSeconds = _maxAgeSeconds;
162
+ this._logger = logger ?? (0, logging_ts_1.getDefaultLogger)();
163
+ }
164
+ isOpen() {
165
+ return this._state === "open";
166
+ }
167
+ _setCloseReason(reason, description) {
168
+ if (this._closeReason === undefined) {
169
+ this._closeReason = reason;
170
+ this._closeDescription = description;
171
+ }
172
+ }
173
+ _pruneRtxBuffer(peerLastSeenSequence) {
174
+ while (this._rtxBuffer.length > 0 && this._rtxBuffer[0][0] <= peerLastSeenSequence) {
175
+ this._rtxBuffer.shift();
176
+ }
177
+ }
178
+ _pushPayload(payload) {
179
+ const waiter = this._recvWaiters.shift();
180
+ if (waiter) {
181
+ waiter.resolve(payload);
182
+ }
183
+ else {
184
+ this._recvBuffer.push(payload);
185
+ }
186
+ }
187
+ _rejectAllWaiters() {
188
+ const err = new GuavaSocketClosedError(this._closeReason, this._closeDescription);
189
+ for (const waiter of this._recvWaiters) {
190
+ waiter.reject(err);
191
+ }
192
+ this._recvWaiters = [];
193
+ }
194
+ async _establishSocket(isReopen) {
195
+ for (let attempt = 1; attempt <= MAX_RECONNECT_ATTEMPTS; attempt++) {
196
+ const headers = await this._client.headers();
197
+ try {
198
+ const ws = await new Promise((resolve, reject) => {
199
+ const socket = new ws_1.default(this._connectionUrl, { headers });
200
+ let settled = false;
201
+ const settle = (fn) => {
202
+ if (!settled) {
203
+ settled = true;
204
+ socket.removeAllListeners();
205
+ fn();
206
+ }
207
+ };
208
+ socket.once("error", (err) => settle(() => reject(err)));
209
+ socket.once("close", () => settle(() => reject(new Error("Connection closed before open-ack"))));
210
+ socket.once("open", () => {
211
+ _sendMessage(socket, {
212
+ message_type: "open",
213
+ name: this._name,
214
+ connection_id: this._connectionId,
215
+ is_reopen: isReopen,
216
+ last_seen_sequence: this._lastSeenSequence,
217
+ });
218
+ const ackTimeout = setTimeout(() => {
219
+ settle(() => {
220
+ socket.close();
221
+ reject(new Error("Timed out waiting for open-ack"));
222
+ });
223
+ }, 10_000);
224
+ socket.once("message", (data) => {
225
+ clearTimeout(ackTimeout);
226
+ try {
227
+ const msg = HandshakeResponse.parse(JSON.parse(data.toString()));
228
+ if (msg.message_type === "close") {
229
+ this._setCloseReason(msg.reason, msg.description);
230
+ settle(() => {
231
+ socket.close();
232
+ reject(new GuavaSocketClosedError(msg.reason, msg.description));
233
+ });
234
+ }
235
+ else {
236
+ // Retransmit any messages the server hasn't seen
237
+ for (const [seq, payload] of this._rtxBuffer) {
238
+ if (seq > msg.last_seen_sequence) {
239
+ _sendMessage(socket, { message_type: "message", sequence: seq, payload });
240
+ }
241
+ }
242
+ this._pruneRtxBuffer(msg.last_seen_sequence);
243
+ settle(() => resolve(socket));
244
+ }
245
+ }
246
+ catch (e) {
247
+ settle(() => {
248
+ socket.close();
249
+ reject(e);
250
+ });
251
+ }
252
+ });
253
+ });
254
+ });
255
+ return ws;
256
+ }
257
+ catch (e) {
258
+ if (e instanceof GuavaSocketClosedError)
259
+ throw e;
260
+ if (attempt >= MAX_RECONNECT_ATTEMPTS) {
261
+ this._setCloseReason("reconnection-failed", `Couldn't connect after ${attempt} attempts.`);
262
+ throw new GuavaSocketConnectionFailed();
263
+ }
264
+ this._logger.error("Failed to connect (attempt %d/%d). Retrying in a few seconds...\n", attempt, MAX_RECONNECT_ATTEMPTS, e);
265
+ await sleep(reconnectDelay(attempt));
266
+ }
267
+ }
268
+ throw new GuavaSocketConnectionFailed();
269
+ }
270
+ _runConnection(ws) {
271
+ // Resolves true if we should reconnect, false if we should stop.
272
+ return new Promise((resolve) => {
273
+ let pingTimer;
274
+ let deadTimer;
275
+ const resetPingTimer = () => {
276
+ clearTimeout(pingTimer);
277
+ pingTimer = setTimeout(() => {
278
+ this._logger.debug("Haven't seen any messages in a while. Sending a ping...");
279
+ _sendMessage(ws, { message_type: "ping", ping_timestamp: Date.now() });
280
+ resetPingTimer();
281
+ }, PING_INTERVAL_MS);
282
+ };
283
+ const resetDeadTimer = () => {
284
+ clearTimeout(deadTimer);
285
+ deadTimer = setTimeout(() => {
286
+ this._logger.warn("No messages received from server in %dms. Assuming socket is dead, reconnecting...", SOCKET_DEAD_TIMEOUT_MS);
287
+ ws.terminate();
288
+ }, SOCKET_DEAD_TIMEOUT_MS);
289
+ };
290
+ resetPingTimer();
291
+ resetDeadTimer();
292
+ ws.on("message", (data) => {
293
+ resetPingTimer();
294
+ resetDeadTimer();
295
+ let msg;
296
+ try {
297
+ msg = protocol_ts_1.GuavaServerMessage.parse(JSON.parse(data.toString()));
298
+ }
299
+ catch {
300
+ this._logger.warn("Received unparseable message from server.");
301
+ return;
302
+ }
303
+ switch (msg.message_type) {
304
+ case "ping":
305
+ _sendMessage(ws, {
306
+ message_type: "pong",
307
+ ping_timestamp: msg.ping_timestamp,
308
+ pong_timestamp: Date.now(),
309
+ });
310
+ break;
311
+ case "pong":
312
+ break;
313
+ case "close":
314
+ this._setCloseReason(msg.reason, msg.description);
315
+ this._shouldClose = true;
316
+ ws.close();
317
+ break;
318
+ case "message":
319
+ if (msg.sequence > this._lastSeenSequence) {
320
+ this._lastSeenSequence = msg.sequence;
321
+ this._pushPayload(msg.payload);
322
+ }
323
+ _sendMessage(ws, { message_type: "ack", last_seen_sequence: this._lastSeenSequence });
324
+ break;
325
+ case "ack":
326
+ this._pruneRtxBuffer(msg.last_seen_sequence);
327
+ break;
328
+ }
329
+ });
330
+ ws.once("close", () => {
331
+ this._logger.debug("Closing websocket connection...");
332
+ clearTimeout(pingTimer);
333
+ clearTimeout(deadTimer);
334
+ ws.removeAllListeners();
335
+ resolve(!this._shouldClose);
336
+ });
337
+ ws.once("error", (err) => {
338
+ this._logger.debug("Websocket connection error...", err);
339
+ clearTimeout(pingTimer);
340
+ clearTimeout(deadTimer);
341
+ ws.removeAllListeners();
342
+ resolve(!this._shouldClose);
343
+ });
344
+ });
345
+ }
346
+ async _reconnectLoop() {
347
+ let isFirstConnect = true;
348
+ try {
349
+ while (!this._shouldClose) {
350
+ let ws;
351
+ try {
352
+ ws = await this._establishSocket(!isFirstConnect);
353
+ }
354
+ catch (e) {
355
+ this._readyReject?.(e);
356
+ return;
357
+ }
358
+ this._ws = ws;
359
+ this._openCounter.addEvent();
360
+ this._state = "open";
361
+ this._logger.debug("GuavaSocket connection established.");
362
+ if (isFirstConnect) {
363
+ this._readyResolve?.();
364
+ isFirstConnect = false;
365
+ }
366
+ if (this._openCounter.count() >= MAX_CONNECTIONS_PER_MINUTE) {
367
+ this._setCloseReason("server-error", "Too many connections in the last minute. The server is probably in a bad state.");
368
+ ws.close();
369
+ return;
370
+ }
371
+ const shouldReconnect = await this._runConnection(ws);
372
+ if (!shouldReconnect)
373
+ return;
374
+ if (this._maxAgeSeconds !== undefined &&
375
+ Date.now() > this._socketCreateTime + this._maxAgeSeconds * 1000) {
376
+ this._setCloseReason("other", "The socket hit its max age limit.");
377
+ return;
378
+ }
379
+ await sleep(reconnectDelay(1));
380
+ }
381
+ }
382
+ finally {
383
+ this._state = "closed";
384
+ this._ws?.close();
385
+ this._ws = undefined;
386
+ this._rejectAllWaiters();
387
+ this._logger.debug("GuavaSocket closed.");
388
+ }
389
+ }
390
+ async connect() {
391
+ if (this._state !== "never-opened")
392
+ throw new Error("connect() already called");
393
+ const readyPromise = new Promise((resolve, reject) => {
394
+ this._readyResolve = resolve;
395
+ this._readyReject = reject;
396
+ });
397
+ this._reconnectLoopPromise = this._reconnectLoop();
398
+ await readyPromise;
399
+ return this;
400
+ }
401
+ async [Symbol.asyncDispose]() {
402
+ await this.close();
403
+ }
404
+ async close() {
405
+ if (!this._reconnectLoopPromise)
406
+ throw new Error("connect() has not been called");
407
+ this._setCloseReason("done", "The socket was closed by the client.");
408
+ this._shouldClose = true;
409
+ this._ws?.close();
410
+ await this._reconnectLoopPromise;
411
+ }
412
+ send(message) {
413
+ if (this._state === "never-opened")
414
+ throw new Error("connect() has not been called");
415
+ if (this._state === "closed")
416
+ throw new GuavaSocketClosedError(this._closeReason, this._closeDescription);
417
+ const payload = this._serializer(message);
418
+ this._lastSentSequence++;
419
+ this._rtxBuffer.push([this._lastSentSequence, payload]);
420
+ try {
421
+ if (this._ws) {
422
+ _sendMessage(this._ws, {
423
+ message_type: "message",
424
+ sequence: this._lastSentSequence,
425
+ payload,
426
+ });
427
+ }
428
+ }
429
+ catch {
430
+ // Connection is down; the reconnect loop will retransmit from the RTX buffer.
431
+ }
432
+ }
433
+ async _recv() {
434
+ if (this._state === "never-opened")
435
+ throw new Error("connect() has not been called");
436
+ if (this._state === "closed")
437
+ throw new GuavaSocketClosedError(this._closeReason, this._closeDescription);
438
+ const buffered = this._recvBuffer.shift();
439
+ if (buffered !== undefined)
440
+ return this._deserializer(buffered);
441
+ const payload = await new Promise((resolve, reject) => {
442
+ this._recvWaiters.push({ resolve, reject });
443
+ });
444
+ return this._deserializer(payload);
445
+ }
446
+ async *[Symbol.asyncIterator]() {
447
+ while (true) {
448
+ yield await this._recv();
449
+ }
450
+ }
451
+ };
452
+ return GuavaSocket = _classThis;
453
+ })();
454
+ exports.GuavaSocket = GuavaSocket;
455
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/socket/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ import * as z from "zod";
2
+ export { CallInfo } from "./call-info.ts";
3
+ export declare const ListenStarted: z.ZodObject<{
4
+ message_type: z.ZodLiteral<"listen-started">;
5
+ other_listeners: z.ZodNumber;
6
+ }, z.core.$strip>;
7
+ export type ListenStarted = z.infer<typeof ListenStarted>;
8
+ export declare const IncomingCall: z.ZodObject<{
9
+ message_type: z.ZodLiteral<"incoming-call">;
10
+ call_id: z.ZodString;
11
+ }, z.core.$strip>;
12
+ export type IncomingCall = z.infer<typeof IncomingCall>;
13
+ export declare const AssignCall: z.ZodObject<{
14
+ message_type: z.ZodLiteral<"assign-call">;
15
+ call_id: z.ZodString;
16
+ call_info: z.ZodDiscriminatedUnion<[z.ZodObject<{
17
+ call_type: z.ZodLiteral<"pstn">;
18
+ from_number: z.ZodNullable<z.ZodString>;
19
+ to_number: z.ZodString;
20
+ caller_id: z.ZodNullable<z.ZodString>;
21
+ }, z.core.$strip>, z.ZodObject<{
22
+ call_type: z.ZodLiteral<"webrtc">;
23
+ webrtc_code: z.ZodString;
24
+ }, z.core.$strip>, z.ZodObject<{
25
+ call_type: z.ZodLiteral<"sip">;
26
+ from_aor: z.ZodString;
27
+ sip_code: z.ZodOptional<z.ZodString>;
28
+ sip_headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
29
+ }, z.core.$strip>], "call_type">;
30
+ }, z.core.$strip>;
31
+ export type AssignCall = z.infer<typeof AssignCall>;
32
+ export declare const ServerMessage: z.ZodDiscriminatedUnion<[z.ZodObject<{
33
+ message_type: z.ZodLiteral<"listen-started">;
34
+ other_listeners: z.ZodNumber;
35
+ }, z.core.$strip>, z.ZodObject<{
36
+ message_type: z.ZodLiteral<"incoming-call">;
37
+ call_id: z.ZodString;
38
+ }, z.core.$strip>, z.ZodObject<{
39
+ message_type: z.ZodLiteral<"assign-call">;
40
+ call_id: z.ZodString;
41
+ call_info: z.ZodDiscriminatedUnion<[z.ZodObject<{
42
+ call_type: z.ZodLiteral<"pstn">;
43
+ from_number: z.ZodNullable<z.ZodString>;
44
+ to_number: z.ZodString;
45
+ caller_id: z.ZodNullable<z.ZodString>;
46
+ }, z.core.$strip>, z.ZodObject<{
47
+ call_type: z.ZodLiteral<"webrtc">;
48
+ webrtc_code: z.ZodString;
49
+ }, z.core.$strip>, z.ZodObject<{
50
+ call_type: z.ZodLiteral<"sip">;
51
+ from_aor: z.ZodString;
52
+ sip_code: z.ZodOptional<z.ZodString>;
53
+ sip_headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
54
+ }, z.core.$strip>], "call_type">;
55
+ }, z.core.$strip>], "message_type">;
56
+ export type ServerMessage = z.infer<typeof ServerMessage>;
57
+ export declare const ClaimCall: z.ZodObject<{
58
+ message_type: z.ZodLiteral<"claim-call">;
59
+ call_id: z.ZodString;
60
+ }, z.core.$strip>;
61
+ export type ClaimCall = z.infer<typeof ClaimCall>;
62
+ export declare const AnswerCall: z.ZodObject<{
63
+ message_type: z.ZodLiteral<"answer-call">;
64
+ call_id: z.ZodString;
65
+ }, z.core.$strip>;
66
+ export type AnswerCall = z.infer<typeof AnswerCall>;
67
+ export declare const DeclineCall: z.ZodObject<{
68
+ message_type: z.ZodLiteral<"decline-call">;
69
+ call_id: z.ZodString;
70
+ }, z.core.$strip>;
71
+ export type DeclineCall = z.infer<typeof DeclineCall>;
72
+ export declare const ClientMessage: z.ZodDiscriminatedUnion<[z.ZodObject<{
73
+ message_type: z.ZodLiteral<"claim-call">;
74
+ call_id: z.ZodString;
75
+ }, z.core.$strip>, z.ZodObject<{
76
+ message_type: z.ZodLiteral<"answer-call">;
77
+ call_id: z.ZodString;
78
+ }, z.core.$strip>, z.ZodObject<{
79
+ message_type: z.ZodLiteral<"decline-call">;
80
+ call_id: z.ZodString;
81
+ }, z.core.$strip>], "message_type">;
82
+ export type ClientMessage = z.infer<typeof ClientMessage>;
83
+ export declare function decodeServerMessage(payload: Record<string, unknown>): ServerMessage;
@@ -0,0 +1,82 @@
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.ClientMessage = exports.DeclineCall = exports.AnswerCall = exports.ClaimCall = exports.ServerMessage = exports.AssignCall = exports.IncomingCall = exports.ListenStarted = exports.CallInfo = void 0;
37
+ exports.decodeServerMessage = decodeServerMessage;
38
+ const z = __importStar(require("zod"));
39
+ const call_info_ts_1 = require("./call-info.js");
40
+ var call_info_ts_2 = require("./call-info.js");
41
+ Object.defineProperty(exports, "CallInfo", { enumerable: true, get: function () { return call_info_ts_2.CallInfo; } });
42
+ // -------- SERVER MESSAGES --------
43
+ exports.ListenStarted = z.object({
44
+ message_type: z.literal("listen-started"),
45
+ other_listeners: z.number().int(),
46
+ });
47
+ exports.IncomingCall = z.object({
48
+ message_type: z.literal("incoming-call"),
49
+ call_id: z.string(),
50
+ });
51
+ exports.AssignCall = z.object({
52
+ message_type: z.literal("assign-call"),
53
+ call_id: z.string(),
54
+ call_info: call_info_ts_1.CallInfo,
55
+ });
56
+ exports.ServerMessage = z.discriminatedUnion("message_type", [
57
+ exports.ListenStarted,
58
+ exports.IncomingCall,
59
+ exports.AssignCall,
60
+ ]);
61
+ // -------- CLIENT MESSAGES --------
62
+ exports.ClaimCall = z.object({
63
+ message_type: z.literal("claim-call"),
64
+ call_id: z.string(),
65
+ });
66
+ exports.AnswerCall = z.object({
67
+ message_type: z.literal("answer-call"),
68
+ call_id: z.string(),
69
+ });
70
+ exports.DeclineCall = z.object({
71
+ message_type: z.literal("decline-call"),
72
+ call_id: z.string(),
73
+ });
74
+ exports.ClientMessage = z.discriminatedUnion("message_type", [
75
+ exports.ClaimCall,
76
+ exports.AnswerCall,
77
+ exports.DeclineCall,
78
+ ]);
79
+ function decodeServerMessage(payload) {
80
+ return exports.ServerMessage.parse(payload);
81
+ }
82
+ //# sourceMappingURL=listen-inbound.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listen-inbound.js","sourceRoot":"","sources":["../../../src/socket/listen-inbound.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DA,kDAEC;AA7DD,uCAAyB;AACzB,iDAA0C;AAC1C,+CAA0C;AAAjC,wGAAA,QAAQ,OAAA;AAEjB,oCAAoC;AAEvB,QAAA,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACzC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;CAClC,CAAC,CAAC;AAGU,QAAA,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAGU,QAAA,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,SAAS,EAAE,uBAAQ;CACpB,CAAC,CAAC;AAGU,QAAA,aAAa,GAAG,CAAC,CAAC,kBAAkB,CAAC,cAAc,EAAE;IAChE,qBAAa;IACb,oBAAY;IACZ,kBAAU;CACX,CAAC,CAAC;AAGH,oCAAoC;AAEvB,QAAA,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAGU,QAAA,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAGU,QAAA,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAGU,QAAA,aAAa,GAAG,CAAC,CAAC,kBAAkB,CAAC,cAAc,EAAE;IAChE,iBAAS;IACT,kBAAU;IACV,mBAAW;CACZ,CAAC,CAAC;AAGH,SAAgB,mBAAmB,CAAC,OAAgC;IAClE,OAAO,qBAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC"}