/** * Review-brief CONTRACT surface: the version constant, the ReviewBrief type * family, and the `reviewBrief*Schema` zod schemas that validate persisted * review-brief payloads on MCP replay. The executable derivation * (compareReviewBriefRisks, signalToReviewBriefRisk, verdict/action builders) * lives in @opensip-cli/shared-analysis (Plan 09 Phase 7) — this module stays * a frozen type/constant/schema facade. */ import { z } from 'zod'; import type { ReviewBriefCorrelationGroup, ReviewBriefCorrelationKey, ReviewBriefEntityRef } from './review-brief-correlation-types.js'; import type { Signal, SignalRepair, SignalSeverity } from '@opensip-cli/core'; export declare const REVIEW_BRIEF_VERSION = 1; export type ReviewBriefVersion = typeof REVIEW_BRIEF_VERSION; export type ReviewBriefVerdict = 'pass' | 'warn' | 'fail'; export interface ReviewBriefSignalRef { readonly tool: string; readonly suiteRunId: string; readonly stepIndex: number; readonly runId?: string; readonly fingerprint?: string; readonly signalIndex: number; } export interface ReviewBriefBlastRadius { readonly dependents: number; readonly confidence: 'low' | 'medium' | 'high'; readonly impactedFiles?: number; } export interface ReviewBriefRisk { readonly source: string; readonly ruleId: string; readonly message: string; readonly severity: SignalSeverity; readonly file: string; readonly line?: number; readonly column?: number; readonly isNew: boolean; readonly signalRef: ReviewBriefSignalRef; readonly repair?: SignalRepair; readonly blastRadius?: ReviewBriefBlastRadius; readonly dedupedRefs?: readonly ReviewBriefSignalRef[]; readonly entities?: readonly ReviewBriefEntityRef[]; readonly correlationKeys?: readonly ReviewBriefCorrelationKey[]; } export interface ReviewBriefBaselineDelta { readonly available: boolean; readonly added: number; readonly removed: number; readonly unchanged: number; } export interface ReviewBriefDegradation { readonly source: string; readonly reason: string; readonly code?: 'missing-envelope' | 'step-fault' | 'missing-fingerprint' | 'failing-verdict-without-signals' | 'impact-verification-partial' | 'baseline-delta-unavailable'; readonly stepIndex?: number; } export interface ReviewBriefRecommendedAction { readonly priority: 'high' | 'medium' | 'low'; readonly message: string; readonly source?: string; readonly command?: string; } export interface ReviewBrief { readonly version: ReviewBriefVersion; readonly suite: string; readonly suiteRunId: string; readonly verdict: ReviewBriefVerdict; /** `null` means the suite run did not have trustworthy changed-file cardinality. */ readonly changedFiles: number | null; readonly topRisks: readonly ReviewBriefRisk[]; readonly newFindings: readonly ReviewBriefRisk[]; readonly baselineDelta: ReviewBriefBaselineDelta; readonly degraded: readonly ReviewBriefDegradation[]; readonly recommendedActions: readonly ReviewBriefRecommendedAction[]; readonly correlatedRisks?: readonly ReviewBriefCorrelationGroup[]; } export interface DeriveReviewBriefVerdictInput { readonly risks?: readonly Pick[]; readonly degraded?: readonly unknown[]; } export type ReviewBriefBaselineState = 'added' | 'unchanged'; export interface SignalToReviewBriefRiskInput { readonly suiteRunId: string; readonly stepIndex: number; readonly signalIndex: number; readonly signal: Signal; readonly tool: string; readonly runId: string; } export declare const reviewBriefSignalRefSchema: z.ZodObject<{ tool: z.ZodString; suiteRunId: z.ZodString; stepIndex: z.ZodNumber; runId: z.ZodOptional; fingerprint: z.ZodOptional; signalIndex: z.ZodNumber; }, z.core.$strict>; export declare const reviewBriefRepairSchema: z.ZodObject<{ repairKind: z.ZodOptional>; autofixable: z.ZodOptional; suggestedCommand: z.ZodOptional; docsRef: z.ZodOptional; confidence: z.ZodOptional; patchHint: z.ZodOptional; summary: z.ZodString; target: z.ZodOptional; }, z.core.$strict>>; actions: z.ZodOptional; autofixable: z.ZodBoolean; confidence: z.ZodOptional; patchHint: z.ZodOptional; summary: z.ZodString; target: z.ZodOptional; }, z.core.$strict>>; verification: z.ZodOptional; notes: z.ZodOptional>; }, z.core.$strict>>; target: z.ZodOptional>>; }, z.core.$strict>>>; }, z.core.$strict>; export declare const reviewBriefBlastRadiusSchema: z.ZodObject<{ dependents: z.ZodNumber; confidence: z.ZodEnum<{ high: "high"; medium: "medium"; low: "low"; }>; impactedFiles: z.ZodOptional; }, z.core.$strict>; export declare const reviewBriefRiskSchema: z.ZodObject<{ source: z.ZodString; ruleId: z.ZodString; message: z.ZodString; severity: z.ZodEnum<{ critical: "critical"; high: "high"; medium: "medium"; low: "low"; }>; file: z.ZodString; line: z.ZodOptional; column: z.ZodOptional; isNew: z.ZodBoolean; signalRef: z.ZodObject<{ tool: z.ZodString; suiteRunId: z.ZodString; stepIndex: z.ZodNumber; runId: z.ZodOptional; fingerprint: z.ZodOptional; signalIndex: z.ZodNumber; }, z.core.$strict>; repair: z.ZodOptional>; autofixable: z.ZodOptional; suggestedCommand: z.ZodOptional; docsRef: z.ZodOptional; confidence: z.ZodOptional; patchHint: z.ZodOptional; summary: z.ZodString; target: z.ZodOptional; }, z.core.$strict>>; actions: z.ZodOptional; autofixable: z.ZodBoolean; confidence: z.ZodOptional; patchHint: z.ZodOptional; summary: z.ZodString; target: z.ZodOptional; }, z.core.$strict>>; verification: z.ZodOptional; notes: z.ZodOptional>; }, z.core.$strict>>; target: z.ZodOptional>>; }, z.core.$strict>>>; }, z.core.$strict>>; blastRadius: z.ZodOptional; impactedFiles: z.ZodOptional; }, z.core.$strict>>; dedupedRefs: z.ZodOptional; fingerprint: z.ZodOptional; signalIndex: z.ZodNumber; }, z.core.$strict>>>; entities: z.ZodOptional; id: z.ZodString; confidence: z.ZodEnum<{ high: "high"; medium: "medium"; low: "low"; }>; label: z.ZodOptional; file: z.ZodOptional; line: z.ZodOptional; source: z.ZodOptional; }, z.core.$strict>>>; correlationKeys: z.ZodOptional; value: z.ZodString; confidence: z.ZodEnum<{ high: "high"; medium: "medium"; low: "low"; }>; }, z.core.$strict>>>; }, z.core.$strict>; export declare const reviewBriefBaselineDeltaSchema: z.ZodObject<{ available: z.ZodBoolean; added: z.ZodNumber; removed: z.ZodNumber; unchanged: z.ZodNumber; }, z.core.$strict>; export declare const reviewBriefDegradationSchema: z.ZodObject<{ source: z.ZodString; reason: z.ZodString; code: z.ZodOptional>; stepIndex: z.ZodOptional; }, z.core.$strict>; export declare const reviewBriefRecommendedActionSchema: z.ZodObject<{ priority: z.ZodEnum<{ high: "high"; medium: "medium"; low: "low"; }>; message: z.ZodString; source: z.ZodOptional; command: z.ZodOptional; }, z.core.$strict>; export declare const reviewBriefSchema: z.ZodObject<{ version: z.ZodLiteral<1>; suite: z.ZodString; suiteRunId: z.ZodString; verdict: z.ZodEnum<{ warn: "warn"; pass: "pass"; fail: "fail"; }>; changedFiles: z.ZodNullable; topRisks: z.ZodArray; file: z.ZodString; line: z.ZodOptional; column: z.ZodOptional; isNew: z.ZodBoolean; signalRef: z.ZodObject<{ tool: z.ZodString; suiteRunId: z.ZodString; stepIndex: z.ZodNumber; runId: z.ZodOptional; fingerprint: z.ZodOptional; signalIndex: z.ZodNumber; }, z.core.$strict>; repair: z.ZodOptional>; autofixable: z.ZodOptional; suggestedCommand: z.ZodOptional; docsRef: z.ZodOptional; confidence: z.ZodOptional; patchHint: z.ZodOptional; summary: z.ZodString; target: z.ZodOptional; }, z.core.$strict>>; actions: z.ZodOptional; autofixable: z.ZodBoolean; confidence: z.ZodOptional; patchHint: z.ZodOptional; summary: z.ZodString; target: z.ZodOptional; }, z.core.$strict>>; verification: z.ZodOptional; notes: z.ZodOptional>; }, z.core.$strict>>; target: z.ZodOptional>>; }, z.core.$strict>>>; }, z.core.$strict>>; blastRadius: z.ZodOptional; impactedFiles: z.ZodOptional; }, z.core.$strict>>; dedupedRefs: z.ZodOptional; fingerprint: z.ZodOptional; signalIndex: z.ZodNumber; }, z.core.$strict>>>; entities: z.ZodOptional; id: z.ZodString; confidence: z.ZodEnum<{ high: "high"; medium: "medium"; low: "low"; }>; label: z.ZodOptional; file: z.ZodOptional; line: z.ZodOptional; source: z.ZodOptional; }, z.core.$strict>>>; correlationKeys: z.ZodOptional; value: z.ZodString; confidence: z.ZodEnum<{ high: "high"; medium: "medium"; low: "low"; }>; }, z.core.$strict>>>; }, z.core.$strict>>; newFindings: z.ZodArray; file: z.ZodString; line: z.ZodOptional; column: z.ZodOptional; isNew: z.ZodBoolean; signalRef: z.ZodObject<{ tool: z.ZodString; suiteRunId: z.ZodString; stepIndex: z.ZodNumber; runId: z.ZodOptional; fingerprint: z.ZodOptional; signalIndex: z.ZodNumber; }, z.core.$strict>; repair: z.ZodOptional>; autofixable: z.ZodOptional; suggestedCommand: z.ZodOptional; docsRef: z.ZodOptional; confidence: z.ZodOptional; patchHint: z.ZodOptional; summary: z.ZodString; target: z.ZodOptional; }, z.core.$strict>>; actions: z.ZodOptional; autofixable: z.ZodBoolean; confidence: z.ZodOptional; patchHint: z.ZodOptional; summary: z.ZodString; target: z.ZodOptional; }, z.core.$strict>>; verification: z.ZodOptional; notes: z.ZodOptional>; }, z.core.$strict>>; target: z.ZodOptional>>; }, z.core.$strict>>>; }, z.core.$strict>>; blastRadius: z.ZodOptional; impactedFiles: z.ZodOptional; }, z.core.$strict>>; dedupedRefs: z.ZodOptional; fingerprint: z.ZodOptional; signalIndex: z.ZodNumber; }, z.core.$strict>>>; entities: z.ZodOptional; id: z.ZodString; confidence: z.ZodEnum<{ high: "high"; medium: "medium"; low: "low"; }>; label: z.ZodOptional; file: z.ZodOptional; line: z.ZodOptional; source: z.ZodOptional; }, z.core.$strict>>>; correlationKeys: z.ZodOptional; value: z.ZodString; confidence: z.ZodEnum<{ high: "high"; medium: "medium"; low: "low"; }>; }, z.core.$strict>>>; }, z.core.$strict>>; baselineDelta: z.ZodObject<{ available: z.ZodBoolean; added: z.ZodNumber; removed: z.ZodNumber; unchanged: z.ZodNumber; }, z.core.$strict>; degraded: z.ZodArray>; stepIndex: z.ZodOptional; }, z.core.$strict>>; recommendedActions: z.ZodArray; message: z.ZodString; source: z.ZodOptional; command: z.ZodOptional; }, z.core.$strict>>; correlatedRisks: z.ZodOptional; isNew: z.ZodBoolean; primary: z.ZodObject<{ source: z.ZodString; ruleId: z.ZodString; file: z.ZodString; signalRef: z.ZodObject<{ tool: z.ZodString; suiteRunId: z.ZodString; stepIndex: z.ZodNumber; runId: z.ZodOptional; fingerprint: z.ZodOptional; signalIndex: z.ZodNumber; }, z.core.$strict>; line: z.ZodOptional; column: z.ZodOptional; }, z.core.$strict>; members: z.ZodArray; fingerprint: z.ZodOptional; signalIndex: z.ZodNumber; }, z.core.$strict>; line: z.ZodOptional; column: z.ZodOptional; }, z.core.$strict>>; entities: z.ZodArray; id: z.ZodString; confidence: z.ZodEnum<{ high: "high"; medium: "medium"; low: "low"; }>; label: z.ZodOptional; file: z.ZodOptional; line: z.ZodOptional; source: z.ZodOptional; }, z.core.$strict>>; reasons: z.ZodArray; key: z.ZodObject<{ kind: z.ZodEnum<{ symbol: "symbol"; package: "package"; file: "file"; fingerprint: "fingerprint"; "file-range": "file-range"; "graph-node": "graph-node"; "rule-location": "rule-location"; }>; value: z.ZodString; confidence: z.ZodEnum<{ high: "high"; medium: "medium"; low: "low"; }>; }, z.core.$strict>; confidence: z.ZodEnum<{ high: "high"; medium: "medium"; low: "low"; }>; message: z.ZodString; }, z.core.$strict>>; blastRadius: z.ZodOptional; impactedFiles: z.ZodOptional; }, z.core.$strict>>; }, z.core.$strict>>>; }, z.core.$strict>; //# sourceMappingURL=review-brief.d.ts.map