openai 4.28.4 → 4.29.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 (152) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +7 -10
  3. package/index.d.mts +1 -0
  4. package/index.d.ts +1 -0
  5. package/index.d.ts.map +1 -1
  6. package/index.js.map +1 -1
  7. package/index.mjs.map +1 -1
  8. package/lib/AbstractAssistantStreamRunner.d.ts +74 -0
  9. package/lib/AbstractAssistantStreamRunner.d.ts.map +1 -0
  10. package/lib/AbstractAssistantStreamRunner.js +246 -0
  11. package/lib/AbstractAssistantStreamRunner.js.map +1 -0
  12. package/lib/AbstractAssistantStreamRunner.mjs +242 -0
  13. package/lib/AbstractAssistantStreamRunner.mjs.map +1 -0
  14. package/lib/AssistantStream.d.ts +56 -0
  15. package/lib/AssistantStream.d.ts.map +1 -0
  16. package/lib/AssistantStream.js +526 -0
  17. package/lib/AssistantStream.js.map +1 -0
  18. package/lib/AssistantStream.mjs +499 -0
  19. package/lib/AssistantStream.mjs.map +1 -0
  20. package/lib/ChatCompletionRunFunctions.test.js +35 -0
  21. package/lib/ChatCompletionRunFunctions.test.js.map +1 -1
  22. package/lib/ChatCompletionRunFunctions.test.mjs +35 -0
  23. package/lib/ChatCompletionRunFunctions.test.mjs.map +1 -1
  24. package/lib/ChatCompletionStream.d.ts.map +1 -1
  25. package/lib/ChatCompletionStream.js +21 -3
  26. package/lib/ChatCompletionStream.js.map +1 -1
  27. package/lib/ChatCompletionStream.mjs +21 -3
  28. package/lib/ChatCompletionStream.mjs.map +1 -1
  29. package/package.json +1 -1
  30. package/resources/audio/speech.d.ts +3 -6
  31. package/resources/audio/speech.d.ts.map +1 -1
  32. package/resources/audio/speech.js.map +1 -1
  33. package/resources/audio/speech.mjs.map +1 -1
  34. package/resources/audio/transcriptions.d.ts +14 -4
  35. package/resources/audio/transcriptions.d.ts.map +1 -1
  36. package/resources/audio/transcriptions.js.map +1 -1
  37. package/resources/audio/transcriptions.mjs.map +1 -1
  38. package/resources/audio/translations.d.ts +2 -1
  39. package/resources/audio/translations.d.ts.map +1 -1
  40. package/resources/audio/translations.js.map +1 -1
  41. package/resources/audio/translations.mjs.map +1 -1
  42. package/resources/beta/assistants/assistants.d.ts +629 -60
  43. package/resources/beta/assistants/assistants.d.ts.map +1 -1
  44. package/resources/beta/assistants/assistants.js.map +1 -1
  45. package/resources/beta/assistants/assistants.mjs.map +1 -1
  46. package/resources/beta/assistants/index.d.ts +1 -1
  47. package/resources/beta/assistants/index.d.ts.map +1 -1
  48. package/resources/beta/assistants/index.js.map +1 -1
  49. package/resources/beta/assistants/index.mjs.map +1 -1
  50. package/resources/beta/beta.d.ts +12 -0
  51. package/resources/beta/beta.d.ts.map +1 -1
  52. package/resources/beta/beta.js.map +1 -1
  53. package/resources/beta/beta.mjs.map +1 -1
  54. package/resources/beta/index.d.ts +2 -2
  55. package/resources/beta/index.d.ts.map +1 -1
  56. package/resources/beta/index.js.map +1 -1
  57. package/resources/beta/index.mjs.map +1 -1
  58. package/resources/beta/threads/index.d.ts +3 -3
  59. package/resources/beta/threads/index.d.ts.map +1 -1
  60. package/resources/beta/threads/index.js +2 -2
  61. package/resources/beta/threads/index.js.map +1 -1
  62. package/resources/beta/threads/index.mjs +1 -1
  63. package/resources/beta/threads/index.mjs.map +1 -1
  64. package/resources/beta/threads/messages/index.d.ts +1 -1
  65. package/resources/beta/threads/messages/index.d.ts.map +1 -1
  66. package/resources/beta/threads/messages/index.js +2 -2
  67. package/resources/beta/threads/messages/index.js.map +1 -1
  68. package/resources/beta/threads/messages/index.mjs +1 -1
  69. package/resources/beta/threads/messages/index.mjs.map +1 -1
  70. package/resources/beta/threads/messages/messages.d.ts +289 -86
  71. package/resources/beta/threads/messages/messages.d.ts.map +1 -1
  72. package/resources/beta/threads/messages/messages.js +5 -5
  73. package/resources/beta/threads/messages/messages.js.map +1 -1
  74. package/resources/beta/threads/messages/messages.mjs +3 -3
  75. package/resources/beta/threads/messages/messages.mjs.map +1 -1
  76. package/resources/beta/threads/runs/index.d.ts +2 -2
  77. package/resources/beta/threads/runs/index.d.ts.map +1 -1
  78. package/resources/beta/threads/runs/index.js.map +1 -1
  79. package/resources/beta/threads/runs/index.mjs.map +1 -1
  80. package/resources/beta/threads/runs/runs.d.ts +153 -49
  81. package/resources/beta/threads/runs/runs.d.ts.map +1 -1
  82. package/resources/beta/threads/runs/runs.js +14 -7
  83. package/resources/beta/threads/runs/runs.js.map +1 -1
  84. package/resources/beta/threads/runs/runs.mjs +14 -7
  85. package/resources/beta/threads/runs/runs.mjs.map +1 -1
  86. package/resources/beta/threads/runs/steps.d.ts +219 -5
  87. package/resources/beta/threads/runs/steps.d.ts.map +1 -1
  88. package/resources/beta/threads/runs/steps.js.map +1 -1
  89. package/resources/beta/threads/runs/steps.mjs.map +1 -1
  90. package/resources/beta/threads/threads.d.ts +144 -22
  91. package/resources/beta/threads/threads.d.ts.map +1 -1
  92. package/resources/beta/threads/threads.js +9 -4
  93. package/resources/beta/threads/threads.js.map +1 -1
  94. package/resources/beta/threads/threads.mjs +9 -4
  95. package/resources/beta/threads/threads.mjs.map +1 -1
  96. package/resources/chat/completions.d.ts +28 -18
  97. package/resources/chat/completions.d.ts.map +1 -1
  98. package/resources/chat/completions.js.map +1 -1
  99. package/resources/chat/completions.mjs.map +1 -1
  100. package/resources/completions.d.ts +2 -0
  101. package/resources/completions.d.ts.map +1 -1
  102. package/resources/completions.js.map +1 -1
  103. package/resources/completions.mjs.map +1 -1
  104. package/resources/files.d.ts +4 -4
  105. package/resources/images.d.ts +6 -3
  106. package/resources/images.d.ts.map +1 -1
  107. package/resources/images.js.map +1 -1
  108. package/resources/images.mjs.map +1 -1
  109. package/resources/moderations.d.ts +3 -5
  110. package/resources/moderations.d.ts.map +1 -1
  111. package/resources/moderations.js +1 -1
  112. package/resources/moderations.js.map +1 -1
  113. package/resources/moderations.mjs +1 -1
  114. package/resources/moderations.mjs.map +1 -1
  115. package/resources/shared.d.ts +6 -0
  116. package/resources/shared.d.ts.map +1 -1
  117. package/src/index.ts +1 -0
  118. package/src/lib/AbstractAssistantStreamRunner.ts +340 -0
  119. package/src/lib/AssistantStream.ts +698 -0
  120. package/src/lib/ChatCompletionRunFunctions.test.ts +52 -1
  121. package/src/lib/ChatCompletionStream.ts +29 -6
  122. package/src/resources/audio/speech.ts +3 -6
  123. package/src/resources/audio/transcriptions.ts +14 -4
  124. package/src/resources/audio/translations.ts +2 -1
  125. package/src/resources/beta/assistants/assistants.ts +768 -76
  126. package/src/resources/beta/assistants/index.ts +9 -0
  127. package/src/resources/beta/beta.ts +12 -0
  128. package/src/resources/beta/index.ts +12 -0
  129. package/src/resources/beta/threads/index.ts +30 -5
  130. package/src/resources/beta/threads/messages/index.ts +21 -5
  131. package/src/resources/beta/threads/messages/messages.ts +332 -94
  132. package/src/resources/beta/threads/runs/index.ts +18 -1
  133. package/src/resources/beta/threads/runs/runs.ts +225 -60
  134. package/src/resources/beta/threads/runs/steps.ts +254 -5
  135. package/src/resources/beta/threads/threads.ts +182 -25
  136. package/src/resources/chat/completions.ts +28 -18
  137. package/src/resources/completions.ts +2 -0
  138. package/src/resources/files.ts +4 -4
  139. package/src/resources/images.ts +6 -3
  140. package/src/resources/moderations.ts +3 -5
  141. package/src/resources/shared.ts +10 -0
  142. package/src/streaming.ts +31 -0
  143. package/src/version.ts +1 -1
  144. package/streaming.d.ts +2 -0
  145. package/streaming.d.ts.map +1 -1
  146. package/streaming.js +32 -1
  147. package/streaming.js.map +1 -1
  148. package/streaming.mjs +30 -0
  149. package/streaming.mjs.map +1 -1
  150. package/version.d.ts +1 -1
  151. package/version.js +1 -1
  152. package/version.mjs +1 -1
@@ -0,0 +1,499 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
+ if (kind === "m") throw new TypeError("Private method is not writable");
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
+ };
12
+ var _AssistantStream_instances, _AssistantStream_events, _AssistantStream_runStepSnapshots, _AssistantStream_messageSnapshots, _AssistantStream_messageSnapshot, _AssistantStream_finalRun, _AssistantStream_currentContentIndex, _AssistantStream_currentContent, _AssistantStream_currentToolCallIndex, _AssistantStream_currentToolCall, _AssistantStream_currentEvent, _AssistantStream_currentRunSnapshot, _AssistantStream_currentRunStepSnapshot, _AssistantStream_addEvent, _AssistantStream_endRequest, _AssistantStream_handleMessage, _AssistantStream_handleRunStep, _AssistantStream_handleEvent, _AssistantStream_accumulateRunStep, _AssistantStream_accumulateMessage, _AssistantStream_accumulateContent, _AssistantStream_handleRun;
13
+ import * as Core from 'openai/core';
14
+ import { AbstractAssistantStreamRunner, } from "./AbstractAssistantStreamRunner.mjs";
15
+ import { Stream } from 'openai/streaming';
16
+ import { APIUserAbortError, OpenAIError } from 'openai/error';
17
+ export class AssistantStream extends AbstractAssistantStreamRunner {
18
+ constructor() {
19
+ super(...arguments);
20
+ _AssistantStream_instances.add(this);
21
+ //Track all events in a single list for reference
22
+ _AssistantStream_events.set(this, []);
23
+ //Used to accumulate deltas
24
+ //We are accumulating many types so the value here is not strict
25
+ _AssistantStream_runStepSnapshots.set(this, {});
26
+ _AssistantStream_messageSnapshots.set(this, {});
27
+ _AssistantStream_messageSnapshot.set(this, void 0);
28
+ _AssistantStream_finalRun.set(this, void 0);
29
+ _AssistantStream_currentContentIndex.set(this, void 0);
30
+ _AssistantStream_currentContent.set(this, void 0);
31
+ _AssistantStream_currentToolCallIndex.set(this, void 0);
32
+ _AssistantStream_currentToolCall.set(this, void 0);
33
+ //For current snapshot methods
34
+ _AssistantStream_currentEvent.set(this, void 0);
35
+ _AssistantStream_currentRunSnapshot.set(this, void 0);
36
+ _AssistantStream_currentRunStepSnapshot.set(this, void 0);
37
+ }
38
+ [(_AssistantStream_events = new WeakMap(), _AssistantStream_runStepSnapshots = new WeakMap(), _AssistantStream_messageSnapshots = new WeakMap(), _AssistantStream_messageSnapshot = new WeakMap(), _AssistantStream_finalRun = new WeakMap(), _AssistantStream_currentContentIndex = new WeakMap(), _AssistantStream_currentContent = new WeakMap(), _AssistantStream_currentToolCallIndex = new WeakMap(), _AssistantStream_currentToolCall = new WeakMap(), _AssistantStream_currentEvent = new WeakMap(), _AssistantStream_currentRunSnapshot = new WeakMap(), _AssistantStream_currentRunStepSnapshot = new WeakMap(), _AssistantStream_instances = new WeakSet(), Symbol.asyncIterator)]() {
39
+ const pushQueue = [];
40
+ const readQueue = [];
41
+ let done = false;
42
+ //Catch all for passing along all events
43
+ this.on('event', (event) => {
44
+ const reader = readQueue.shift();
45
+ if (reader) {
46
+ reader.resolve(event);
47
+ }
48
+ else {
49
+ pushQueue.push(event);
50
+ }
51
+ });
52
+ this.on('end', () => {
53
+ done = true;
54
+ for (const reader of readQueue) {
55
+ reader.resolve(undefined);
56
+ }
57
+ readQueue.length = 0;
58
+ });
59
+ this.on('abort', (err) => {
60
+ done = true;
61
+ for (const reader of readQueue) {
62
+ reader.reject(err);
63
+ }
64
+ readQueue.length = 0;
65
+ });
66
+ this.on('error', (err) => {
67
+ done = true;
68
+ for (const reader of readQueue) {
69
+ reader.reject(err);
70
+ }
71
+ readQueue.length = 0;
72
+ });
73
+ return {
74
+ next: async () => {
75
+ if (!pushQueue.length) {
76
+ if (done) {
77
+ return { value: undefined, done: true };
78
+ }
79
+ return new Promise((resolve, reject) => readQueue.push({ resolve, reject })).then((chunk) => (chunk ? { value: chunk, done: false } : { value: undefined, done: true }));
80
+ }
81
+ const chunk = pushQueue.shift();
82
+ return { value: chunk, done: false };
83
+ },
84
+ return: async () => {
85
+ this.abort();
86
+ return { value: undefined, done: true };
87
+ },
88
+ };
89
+ }
90
+ toReadableStream() {
91
+ const stream = new Stream(this[Symbol.asyncIterator].bind(this), this.controller);
92
+ return stream.toReadableStream();
93
+ }
94
+ static createToolAssistantStream(threadId, runId, runs, body, options) {
95
+ const runner = new AssistantStream();
96
+ runner._run(() => runner._runToolAssistantStream(threadId, runId, runs, body, {
97
+ ...options,
98
+ headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },
99
+ }));
100
+ return runner;
101
+ }
102
+ async _createToolAssistantStream(run, threadId, runId, params, options) {
103
+ const signal = options?.signal;
104
+ if (signal) {
105
+ if (signal.aborted)
106
+ this.controller.abort();
107
+ signal.addEventListener('abort', () => this.controller.abort());
108
+ }
109
+ const body = { ...params, stream: true };
110
+ const stream = await run.submitToolOutputs(threadId, runId, body, {
111
+ ...options,
112
+ signal: this.controller.signal,
113
+ });
114
+ this._connected();
115
+ for await (const event of stream) {
116
+ __classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_addEvent).call(this, event);
117
+ }
118
+ if (stream.controller.signal?.aborted) {
119
+ throw new APIUserAbortError();
120
+ }
121
+ return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_endRequest).call(this));
122
+ }
123
+ static createThreadAssistantStream(body, thread, options) {
124
+ const runner = new AssistantStream();
125
+ runner._run(() => runner._threadAssistantStream(body, thread, {
126
+ ...options,
127
+ headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },
128
+ }));
129
+ return runner;
130
+ }
131
+ static createAssistantStream(threadId, runs, params, options) {
132
+ const runner = new AssistantStream();
133
+ runner._run(() => runner._runAssistantStream(threadId, runs, params, {
134
+ ...options,
135
+ headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },
136
+ }));
137
+ return runner;
138
+ }
139
+ currentEvent() {
140
+ return __classPrivateFieldGet(this, _AssistantStream_currentEvent, "f");
141
+ }
142
+ currentRun() {
143
+ return __classPrivateFieldGet(this, _AssistantStream_currentRunSnapshot, "f");
144
+ }
145
+ currentMessageSnapshot() {
146
+ return __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, "f");
147
+ }
148
+ currentRunStepSnapshot() {
149
+ return __classPrivateFieldGet(this, _AssistantStream_currentRunStepSnapshot, "f");
150
+ }
151
+ async finalRunSteps() {
152
+ await this.done();
153
+ return Object.values(__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, "f"));
154
+ }
155
+ async finalMessages() {
156
+ await this.done();
157
+ return Object.values(__classPrivateFieldGet(this, _AssistantStream_messageSnapshots, "f"));
158
+ }
159
+ async finalRun() {
160
+ await this.done();
161
+ if (!__classPrivateFieldGet(this, _AssistantStream_finalRun, "f"))
162
+ throw Error('Final run was not received.');
163
+ return __classPrivateFieldGet(this, _AssistantStream_finalRun, "f");
164
+ }
165
+ async _createThreadAssistantStream(thread, params, options) {
166
+ const signal = options?.signal;
167
+ if (signal) {
168
+ if (signal.aborted)
169
+ this.controller.abort();
170
+ signal.addEventListener('abort', () => this.controller.abort());
171
+ }
172
+ const body = { ...params, stream: true };
173
+ const stream = await thread.createAndRun(body, { ...options, signal: this.controller.signal });
174
+ this._connected();
175
+ for await (const event of stream) {
176
+ __classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_addEvent).call(this, event);
177
+ }
178
+ if (stream.controller.signal?.aborted) {
179
+ throw new APIUserAbortError();
180
+ }
181
+ return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_endRequest).call(this));
182
+ }
183
+ async _createAssistantStream(run, threadId, params, options) {
184
+ const signal = options?.signal;
185
+ if (signal) {
186
+ if (signal.aborted)
187
+ this.controller.abort();
188
+ signal.addEventListener('abort', () => this.controller.abort());
189
+ }
190
+ const body = { ...params, stream: true };
191
+ const stream = await run.create(threadId, body, { ...options, signal: this.controller.signal });
192
+ this._connected();
193
+ for await (const event of stream) {
194
+ __classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_addEvent).call(this, event);
195
+ }
196
+ if (stream.controller.signal?.aborted) {
197
+ throw new APIUserAbortError();
198
+ }
199
+ return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_endRequest).call(this));
200
+ }
201
+ static accumulateDelta(acc, delta) {
202
+ for (const [key, deltaValue] of Object.entries(delta)) {
203
+ if (!acc.hasOwnProperty(key)) {
204
+ acc[key] = deltaValue;
205
+ continue;
206
+ }
207
+ let accValue = acc[key];
208
+ if (accValue === null || accValue === undefined) {
209
+ acc[key] = deltaValue;
210
+ continue;
211
+ }
212
+ // We don't accumulate these special properties
213
+ if (key === 'index' || key === 'type') {
214
+ acc[key] = deltaValue;
215
+ continue;
216
+ }
217
+ // Type-specific accumulation logic
218
+ if (typeof accValue === 'string' && typeof deltaValue === 'string') {
219
+ accValue += deltaValue;
220
+ }
221
+ else if (typeof accValue === 'number' && typeof deltaValue === 'number') {
222
+ accValue += deltaValue;
223
+ }
224
+ else if (Core.isObj(accValue) && Core.isObj(deltaValue)) {
225
+ accValue = this.accumulateDelta(accValue, deltaValue);
226
+ }
227
+ else if (Array.isArray(accValue) && Array.isArray(deltaValue)) {
228
+ if (accValue.every((x) => typeof x === 'string' || typeof x === 'number')) {
229
+ accValue.push(...deltaValue); // Use spread syntax for efficient addition
230
+ continue;
231
+ }
232
+ }
233
+ else {
234
+ throw Error(`Unhandled record type: ${key}, deltaValue: ${deltaValue}, accValue: ${accValue}`);
235
+ }
236
+ acc[key] = accValue;
237
+ }
238
+ return acc;
239
+ }
240
+ }
241
+ _AssistantStream_addEvent = function _AssistantStream_addEvent(event) {
242
+ if (this.ended)
243
+ return;
244
+ __classPrivateFieldSet(this, _AssistantStream_currentEvent, event, "f");
245
+ __classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_handleEvent).call(this, event);
246
+ switch (event.event) {
247
+ case 'thread.created':
248
+ //No action on this event.
249
+ break;
250
+ case 'thread.run.created':
251
+ case 'thread.run.queued':
252
+ case 'thread.run.in_progress':
253
+ case 'thread.run.requires_action':
254
+ case 'thread.run.completed':
255
+ case 'thread.run.failed':
256
+ case 'thread.run.cancelling':
257
+ case 'thread.run.cancelled':
258
+ case 'thread.run.expired':
259
+ __classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_handleRun).call(this, event);
260
+ break;
261
+ case 'thread.run.step.created':
262
+ case 'thread.run.step.in_progress':
263
+ case 'thread.run.step.delta':
264
+ case 'thread.run.step.completed':
265
+ case 'thread.run.step.failed':
266
+ case 'thread.run.step.cancelled':
267
+ case 'thread.run.step.expired':
268
+ __classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_handleRunStep).call(this, event);
269
+ break;
270
+ case 'thread.message.created':
271
+ case 'thread.message.in_progress':
272
+ case 'thread.message.delta':
273
+ case 'thread.message.completed':
274
+ case 'thread.message.incomplete':
275
+ __classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_handleMessage).call(this, event);
276
+ break;
277
+ case 'error':
278
+ //This is included for completeness, but errors are processed in the SSE event processing so this should not occur
279
+ throw new Error('Encountered an error event in event processing - errors should be processed earlier');
280
+ }
281
+ }, _AssistantStream_endRequest = function _AssistantStream_endRequest() {
282
+ if (this.ended) {
283
+ throw new OpenAIError(`stream has ended, this shouldn't happen`);
284
+ }
285
+ if (!__classPrivateFieldGet(this, _AssistantStream_finalRun, "f"))
286
+ throw Error('Final run has been been received');
287
+ return __classPrivateFieldGet(this, _AssistantStream_finalRun, "f");
288
+ }, _AssistantStream_handleMessage = function _AssistantStream_handleMessage(event) {
289
+ const [accumulatedMessage, newContent] = __classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_accumulateMessage).call(this, event, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, "f"));
290
+ __classPrivateFieldSet(this, _AssistantStream_messageSnapshot, accumulatedMessage, "f");
291
+ __classPrivateFieldGet(this, _AssistantStream_messageSnapshots, "f")[accumulatedMessage.id] = accumulatedMessage;
292
+ for (const content of newContent) {
293
+ const snapshotContent = accumulatedMessage.content[content.index];
294
+ if (snapshotContent?.type == 'text') {
295
+ this._emit('textCreated', snapshotContent.text);
296
+ }
297
+ }
298
+ switch (event.event) {
299
+ case 'thread.message.created':
300
+ this._emit('messageCreated', event.data);
301
+ break;
302
+ case 'thread.message.in_progress':
303
+ break;
304
+ case 'thread.message.delta':
305
+ this._emit('messageDelta', event.data.delta, accumulatedMessage);
306
+ if (event.data.delta.content) {
307
+ for (const content of event.data.delta.content) {
308
+ //If it is text delta, emit a text delta event
309
+ if (content.type == 'text' && content.text) {
310
+ let textDelta = content.text;
311
+ let snapshot = accumulatedMessage.content[content.index];
312
+ if (snapshot && snapshot.type == 'text') {
313
+ this._emit('textDelta', textDelta, snapshot.text);
314
+ }
315
+ else {
316
+ throw Error('The snapshot associated with this text delta is not text or missing');
317
+ }
318
+ }
319
+ if (content.index != __classPrivateFieldGet(this, _AssistantStream_currentContentIndex, "f")) {
320
+ //See if we have in progress content
321
+ if (__classPrivateFieldGet(this, _AssistantStream_currentContent, "f")) {
322
+ switch (__classPrivateFieldGet(this, _AssistantStream_currentContent, "f").type) {
323
+ case 'text':
324
+ this._emit('textDone', __classPrivateFieldGet(this, _AssistantStream_currentContent, "f").text, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, "f"));
325
+ break;
326
+ case 'image_file':
327
+ this._emit('imageFileDone', __classPrivateFieldGet(this, _AssistantStream_currentContent, "f").image_file, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, "f"));
328
+ break;
329
+ }
330
+ }
331
+ __classPrivateFieldSet(this, _AssistantStream_currentContentIndex, content.index, "f");
332
+ }
333
+ __classPrivateFieldSet(this, _AssistantStream_currentContent, accumulatedMessage.content[content.index], "f");
334
+ }
335
+ }
336
+ break;
337
+ case 'thread.message.completed':
338
+ case 'thread.message.incomplete':
339
+ //We emit the latest content we were working on on completion (including incomplete)
340
+ if (__classPrivateFieldGet(this, _AssistantStream_currentContentIndex, "f") !== undefined) {
341
+ const currentContent = event.data.content[__classPrivateFieldGet(this, _AssistantStream_currentContentIndex, "f")];
342
+ if (currentContent) {
343
+ switch (currentContent.type) {
344
+ case 'image_file':
345
+ this._emit('imageFileDone', currentContent.image_file, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, "f"));
346
+ break;
347
+ case 'text':
348
+ this._emit('textDone', currentContent.text, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, "f"));
349
+ break;
350
+ }
351
+ }
352
+ }
353
+ if (__classPrivateFieldGet(this, _AssistantStream_messageSnapshot, "f")) {
354
+ this._emit('messageDone', event.data);
355
+ }
356
+ __classPrivateFieldSet(this, _AssistantStream_messageSnapshot, undefined, "f");
357
+ }
358
+ }, _AssistantStream_handleRunStep = function _AssistantStream_handleRunStep(event) {
359
+ const accumulatedRunStep = __classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_accumulateRunStep).call(this, event);
360
+ __classPrivateFieldSet(this, _AssistantStream_currentRunStepSnapshot, accumulatedRunStep, "f");
361
+ switch (event.event) {
362
+ case 'thread.run.step.created':
363
+ this._emit('runStepCreated', event.data);
364
+ break;
365
+ case 'thread.run.step.delta':
366
+ const delta = event.data.delta;
367
+ if (delta.step_details &&
368
+ delta.step_details.type == 'tool_calls' &&
369
+ delta.step_details.tool_calls &&
370
+ accumulatedRunStep.step_details.type == 'tool_calls') {
371
+ for (const toolCall of delta.step_details.tool_calls) {
372
+ if (toolCall.index == __classPrivateFieldGet(this, _AssistantStream_currentToolCallIndex, "f")) {
373
+ this._emit('toolCallDelta', toolCall, accumulatedRunStep.step_details.tool_calls[toolCall.index]);
374
+ }
375
+ else {
376
+ if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, "f")) {
377
+ this._emit('toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, "f"));
378
+ }
379
+ __classPrivateFieldSet(this, _AssistantStream_currentToolCallIndex, toolCall.index, "f");
380
+ __classPrivateFieldSet(this, _AssistantStream_currentToolCall, accumulatedRunStep.step_details.tool_calls[toolCall.index], "f");
381
+ if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, "f"))
382
+ this._emit('toolCallCreated', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, "f"));
383
+ }
384
+ }
385
+ }
386
+ this._emit('runStepDelta', event.data.delta, accumulatedRunStep);
387
+ break;
388
+ case 'thread.run.step.completed':
389
+ case 'thread.run.step.failed':
390
+ case 'thread.run.step.cancelled':
391
+ case 'thread.run.step.expired':
392
+ __classPrivateFieldSet(this, _AssistantStream_currentRunStepSnapshot, undefined, "f");
393
+ const details = event.data.step_details;
394
+ if (details.type == 'tool_calls') {
395
+ if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, "f")) {
396
+ this._emit('toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, "f"));
397
+ __classPrivateFieldSet(this, _AssistantStream_currentToolCall, undefined, "f");
398
+ }
399
+ }
400
+ this._emit('runStepDone', event.data, accumulatedRunStep);
401
+ break;
402
+ case 'thread.run.step.in_progress':
403
+ break;
404
+ }
405
+ }, _AssistantStream_handleEvent = function _AssistantStream_handleEvent(event) {
406
+ __classPrivateFieldGet(this, _AssistantStream_events, "f").push(event);
407
+ this._emit('event', event);
408
+ }, _AssistantStream_accumulateRunStep = function _AssistantStream_accumulateRunStep(event) {
409
+ switch (event.event) {
410
+ case 'thread.run.step.created':
411
+ __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, "f")[event.data.id] = event.data;
412
+ return event.data;
413
+ case 'thread.run.step.delta':
414
+ let snapshot = __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, "f")[event.data.id];
415
+ if (!snapshot) {
416
+ throw Error('Received a RunStepDelta before creation of a snapshot');
417
+ }
418
+ let data = event.data;
419
+ if (data.delta) {
420
+ const accumulated = AssistantStream.accumulateDelta(snapshot, data.delta);
421
+ __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, "f")[event.data.id] = accumulated;
422
+ }
423
+ return __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, "f")[event.data.id];
424
+ case 'thread.run.step.completed':
425
+ case 'thread.run.step.failed':
426
+ case 'thread.run.step.cancelled':
427
+ case 'thread.run.step.expired':
428
+ case 'thread.run.step.in_progress':
429
+ __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, "f")[event.data.id] = event.data;
430
+ break;
431
+ }
432
+ if (__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, "f")[event.data.id])
433
+ return __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, "f")[event.data.id];
434
+ throw new Error('No snapshot available');
435
+ }, _AssistantStream_accumulateMessage = function _AssistantStream_accumulateMessage(event, snapshot) {
436
+ let newContent = [];
437
+ switch (event.event) {
438
+ case 'thread.message.created':
439
+ //On creation the snapshot is just the initial message
440
+ return [event.data, newContent];
441
+ case 'thread.message.delta':
442
+ if (!snapshot) {
443
+ throw Error('Received a delta with no existing snapshot (there should be one from message creation)');
444
+ }
445
+ let data = event.data;
446
+ //If this delta does not have content, nothing to process
447
+ if (data.delta.content) {
448
+ for (const contentElement of data.delta.content) {
449
+ if (contentElement.index in snapshot.content) {
450
+ let currentContent = snapshot.content[contentElement.index];
451
+ snapshot.content[contentElement.index] = __classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_accumulateContent).call(this, contentElement, currentContent);
452
+ }
453
+ else {
454
+ snapshot.content[contentElement.index] = contentElement;
455
+ //This is a new element
456
+ newContent.push(contentElement);
457
+ }
458
+ }
459
+ }
460
+ return [snapshot, newContent];
461
+ case 'thread.message.in_progress':
462
+ case 'thread.message.completed':
463
+ case 'thread.message.incomplete':
464
+ //No changes on other thread events
465
+ if (snapshot) {
466
+ return [snapshot, newContent];
467
+ }
468
+ else {
469
+ throw Error('Received thread message event with no existing snapshot');
470
+ }
471
+ }
472
+ throw Error('Tried to accumulate a non-message event');
473
+ }, _AssistantStream_accumulateContent = function _AssistantStream_accumulateContent(contentElement, currentContent) {
474
+ return AssistantStream.accumulateDelta(currentContent, contentElement);
475
+ }, _AssistantStream_handleRun = function _AssistantStream_handleRun(event) {
476
+ __classPrivateFieldSet(this, _AssistantStream_currentRunSnapshot, event.data, "f");
477
+ switch (event.event) {
478
+ case 'thread.run.created':
479
+ break;
480
+ case 'thread.run.queued':
481
+ break;
482
+ case 'thread.run.in_progress':
483
+ break;
484
+ case 'thread.run.requires_action':
485
+ case 'thread.run.cancelled':
486
+ case 'thread.run.failed':
487
+ case 'thread.run.completed':
488
+ case 'thread.run.expired':
489
+ __classPrivateFieldSet(this, _AssistantStream_finalRun, event.data, "f");
490
+ if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, "f")) {
491
+ this._emit('toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, "f"));
492
+ __classPrivateFieldSet(this, _AssistantStream_currentToolCall, undefined, "f");
493
+ }
494
+ break;
495
+ case 'thread.run.cancelling':
496
+ break;
497
+ }
498
+ };
499
+ //# sourceMappingURL=AssistantStream.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssistantStream.mjs","sourceRoot":"","sources":["../src/lib/AssistantStream.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const openai_1 = __importDefault(require("openai"));
7
+ const error_1 = require("openai/error");
7
8
  const stream_1 = require("stream");
8
9
  const completions_1 = require("openai/resources/beta/chat/completions");
9
10
  const node_fetch_1 = require("node-fetch");
@@ -2137,6 +2138,40 @@ describe('resource completions', () => {
2137
2138
  expect(listener.finalMessage).toEqual({ role: 'assistant', content: 'The weather is great today!' });
2138
2139
  await listener.sanityCheck();
2139
2140
  });
2141
+ test('handles network errors', async () => {
2142
+ const { fetch, handleRequest } = mockFetch();
2143
+ const openai = new openai_1.default({ apiKey: '...', fetch });
2144
+ const stream = openai.beta.chat.completions.stream({
2145
+ max_tokens: 1024,
2146
+ model: 'gpt-3.5-turbo',
2147
+ messages: [{ role: 'user', content: 'Say hello there!' }],
2148
+ }, { maxRetries: 0 });
2149
+ handleRequest(async () => {
2150
+ throw new Error('mock request error');
2151
+ }).catch(() => { });
2152
+ async function runStream() {
2153
+ await stream.done();
2154
+ }
2155
+ await expect(runStream).rejects.toThrow(error_1.APIConnectionError);
2156
+ });
2157
+ test('handles network errors on async iterator', async () => {
2158
+ const { fetch, handleRequest } = mockFetch();
2159
+ const openai = new openai_1.default({ apiKey: '...', fetch });
2160
+ const stream = openai.beta.chat.completions.stream({
2161
+ max_tokens: 1024,
2162
+ model: 'gpt-3.5-turbo',
2163
+ messages: [{ role: 'user', content: 'Say hello there!' }],
2164
+ }, { maxRetries: 0 });
2165
+ handleRequest(async () => {
2166
+ throw new Error('mock request error');
2167
+ }).catch(() => { });
2168
+ async function runStream() {
2169
+ for await (const _event of stream) {
2170
+ continue;
2171
+ }
2172
+ }
2173
+ await expect(runStream).rejects.toThrow(error_1.APIConnectionError);
2174
+ });
2140
2175
  });
2141
2176
  });
2142
2177
  //# sourceMappingURL=ChatCompletionRunFunctions.test.js.map