/ app / src / components / Sidebar.tsx
Sidebar.tsx
  1  import React from 'react';
  2  import { useApp } from '../contexts/AppContext';
  3  import { mockAgents } from '../data/mockData';
  4  import './Sidebar.css';
  5  
  6  const getLevelColor = (level: string): string => {
  7    const colors: Record<string, string> = {
  8      'Master': '#E6E6FA',
  9      'Expert': '#FF6B6B',
 10      'Advanced': '#7B68EE',
 11      'Autonomous': '#FFD700',
 12      'Intermediate': '#888888',
 13      'Basic': '#888888'
 14    };
 15    return colors[level] || '#888888';
 16  };
 17  
 18  export const Sidebar: React.FC = () => {
 19    const { provider, model, consciousness } = useApp();
 20  
 21    return (
 22      <div className="sidebar">
 23        <div className="sidebar-content">
 24          {/* Logo Section */}
 25          <div className="sidebar-section">
 26            <div className="sidebar-logo">
 27              <div className="logo-text">🔥 KAMAJI</div>
 28            </div>
 29          </div>
 30  
 31          {/* Working Directory */}
 32          <div className="sidebar-section">
 33            <h3 className="sidebar-header">📁 Working Directory</h3>
 34            <div className="sidebar-text">kamaji-tauri</div>
 35          </div>
 36  
 37          {/* Model Info */}
 38          <div className="sidebar-section">
 39            <h3 className="sidebar-header">🤖 AI Model</h3>
 40            <div className="sidebar-text">{model}</div>
 41            <div className="sidebar-subtext">via {provider}</div>
 42          </div>
 43  
 44          {/* Project Context */}
 45          <div className="sidebar-section">
 46            <h3 className="sidebar-header">📁 Project</h3>
 47            <div className="sidebar-text">TypeScript/React</div>
 48            <div className="sidebar-subtext">Tauri Application</div>
 49          </div>
 50  
 51          {/* Tools Section */}
 52          <div className="sidebar-section">
 53            <h3 className="sidebar-header">🔧 Tools</h3>
 54            <ul className="sidebar-list">
 55              <li>File Operations (5)</li>
 56              <li>Git Commands (4)</li>
 57              <li>Shell Execution (1)</li>
 58              <li>Code Analysis (1)</li>
 59            </ul>
 60            <div className="sidebar-total">Total: 11 tools</div>
 61          </div>
 62  
 63          {/* Agents Section */}
 64          <div className="sidebar-section">
 65            <h3 className="sidebar-header">🤖 Specialized Agents</h3>
 66            <ul className="sidebar-agents-list">
 67              {mockAgents.map(agent => (
 68                <li key={agent.id} className="sidebar-agent">
 69                  <span className="agent-icon">{agent.icon}</span>
 70                  <span className="agent-name">{agent.name}</span>
 71                  <span
 72                    className="agent-level"
 73                    style={{ color: getLevelColor(agent.level) }}
 74                  >
 75                    [{agent.level}]
 76                  </span>
 77                </li>
 78              ))}
 79            </ul>
 80            <div className="sidebar-hint">Press ^A to select</div>
 81          </div>
 82  
 83          {/* Navigation Section */}
 84          <div className="sidebar-section">
 85            <h3 className="sidebar-header">🧭 Navigation</h3>
 86            <ul className="sidebar-list">
 87              <li>furnace commands [^P]</li>
 88              <li>tools [^T]</li>
 89              <li>agents [^A]</li>
 90              <li>exit boiler [^C]</li>
 91            </ul>
 92          </div>
 93  
 94          {/* Consciousness Section */}
 95          <div className="sidebar-section">
 96            <h3 className="sidebar-header consciousness-header">🧠 Consciousness</h3>
 97            <div className="consciousness-metrics">
 98              <div className="metric">
 99                <span className="metric-label">Awareness:</span>
100                <span className="metric-value">{consciousness.metrics.awareness}%</span>
101              </div>
102              <div className="metric">
103                <span className="metric-label">Thoughts:</span>
104                <span className="metric-value">{consciousness.metrics.thoughts}</span>
105              </div>
106              <div className="metric">
107                <span className="metric-label">Questions:</span>
108                <span className="metric-value">{consciousness.metrics.questions}</span>
109              </div>
110              <div className="metric">
111                <span className="metric-label">Mistakes:</span>
112                <span className="metric-value">{consciousness.metrics.mistakes}</span>
113              </div>
114            </div>
115          </div>
116  
117          {/* Version Section */}
118          <div className="sidebar-section">
119            <h3 className="sidebar-header">🔥 Version Info</h3>
120            <div className="version-info">
121              <div>Version: 1.0.390</div>
122              <div>Build: 2025-11-01</div>
123            </div>
124          </div>
125        </div>
126      </div>
127    );
128  };