export interface JobUsage { input: number; output: number; cacheRead: number; cacheWrite: number; cost: number; turns: number; } export interface FanoutJob { id: string; createdAt: number; agent: string; agentSource: "user" | "project" | "unknown"; task: string; cwd: string; model?: string; tools?: string[]; status: "queued" | "running" | "done" | "failed" | "aborted"; pid?: number; exitCode?: number; outputFile: string; metaFile: string; notified: boolean; errorMessage?: string; usage: JobUsage; modelUsed?: string; stopReason?: string; } export interface DispatchResult { jobId: string; status: "queued" | "running"; message: string; } export interface StatusResult { jobs: Array<{ id: string; status: FanoutJob["status"]; agent: string; task: string; exitCode?: number; pid?: number; turns?: number; cost?: number; }>; } export interface CollectResult { results: Array<{ id: string; status: FanoutJob["status"]; output: string; exitCode?: number; usage: JobUsage; modelUsed?: string; errorMessage?: string; }>; } export interface AbortResult { aborted: string[]; notFound: string[]; alreadyDone: string[]; }