22 lines
780 B
TypeScript
22 lines
780 B
TypeScript
/**
|
|||
|
|
* GET /api/graph/status — the in-flight background extraction runs
|
||
|
|
* (vision §1: the pipeline status must be visible on the home graph).
|
||
|
|
* Thin transport over the pipeline's module-level registry: phase
|
||
|
|
* (extracting / auditing / merging) per chat, oldest first. Titles joined
|
||
|
|
* from the chat store; a missing chat record still reports the run.
|
||
|
|
*/
|
||
|
|
import { extractionStatuses } from "@/src/agent/subagents/extraction.ts";
|
||
|
|
import { chatStore } from "@/src/store/chats.ts";
|
||
|
|
|
||
|
|
export const dynamic = "force-dynamic";
|
||
|
|
|
||
|
|
export async function GET() {
|
||
|
|
const runs = extractionStatuses().map((run) => ({
|
||
|
|
chatId: run.chatId,
|
||
|
|
title: chatStore.getChat(run.chatId)?.title ?? run.chatId,
|
||
|
|
phase: run.phase,
|
||
|
|
startedAt: run.startedAt,
|
||
|
|
}));
|
||
|
|
return Response.json({ runs });
|
||
|
|
}
|