export interface BaseResponse { schema_version: string; agent_version: string; prompt_version: string; model_version: string; } export interface EvidenceChain { source_type: string; doc_name: string; section: string; excerpt: string; basis_ref: string; } export interface PermissionItem { name: string; purpose: string; trigger_page: string; required: boolean; } export interface SdkItem { name: string; vendor: string; purpose: string; data_items: string[]; privacy_url: string; } export interface CaseContext { case_id: string; customer_id: string; customer_name: string; app_name: string; business_line: string; language: string; materials: { current_policy_text: string; prd_text: string; permission_items: PermissionItem[]; sdk_items: SdkItem[]; }; external_context: { peer_updates: string[]; regulatory_updates: string[]; }; metadata: { submitted_at: string; source: string; schema_version?: string; agent_version?: string; prompt_version?: string; model_version?: string; retry_count?: number; }; } export interface PeerRegSummary extends BaseResponse { insufficient_context?: boolean; peer_summary: string; reg_summary: string; reference_clauses: { source: string; source_metadata: { institution?: string; date?: string; link?: string; }; category: string; topic: string; clause: string; requirement_level: 'mandatory' | 'recommended' | 'reference'; applicability_reason: string; }[]; risk_alerts: string[]; } export interface GapAnalysis extends BaseResponse { insufficient_context?: boolean; gaps: { type: string; severity: 'high' | 'medium' | 'low'; description: string; evidence: EvidenceChain[]; }[]; rewrite_suggestions: { section: string; old_text: string; new_text: string; reason: string; basis_refs: string[]; }[]; uncertain_items: { category: string; description: string; }[]; redline_seed: { full_revised_draft: string; change_summary: string[]; redline_changes: { section: string; old_text: string; new_text: string; }[]; }; coverage_checklist: { item: string; covered: boolean; reason?: string; }[]; } export interface ComplianceCheck extends BaseResponse { insufficient_context?: boolean; risk_levels: { high: number; medium: number; low: number; }; compliance_gaps: { severity: 'high' | 'medium' | 'low'; item: string; basis: string; basis_id: string; }[]; pending_legal_items: string[]; conclusion: string; } export interface LegalReviewPack extends BaseResponse { legal_review_pack: { background: string; key_changes: string[]; risk_summary: string[]; pending_items: string[]; references: { source: string; url?: string; details: string; }[]; }; executive_summary: { overall_risk: 'high' | 'medium' | 'low'; key_issues: string[]; recommendation: string; }; delivery_summary: { target_audience: string; summary: string; }; review_recommendation: 'suggest_approve' | 'suggest_reject' | 'suggest_more_material'; focus_items: { priority: 'P0' | 'P1' | 'P2'; item: string; reason: string; }[]; } export interface MissingMaterialItem { material_type: string; requirement_level: 'required' | 'optional' | 'conditional'; reason: string; } export interface NeedMoreMaterialResponse extends BaseResponse { error_code: 'need_more_material'; message: string; missing_materials: MissingMaterialItem[]; } export interface LogAnalysisResult extends BaseResponse { insufficient_context?: boolean; summary: string; error_patterns: { pattern: string; count: number; first_seen?: string; last_seen?: string; level: 'high' | 'medium' | 'low'; sample_logs: string[]; }[]; timeline: { time: string; event: string; }[]; possible_causes: { cause: string; confidence: 'high' | 'medium' | 'low'; evidence: string[]; }[]; suggested_actions: string[]; risks: { risk: string; level: 'high' | 'medium' | 'low'; suggestion: string; }[]; need_human_review: boolean; confidence?: 'high' | 'medium' | 'low'; evidence?: string[]; report_markdown: string; } export interface CodeSecurityResult extends BaseResponse { insufficient_context?: boolean; risk_summary: string; vulnerabilities: { type: string; severity: 'critical' | 'high' | 'medium' | 'low' | 'info'; status: 'confirmed' | 'suspicious' | 'false_positive_candidate'; tool?: string; file: string; line: number; rule_id: string; description: string; evidence: string; impact: string; fix_suggestion: string; safe_example?: string; }[]; fix_plan: string[]; compliance_notes: string[]; need_security_review: boolean; confidence?: 'high' | 'medium' | 'low'; evidence?: string[]; report_markdown: string; } export interface RegulatoryPenaltySummary extends BaseResponse { insufficient_context?: boolean; topic: string; summary: string; risk_categories: { category: string; frequency: 'high' | 'medium' | 'low'; severity: 'high' | 'medium' | 'low'; description: string; typical_cases: { case_name: string; regulator: string; date: string; source_url: string; excerpt: string; }[]; suggestions: string[]; }[]; top_risks: string[]; action_suggestions: string[]; references: { source: string; url: string; details: string; }[]; briefing_markdown: string; }