export type Role = 'system' | 'user' | 'assistant' | 'tool'; export interface ChatMessage { role: Role; content: string; name?: string; tool_calls?: ToolCall[]; tool_call_id?: string; timestamp?: number; } export interface ChatSession { id: string; title: string; createdAt: number; updatedAt: number; messages: ChatMessage[]; } export interface ChatSessionSummary { id: string; title: string; createdAt: number; updatedAt: number; messageCount: number; preview?: string; isActive?: boolean; } export interface ToolCall { id: string; type: 'function'; function: { name: string; arguments: string; }; } export interface ToolDefinition { name: string; description: string; parameters: { type: string; properties: Record; required?: string[]; }; } export interface ProviderConfig { apiKey?: string; baseUrl?: string; model: string; temperature?: number; maxTokens?: number; } export type ProviderType = 'ollama' | 'anthropic' | 'nvidia-nim' | 'openai' | 'gemini' | 'deepseek' | 'cohere' | 'cerebras' | 'vortex' | 'opencode' | 'openrouter' | 'custom' | 'mock'; export interface ModelInfo { id: string; name: string; provider: ProviderType; category: string; description: string; contextWindow?: number; isFree?: boolean; } export interface ProfileInfo { id: string; name: string; filePath: string; isActive: boolean; notesCount: number; lastModified: number; preview: string; } export type DebateDepth = 'quick' | 'deep' | 'rigorous'; export type AgentMode = 'vibe' | 'plan'; export interface AntriConfig { provider: ProviderType; model: string; version: string; mode?: AgentMode; alwaysAllow?: boolean; apiKeys: { deepseek?: string; openai?: string; gemini?: string; anthropic?: string; nvidia_nim?: string; cohere?: string; cerebras?: string; vortex?: string; opencode?: string; openrouter?: string; custom?: string; }; customBaseUrls?: { deepseek?: string; openai?: string; ollama?: string; nvidia_nim?: string; cohere?: string; cerebras?: string; vortex?: string; opencode?: string; custom?: string; }; backendUrl?: string; apiKeyPools?: Record; systemPrompt?: string; workingDir: string; autoExecuteTools: boolean; debateDepth?: DebateDepth; activeProfile?: string; } export interface StreamCallbacks { onToken: (token: string) => void; onToolCall?: (toolCall: ToolCall) => void; onError?: (err: Error) => void; onComplete?: (fullResponse: string) => void; } export interface ToolResult { tool_call_id: string; name: string; output: string; error?: boolean; } export interface SlashCommand { name: string; description: string; aliases?: string[]; } export interface DialecticStage { persona: 'proposer' | 'adversary' | 'researcher' | 'judge'; title: string; content: string; toolsUsed?: string[]; } export interface DialecticResult { query: string; depth: DebateDepth; thesis: string; antithesis: string; verification?: string; synthesis: string; stages: DialecticStage[]; sources?: string[]; } export type ArtifactType = 'html' | 'graph' | 'mindmap' | 'svg' | 'markdown' | 'bugtwin' | 'crashzero' | 'swarm'; export interface Artifact { id: string; sessionId: string; sessionTitle: string; title: string; type: ArtifactType; content: string; createdAt: number; } export type SwarmAgentRole = 'planner' | 'engineer' | 'security' | 'qa' | 'synthesizer'; export type SwarmNodeState = 'idle' | 'active' | 'streaming' | 'critique' | 'voting' | 'completed' | 'failed'; export interface SwarmNode { id: SwarmAgentRole; name: string; role: string; icon: string; color: string; state: SwarmNodeState; progress: number; tokensCount: number; output?: string; voteScore?: number; critique?: string; } export interface SwarmEdge { id: string; source: SwarmAgentRole; target: SwarmAgentRole; label: string; active: boolean; packetType?: 'spec' | 'code' | 'threat_model' | 'test_suite' | 'vote' | 'synthesis'; } export interface SwarmConsensus { score: number; votes: Record; verdict: 'unanimous' | 'consensus_approved' | 'disputed' | 'rejected'; rationale: string; } export interface SwarmResult { objective: string; blueprint: string; code: string; securityAudit: string; testSuite: string; synthesis: string; consensus: SwarmConsensus; nodes: SwarmNode[]; executionTimeMs: number; artifactId?: string; } //# sourceMappingURL=types.d.ts.map