export type DimensionId = 'usage' | 'context' | 'tech_debt' | 'files' | 'behavior' | 'security'; export type Severity = 'critical' | 'warning' | 'info' | 'healthy' | 'pro_locked' | 'no_data'; /** * 一个 deduction = 一项发现的问题 (用于 score 计算 + UX surface) */ export interface Finding { /** 短描述 (主入口 surface 行用) */ headline: string; /** 严重度 */ severity: Severity; /** 扣分 (0-30) */ score_deduction: number; /** 一键 fix 文案 (可选, 主入口 [修这一个] 时用) */ fix_label?: string; /** 是否 Free 用户可执行 fix */ fix_free_allowed?: boolean; /** 真省 (如果 fix 后, 估算月省 token / ¥) */ estimated_savings?: { tokens?: number; cny?: number; description?: string; }; } /** * 单个维度的体检结果 */ export interface DimensionStatus { dimension: DimensionId; /** 维度总 severity (取 findings 中最高) */ severity: Severity; /** 维度 1 行 headline (主入口 surface) */ headline: string; /** 该维度所有 findings */ findings: Finding[]; /** Pro 锁标 */ pro_locked: boolean; } /** * Checkup 完整报告 — 主入口数据源 */ export interface CheckupReport { generated_at: string; /** 整体健康度 0-100 */ health_score: number; /** vs 上次 score 的变化 (+/- 数, 用于 trend "↑ 28") */ health_trend?: number; /** 6 维度状态 */ dimensions: DimensionStatus[]; /** "今日 #1" — 最该看的 1 件事 (treats 信息过载, PRD §3.2) */ top_focus: Finding | null; /** 主入口的"💰 用量"那一行 (来自 reconciliation summary) */ usage_summary_lines: string[]; /** 是否所有维度都 healthy → fallback UX */ all_healthy: boolean; } /** * 健康度历史 snapshot (持久化在 ~/.skillfm/health-history.jsonl) * 用于 trend 计算 + Daily push 文案 */ export interface HealthSnapshot { timestamp: string; health_score: number; } //# sourceMappingURL=types.d.ts.map