import { createLogger } from '../../../utils/logger' import type { GenerationResult } from './analysis-step' import type { OutputMode, VideoJobData } from '../../../types' import { renderVideo } from './render-video' import { renderImages } from './render-images' import type { RenderResult } from './render-step-types' const logger = createLogger('RenderStep') export type { RenderResult } from './render-step-types' export async function handlePreGeneratedCode( jobId: string, concept: string, quality: string, outputMode: OutputMode, preGeneratedCode: string, timings: Record, jobData: VideoJobData ): Promise { logger.info('Using pre-generated code from frontend', { jobId, outputMode, codeLength: preGeneratedCode.length, hasCustomApi: !!jobData.customApiConfig }) const renderStart = Date.now() const codeResult: GenerationResult = { code: preGeneratedCode, usedAI: false, generationType: 'custom-api' } const renderResult = outputMode === 'image' ? await renderImages( jobId, concept, quality, codeResult, timings, jobData.videoConfig, jobData.customApiConfig, jobData.promptOverrides, undefined, jobData.clientId, jobData.workspaceDirectory, jobData.renderCacheKey ) : await renderVideo( jobId, concept, quality, codeResult, timings, jobData.customApiConfig, jobData.videoConfig, jobData.promptOverrides, undefined, jobData.clientId, jobData.workspaceDirectory, jobData.renderCacheKey ) timings.render = Date.now() - renderStart logger.info('Job completed (pre-generated code)', { jobId, outputMode, timings }) return renderResult } export { renderVideo, renderImages }