export type Phase5ExternalHandoffSummary = { verdict: 'READY' | 'BLOCKED' | 'MISSING_INPUTS'; blockers: ReadonlyArray; missingInputs: ReadonlyArray; warnings: ReadonlyArray; phase5StatusVerdict?: string; phase5BlockersVerdict?: string; consumerUnblockVerdict?: string; mockAbVerdict?: string; runReportVerdict?: string; consumerStartupFailureRuns?: number; consumerStartupStalledRuns?: number; artifactUrls: ReadonlyArray; requireArtifactUrls: boolean; requireMockAbReport: boolean; }; export type SummarizePhase5ExternalHandoffParams = { hasPhase5StatusReport: boolean; hasPhase5BlockersReport: boolean; hasConsumerUnblockReport: boolean; hasMockAbReport: boolean; hasRunReport: boolean; phase5StatusVerdict?: string; phase5BlockersVerdict?: string; consumerUnblockVerdict?: string; mockAbVerdict?: string; runReportVerdict?: string; consumerStartupFailureRuns?: number; consumerStartupStalledRuns?: number; artifactUrls: ReadonlyArray; requireArtifactUrls: boolean; requireMockAbReport: boolean; }; export const dedupePhase5ExternalHandoffValues = ( values: ReadonlyArray ): string[] => { const seen = new Set(); const output: string[] = []; for (const value of values) { if (seen.has(value)) { continue; } seen.add(value); output.push(value); } return output; };