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,9 +1,9 @@
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
import { APIResource } from "../../../core/resource.mjs";
import { APIResource } from "../../../resource.mjs";
import { isRequestOptions } from "../../../core.mjs";
import * as OutputItemsAPI from "./output-items.mjs";
import { OutputItems, } from "./output-items.mjs";
import { CursorPage } from "../../../core/pagination.mjs";
import { path } from "../../../internal/utils/path.mjs";
import { OutputItemListResponsesPage, OutputItems, } from "./output-items.mjs";
import { CursorPage } from "../../../pagination.mjs";
export class Runs extends APIResource {
constructor() {
super(...arguments);
@@ -14,39 +14,37 @@ export class Runs extends APIResource {
* model configuration to use to test. The datasource will be validated against the
* schema specified in the config of the evaluation.
*/
create(evalID, body, options) {
return this._client.post(path `/evals/${evalID}/runs`, { body, ...options });
create(evalId, body, options) {
return this._client.post(`/evals/${evalId}/runs`, { body, ...options });
}
/**
* Get an evaluation run by ID.
*/
retrieve(runID, params, options) {
const { eval_id } = params;
return this._client.get(path `/evals/${eval_id}/runs/${runID}`, options);
retrieve(evalId, runId, options) {
return this._client.get(`/evals/${evalId}/runs/${runId}`, options);
}
/**
* Get a list of runs for an evaluation.
*/
list(evalID, query = {}, options) {
return this._client.getAPIList(path `/evals/${evalID}/runs`, (CursorPage), {
query,
...options,
});
list(evalId, query = {}, options) {
if (isRequestOptions(query)) {
return this.list(evalId, {}, query);
}
return this._client.getAPIList(`/evals/${evalId}/runs`, RunListResponsesPage, { query, ...options });
}
/**
* Delete an eval run.
*/
delete(runID, params, options) {
const { eval_id } = params;
return this._client.delete(path `/evals/${eval_id}/runs/${runID}`, options);
del(evalId, runId, options) {
return this._client.delete(`/evals/${evalId}/runs/${runId}`, options);
}
/**
* Cancel an ongoing evaluation run.
*/
cancel(runID, params, options) {
const { eval_id } = params;
return this._client.post(path `/evals/${eval_id}/runs/${runID}`, options);
cancel(evalId, runId, options) {
return this._client.post(`/evals/${evalId}/runs/${runId}`, options);
}
}
export class RunListResponsesPage extends CursorPage {
}
Runs.RunListResponsesPage = RunListResponsesPage;
Runs.OutputItems = OutputItems;
Runs.OutputItemListResponsesPage = OutputItemListResponsesPage;
//# sourceMappingURL=runs.mjs.map