/** * Unified Trace — normalizes the execution sources into one row shape. * * The two ways to invoke an agent are the only real "kinds": Chat (sync) and * Task (async). A LOOP is not a kind — it's the deterministic recipe a run * follows, and it runs *inside* chat and tasks. So loop is a property on the * row (`loop`), not a category. Loop runs are surfaced as chat runs that used * a loop (the runtime starts a loop from a chat completion). * * Pure module → imported by both the server page and the client table. */ export type RunKind = "chat" | "task"; export type Tone = "success" | "running" | "failed" | "warning" | "neutral"; export type RunRow = { id: string; kind: RunKind; title: string; agent?: string; loop?: string; status: string; tone: Tone; ts: number; durationMs?: number; messageCount?: number; }; type RawSession = { id: string; title?: string; agent?: string; messageCount?: number; createdAt?: string; updatedAt?: string; }; type RawTask = { id: string; title?: string; status?: string; assignTo?: string; loop?: string; createdAt?: string; updatedAt?: string; retries?: number; maxRetries?: number; result?: { duration?: number; }; }; type RawLoopRun = { id: string; loopName?: string; agentName?: string; status?: string; startedAt?: string; updatedAt?: string; completedAt?: string; trace?: unknown[]; }; export declare function normalizeAll(sessions: RawSession[], tasks: RawTask[], loopRuns: RawLoopRun[]): RunRow[]; export {}; //# sourceMappingURL=trace-normalize.d.ts.map