diff --git a/src/frontend/src/types.ts b/src/frontend/src/types.ts new file mode 100644 index 0000000..853de1a --- /dev/null +++ b/src/frontend/src/types.ts @@ -0,0 +1,81 @@ +// API 类型定义 + +export interface Task { + id: string; + title: string; + description: string | null; + status: string; + assignee: string | null; + assigned_by: string; + depends_on: string | null; + priority: number; + task_type: string | null; + risk_level: string | null; + must_haves: string | null; + output_path: string | null; + result_summary: string | null; + retry_count: number; + max_retries: number; + created_at: string | null; + updated_at: string | null; + completed_at: string | null; +} + +export interface Project { + id: string; + name: string; + description: string | null; + status: string; + config: string | null; + created_at: string | null; + updated_at: string | null; +} + +export interface Observation { + id: number; + task_id: string | null; + observer: string; + severity: string; + body: string; + resolved_by: string | null; + created_at: string | null; +} + +export interface Event { + id: number | null; + task_id: string | null; + agent: string | null; + event_type: string; + detail: string | null; + created_at: string | null; +} + +export interface DaemonStatus { + status: string; + tick_count: number; + uptime_seconds: number; + active_projects: number; + last_tick: string | null; +} + +export interface ReviewResult { + verdict: string; + score: number; + gate: string; + needs_human: boolean; + results: ReviewStepResult[]; +} + +export interface ReviewStepResult { + step: string; + verdict: string; + score: number; + details: string; + suggestions: string[]; +} + +export type SSEEventData = { + event_type: string; + task_id?: string; + [key: string]: unknown; +};