Files
kidsai/node_modules/openai/beta/realtime/internal-base.js
rwiegand f893530471 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
2025-07-14 12:39:05 +02:00

55 lines
2.1 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildRealtimeURL = exports.isAzure = exports.OpenAIRealtimeEmitter = exports.OpenAIRealtimeError = void 0;
const EventEmitter_1 = require("../../lib/EventEmitter.js");
const error_1 = require("../../error.js");
const index_1 = require("../../index.js");
class OpenAIRealtimeError extends error_1.OpenAIError {
constructor(message, event) {
super(message);
this.error = event?.error;
this.event_id = event?.event_id;
}
}
exports.OpenAIRealtimeError = OpenAIRealtimeError;
class OpenAIRealtimeEmitter extends EventEmitter_1.EventEmitter {
_onError(event, message, cause) {
message =
event?.error ?
`${event.error.message} code=${event.error.code} param=${event.error.param} type=${event.error.type} event_id=${event.error.event_id}`
: message ?? 'unknown error';
if (!this._hasListener('error')) {
const error = new OpenAIRealtimeError(message +
`\n\nTo resolve these unhandled rejection errors you should bind an \`error\` callback, e.g. \`rt.on('error', (error) => ...)\` `, event);
// @ts-ignore
error.cause = cause;
Promise.reject(error);
return;
}
const error = new OpenAIRealtimeError(message, event);
// @ts-ignore
error.cause = cause;
this._emit('error', error);
}
}
exports.OpenAIRealtimeEmitter = OpenAIRealtimeEmitter;
function isAzure(client) {
return client instanceof index_1.AzureOpenAI;
}
exports.isAzure = isAzure;
function buildRealtimeURL(client, model) {
const path = '/realtime';
const baseURL = client.baseURL;
const url = new URL(baseURL + (baseURL.endsWith('/') ? path.slice(1) : path));
url.protocol = 'wss';
if (isAzure(client)) {
url.searchParams.set('api-version', client.apiVersion);
url.searchParams.set('deployment', model);
}
else {
url.searchParams.set('model', model);
}
return url;
}
exports.buildRealtimeURL = buildRealtimeURL;
//# sourceMappingURL=internal-base.js.map