ultisuite-client/lib/contacts/discovery-types.ts
R3D347HR4Y 9e9fd208ad
Some checks are pending
E2E / Playwright e2e (push) Waiting to run
feat(admin-settings): enhance admin settings with new components and layout improvements
- Introduced new components for managing admin settings, including AdminListControls, AdminSettingsCard, and TechBrandSelectLabel.
- Implemented dynamic loading for admin settings sections to optimize performance.
- Enhanced the layout of various admin settings sections for better user experience.
- Updated the AiAssistantSection to include LLM provider management and improved model selection.
- Refactored authentication settings to streamline configuration and improve accessibility.
2026-06-15 00:22:20 +02:00

187 lines
4.0 KiB
TypeScript

export type ApiLLMProviderType =
| "openai"
| "anthropic"
| "mistral"
| "azure_openai"
| "azure_ai_anthropic"
| "aws_bedrock"
| "google_gemini"
| "groq"
| "deepseek"
| "openrouter"
| "together"
| "fireworks"
| "xai"
| "ollama"
| "ollama_cloud"
| "custom"
export interface ApiLLMProvider {
id: string
name: string
type?: ApiLLMProviderType
base_url: string
api_key?: string
default_model: string
}
export interface ApiLLMSettings {
default_provider_id: string
providers: ApiLLMProvider[]
contact_discovery_model?: string
contact_discovery_provider_id?: string
}
export interface ApiLLMModelsResponse {
models: string[]
}
export type ApiSearchProviderType =
| "brave"
| "bing"
| "duckduckgo"
| "searxng"
| "custom"
export interface ApiSearchProvider {
id: string
name: string
type: ApiSearchProviderType
api_key?: string
base_url?: string
query_param?: string
auth_header?: string
results_path?: string
title_field?: string
url_field?: string
description_field?: string
}
export interface ApiSearchSettings {
default_provider_id: string
providers: ApiSearchProvider[]
}
export interface ApiDiscoveredEmail {
email: string
display_name: string
roles?: string[]
message_count: number
}
export interface ApiDiscoveredSignature {
id: string
message_id?: string
signature_text: string
message_date: string
confidence: number
}
export interface ApiEnrichedContactData {
first_name?: string
last_name?: string
company?: string
department?: string
job_title?: string
emails?: { value: string; label: string }[]
phones?: { value: string; label: string }[]
addresses?: {
street?: string
city?: string
region?: string
postal_code?: string
country?: string
label: string
}[]
website?: string
social_profiles?: { value: string; label: string }[]
notes?: string
}
export interface ApiDiscoveredProfile {
id: string
display_name: string
primary_email: string
all_emails: ApiDiscoveredEmail[]
message_count: number
sent_count: number
received_count: number
spam_count: number
forwarded_count: number
is_mailing_list: boolean
is_disposable: boolean
is_spam_heavy: boolean
classification_reason?: string
linked_contact_uid?: string
enrichment_status: 'pending' | 'enriching' | 'enriched' | 'skipped' | 'failed'
enriched_data?: ApiEnrichedContactData
status: 'suggested' | 'accepted' | 'rejected' | 'ignored' | 'blocked'
signatures?: ApiDiscoveredSignature[]
detected_in_accounts?: ApiAccountDetection[]
last_message_at?: string
}
export interface ApiEnrichmentSuggestion {
id: string
profile_id?: string
target_contact_uid?: string
suggestion_type: 'new_contact' | 'enrich_contact'
field_path: string
suggested_value: string
suggested_label: string
confidence: number
status: 'pending' | 'accepted' | 'rejected'
profile?: ApiDiscoveredProfile
}
export interface ApiAccountDetection {
account_id: string
account_email: string
account_name: string
message_count: number
}
export interface ApiDiscoveryScan {
id: string
status: 'pending' | 'running' | 'completed' | 'failed'
phase: 'pending' | 'scanning_messages' | 'building_profiles' | 'enriching' | 'done'
messages_scanned: number
total_messages: number
profiles_found: number
profiles_total: number
progress_percent: number
error_message?: string
started_at: string
updated_at: string
completed_at?: string
}
export interface ApiDiscoveryOtherPage {
groups: ApiDiscoveredProfileGroup[]
total: number
limit: number
offset: number
has_more: boolean
}
export interface ApiDiscoveredProfileGroup {
group_key: string
profile_ids: string[]
display_name: string
primary_email: string
message_count: number
profile: ApiDiscoveredProfile
profiles?: ApiDiscoveredProfile[]
}
export interface ApiDiscoveryCounts {
other_contacts: number
suggestions: number
ignored: number
blocked: number
}
export interface ApiDispositionEmails {
emails: string[]
}