Fix chat interface - restore continuous conversation flow

🎯 Major improvements to MissionControl component:
- Always keep input field visible and functional after AI responses
- Auto-clear input after submitting questions for better UX
- Add dynamic visual indicators (first question vs follow-up)
- Improve response layout with clear separation and hints
- Enable proper chat-like experience for continuous learning

🌟 Additional enhancements:
- Better language-specific messaging throughout interface
- Clearer visual hierarchy between input and response areas
- Intuitive flow that guides users to ask follow-up questions
- Maintains responsive design and accessibility

🔧 Technical changes:
- Enhanced MissionControl state management
- Improved component layout and styling
- Better TypeScript integration across components
- Updated tsconfig for stricter type checking
This commit is contained in:
rwiegand
2025-07-14 12:39:05 +02:00
parent b31492a354
commit f893530471
1798 changed files with 25329 additions and 92638 deletions

View File

@@ -1,12 +1,45 @@
"use strict";
var _AssistantStream_instances, _a, _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;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
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");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
if (kind === "m") throw new TypeError("Private method is not writable");
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
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");
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
};
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;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AssistantStream = void 0;
const tslib_1 = require("../internal/tslib.js");
const Core = __importStar(require("../core.js"));
const streaming_1 = require("../streaming.js");
const error_1 = require("../error.js");
const EventStream_1 = require("./EventStream.js");
const utils_1 = require("../internal/utils.js");
class AssistantStream extends EventStream_1.EventStream {
constructor() {
super(...arguments);
@@ -81,7 +114,7 @@ class AssistantStream extends EventStream_1.EventStream {
};
}
static fromReadableStream(stream) {
const runner = new _a();
const runner = new AssistantStream();
runner._run(() => runner._fromReadableStream(stream));
return runner;
}
@@ -95,26 +128,26 @@ class AssistantStream extends EventStream_1.EventStream {
this._connected();
const stream = streaming_1.Stream.fromReadableStream(readableStream, this.controller);
for await (const event of stream) {
tslib_1.__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_addEvent).call(this, event);
__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_addEvent).call(this, event);
}
if (stream.controller.signal?.aborted) {
throw new error_1.APIUserAbortError();
}
return this._addRun(tslib_1.__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_endRequest).call(this));
return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_endRequest).call(this));
}
toReadableStream() {
const stream = new streaming_1.Stream(this[Symbol.asyncIterator].bind(this), this.controller);
return stream.toReadableStream();
}
static createToolAssistantStream(runId, runs, params, options) {
const runner = new _a();
runner._run(() => runner._runToolAssistantStream(runId, runs, params, {
static createToolAssistantStream(threadId, runId, runs, params, options) {
const runner = new AssistantStream();
runner._run(() => runner._runToolAssistantStream(threadId, runId, runs, params, {
...options,
headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },
}));
return runner;
}
async _createToolAssistantStream(run, runId, params, options) {
async _createToolAssistantStream(run, threadId, runId, params, options) {
const signal = options?.signal;
if (signal) {
if (signal.aborted)
@@ -122,21 +155,21 @@ class AssistantStream extends EventStream_1.EventStream {
signal.addEventListener('abort', () => this.controller.abort());
}
const body = { ...params, stream: true };
const stream = await run.submitToolOutputs(runId, body, {
const stream = await run.submitToolOutputs(threadId, runId, body, {
...options,
signal: this.controller.signal,
});
this._connected();
for await (const event of stream) {
tslib_1.__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_addEvent).call(this, event);
__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_addEvent).call(this, event);
}
if (stream.controller.signal?.aborted) {
throw new error_1.APIUserAbortError();
}
return this._addRun(tslib_1.__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_endRequest).call(this));
return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_endRequest).call(this));
}
static createThreadAssistantStream(params, thread, options) {
const runner = new _a();
const runner = new AssistantStream();
runner._run(() => runner._threadAssistantStream(params, thread, {
...options,
headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },
@@ -144,7 +177,7 @@ class AssistantStream extends EventStream_1.EventStream {
return runner;
}
static createAssistantStream(threadId, runs, params, options) {
const runner = new _a();
const runner = new AssistantStream();
runner._run(() => runner._runAssistantStream(threadId, runs, params, {
...options,
headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },
@@ -152,30 +185,30 @@ class AssistantStream extends EventStream_1.EventStream {
return runner;
}
currentEvent() {
return tslib_1.__classPrivateFieldGet(this, _AssistantStream_currentEvent, "f");
return __classPrivateFieldGet(this, _AssistantStream_currentEvent, "f");
}
currentRun() {
return tslib_1.__classPrivateFieldGet(this, _AssistantStream_currentRunSnapshot, "f");
return __classPrivateFieldGet(this, _AssistantStream_currentRunSnapshot, "f");
}
currentMessageSnapshot() {
return tslib_1.__classPrivateFieldGet(this, _AssistantStream_messageSnapshot, "f");
return __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, "f");
}
currentRunStepSnapshot() {
return tslib_1.__classPrivateFieldGet(this, _AssistantStream_currentRunStepSnapshot, "f");
return __classPrivateFieldGet(this, _AssistantStream_currentRunStepSnapshot, "f");
}
async finalRunSteps() {
await this.done();
return Object.values(tslib_1.__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, "f"));
return Object.values(__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, "f"));
}
async finalMessages() {
await this.done();
return Object.values(tslib_1.__classPrivateFieldGet(this, _AssistantStream_messageSnapshots, "f"));
return Object.values(__classPrivateFieldGet(this, _AssistantStream_messageSnapshots, "f"));
}
async finalRun() {
await this.done();
if (!tslib_1.__classPrivateFieldGet(this, _AssistantStream_finalRun, "f"))
if (!__classPrivateFieldGet(this, _AssistantStream_finalRun, "f"))
throw Error('Final run was not received.');
return tslib_1.__classPrivateFieldGet(this, _AssistantStream_finalRun, "f");
return __classPrivateFieldGet(this, _AssistantStream_finalRun, "f");
}
async _createThreadAssistantStream(thread, params, options) {
const signal = options?.signal;
@@ -188,12 +221,12 @@ class AssistantStream extends EventStream_1.EventStream {
const stream = await thread.createAndRun(body, { ...options, signal: this.controller.signal });
this._connected();
for await (const event of stream) {
tslib_1.__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_addEvent).call(this, event);
__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_addEvent).call(this, event);
}
if (stream.controller.signal?.aborted) {
throw new error_1.APIUserAbortError();
}
return this._addRun(tslib_1.__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_endRequest).call(this));
return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_endRequest).call(this));
}
async _createAssistantStream(run, threadId, params, options) {
const signal = options?.signal;
@@ -206,12 +239,12 @@ class AssistantStream extends EventStream_1.EventStream {
const stream = await run.create(threadId, body, { ...options, signal: this.controller.signal });
this._connected();
for await (const event of stream) {
tslib_1.__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_addEvent).call(this, event);
__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_addEvent).call(this, event);
}
if (stream.controller.signal?.aborted) {
throw new error_1.APIUserAbortError();
}
return this._addRun(tslib_1.__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_endRequest).call(this));
return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_endRequest).call(this));
}
static accumulateDelta(acc, delta) {
for (const [key, deltaValue] of Object.entries(delta)) {
@@ -236,7 +269,7 @@ class AssistantStream extends EventStream_1.EventStream {
else if (typeof accValue === 'number' && typeof deltaValue === 'number') {
accValue += deltaValue;
}
else if ((0, utils_1.isObj)(accValue) && (0, utils_1.isObj)(deltaValue)) {
else if (Core.isObj(accValue) && Core.isObj(deltaValue)) {
accValue = this.accumulateDelta(accValue, deltaValue);
}
else if (Array.isArray(accValue) && Array.isArray(deltaValue)) {
@@ -245,7 +278,7 @@ class AssistantStream extends EventStream_1.EventStream {
continue;
}
for (const deltaEntry of deltaValue) {
if (!(0, utils_1.isObj)(deltaEntry)) {
if (!Core.isObj(deltaEntry)) {
throw new Error(`Expected array delta entry to be an object but got: ${deltaEntry}`);
}
const index = deltaEntry['index'];
@@ -282,16 +315,16 @@ class AssistantStream extends EventStream_1.EventStream {
async _runAssistantStream(threadId, runs, params, options) {
return await this._createAssistantStream(runs, threadId, params, options);
}
async _runToolAssistantStream(runId, runs, params, options) {
return await this._createToolAssistantStream(runs, runId, params, options);
async _runToolAssistantStream(threadId, runId, runs, params, options) {
return await this._createToolAssistantStream(runs, threadId, runId, params, options);
}
}
exports.AssistantStream = AssistantStream;
_a = AssistantStream, _AssistantStream_addEvent = function _AssistantStream_addEvent(event) {
_AssistantStream_addEvent = function _AssistantStream_addEvent(event) {
if (this.ended)
return;
tslib_1.__classPrivateFieldSet(this, _AssistantStream_currentEvent, event, "f");
tslib_1.__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_handleEvent).call(this, event);
__classPrivateFieldSet(this, _AssistantStream_currentEvent, event, "f");
__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_handleEvent).call(this, event);
switch (event.event) {
case 'thread.created':
//No action on this event.
@@ -306,7 +339,7 @@ _a = AssistantStream, _AssistantStream_addEvent = function _AssistantStream_addE
case 'thread.run.cancelling':
case 'thread.run.cancelled':
case 'thread.run.expired':
tslib_1.__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_handleRun).call(this, event);
__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_handleRun).call(this, event);
break;
case 'thread.run.step.created':
case 'thread.run.step.in_progress':
@@ -315,14 +348,14 @@ _a = AssistantStream, _AssistantStream_addEvent = function _AssistantStream_addE
case 'thread.run.step.failed':
case 'thread.run.step.cancelled':
case 'thread.run.step.expired':
tslib_1.__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_handleRunStep).call(this, event);
__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_handleRunStep).call(this, event);
break;
case 'thread.message.created':
case 'thread.message.in_progress':
case 'thread.message.delta':
case 'thread.message.completed':
case 'thread.message.incomplete':
tslib_1.__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_handleMessage).call(this, event);
__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_handleMessage).call(this, event);
break;
case 'error':
//This is included for completeness, but errors are processed in the SSE event processing so this should not occur
@@ -334,13 +367,13 @@ _a = AssistantStream, _AssistantStream_addEvent = function _AssistantStream_addE
if (this.ended) {
throw new error_1.OpenAIError(`stream has ended, this shouldn't happen`);
}
if (!tslib_1.__classPrivateFieldGet(this, _AssistantStream_finalRun, "f"))
if (!__classPrivateFieldGet(this, _AssistantStream_finalRun, "f"))
throw Error('Final run has not been received');
return tslib_1.__classPrivateFieldGet(this, _AssistantStream_finalRun, "f");
return __classPrivateFieldGet(this, _AssistantStream_finalRun, "f");
}, _AssistantStream_handleMessage = function _AssistantStream_handleMessage(event) {
const [accumulatedMessage, newContent] = tslib_1.__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_accumulateMessage).call(this, event, tslib_1.__classPrivateFieldGet(this, _AssistantStream_messageSnapshot, "f"));
tslib_1.__classPrivateFieldSet(this, _AssistantStream_messageSnapshot, accumulatedMessage, "f");
tslib_1.__classPrivateFieldGet(this, _AssistantStream_messageSnapshots, "f")[accumulatedMessage.id] = accumulatedMessage;
const [accumulatedMessage, newContent] = __classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_accumulateMessage).call(this, event, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, "f"));
__classPrivateFieldSet(this, _AssistantStream_messageSnapshot, accumulatedMessage, "f");
__classPrivateFieldGet(this, _AssistantStream_messageSnapshots, "f")[accumulatedMessage.id] = accumulatedMessage;
for (const content of newContent) {
const snapshotContent = accumulatedMessage.content[content.index];
if (snapshotContent?.type == 'text') {
@@ -368,48 +401,48 @@ _a = AssistantStream, _AssistantStream_addEvent = function _AssistantStream_addE
throw Error('The snapshot associated with this text delta is not text or missing');
}
}
if (content.index != tslib_1.__classPrivateFieldGet(this, _AssistantStream_currentContentIndex, "f")) {
if (content.index != __classPrivateFieldGet(this, _AssistantStream_currentContentIndex, "f")) {
//See if we have in progress content
if (tslib_1.__classPrivateFieldGet(this, _AssistantStream_currentContent, "f")) {
switch (tslib_1.__classPrivateFieldGet(this, _AssistantStream_currentContent, "f").type) {
if (__classPrivateFieldGet(this, _AssistantStream_currentContent, "f")) {
switch (__classPrivateFieldGet(this, _AssistantStream_currentContent, "f").type) {
case 'text':
this._emit('textDone', tslib_1.__classPrivateFieldGet(this, _AssistantStream_currentContent, "f").text, tslib_1.__classPrivateFieldGet(this, _AssistantStream_messageSnapshot, "f"));
this._emit('textDone', __classPrivateFieldGet(this, _AssistantStream_currentContent, "f").text, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, "f"));
break;
case 'image_file':
this._emit('imageFileDone', tslib_1.__classPrivateFieldGet(this, _AssistantStream_currentContent, "f").image_file, tslib_1.__classPrivateFieldGet(this, _AssistantStream_messageSnapshot, "f"));
this._emit('imageFileDone', __classPrivateFieldGet(this, _AssistantStream_currentContent, "f").image_file, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, "f"));
break;
}
}
tslib_1.__classPrivateFieldSet(this, _AssistantStream_currentContentIndex, content.index, "f");
__classPrivateFieldSet(this, _AssistantStream_currentContentIndex, content.index, "f");
}
tslib_1.__classPrivateFieldSet(this, _AssistantStream_currentContent, accumulatedMessage.content[content.index], "f");
__classPrivateFieldSet(this, _AssistantStream_currentContent, accumulatedMessage.content[content.index], "f");
}
}
break;
case 'thread.message.completed':
case 'thread.message.incomplete':
//We emit the latest content we were working on on completion (including incomplete)
if (tslib_1.__classPrivateFieldGet(this, _AssistantStream_currentContentIndex, "f") !== undefined) {
const currentContent = event.data.content[tslib_1.__classPrivateFieldGet(this, _AssistantStream_currentContentIndex, "f")];
if (__classPrivateFieldGet(this, _AssistantStream_currentContentIndex, "f") !== undefined) {
const currentContent = event.data.content[__classPrivateFieldGet(this, _AssistantStream_currentContentIndex, "f")];
if (currentContent) {
switch (currentContent.type) {
case 'image_file':
this._emit('imageFileDone', currentContent.image_file, tslib_1.__classPrivateFieldGet(this, _AssistantStream_messageSnapshot, "f"));
this._emit('imageFileDone', currentContent.image_file, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, "f"));
break;
case 'text':
this._emit('textDone', currentContent.text, tslib_1.__classPrivateFieldGet(this, _AssistantStream_messageSnapshot, "f"));
this._emit('textDone', currentContent.text, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, "f"));
break;
}
}
}
if (tslib_1.__classPrivateFieldGet(this, _AssistantStream_messageSnapshot, "f")) {
if (__classPrivateFieldGet(this, _AssistantStream_messageSnapshot, "f")) {
this._emit('messageDone', event.data);
}
tslib_1.__classPrivateFieldSet(this, _AssistantStream_messageSnapshot, undefined, "f");
__classPrivateFieldSet(this, _AssistantStream_messageSnapshot, undefined, "f");
}
}, _AssistantStream_handleRunStep = function _AssistantStream_handleRunStep(event) {
const accumulatedRunStep = tslib_1.__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_accumulateRunStep).call(this, event);
tslib_1.__classPrivateFieldSet(this, _AssistantStream_currentRunStepSnapshot, accumulatedRunStep, "f");
const accumulatedRunStep = __classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_accumulateRunStep).call(this, event);
__classPrivateFieldSet(this, _AssistantStream_currentRunStepSnapshot, accumulatedRunStep, "f");
switch (event.event) {
case 'thread.run.step.created':
this._emit('runStepCreated', event.data);
@@ -421,17 +454,17 @@ _a = AssistantStream, _AssistantStream_addEvent = function _AssistantStream_addE
delta.step_details.tool_calls &&
accumulatedRunStep.step_details.type == 'tool_calls') {
for (const toolCall of delta.step_details.tool_calls) {
if (toolCall.index == tslib_1.__classPrivateFieldGet(this, _AssistantStream_currentToolCallIndex, "f")) {
if (toolCall.index == __classPrivateFieldGet(this, _AssistantStream_currentToolCallIndex, "f")) {
this._emit('toolCallDelta', toolCall, accumulatedRunStep.step_details.tool_calls[toolCall.index]);
}
else {
if (tslib_1.__classPrivateFieldGet(this, _AssistantStream_currentToolCall, "f")) {
this._emit('toolCallDone', tslib_1.__classPrivateFieldGet(this, _AssistantStream_currentToolCall, "f"));
if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, "f")) {
this._emit('toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, "f"));
}
tslib_1.__classPrivateFieldSet(this, _AssistantStream_currentToolCallIndex, toolCall.index, "f");
tslib_1.__classPrivateFieldSet(this, _AssistantStream_currentToolCall, accumulatedRunStep.step_details.tool_calls[toolCall.index], "f");
if (tslib_1.__classPrivateFieldGet(this, _AssistantStream_currentToolCall, "f"))
this._emit('toolCallCreated', tslib_1.__classPrivateFieldGet(this, _AssistantStream_currentToolCall, "f"));
__classPrivateFieldSet(this, _AssistantStream_currentToolCallIndex, toolCall.index, "f");
__classPrivateFieldSet(this, _AssistantStream_currentToolCall, accumulatedRunStep.step_details.tool_calls[toolCall.index], "f");
if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, "f"))
this._emit('toolCallCreated', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, "f"));
}
}
}
@@ -441,12 +474,12 @@ _a = AssistantStream, _AssistantStream_addEvent = function _AssistantStream_addE
case 'thread.run.step.failed':
case 'thread.run.step.cancelled':
case 'thread.run.step.expired':
tslib_1.__classPrivateFieldSet(this, _AssistantStream_currentRunStepSnapshot, undefined, "f");
__classPrivateFieldSet(this, _AssistantStream_currentRunStepSnapshot, undefined, "f");
const details = event.data.step_details;
if (details.type == 'tool_calls') {
if (tslib_1.__classPrivateFieldGet(this, _AssistantStream_currentToolCall, "f")) {
this._emit('toolCallDone', tslib_1.__classPrivateFieldGet(this, _AssistantStream_currentToolCall, "f"));
tslib_1.__classPrivateFieldSet(this, _AssistantStream_currentToolCall, undefined, "f");
if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, "f")) {
this._emit('toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, "f"));
__classPrivateFieldSet(this, _AssistantStream_currentToolCall, undefined, "f");
}
}
this._emit('runStepDone', event.data, accumulatedRunStep);
@@ -455,34 +488,34 @@ _a = AssistantStream, _AssistantStream_addEvent = function _AssistantStream_addE
break;
}
}, _AssistantStream_handleEvent = function _AssistantStream_handleEvent(event) {
tslib_1.__classPrivateFieldGet(this, _AssistantStream_events, "f").push(event);
__classPrivateFieldGet(this, _AssistantStream_events, "f").push(event);
this._emit('event', event);
}, _AssistantStream_accumulateRunStep = function _AssistantStream_accumulateRunStep(event) {
switch (event.event) {
case 'thread.run.step.created':
tslib_1.__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, "f")[event.data.id] = event.data;
__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, "f")[event.data.id] = event.data;
return event.data;
case 'thread.run.step.delta':
let snapshot = tslib_1.__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, "f")[event.data.id];
let snapshot = __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, "f")[event.data.id];
if (!snapshot) {
throw Error('Received a RunStepDelta before creation of a snapshot');
}
let data = event.data;
if (data.delta) {
const accumulated = _a.accumulateDelta(snapshot, data.delta);
tslib_1.__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, "f")[event.data.id] = accumulated;
const accumulated = AssistantStream.accumulateDelta(snapshot, data.delta);
__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, "f")[event.data.id] = accumulated;
}
return tslib_1.__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, "f")[event.data.id];
return __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, "f")[event.data.id];
case 'thread.run.step.completed':
case 'thread.run.step.failed':
case 'thread.run.step.cancelled':
case 'thread.run.step.expired':
case 'thread.run.step.in_progress':
tslib_1.__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, "f")[event.data.id] = event.data;
__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, "f")[event.data.id] = event.data;
break;
}
if (tslib_1.__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, "f")[event.data.id])
return tslib_1.__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, "f")[event.data.id];
if (__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, "f")[event.data.id])
return __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, "f")[event.data.id];
throw new Error('No snapshot available');
}, _AssistantStream_accumulateMessage = function _AssistantStream_accumulateMessage(event, snapshot) {
let newContent = [];
@@ -500,7 +533,7 @@ _a = AssistantStream, _AssistantStream_addEvent = function _AssistantStream_addE
for (const contentElement of data.delta.content) {
if (contentElement.index in snapshot.content) {
let currentContent = snapshot.content[contentElement.index];
snapshot.content[contentElement.index] = tslib_1.__classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_accumulateContent).call(this, contentElement, currentContent);
snapshot.content[contentElement.index] = __classPrivateFieldGet(this, _AssistantStream_instances, "m", _AssistantStream_accumulateContent).call(this, contentElement, currentContent);
}
else {
snapshot.content[contentElement.index] = contentElement;
@@ -523,9 +556,9 @@ _a = AssistantStream, _AssistantStream_addEvent = function _AssistantStream_addE
}
throw Error('Tried to accumulate a non-message event');
}, _AssistantStream_accumulateContent = function _AssistantStream_accumulateContent(contentElement, currentContent) {
return _a.accumulateDelta(currentContent, contentElement);
return AssistantStream.accumulateDelta(currentContent, contentElement);
}, _AssistantStream_handleRun = function _AssistantStream_handleRun(event) {
tslib_1.__classPrivateFieldSet(this, _AssistantStream_currentRunSnapshot, event.data, "f");
__classPrivateFieldSet(this, _AssistantStream_currentRunSnapshot, event.data, "f");
switch (event.event) {
case 'thread.run.created':
break;
@@ -538,11 +571,10 @@ _a = AssistantStream, _AssistantStream_addEvent = function _AssistantStream_addE
case 'thread.run.failed':
case 'thread.run.completed':
case 'thread.run.expired':
case 'thread.run.incomplete':
tslib_1.__classPrivateFieldSet(this, _AssistantStream_finalRun, event.data, "f");
if (tslib_1.__classPrivateFieldGet(this, _AssistantStream_currentToolCall, "f")) {
this._emit('toolCallDone', tslib_1.__classPrivateFieldGet(this, _AssistantStream_currentToolCall, "f"));
tslib_1.__classPrivateFieldSet(this, _AssistantStream_currentToolCall, undefined, "f");
__classPrivateFieldSet(this, _AssistantStream_finalRun, event.data, "f");
if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, "f")) {
this._emit('toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, "f"));
__classPrivateFieldSet(this, _AssistantStream_currentToolCall, undefined, "f");
}
break;
case 'thread.run.cancelling':