/ app / src / types / index.ts
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  }