@voiceflow/sdk-runtime 1.27.1-5ab45311.15 → 1.28.1-93285673.6

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 (81) hide show
  1. package/build/cjs/main.d.ts +2 -1
  2. package/build/cjs/main.d.ts.map +1 -1
  3. package/build/cjs/main.js +2 -1
  4. package/build/cjs/main.js.map +1 -1
  5. package/build/cjs/sdk/sdk.service.d.ts +1 -2
  6. package/build/cjs/sdk/sdk.service.d.ts.map +1 -1
  7. package/build/cjs/sdk/sdk.service.js +0 -6
  8. package/build/cjs/sdk/sdk.service.js.map +1 -1
  9. package/build/cjs/v2/interact-trace.stream.d.ts +3 -0
  10. package/build/cjs/v2/interact-trace.stream.d.ts.map +1 -1
  11. package/build/cjs/v2/interact-trace.stream.js +3 -2
  12. package/build/cjs/v2/interact-trace.stream.js.map +1 -1
  13. package/build/cjs/v2/private-runtime.client.d.ts.map +1 -1
  14. package/build/cjs/v2/private-runtime.client.js +2 -1
  15. package/build/cjs/v2/private-runtime.client.js.map +1 -1
  16. package/build/cjs/v2/runtime.interface.d.ts +6 -0
  17. package/build/cjs/v2/runtime.interface.d.ts.map +1 -1
  18. package/build/cjs/v2/runtime.interface.js +8 -0
  19. package/build/cjs/v2/runtime.interface.js.map +1 -1
  20. package/build/cjs/v2/{websocket-runtime.client.d.ts → websocket-runtime/websocket-runtime.client.d.ts} +6 -33
  21. package/build/cjs/v2/websocket-runtime/websocket-runtime.client.d.ts.map +1 -0
  22. package/build/cjs/v2/{websocket-runtime.client.js → websocket-runtime/websocket-runtime.client.js} +89 -131
  23. package/build/cjs/v2/websocket-runtime/websocket-runtime.client.js.map +1 -0
  24. package/build/cjs/v2/websocket-runtime/websocket-runtime.interface.d.ts +61 -0
  25. package/build/cjs/v2/websocket-runtime/websocket-runtime.interface.d.ts.map +1 -0
  26. package/build/cjs/v2/websocket-runtime/websocket-runtime.interface.js +19 -0
  27. package/build/cjs/v2/websocket-runtime/websocket-runtime.interface.js.map +1 -0
  28. package/build/cjs/v2/websocket-runtime/websocket-runtime.utils.d.ts +6 -0
  29. package/build/cjs/v2/websocket-runtime/websocket-runtime.utils.d.ts.map +1 -0
  30. package/build/cjs/v2/websocket-runtime/websocket-runtime.utils.js +22 -0
  31. package/build/cjs/v2/websocket-runtime/websocket-runtime.utils.js.map +1 -0
  32. package/build/cjs/v2/{websocket-trace.stream.d.ts → websocket-runtime/websocket-trace.stream.d.ts} +3 -6
  33. package/build/cjs/v2/websocket-runtime/websocket-trace.stream.d.ts.map +1 -0
  34. package/build/cjs/v2/websocket-runtime/websocket-trace.stream.js +26 -0
  35. package/build/cjs/v2/websocket-runtime/websocket-trace.stream.js.map +1 -0
  36. package/build/esm/main.d.ts +2 -1
  37. package/build/esm/main.d.ts.map +1 -1
  38. package/build/esm/main.js +2 -1
  39. package/build/esm/main.js.map +1 -1
  40. package/build/esm/sdk/sdk.service.d.ts +1 -2
  41. package/build/esm/sdk/sdk.service.d.ts.map +1 -1
  42. package/build/esm/sdk/sdk.service.js +0 -6
  43. package/build/esm/sdk/sdk.service.js.map +1 -1
  44. package/build/esm/v2/interact-trace.stream.d.ts +3 -0
  45. package/build/esm/v2/interact-trace.stream.d.ts.map +1 -1
  46. package/build/esm/v2/interact-trace.stream.js +1 -1
  47. package/build/esm/v2/interact-trace.stream.js.map +1 -1
  48. package/build/esm/v2/private-runtime.client.d.ts.map +1 -1
  49. package/build/esm/v2/private-runtime.client.js +2 -1
  50. package/build/esm/v2/private-runtime.client.js.map +1 -1
  51. package/build/esm/v2/runtime.interface.d.ts +6 -0
  52. package/build/esm/v2/runtime.interface.d.ts.map +1 -1
  53. package/build/esm/v2/runtime.interface.js +7 -1
  54. package/build/esm/v2/runtime.interface.js.map +1 -1
  55. package/build/esm/v2/{websocket-runtime.client.d.ts → websocket-runtime/websocket-runtime.client.d.ts} +6 -33
  56. package/build/esm/v2/websocket-runtime/websocket-runtime.client.d.ts.map +1 -0
  57. package/build/esm/v2/{websocket-runtime.client.js → websocket-runtime/websocket-runtime.client.js} +72 -114
  58. package/build/esm/v2/websocket-runtime/websocket-runtime.client.js.map +1 -0
  59. package/build/esm/v2/websocket-runtime/websocket-runtime.interface.d.ts +61 -0
  60. package/build/esm/v2/websocket-runtime/websocket-runtime.interface.d.ts.map +1 -0
  61. package/build/esm/v2/websocket-runtime/websocket-runtime.interface.js +16 -0
  62. package/build/esm/v2/websocket-runtime/websocket-runtime.interface.js.map +1 -0
  63. package/build/esm/v2/websocket-runtime/websocket-runtime.utils.d.ts +6 -0
  64. package/build/esm/v2/websocket-runtime/websocket-runtime.utils.d.ts.map +1 -0
  65. package/build/esm/v2/websocket-runtime/websocket-runtime.utils.js +15 -0
  66. package/build/esm/v2/websocket-runtime/websocket-runtime.utils.js.map +1 -0
  67. package/build/esm/v2/{websocket-trace.stream.d.ts → websocket-runtime/websocket-trace.stream.d.ts} +3 -6
  68. package/build/esm/v2/websocket-runtime/websocket-trace.stream.d.ts.map +1 -0
  69. package/build/esm/v2/websocket-runtime/websocket-trace.stream.js +22 -0
  70. package/build/esm/v2/websocket-runtime/websocket-trace.stream.js.map +1 -0
  71. package/package.json +4 -3
  72. package/build/cjs/v2/websocket-runtime.client.d.ts.map +0 -1
  73. package/build/cjs/v2/websocket-runtime.client.js.map +0 -1
  74. package/build/cjs/v2/websocket-trace.stream.d.ts.map +0 -1
  75. package/build/cjs/v2/websocket-trace.stream.js +0 -84
  76. package/build/cjs/v2/websocket-trace.stream.js.map +0 -1
  77. package/build/esm/v2/websocket-runtime.client.d.ts.map +0 -1
  78. package/build/esm/v2/websocket-runtime.client.js.map +0 -1
  79. package/build/esm/v2/websocket-trace.stream.d.ts.map +0 -1
  80. package/build/esm/v2/websocket-trace.stream.js +0 -80
  81. package/build/esm/v2/websocket-trace.stream.js.map +0 -1
@@ -2,45 +2,38 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WebSocketRuntimeClient = void 0;
4
4
  const dtos_interact_1 = require("@voiceflow/dtos-interact");
5
- const trace_service_1 = require("./trace.service");
5
+ const nanoevents_1 = require("nanoevents");
6
+ const runtime_interface_1 = require("../runtime.interface");
7
+ const trace_service_1 = require("../trace.service");
8
+ const websocket_runtime_interface_1 = require("./websocket-runtime.interface");
9
+ const websocket_runtime_utils_1 = require("./websocket-runtime.utils");
6
10
  const websocket_trace_stream_1 = require("./websocket-trace.stream");
7
- // Define the Environment enum locally if not available
8
- var Environment;
9
- (function (Environment) {
10
- Environment["DEVELOPMENT"] = "development";
11
- Environment["STAGING"] = "staging";
12
- Environment["PRODUCTION"] = "production";
13
- })(Environment || (Environment = {}));
14
- // Simplified connection state enum
15
- var ConnectionState;
16
- (function (ConnectionState) {
17
- ConnectionState["DISCONNECTED"] = "disconnected";
18
- ConnectionState["CONNECTING"] = "connecting";
19
- ConnectionState["CONNECTED"] = "connected";
20
- ConnectionState["SESSION_STARTED"] = "session_started";
21
- ConnectionState["ERROR"] = "error";
22
- })(ConnectionState || (ConnectionState = {}));
23
11
  class WebSocketRuntimeClient {
24
12
  constructor(options, trace = new trace_service_1.TraceService({ traces: options.traces })) {
25
13
  this.options = options;
26
14
  this.trace = trace;
27
15
  this.state = null;
28
16
  this.ws = null;
29
- this.connectionState = ConnectionState.DISCONNECTED;
17
+ this.connectionState = websocket_runtime_interface_1.ConnectionState.DISCONNECTED;
30
18
  this.pendingInteractions = [];
31
19
  this.currentInteraction = null;
32
20
  this.inactivityTimer = null;
33
21
  this.inactivityTimeout = 2 * 60 * 1000;
34
- this.reconnectAttempts = 0;
35
- this.maxReconnectAttempts = 3;
36
- this.reconnectDelay = 1000;
22
+ this.emitter = (0, nanoevents_1.createNanoEvents)();
37
23
  this.setState = (context, state) => {
38
24
  this.state = state;
39
25
  this.options.onStateChange?.(context, state);
40
26
  };
41
27
  }
42
- resetState(state) {
43
- this.state = state ?? null;
28
+ async resetState(state) {
29
+ const newState = state ?? null;
30
+ const oldUserID = this.state?.variables?.user_id;
31
+ const newUserID = newState?.variables?.user_id;
32
+ // If userID has changed and we have an active session, restart it
33
+ if (oldUserID !== newUserID && this.connectionState === websocket_runtime_interface_1.ConnectionState.SESSION_STARTED) {
34
+ await this.disconnect(false);
35
+ }
36
+ this.state = newState;
44
37
  }
45
38
  patchState(state) {
46
39
  this.state = { ...this.state, ...state };
@@ -53,7 +46,7 @@ class WebSocketRuntimeClient {
53
46
  startInactivityTimer() {
54
47
  this.clearInactivityTimer();
55
48
  this.inactivityTimer = setTimeout(() => {
56
- this.disconnect();
49
+ this.disconnect(false);
57
50
  }, this.inactivityTimeout);
58
51
  }
59
52
  clearInactivityTimer() {
@@ -63,39 +56,39 @@ class WebSocketRuntimeClient {
63
56
  }
64
57
  }
65
58
  resetInactivityTimer() {
66
- if (this.connectionState === ConnectionState.SESSION_STARTED) {
59
+ if (this.connectionState === websocket_runtime_interface_1.ConnectionState.SESSION_STARTED) {
67
60
  this.startInactivityTimer();
68
61
  }
69
62
  }
70
63
  // Simplified init method - only ensures connection is ready
71
64
  async init(request) {
72
- if (this.connectionState === ConnectionState.SESSION_STARTED) {
65
+ if (this.connectionState === websocket_runtime_interface_1.ConnectionState.SESSION_STARTED) {
73
66
  return;
74
67
  }
75
- if (this.connectionState === ConnectionState.ERROR ||
76
- (this.ws && (this.ws.readyState === WebSocket.CLOSING || this.ws.readyState === WebSocket.CLOSED))) {
68
+ // Always ensure we start with a clean slate on restart
69
+ if (this.ws && this.ws.readyState !== WebSocket.CLOSED) {
77
70
  await this.disconnect();
78
- await this.delay(50); // Small delay to ensure cleanup
71
+ await (0, websocket_runtime_utils_1.delay)(50); // Small delay to ensure cleanup
79
72
  }
80
73
  await this.ensureConnection(request);
81
74
  }
82
75
  // Combined connection and session establishment
83
76
  async ensureConnection(request) {
84
- if (this.connectionState === ConnectionState.SESSION_STARTED) {
77
+ if (this.connectionState === websocket_runtime_interface_1.ConnectionState.SESSION_STARTED) {
85
78
  return;
86
79
  }
87
- if (this.connectionState === ConnectionState.DISCONNECTED) {
80
+ if (this.connectionState === websocket_runtime_interface_1.ConnectionState.DISCONNECTED) {
88
81
  await this.connect();
89
82
  }
90
- if (this.connectionState === ConnectionState.CONNECTED) {
83
+ if (this.connectionState === websocket_runtime_interface_1.ConnectionState.CONNECTED) {
91
84
  await this.startSession(request);
92
85
  }
93
86
  }
94
87
  async connect() {
95
- if (this.connectionState === ConnectionState.CONNECTING) {
88
+ if (this.connectionState === websocket_runtime_interface_1.ConnectionState.CONNECTING) {
96
89
  return;
97
90
  }
98
- this.connectionState = ConnectionState.CONNECTING;
91
+ this.connectionState = websocket_runtime_interface_1.ConnectionState.CONNECTING;
99
92
  const wsUrl = `${this.options.baseURL.replace(/^http/, 'ws')}/v3/interact/socket`;
100
93
  try {
101
94
  await new Promise((resolve, reject) => {
@@ -105,69 +98,71 @@ class WebSocketRuntimeClient {
105
98
  }, 10000);
106
99
  this.ws.onopen = () => {
107
100
  clearTimeout(timeout);
108
- this.connectionState = ConnectionState.CONNECTED;
109
- this.reconnectAttempts = 0; // Reset on successful connection
101
+ this.connectionState = websocket_runtime_interface_1.ConnectionState.CONNECTED;
110
102
  resolve();
111
103
  };
112
104
  this.ws.onerror = (error) => {
113
105
  clearTimeout(timeout);
114
- this.connectionState = ConnectionState.ERROR;
106
+ this.connectionState = websocket_runtime_interface_1.ConnectionState.ERROR;
115
107
  reject(new Error(`WebSocket connection failed: ${error}`));
116
108
  };
117
109
  this.ws.onclose = () => {
118
- this.handleDisconnection();
110
+ this.disconnect();
111
+ };
112
+ this.ws.onmessage = (event) => {
113
+ try {
114
+ const message = JSON.parse(event.data);
115
+ if ((0, websocket_runtime_utils_1.isTraceMessage)(message) || (0, websocket_runtime_utils_1.isActionMessage)(message) || (0, websocket_runtime_utils_1.isStartMessage)(message)) {
116
+ this.emitter.emit(message.type, message.payload);
117
+ }
118
+ }
119
+ catch (error) {
120
+ console.error(`failed to parse WebSocket message: ${error}`);
121
+ }
119
122
  };
120
123
  });
121
124
  }
122
125
  catch (error) {
123
- this.connectionState = ConnectionState.ERROR;
126
+ this.connectionState = websocket_runtime_interface_1.ConnectionState.ERROR;
124
127
  throw error;
125
128
  }
126
129
  }
127
130
  async startSession(request) {
128
- if (!this.ws || this.connectionState !== ConnectionState.CONNECTED) {
131
+ if (!this.ws || this.connectionState !== websocket_runtime_interface_1.ConnectionState.CONNECTED) {
129
132
  throw new Error('Cannot start session: not connected');
130
133
  }
134
+ // Use userID from state if available, otherwise fall back to request userID
135
+ const actualUserID = this.state?.variables?.user_id != null ? String(this.state.variables.user_id) : request.userID;
131
136
  const startMessage = {
132
137
  type: 'start',
133
138
  payload: {
134
- userID: request.userID,
139
+ userID: actualUserID,
135
140
  projectID: request.projectID,
136
141
  sessionID: undefined,
137
- environmentID: request.environment || Environment.DEVELOPMENT,
142
+ environmentID: request.environment || runtime_interface_1.Environment.DEVELOPMENT,
138
143
  state: this.state,
139
144
  config: {
140
145
  completionEvents: true,
141
146
  audioEvents: request.audioEvents || false,
142
147
  audioEncoding: dtos_interact_1.AudioEncoding.PCM,
143
148
  modality: dtos_interact_1.Modality.CHAT,
149
+ endAutomatically: false, // chat will handle transcript ending manually
144
150
  },
145
151
  ...(this.options.authorization && { authorization: this.options.authorization }),
146
152
  },
147
153
  };
154
+ this.ws.send(JSON.stringify(startMessage));
148
155
  await new Promise((resolve, reject) => {
149
156
  const timeout = setTimeout(() => {
150
157
  reject(new Error('Start session timeout'));
151
158
  }, 10000);
152
- const originalOnMessage = this.ws.onmessage;
153
- this.ws.onmessage = (event) => {
154
- try {
155
- const message = JSON.parse(event.data);
156
- if (message.type === 'start') {
157
- clearTimeout(timeout);
158
- this.connectionState = ConnectionState.SESSION_STARTED;
159
- this.ws.onmessage = originalOnMessage;
160
- this.startInactivityTimer();
161
- resolve();
162
- }
163
- }
164
- catch (error) {
165
- clearTimeout(timeout);
166
- this.ws.onmessage = originalOnMessage;
167
- reject(new Error(`Failed to parse start response: ${error}`));
168
- }
169
- };
170
- this.ws.send(JSON.stringify(startMessage));
159
+ const unsubscribe = this.emitter.on(websocket_runtime_interface_1.WebSocketMessageType.START, () => {
160
+ clearTimeout(timeout);
161
+ this.connectionState = websocket_runtime_interface_1.ConnectionState.SESSION_STARTED;
162
+ this.startInactivityTimer();
163
+ unsubscribe();
164
+ resolve();
165
+ });
171
166
  });
172
167
  }
173
168
  async interactStream(createContext, request) {
@@ -189,7 +184,7 @@ class WebSocketRuntimeClient {
189
184
  });
190
185
  }
191
186
  processInteraction(interaction) {
192
- if (!this.ws || this.connectionState !== ConnectionState.SESSION_STARTED) {
187
+ if (!this.ws || this.connectionState !== websocket_runtime_interface_1.ConnectionState.SESSION_STARTED) {
193
188
  interaction.reject(new Error('WebSocket session not ready'));
194
189
  return;
195
190
  }
@@ -221,29 +216,20 @@ class WebSocketRuntimeClient {
221
216
  }
222
217
  },
223
218
  });
224
- this.ws.onmessage = (event) => {
225
- try {
226
- this.resetInactivityTimer();
227
- const message = JSON.parse(event.data);
228
- if (controller) {
229
- controller.enqueue(message);
230
- }
231
- if (message.type === 'action' && message.payload?.status === 'completed') {
232
- if (controller) {
233
- controller.close();
234
- }
235
- this.processNextInteraction();
236
- }
237
- }
238
- catch (error) {
239
- if (controller) {
240
- controller.error(new Error(`Failed to parse WebSocket message: ${error}`));
241
- }
219
+ const traceStream = new websocket_trace_stream_1.WebSocketTraceStream(createContext, this.trace, this.options.onTrace);
220
+ const unsubscribeTrace = this.emitter.on(websocket_runtime_interface_1.WebSocketMessageType.TRACE, (payload) => {
221
+ this.resetInactivityTimer();
222
+ controller?.enqueue(payload.trace);
223
+ });
224
+ const unsubscribeAction = this.emitter.on(websocket_runtime_interface_1.WebSocketMessageType.ACTION, (payload) => {
225
+ if (payload.status === 'completed' || payload.status === 'rejected') {
226
+ controller?.close();
227
+ unsubscribeTrace();
228
+ unsubscribeAction();
242
229
  this.processNextInteraction();
243
230
  }
244
- };
245
- const streamWithTraceProcessing = readable.pipeThrough(new websocket_trace_stream_1.WebSocketTraceStream(createContext, this.trace, this.options.onTrace));
246
- resolve(streamWithTraceProcessing);
231
+ });
232
+ resolve(readable.pipeThrough(traceStream));
247
233
  }
248
234
  processNextInteraction() {
249
235
  this.currentInteraction = null;
@@ -252,70 +238,42 @@ class WebSocketRuntimeClient {
252
238
  this.processInteraction(nextInteraction);
253
239
  }
254
240
  }
255
- handleDisconnection() {
256
- if (this.connectionState === ConnectionState.DISCONNECTED) {
241
+ async disconnect(shouldEndTranscript = true) {
242
+ if (this.connectionState === websocket_runtime_interface_1.ConnectionState.DISCONNECTED) {
257
243
  return; // Already handled
258
244
  }
259
- this.connectionState = ConnectionState.DISCONNECTED;
260
- this.clearInactivityTimer();
261
- // Clean up WebSocket
262
- if (this.ws) {
263
- this.ws.onopen = null;
264
- this.ws.onclose = null;
265
- this.ws.onerror = null;
266
- this.ws.onmessage = null;
267
- this.ws = null;
268
- }
269
- // Reject pending interactions
270
- [...this.pendingInteractions, this.currentInteraction].forEach((interaction) => {
271
- if (interaction) {
272
- interaction.reject(new Error('WebSocket disconnected'));
273
- }
274
- });
275
- this.pendingInteractions = [];
276
- this.currentInteraction = null;
277
- }
278
- async disconnect() {
279
- this.connectionState = ConnectionState.DISCONNECTED;
245
+ this.connectionState = websocket_runtime_interface_1.ConnectionState.DISCONNECTED;
280
246
  this.clearInactivityTimer();
281
- if (this.ws) {
282
- try {
283
- if (this.ws.readyState === WebSocket.OPEN) {
284
- this.ws.close();
285
- }
286
- }
287
- catch {
288
- // Ignore errors during close
289
- }
290
- // Force cleanup
291
- this.ws.onopen = null;
292
- this.ws.onclose = null;
293
- this.ws.onerror = null;
294
- this.ws.onmessage = null;
295
- this.ws = null;
247
+ if (shouldEndTranscript) {
248
+ this.ws?.send(JSON.stringify({
249
+ type: 'action',
250
+ payload: {
251
+ action: {
252
+ type: dtos_interact_1.RequestType.END,
253
+ payload: { reason: 'Ended chat automatically on close' },
254
+ },
255
+ },
256
+ }));
296
257
  }
258
+ // Force cleanup
259
+ this.ws?.close();
260
+ this.ws = null;
297
261
  // Reject any pending interactions
298
262
  [...this.pendingInteractions, this.currentInteraction].forEach((interaction) => {
299
- if (interaction) {
300
- interaction.reject(new Error('WebSocket disconnected'));
301
- }
263
+ interaction?.reject(new Error('WebSocket disconnected'));
302
264
  });
303
265
  this.pendingInteractions = [];
304
266
  this.currentInteraction = null;
267
+ this.emitter.events = {};
305
268
  // Small delay to ensure cleanup is complete
306
- await this.delay(100);
307
- }
308
- delay(ms) {
309
- return new Promise((resolve) => {
310
- setTimeout(resolve, ms);
311
- });
269
+ await (0, websocket_runtime_utils_1.delay)(100);
312
270
  }
313
271
  // Additional getter for debugging/monitoring
314
272
  getConnectionState() {
315
273
  return this.connectionState;
316
274
  }
317
275
  isReady() {
318
- return this.connectionState === ConnectionState.SESSION_STARTED;
276
+ return this.connectionState === websocket_runtime_interface_1.ConnectionState.SESSION_STARTED;
319
277
  }
320
278
  }
321
279
  exports.WebSocketRuntimeClient = WebSocketRuntimeClient;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-runtime.client.js","sourceRoot":"","sources":["../../../../src/v2/websocket-runtime/websocket-runtime.client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import type { AnyTrace, AudioEncoding, Modality } from '@voiceflow/dtos-interact';
2
+ import type { RuntimeInteractStreamRequest } from '../runtime.interface';
3
+ export interface InitialDialogSessionMetadata {
4
+ userID: string;
5
+ sessionID?: string;
6
+ environmentID?: string;
7
+ config?: {
8
+ completionEvents?: boolean;
9
+ audioEvents?: boolean;
10
+ audioEncoding?: AudioEncoding;
11
+ platform?: string;
12
+ modality?: Modality;
13
+ recording?: {
14
+ url?: string | null;
15
+ };
16
+ };
17
+ }
18
+ export interface PendingInteraction {
19
+ createContext: () => any;
20
+ request: RuntimeInteractStreamRequest;
21
+ resolve: (value: ReadableStream<any>) => void;
22
+ reject: (reason: any) => void;
23
+ }
24
+ export declare enum ConnectionState {
25
+ DISCONNECTED = "disconnected",
26
+ CONNECTING = "connecting",
27
+ CONNECTED = "connected",
28
+ SESSION_STARTED = "session_started",
29
+ ERROR = "error"
30
+ }
31
+ export interface WebSocketMessage {
32
+ type: string;
33
+ payload: any;
34
+ }
35
+ export declare enum WebSocketMessageType {
36
+ START = "start",
37
+ ACTION = "action",
38
+ TRACE = "trace"
39
+ }
40
+ export interface TraceWebSocketMessage {
41
+ type: WebSocketMessageType.TRACE;
42
+ payload: {
43
+ trace: AnyTrace;
44
+ };
45
+ }
46
+ export interface ActionWebSocketMessage {
47
+ type: WebSocketMessageType.ACTION;
48
+ payload: {
49
+ status: string;
50
+ };
51
+ }
52
+ export interface StartWebSocketMessage {
53
+ type: WebSocketMessageType.START;
54
+ payload: Record<string, unknown>;
55
+ }
56
+ export interface WebSocketMessageEvents {
57
+ [WebSocketMessageType.TRACE]: (data: TraceWebSocketMessage['payload']) => void;
58
+ [WebSocketMessageType.ACTION]: (data: ActionWebSocketMessage['payload']) => void;
59
+ [WebSocketMessageType.START]: (data: StartWebSocketMessage['payload']) => void;
60
+ }
61
+ //# sourceMappingURL=websocket-runtime.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-runtime.interface.d.ts","sourceRoot":"","sources":["../../../../src/v2/websocket-runtime/websocket-runtime.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAElF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAGzE,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE;QACP,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC;QACpB,SAAS,CAAC,EAAE;YACV,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;SACrB,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,GAAG,CAAC;IACzB,OAAO,EAAE,4BAA4B,CAAC;IACtC,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAC9C,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;CAC/B;AAGD,oBAAY,eAAe;IACzB,YAAY,iBAAiB;IAC7B,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,eAAe,oBAAoB;IACnC,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,GAAG,CAAC;CACd;AAED,oBAAY,oBAAoB;IAC9B,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAC;IACjC,OAAO,EAAE;QACP,KAAK,EAAE,QAAQ,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC;IAClC,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,sBAAsB;IACrC,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IAC/E,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IACjF,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;CAChF"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WebSocketMessageType = exports.ConnectionState = void 0;
4
+ // Simplified connection state enum
5
+ var ConnectionState;
6
+ (function (ConnectionState) {
7
+ ConnectionState["DISCONNECTED"] = "disconnected";
8
+ ConnectionState["CONNECTING"] = "connecting";
9
+ ConnectionState["CONNECTED"] = "connected";
10
+ ConnectionState["SESSION_STARTED"] = "session_started";
11
+ ConnectionState["ERROR"] = "error";
12
+ })(ConnectionState || (exports.ConnectionState = ConnectionState = {}));
13
+ var WebSocketMessageType;
14
+ (function (WebSocketMessageType) {
15
+ WebSocketMessageType["START"] = "start";
16
+ WebSocketMessageType["ACTION"] = "action";
17
+ WebSocketMessageType["TRACE"] = "trace";
18
+ })(WebSocketMessageType || (exports.WebSocketMessageType = WebSocketMessageType = {}));
19
+ //# sourceMappingURL=websocket-runtime.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-runtime.interface.js","sourceRoot":"","sources":["../../../../src/v2/websocket-runtime/websocket-runtime.interface.ts"],"names":[],"mappings":";;;AA4BA,mCAAmC;AACnC,IAAY,eAMX;AAND,WAAY,eAAe;IACzB,gDAA6B,CAAA;IAC7B,4CAAyB,CAAA;IACzB,0CAAuB,CAAA;IACvB,sDAAmC,CAAA;IACnC,kCAAe,CAAA;AACjB,CAAC,EANW,eAAe,+BAAf,eAAe,QAM1B;AAOD,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC9B,uCAAe,CAAA;IACf,yCAAiB,CAAA;IACjB,uCAAe,CAAA;AACjB,CAAC,EAJW,oBAAoB,oCAApB,oBAAoB,QAI/B"}
@@ -0,0 +1,6 @@
1
+ import type { ActionWebSocketMessage, StartWebSocketMessage, TraceWebSocketMessage, WebSocketMessage } from './websocket-runtime.interface';
2
+ export declare const delay: (ms: number) => Promise<void>;
3
+ export declare const isActionMessage: (chunk: WebSocketMessage) => chunk is ActionWebSocketMessage;
4
+ export declare const isTraceMessage: (chunk: WebSocketMessage) => chunk is TraceWebSocketMessage;
5
+ export declare const isStartMessage: (chunk: WebSocketMessage) => chunk is StartWebSocketMessage;
6
+ //# sourceMappingURL=websocket-runtime.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-runtime.utils.d.ts","sourceRoot":"","sources":["../../../../src/v2/websocket-runtime/websocket-runtime.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,+BAA+B,CAAC;AAEvC,eAAO,MAAM,KAAK,OAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CAI9C,CAAC;AAEF,eAAO,MAAM,eAAe,UAAW,gBAAgB,KAAG,KAAK,IAAI,sBAElE,CAAC;AAEF,eAAO,MAAM,cAAc,UAAW,gBAAgB,KAAG,KAAK,IAAI,qBAEjE,CAAC;AAEF,eAAO,MAAM,cAAc,UAAW,gBAAgB,KAAG,KAAK,IAAI,qBAEjE,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isStartMessage = exports.isTraceMessage = exports.isActionMessage = exports.delay = void 0;
4
+ const delay = (ms) => {
5
+ return new Promise((resolve) => {
6
+ setTimeout(resolve, ms);
7
+ });
8
+ };
9
+ exports.delay = delay;
10
+ const isActionMessage = (chunk) => {
11
+ return chunk.type === 'action' && typeof chunk.payload?.status === 'string';
12
+ };
13
+ exports.isActionMessage = isActionMessage;
14
+ const isTraceMessage = (chunk) => {
15
+ return chunk.type === 'trace' && typeof chunk.payload?.trace?.type === 'string';
16
+ };
17
+ exports.isTraceMessage = isTraceMessage;
18
+ const isStartMessage = (chunk) => {
19
+ return chunk.type === 'start';
20
+ };
21
+ exports.isStartMessage = isStartMessage;
22
+ //# sourceMappingURL=websocket-runtime.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-runtime.utils.js","sourceRoot":"","sources":["../../../../src/v2/websocket-runtime/websocket-runtime.utils.ts"],"names":[],"mappings":";;;AAOO,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE;IACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAJW,QAAA,KAAK,SAIhB;AAEK,MAAM,eAAe,GAAG,CAAC,KAAuB,EAAmC,EAAE;IAC1F,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,OAAO,EAAE,MAAM,KAAK,QAAQ,CAAC;AAC9E,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAEK,MAAM,cAAc,GAAG,CAAC,KAAuB,EAAkC,EAAE;IACxF,OAAO,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC;AAClF,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB;AAEK,MAAM,cAAc,GAAG,CAAC,KAAuB,EAAkC,EAAE;IACxF,OAAO,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;AAChC,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB"}
@@ -1,10 +1,7 @@
1
1
  import type { AnyTrace } from '@voiceflow/dtos-interact';
2
- import type { TraceService } from './trace.service';
3
- interface WebSocketMessage {
4
- type: string;
5
- payload: any;
6
- }
7
- export declare class WebSocketTraceStream<T> extends TransformStream<WebSocketMessage, T> {
2
+ import type { TraceService } from '../trace.service';
3
+ import type { WebSocketMessage } from './websocket-runtime.interface';
4
+ export declare class WebSocketTraceStream<T> extends TransformStream<AnyTrace, T> {
8
5
  private readonly createContext;
9
6
  private readonly trace;
10
7
  private readonly onTrace?;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-trace.stream.d.ts","sourceRoot":"","sources":["../../../../src/v2/websocket-runtime/websocket-trace.stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,qBAAa,oBAAoB,CAAC,CAAC,CAAE,SAAQ,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;IAErE,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAFR,aAAa,EAAE,MAAM,CAAC,EACtB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EACtB,OAAO,CAAC,GAAE,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,aAAA;CAmBnF;AAED,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WebSocketTraceStream = void 0;
4
+ const interact_trace_stream_1 = require("../interact-trace.stream");
5
+ class WebSocketTraceStream extends TransformStream {
6
+ constructor(createContext, trace, onTrace) {
7
+ super({
8
+ transform: async (chunk, controller) => {
9
+ const context = this.createContext();
10
+ await this.onTrace?.(context, chunk);
11
+ const trace = await this.trace.processTrace(context, chunk);
12
+ if (!trace)
13
+ return;
14
+ controller.enqueue(trace);
15
+ if ((0, interact_trace_stream_1.hasFinalize)(trace)) {
16
+ await trace.finalize();
17
+ }
18
+ },
19
+ });
20
+ this.createContext = createContext;
21
+ this.trace = trace;
22
+ this.onTrace = onTrace;
23
+ }
24
+ }
25
+ exports.WebSocketTraceStream = WebSocketTraceStream;
26
+ //# sourceMappingURL=websocket-trace.stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-trace.stream.js","sourceRoot":"","sources":["../../../../src/v2/websocket-runtime/websocket-trace.stream.ts"],"names":[],"mappings":";;;AAEA,oEAAuD;AAIvD,MAAa,oBAAwB,SAAQ,eAA4B;IACvE,YACmB,aAAsB,EACtB,KAAsB,EACtB,OAA+D;QAEhF,KAAK,CAAC;YACJ,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;gBACrC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBAErC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAErC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC5D,IAAI,CAAC,KAAK;oBAAE,OAAO;gBAEnB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAE1B,IAAI,IAAA,mCAAW,EAAC,KAAK,CAAC,EAAE,CAAC;oBACvB,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACzB,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QAnBc,kBAAa,GAAb,aAAa,CAAS;QACtB,UAAK,GAAL,KAAK,CAAiB;QACtB,YAAO,GAAP,OAAO,CAAwD;IAkBlF,CAAC;CACF;AAvBD,oDAuBC"}
@@ -6,5 +6,6 @@ export * from './v2/public-runtime.client.js';
6
6
  export type { RuntimeInteractStreamRequest } from './v2/runtime.interface.js';
7
7
  export { IRuntimeClient } from './v2/runtime.interface.js';
8
8
  export * from './v2/shareable-link-runtime.client.js';
9
- export * from './v2/websocket-runtime.client.js';
9
+ export * from './v2/websocket-runtime/websocket-runtime.client.js';
10
+ export * from './v2/websocket-runtime/websocket-runtime.interface.js';
10
11
  //# sourceMappingURL=main.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,YAAY,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,YAAY,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,iDAAiD,CAAC;AAChE,cAAc,oDAAoD,CAAC"}
package/build/esm/main.js CHANGED
@@ -4,5 +4,6 @@ export * from './trace/index.js';
4
4
  export * from './v2/private-runtime.client.js';
5
5
  export * from './v2/public-runtime.client.js';
6
6
  export * from './v2/shareable-link-runtime.client.js';
7
- export * from './v2/websocket-runtime.client.js';
7
+ export * from './v2/websocket-runtime/websocket-runtime.client.js';
8
+ export * from './v2/websocket-runtime/websocket-runtime.interface.js';
8
9
  //# sourceMappingURL=main.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAG3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAG3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,iDAAiD,CAAC;AAChE,cAAc,oDAAoD,CAAC"}
@@ -4,13 +4,12 @@ import type { VoiceflowRuntimeOptions } from './sdk.interface.js';
4
4
  export declare class VoiceflowRuntime<T> {
5
5
  private readonly runtime;
6
6
  private readonly trace;
7
- private readonly useWebSocket;
8
7
  constructor(options: VoiceflowRuntimeOptions<T>);
9
8
  registerStep(step: TraceDeclaration<T, any>): this;
10
9
  interact(context: T, request: RuntimeInteractRequest): Promise<T>;
11
10
  feedback(request: RuntimeFeedbackRequest): Promise<void>;
12
11
  getPublishing<T extends Record<string, unknown>>(...options: Parameters<RuntimeService['getPublishing']>): Promise<T>;
13
12
  createTranscript(...options: Parameters<RuntimeService['createTranscript']>): Promise<import("../runtime/index.js").Transcript>;
14
- endTranscript(...options: Parameters<RuntimeService['endTranscript']>): Promise<void | null>;
13
+ endTranscript(...options: Parameters<RuntimeService['endTranscript']>): Promise<void>;
15
14
  }
16
15
  //# sourceMappingURL=sdk.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.service.d.ts","sourceRoot":"","sources":["../../../src/sdk/sdk.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAUhG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE/D,qBAAa,gBAAgB,CAAC,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IAEzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;IAExC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;gBAEpB,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAiB/C,YAAY,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC;IAKrC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,CAAC,CAAC;IAKjE,QAAQ,CAAC,OAAO,EAAE,sBAAsB;IAIxC,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1D,GAAG,OAAO,EAAE,UAAU,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAK5C,gBAAgB,CAAC,GAAG,OAAO,EAAE,UAAU,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAI3E,aAAa,CAAC,GAAG,OAAO,EAAE,UAAU,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;CAQnF"}
1
+ {"version":3,"file":"sdk.service.d.ts","sourceRoot":"","sources":["../../../src/sdk/sdk.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAUhG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE/D,qBAAa,gBAAgB,CAAC,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IAEzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;gBAErB,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAgB/C,YAAY,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC;IAKrC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,CAAC,CAAC;IAKjE,QAAQ,CAAC,OAAO,EAAE,sBAAsB;IAIxC,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1D,GAAG,OAAO,EAAE,UAAU,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAK5C,gBAAgB,CAAC,GAAG,OAAO,EAAE,UAAU,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAI3E,aAAa,CAAC,GAAG,OAAO,EAAE,UAAU,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;CAGnF"}
@@ -3,7 +3,6 @@ import { TraceService } from '../trace/trace.service.js';
3
3
  export class VoiceflowRuntime {
4
4
  constructor(options) {
5
5
  this.trace = new TraceService(options);
6
- this.useWebSocket = options.useWebSocket ?? false;
7
6
  if (isPrototypeRuntimeOptions(options)) {
8
7
  this.runtime = new PrototypeRuntimeService(options);
9
8
  }
@@ -38,11 +37,6 @@ export class VoiceflowRuntime {
38
37
  return this.runtime.createTranscript(...options);
39
38
  }
40
39
  async endTranscript(...options) {
41
- if (this.useWebSocket) {
42
- // Skip HTTP endTranscript call for WebSocket connections
43
- // The WebSocket connection handles transcript lifecycle
44
- return null;
45
- }
46
40
  return this.runtime.endTranscript(...options);
47
41
  }
48
42
  }