export default defineEventHandler(async (event) => { const id = getRouterParam(event, 'id') const job = id ? getJob(id) : undefined if (!job) { throw createError({ statusCode: 404, statusMessage: 'Job not found' }) } const stream = createEventStream(event) const send = async (payload: unknown) => { await stream.push(JSON.stringify(payload)) } await send({ type: 'hello', status: job.status, message: job.message, progress: job.progress, step: job.step, maxStep: job.maxStep, promptId: job.promptId, elapsedMs: Date.now() - job.startedAt }) for (const past of job.events) { await send(past) } const unsubscribe = subscribeJob(job, (payload) => { void send(payload).then(() => { if (payload.type === 'complete' || payload.type === 'error') { void stream.close() } }) }) stream.onClosed(() => { unsubscribe() }) return stream.send() })