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,11 +1,10 @@
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
import { APIResource } from "../core/resource.mjs";
import { CursorPage } from "../core/pagination.mjs";
import { buildHeaders } from "../internal/headers.mjs";
import { sleep } from "../internal/utils/sleep.mjs";
import { APIResource } from "../resource.mjs";
import { isRequestOptions } from "../core.mjs";
import { sleep } from "../core.mjs";
import { APIConnectionTimeoutError } from "../error.mjs";
import { multipartFormRequestOptions } from "../internal/uploads.mjs";
import { path } from "../internal/utils/path.mjs";
import * as Core from "../core.mjs";
import { CursorPage } from "../pagination.mjs";
export class Files extends APIResource {
/**
* Upload a file that can be used across various endpoints. Individual files can be
@@ -31,36 +30,44 @@ export class Files extends APIResource {
* storage limits.
*/
create(body, options) {
return this._client.post('/files', multipartFormRequestOptions({ body, ...options }, this._client));
return this._client.post('/files', Core.multipartFormRequestOptions({ body, ...options }));
}
/**
* Returns information about a specific file.
*/
retrieve(fileID, options) {
return this._client.get(path `/files/${fileID}`, options);
retrieve(fileId, options) {
return this._client.get(`/files/${fileId}`, options);
}
/**
* Returns a list of files.
*/
list(query = {}, options) {
return this._client.getAPIList('/files', (CursorPage), { query, ...options });
if (isRequestOptions(query)) {
return this.list({}, query);
}
return this._client.getAPIList('/files', FileObjectsPage, { query, ...options });
}
/**
* Delete a file.
*/
delete(fileID, options) {
return this._client.delete(path `/files/${fileID}`, options);
del(fileId, options) {
return this._client.delete(`/files/${fileId}`, options);
}
/**
* Returns the contents of the specified file.
*/
content(fileID, options) {
return this._client.get(path `/files/${fileID}/content`, {
content(fileId, options) {
return this._client.get(`/files/${fileId}/content`, {
...options,
headers: buildHeaders([{ Accept: 'application/binary' }, options?.headers]),
headers: { Accept: 'application/binary', ...options?.headers },
__binaryResponse: true,
});
}
/**
* Returns the contents of the specified file.
*
* @deprecated The `.content()` method should be used instead
*/
retrieveContent(fileId, options) {
return this._client.get(`/files/${fileId}/content`, options);
}
/**
* Waits for the given file to be processed, default timeout is 30 mins.
*/
@@ -80,4 +87,7 @@ export class Files extends APIResource {
return file;
}
}
export class FileObjectsPage extends CursorPage {
}
Files.FileObjectsPage = FileObjectsPage;
//# sourceMappingURL=files.mjs.map