feat: show backend optimization progress

This commit is contained in:
Codex
2026-06-21 23:43:03 +08:00
parent 5a627bcaa8
commit 21aa75d240
15 changed files with 549 additions and 43 deletions
@@ -5,6 +5,10 @@ import { getRepositoryFromRuntime } from "../../../../../lib/db/repository";
import { LlmValidationError } from "../../../../../lib/llm/client";
import { getExportStoreFromRuntime } from "../../../../../lib/workflow/export-store";
import { runOptimizationWorkflow } from "../../../../../lib/workflow/orchestrator";
import {
recordWorkflowProgress,
startWorkflowProgress,
} from "../../../../../lib/workflow/progress-store";
interface RouteContext {
params: Promise<{ jobId: string }>;
@@ -32,6 +36,7 @@ export async function POST(request: Request, context: RouteContext) {
}
const requestStartedAt = Date.now();
startWorkflowProgress(jobId);
try {
const result = await runOptimizationWorkflow({
input: {
@@ -42,6 +47,9 @@ export async function POST(request: Request, context: RouteContext) {
user_instructions: job.user_instructions,
},
factCard: factCardRecord,
onProgress: (event) => {
recordWorkflowProgress(jobId, event);
},
});
const optimizedArticle = await repository.saveOptimizedArticle(
jobId,
@@ -0,0 +1,18 @@
import { NextResponse } from "next/server";
import { requireApiAccess } from "../../../../../lib/api/auth";
import { getWorkflowProgress } from "../../../../../lib/workflow/progress-store";
interface RouteContext {
params: Promise<{ jobId: string }>;
}
export async function GET(request: Request, context: RouteContext) {
const access = requireApiAccess(request);
if (!access.ok) {
return access.response;
}
const { jobId } = await context.params;
return NextResponse.json({ progress: getWorkflowProgress(jobId) });
}