/** * Three-layer decision model types * * Defines types for the three-layer decision model: * 1. Baseline (System AI recommendation) * 2. Protégé (Human's trained AI recommendation) * 3. Human (Final decision) * * TODO: Align with generacy-ai/contracts#27 when available */ import { z } from 'zod'; /** * Base recommendation from any layer (baseline or protégé) */ export interface Recommendation { /** ID of the recommended option */ optionId: string; /** Confidence level 0-100 */ confidence: number; /** Reasoning for the recommendation */ reasoning: string[]; } /** * Protégé recommendation with applied principles */ export interface ProtegeRecommendation extends Recommendation { /** Principles from constitution that influenced this recommendation */ appliedPrinciples: string[]; } /** * Human's final decision with coaching metadata */ export interface HumanDecision { /** ID of the option selected by human */ optionId: string; /** Whether human agreed with protégé */ matchedProtege: boolean; /** Coaching feedback if human disagreed with protégé */ coaching: string | null; } /** * Complete three-layer recommendation breakdown */ export interface ThreeLayerBreakdown { baseline: Recommendation; protege: ProtegeRecommendation; human: HumanDecision; } /** * Schema for base recommendation */ export declare const recommendationSchema: z.ZodObject<{ optionId: z.ZodString; confidence: z.ZodNumber; reasoning: z.ZodArray; }, "strip", z.ZodTypeAny, { optionId: string; confidence: number; reasoning: string[]; }, { optionId: string; confidence: number; reasoning: string[]; }>; /** * Schema for protégé recommendation (extends base with principles) */ export declare const protegeRecommendationSchema: z.ZodObject<{ optionId: z.ZodString; confidence: z.ZodNumber; reasoning: z.ZodArray; } & { appliedPrinciples: z.ZodArray; }, "strip", z.ZodTypeAny, { optionId: string; confidence: number; reasoning: string[]; appliedPrinciples: string[]; }, { optionId: string; confidence: number; reasoning: string[]; appliedPrinciples: string[]; }>; /** * Schema for human decision */ export declare const humanDecisionSchema: z.ZodObject<{ optionId: z.ZodString; matchedProtege: z.ZodBoolean; coaching: z.ZodNullable; }, "strip", z.ZodTypeAny, { optionId: string; matchedProtege: boolean; coaching: string | null; }, { optionId: string; matchedProtege: boolean; coaching: string | null; }>; /** * Schema for complete three-layer breakdown */ export declare const threeLayerBreakdownSchema: z.ZodObject<{ baseline: z.ZodObject<{ optionId: z.ZodString; confidence: z.ZodNumber; reasoning: z.ZodArray; }, "strip", z.ZodTypeAny, { optionId: string; confidence: number; reasoning: string[]; }, { optionId: string; confidence: number; reasoning: string[]; }>; protege: z.ZodObject<{ optionId: z.ZodString; confidence: z.ZodNumber; reasoning: z.ZodArray; } & { appliedPrinciples: z.ZodArray; }, "strip", z.ZodTypeAny, { optionId: string; confidence: number; reasoning: string[]; appliedPrinciples: string[]; }, { optionId: string; confidence: number; reasoning: string[]; appliedPrinciples: string[]; }>; human: z.ZodObject<{ optionId: z.ZodString; matchedProtege: z.ZodBoolean; coaching: z.ZodNullable; }, "strip", z.ZodTypeAny, { optionId: string; matchedProtege: boolean; coaching: string | null; }, { optionId: string; matchedProtege: boolean; coaching: string | null; }>; }, "strip", z.ZodTypeAny, { baseline: { optionId: string; confidence: number; reasoning: string[]; }; protege: { optionId: string; confidence: number; reasoning: string[]; appliedPrinciples: string[]; }; human: { optionId: string; matchedProtege: boolean; coaching: string | null; }; }, { baseline: { optionId: string; confidence: number; reasoning: string[]; }; protege: { optionId: string; confidence: number; reasoning: string[]; appliedPrinciples: string[]; }; human: { optionId: string; matchedProtege: boolean; coaching: string | null; }; }>; export type RecommendationData = z.infer; export type ProtegeRecommendationData = z.infer; export type HumanDecisionData = z.infer; export type ThreeLayerBreakdownData = z.infer; //# sourceMappingURL=three-layer.d.ts.map