/** * Presentational types for the directive review-queue UI (#1889). * * Kept free of the `@smrt()` model classes so the Svelte bundle stays a thin * presentation layer — consumers map their {@link DirectiveProposal} rows to * {@link DirectiveProposalView} via {@link toDirectiveProposalView}. * * @module */ /** The proposal lifecycle statuses the queue renders. */ export type DirectiveReviewStatus = 'pending' | 'approved' | 'rejected' | 'superseded'; /** A plain, render-ready view of a directive proposal. */ export interface DirectiveProposalView { /** Proposal id. */ id: string; /** Persona display name, if known. */ personaName?: string; /** Canonical agent class the persona configures. */ agentClass?: string; /** Lifecycle status. */ status: DirectiveReviewStatus; /** Model-authored rationale for the change. */ rationale: string; /** Current instructions (for the review diff). */ currentInstructions: string; /** Proposed replacement instructions. */ proposedInstructions: string; /** Aggregate confidence in `[0, 1]`, if known. */ confidence?: number; } /** Map a proposal-shaped record onto a render-ready view. */ export declare function toDirectiveProposalView(proposal: { id?: string | null; status?: string; rationale?: string; currentInstructions?: string; proposedInstructions?: string; confidence?: number; agentClass?: string; personaName?: string; }): DirectiveProposalView; /** Badge variant for a proposal status (matches `@happyvertical/smrt-ui`). */ export declare function statusBadgeVariant(status: DirectiveReviewStatus): 'default' | 'success' | 'warning' | 'error'; /** Format a `[0, 1]` confidence as a rounded percentage string. */ export declare function confidencePercent(confidence: number): string; //# sourceMappingURL=types.d.ts.map