index.ts
1 // Core Types for Kamaji Tauri Application 2 3 export interface Message { 4 role: 'user' | 'assistant' | 'system'; 5 content: string; 6 agentName?: string; 7 toolName?: string; 8 timing?: number; 9 timestamp: Date; 10 } 11 12 export interface Agent { 13 id: string; 14 name: string; 15 icon: string; 16 type: string; 17 level: IntelligenceLevel; 18 personality: { 19 name: string; 20 traits: string[]; 21 tone: string; 22 approach: string; 23 specialties: string[]; 24 }; 25 capabilities: Capability[]; 26 color: string; 27 } 28 29 export interface Capability { 30 name: string; 31 description: string; 32 } 33 34 export type IntelligenceLevel = 'Master' | 'Expert' | 'Advanced' | 'Autonomous' | 'Intermediate' | 'Basic'; 35 36 export interface ConsciousnessMetrics { 37 awareness: number; 38 thoughts: number; 39 questions: number; 40 mistakes: number; 41 } 42 43 export interface ConsciousnessStatus { 44 metrics: ConsciousnessMetrics; 45 recentThoughts: string[]; 46 personality: string; 47 } 48 49 export interface Command { 50 id: string; 51 name: string; 52 description: string; 53 category: 'core' | 'provider' | 'tools' | 'settings' | 'consciousness'; 54 shortcut?: string; 55 } 56 57 export interface ToolCall { 58 toolName: string; 59 arguments: string; 60 } 61 62 export interface ToolResult { 63 toolName: string; 64 result: string; 65 error?: string; 66 } 67 68 export interface AppState { 69 messages: Message[]; 70 selectedAgent: Agent | null; 71 loading: boolean; 72 streaming: boolean; 73 provider: string; 74 model: string; 75 consciousness: ConsciousnessStatus; 76 sidebarVisible: boolean; 77 commandPaletteVisible: boolean; 78 agentSelectorVisible: boolean; 79 } 80 81 export interface ProjectContext { 82 type: string; 83 fileCount: number; 84 workingDirectory: string; 85 }