From 5bc2e12c01c7cc326b376b2b6282cc7a31c7235b Mon Sep 17 00:00:00 2001 From: weichen Date: Tue, 13 Oct 2026 16:34:07 +0000 Subject: [PATCH] Sync U3 evidence candidate types from Core Why: Frontend generated types must follow the single Core checkpoint contract. Evidence: Dev make contracts generated the mirror; npm test and npm run build passed. Impact: Type-only mirror update; persisted task cards and reading behavior stay unchanged. Refs: Core c722c16; Dev task feature/fast-slow-u2-u3-plan --- src/contracts.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/contracts.ts b/src/contracts.ts index e0f7010..261da55 100644 --- a/src/contracts.ts +++ b/src/contracts.ts @@ -420,7 +420,9 @@ export interface TaskSnapshot { checkpointKeys?: Record; checkpointCount?: number; checkpointSeq?: number; } export interface TaskSourceQuote { sourceId: string; blockIndex: number; quote: string } -export interface WorkFindingCandidate { findingKey: string; text: string; impact?: string; kind: string; assumptions?: string; corrects?: string; sources: TaskSourceQuote[] } +export interface WorkEvidencePremise { role: "total" | "phase" | "dependent" | "direct_relation"; sourceIndex: number; value?: number } +export interface WorkFindingEvidence { mode: "direct_relation" | "difference" | "unresolved_relation"; premises: WorkEvidencePremise[]; result?: number } +export interface WorkFindingCandidate { findingKey: string; text: string; impact?: string; kind: string; assumptions?: string; corrects?: string; sources: TaskSourceQuote[]; evidence?: WorkFindingEvidence } export interface WorkCheckpointCandidate { checkpointId: string; phaseId: string; focus?: string; remaining?: string; nextStep?: string; findings: WorkFindingCandidate[] } export interface UIAction { id: string; label: string; style?: string; command?: string }