✅ 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:
130
node_modules/openai/error.js
generated
vendored
130
node_modules/openai/error.js
generated
vendored
@@ -1,6 +1,130 @@
|
||||
"use strict";
|
||||
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const tslib_1 = require("./internal/tslib.js");
|
||||
/** @deprecated Import from ./core/error instead */
|
||||
tslib_1.__exportStar(require("./core/error.js"), exports);
|
||||
exports.ContentFilterFinishReasonError = exports.LengthFinishReasonError = exports.InternalServerError = exports.RateLimitError = exports.UnprocessableEntityError = exports.ConflictError = exports.NotFoundError = exports.PermissionDeniedError = exports.AuthenticationError = exports.BadRequestError = exports.APIConnectionTimeoutError = exports.APIConnectionError = exports.APIUserAbortError = exports.APIError = exports.OpenAIError = void 0;
|
||||
const core_1 = require("./core.js");
|
||||
class OpenAIError extends Error {
|
||||
}
|
||||
exports.OpenAIError = OpenAIError;
|
||||
class APIError extends OpenAIError {
|
||||
constructor(status, error, message, headers) {
|
||||
super(`${APIError.makeMessage(status, error, message)}`);
|
||||
this.status = status;
|
||||
this.headers = headers;
|
||||
this.request_id = headers?.['x-request-id'];
|
||||
this.error = error;
|
||||
const data = error;
|
||||
this.code = data?.['code'];
|
||||
this.param = data?.['param'];
|
||||
this.type = data?.['type'];
|
||||
}
|
||||
static makeMessage(status, error, message) {
|
||||
const msg = error?.message ?
|
||||
typeof error.message === 'string' ?
|
||||
error.message
|
||||
: JSON.stringify(error.message)
|
||||
: error ? JSON.stringify(error)
|
||||
: message;
|
||||
if (status && msg) {
|
||||
return `${status} ${msg}`;
|
||||
}
|
||||
if (status) {
|
||||
return `${status} status code (no body)`;
|
||||
}
|
||||
if (msg) {
|
||||
return msg;
|
||||
}
|
||||
return '(no status code or body)';
|
||||
}
|
||||
static generate(status, errorResponse, message, headers) {
|
||||
if (!status || !headers) {
|
||||
return new APIConnectionError({ message, cause: (0, core_1.castToError)(errorResponse) });
|
||||
}
|
||||
const error = errorResponse?.['error'];
|
||||
if (status === 400) {
|
||||
return new BadRequestError(status, error, message, headers);
|
||||
}
|
||||
if (status === 401) {
|
||||
return new AuthenticationError(status, error, message, headers);
|
||||
}
|
||||
if (status === 403) {
|
||||
return new PermissionDeniedError(status, error, message, headers);
|
||||
}
|
||||
if (status === 404) {
|
||||
return new NotFoundError(status, error, message, headers);
|
||||
}
|
||||
if (status === 409) {
|
||||
return new ConflictError(status, error, message, headers);
|
||||
}
|
||||
if (status === 422) {
|
||||
return new UnprocessableEntityError(status, error, message, headers);
|
||||
}
|
||||
if (status === 429) {
|
||||
return new RateLimitError(status, error, message, headers);
|
||||
}
|
||||
if (status >= 500) {
|
||||
return new InternalServerError(status, error, message, headers);
|
||||
}
|
||||
return new APIError(status, error, message, headers);
|
||||
}
|
||||
}
|
||||
exports.APIError = APIError;
|
||||
class APIUserAbortError extends APIError {
|
||||
constructor({ message } = {}) {
|
||||
super(undefined, undefined, message || 'Request was aborted.', undefined);
|
||||
}
|
||||
}
|
||||
exports.APIUserAbortError = APIUserAbortError;
|
||||
class APIConnectionError extends APIError {
|
||||
constructor({ message, cause }) {
|
||||
super(undefined, undefined, message || 'Connection error.', undefined);
|
||||
// in some environments the 'cause' property is already declared
|
||||
// @ts-ignore
|
||||
if (cause)
|
||||
this.cause = cause;
|
||||
}
|
||||
}
|
||||
exports.APIConnectionError = APIConnectionError;
|
||||
class APIConnectionTimeoutError extends APIConnectionError {
|
||||
constructor({ message } = {}) {
|
||||
super({ message: message ?? 'Request timed out.' });
|
||||
}
|
||||
}
|
||||
exports.APIConnectionTimeoutError = APIConnectionTimeoutError;
|
||||
class BadRequestError extends APIError {
|
||||
}
|
||||
exports.BadRequestError = BadRequestError;
|
||||
class AuthenticationError extends APIError {
|
||||
}
|
||||
exports.AuthenticationError = AuthenticationError;
|
||||
class PermissionDeniedError extends APIError {
|
||||
}
|
||||
exports.PermissionDeniedError = PermissionDeniedError;
|
||||
class NotFoundError extends APIError {
|
||||
}
|
||||
exports.NotFoundError = NotFoundError;
|
||||
class ConflictError extends APIError {
|
||||
}
|
||||
exports.ConflictError = ConflictError;
|
||||
class UnprocessableEntityError extends APIError {
|
||||
}
|
||||
exports.UnprocessableEntityError = UnprocessableEntityError;
|
||||
class RateLimitError extends APIError {
|
||||
}
|
||||
exports.RateLimitError = RateLimitError;
|
||||
class InternalServerError extends APIError {
|
||||
}
|
||||
exports.InternalServerError = InternalServerError;
|
||||
class LengthFinishReasonError extends OpenAIError {
|
||||
constructor() {
|
||||
super(`Could not parse response content as the length limit was reached`);
|
||||
}
|
||||
}
|
||||
exports.LengthFinishReasonError = LengthFinishReasonError;
|
||||
class ContentFilterFinishReasonError extends OpenAIError {
|
||||
constructor() {
|
||||
super(`Could not parse response content as the request was rejected by the content filter`);
|
||||
}
|
||||
}
|
||||
exports.ContentFilterFinishReasonError = ContentFilterFinishReasonError;
|
||||
//# sourceMappingURL=error.js.map
|
||||
Reference in New Issue
Block a user