Files
gods-eye-view/server/providers/openai.js

42 lines
1.1 KiB
JavaScript

import { defaultSourceRoot } from './common/source-root.js';
import { handleHudSummary } from './openai/hud-summary.js';
import { createDebugLogHandler } from './openai/debug-log.js';
import { createRealtimeTokenHandler } from './openai/realtime.js';
/**
* Vite plugin: OpenAI Realtime ephemeral client secret.
*
* Keeps OPENAI_API_KEY server-side while the browser connects to the
* Realtime API over WebRTC with a short-lived secret.
*/
function openAiRealtimeProxy({
sourceRoot = defaultSourceRoot,
annotationGuidance,
} = {}) {
function install(middlewares) {
middlewares.use('/api/openai/hud-summary', handleHudSummary);
middlewares.use(
'/api/realtime/debug-log',
createDebugLogHandler({ sourceRoot }),
);
middlewares.use(
'/api/realtime/token',
createRealtimeTokenHandler({ annotationGuidance }),
);
}
return {
name: 'openai-realtime-proxy',
configureServer(server) {
install(server.middlewares);
},
configurePreviewServer(server) {
install(server.middlewares);
},
};
}
export { openAiRealtimeProxy };