export type TaskProfile =
  | 'interactiveChat'
  | 'analysis'
  | 'summarization'
  | 'toolUse'
  | 'noteEnrichment'
  | 'relationshipInference'
  | 'ghostSynthesis'
  | 'memoStructuring';

export interface AgentTaskRoute {
  model: string;
}

export interface AgentConfigStatus {
  configured: boolean;
  remoteConfigured: boolean;
  remoteEnabled: boolean;
  hasRemoteApiKey: boolean;
  hasSecEdgarUserAgent: boolean;
  remoteBaseUrl: string;
  defaultRemoteModel: string;
  taskDefaults: Record<TaskProfile, AgentTaskRoute>;
  secEdgarUserAgent: string;
}

export interface SaveAgentRuntimeConfigRequest {
  remoteEnabled: boolean;
  remoteBaseUrl: string;
  defaultRemoteModel: string;
  taskDefaults: Record<TaskProfile, AgentTaskRoute>;
  secEdgarUserAgent: string;
}

export interface UpdateRemoteApiKeyRequest {
  apiKey: string;
}

export const TASK_PROFILES: TaskProfile[] = [
  'interactiveChat',
  'analysis',
  'summarization',
  'toolUse',
  'noteEnrichment',
  'relationshipInference',
  'ghostSynthesis',
  'memoStructuring',
];

export const TASK_LABELS: Record<TaskProfile, string> = {
  interactiveChat: 'Interactive Chat',
  analysis: 'Analysis',
  summarization: 'Summarization',
  toolUse: 'Tool Use',
  noteEnrichment: 'Note Enrichment',
  relationshipInference: 'Relationship Inference',
  ghostSynthesis: 'Ghost Synthesis',
  memoStructuring: 'Memo Structuring',
};
