| 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; |
| } |
|
|