This repository was archived by the owner on Apr 26, 2026. It is now read-only.
Repository navigation
Expand file tree
/
Copy pathtypes.ts
More file actions
95 lines (83 loc) · 2.23 KB
/
Copy pathtypes.ts
File metadata and controls
95 lines (83 loc) · 2.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
export type VerificationStatus = 'verified' | 'partial' | 'unverified' | 'disputed' | 'gap';
export type MatchType = 'exact' | 'semantic' | 'partial' | 'contradicts';
export type SourceType = 'official' | 'academic' | 'news' | 'blog' | 'forum' | 'social' | 'unknown';
export type ResearchDepth = 'quick' | 'standard' | 'deep';
export interface Source {
source_id: string;
url: string;
title: string;
author?: string;
publication_date?: string;
source_type: SourceType;
credibility_score: number;
credibility_factors?: string[];
}
export interface ClaimSource {
source_id: string;
verbatim_quote: string;
quote_context: string;
match_type: MatchType;
}
export interface Claim {
claim_id: string;
claim_text: string;
verification_status: VerificationStatus;
confidence: number;
sources: ClaimSource[];
verification_chain: string;
}
export interface DisputePosition {
position: string;
supporting_sources: string[];
}
export interface Dispute {
topic: string;
positions: DisputePosition[];
assessment: string;
}
export interface Summary {
executive_summary: string;
key_findings: string[];
confidence_overall: number;
gaps_identified: string[];
}
export interface ResearchMetadata {
research_timestamp: string;
sources_analyzed: number;
claims_extracted: number;
verification_rate: number;
model_used?: string;
voice_mode_active?: boolean;
}
export interface VoiceResponse {
spoken_summary: string;
spoken_claims: Array<{
claim_id: string;
spoken_text: string;
spoken_verification: string;
spoken_source: string;
}>;
confidence_spoken: string;
follow_up_prompts: string[];
}
export interface VerityResponse {
query: string;
summary: Summary;
claims: Claim[];
sources: Source[];
disputes?: Dispute[];
metadata: ResearchMetadata;
voice_response?: VoiceResponse;
groundingMetadata?: {
searchQueries: string[];
webSources: Array<{ uri: string; title: string }>;
};
}
export interface AppSettings {
voiceEnabled: boolean;
voiceName: 'Puck' | 'Charon' | 'Kore' | 'Fenrir' | 'Zephyr';
speechRate: number; // 0.5 to 2.0
autoRead: boolean;
verbosity: 'brief' | 'detailed';
}
export type DataUpdateHandler = (newData: Partial<VerityResponse>) => void;