From d24a8420d91b9179b80a1933f98e7315a6334a15 Mon Sep 17 00:00:00 2001 From: Muhammad Azis Date: Fri, 24 Apr 2026 09:13:22 +0700 Subject: [PATCH] feat: complete application update - agent system, canvas, chat UI, providers, docs Major changes: - Rewrite agent runner with ReAct pattern and multi-agent system - Add Excalidraw canvas integration with AI diagram generation - Enhance chat UI with execution timeline, thinking bubbles, markdown rendering - Add drawing service with auto-save per project - Redesign settings modal with provider management - Add enowX Labs built-in provider support - Comprehensive README with screenshots and architecture docs - Add CHANGELOG 61 files changed, +4576 insertions, -937 deletions --- CHANGELOG.md | 148 +++ README.md | 311 +++++- package.json | 1 + screenshots/.gitkeep | 0 screenshots/Excalidraw.png | Bin 0 -> 132546 bytes screenshots/Light Moded.png | Bin 0 -> 134127 bytes screenshots/Providers.png | Bin 0 -> 142025 bytes screenshots/enowX Flux.png | Bin 0 -> 150057 bytes src-tauri/Cargo.lock | 1 + src-tauri/Cargo.toml | 1 + src-tauri/capabilities/default.json | 2 +- .../20260422000_provider_enabled.sql | 2 + src-tauri/migrations/20260422001_drawings.sql | 11 + src-tauri/src/agents/runner.rs | 946 ++++++++++++++---- src-tauri/src/commands/agent.rs | 86 +- src-tauri/src/commands/chat.rs | 50 +- src-tauri/src/commands/drawing.rs | 20 + src-tauri/src/commands/mod.rs | 1 + src-tauri/src/commands/provider.rs | 9 + src-tauri/src/error.rs | 2 + src-tauri/src/lib.rs | 13 +- src-tauri/src/models/drawing.rs | 12 + src-tauri/src/models/mod.rs | 2 + src-tauri/src/models/provider.rs | 1 + src-tauri/src/services/chat_service.rs | 431 +++++++- src-tauri/src/services/drawing_service.rs | 60 ++ src-tauri/src/services/mod.rs | 1 + src-tauri/src/services/provider_service.rs | 24 +- src-tauri/src/state.rs | 89 +- src-tauri/src/tools/executor.rs | 14 +- src/App.tsx | 12 + src/components/canvas/ExcalidrawCanvas.tsx | 283 ++++++ src/components/chat/AgentRunCard.tsx | 215 ++-- src/components/chat/ChatInput.tsx | 2 +- src/components/chat/ChatInputBar.tsx | 152 ++- src/components/chat/ChatMessage.tsx | 250 +---- src/components/chat/ChatPanel.tsx | 138 ++- src/components/chat/HtmlPreview.tsx | 211 ++++ src/components/chat/MarkdownCodeBlock.tsx | 96 ++ src/components/chat/PermissionDialog.tsx | 4 +- src/components/chat/StreamingMessage.tsx | 17 +- src/components/chat/ThinkingBlock.tsx | 16 +- src/components/chat/ToolExecutionBlock.tsx | 57 +- src/components/chat/preview-styles.ts | 258 +++++ src/components/layout/AppFooter.tsx | 30 +- src/components/layout/AppShell.tsx | 248 ++++- src/components/layout/ChatHeader.tsx | 296 +++++- src/components/layout/LeftSidebar.tsx | 17 +- src/components/layout/RightSidebar.tsx | 19 +- .../onboarding/OnboardingWizard.tsx | 21 +- src/components/settings/AgentsTab.tsx | 2 +- src/components/settings/ProvidersTab.tsx | 440 ++++++-- src/components/settings/SettingsModal.tsx | 22 +- src/components/sidebar/ProjectSwitcher.tsx | 4 +- src/components/sidebar/SessionList.tsx | 48 +- src/components/ui/ConfirmDialog.tsx | 89 ++ src/components/ui/select.tsx | 12 +- src/index.css | 130 ++- src/lib/utils.ts | 147 +++ src/stores/useUIStore.ts | 38 + src/types/index.ts | 1 + 61 files changed, 4576 insertions(+), 937 deletions(-) create mode 100644 CHANGELOG.md create mode 100644 screenshots/.gitkeep create mode 100644 screenshots/Excalidraw.png create mode 100644 screenshots/Light Moded.png create mode 100644 screenshots/Providers.png create mode 100644 screenshots/enowX Flux.png create mode 100644 src-tauri/migrations/20260422000_provider_enabled.sql create mode 100644 src-tauri/migrations/20260422001_drawings.sql create mode 100644 src-tauri/src/commands/drawing.rs create mode 100644 src-tauri/src/models/drawing.rs create mode 100644 src-tauri/src/services/drawing_service.rs create mode 100644 src/components/canvas/ExcalidrawCanvas.tsx create mode 100644 src/components/chat/HtmlPreview.tsx create mode 100644 src/components/chat/MarkdownCodeBlock.tsx create mode 100644 src/components/chat/preview-styles.ts create mode 100644 src/components/ui/ConfirmDialog.tsx diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..021c20a --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,148 @@ +# Changelog + +All notable changes to enowX Coder are documented here. + +--- + +## [0.2.5] — 2026-04-23 + +### Excalidraw Canvas — Collaborative Whiteboard +- **New feature**: Full Excalidraw whiteboard integrated as a Canvas tab — switch between Chat and Canvas via segmented control in header +- Drawings persist per project in SQLite — auto-save every 1 second, auto-load on project switch +- Dark/light theme syncs with app theme toggle +- Full Excalidraw toolbar: shapes, arrows, text, freehand, colors, layers, export to disk + +### AI Canvas — Generate Diagrams with AI +- **New feature**: AI prompt bar floating at bottom of canvas — describe what to draw, AI generates Excalidraw elements +- AI generates native Excalidraw JSON (rectangles, ellipses, diamonds, text, arrows with bindings) +- **Context-aware editing**: Existing canvas elements are sent to AI as context — ask "change color of 2021 to yellow" and AI modifies only that element while preserving everything else +- Provider and model selector in canvas prompt bar (shared with chat) +- Merge behavior: AI returns full element set for edits, appends for new drawings + +### Conversation Memory — Smart Context Management +- **New feature**: AI now remembers previous messages in the same chat session +- Loads user messages + agent outputs from DB, interleaved chronologically +- **Sliding window**: Max 20 recent message pairs to prevent token overflow +- **Strip html:preview blocks**: Widget HTML (5-10KB each) compressed to ~300-500 byte summaries preserving chart data, labels, colors, metrics +- **Token budget**: History capped at ~32K chars (~8K tokens), prioritizing recent messages +- **Smart truncation**: User messages max 500 chars, assistant max 1500 chars, cut at word boundary +- `summarize_html_widget()` extracts Chart.js datasets, labels, colors, metric values from HTML for targeted edits + +### Provider System Overhaul +- **Enable/disable toggle**: Per-provider on/off switch in Settings detail panel — disabled providers hidden from chat dropdown +- **Add Provider flow**: "Custom" replaced with "+ Add Provider" button — create unlimited custom providers with name, base URL, API key, model +- User-created providers appear in sidebar list with enable/disable dot indicator +- Delete provider resets selection to enowX Labs +- `is_enabled` column added to providers table (migration) +- **Manual model add**: Input field in Available Models section — type model name, click Add, auto-enabled +- Manual models persist in DB and appear in list even after Settings reopen (merged with API-fetched models) + +### Token Optimization +- **MAX_REACT_ITERATIONS reduced**: 20 → 10 — prevents excessive API calls per request while still allowing complex tasks +- **Auto-select provider + model on app start**: If only 1 provider enabled, auto-selected as default. First available model auto-selected. No manual selection needed. +- Provider dropdown shows as label when only 1 provider (no unnecessary dropdown) + +### Dark Mode — Warm Claude Palette +- Replaced cold pure black (#0a0a0a) with warm Claude-inspired tones +- Background: #1a1816 (warm dark brown), Surface: #201e1b, Text: #e8e4de (warm off-white) +- Accent color: #D4845A (terracotta/copper) matching light mode +- Borders, links, focus rings all use warm tones +- Danger colors updated to Claude red palette (#E24B4A) + +### Markdown Table Fix +- `fixMarkdownTables()` rewritten — fixes malformed tables from streaming +- Auto-corrects separator row column count to match header +- Splits crammed rows (multiple rows on one line) +- Injects missing separator rows without duplicating between data rows +- Applied to both agent streaming output and final chat messages + +### Scroll Bounce Fix +- Removed gradient overlay conditional mount/unmount (caused layout shift loop) +- Added `isAutoScrolling` guard — scroll events from auto-scroll ignored +- Throttled streaming scroll to 80ms intervals +- `requestAnimationFrame` for scroll-to-bottom to avoid layout thrashing + +### UI Polish +- Left sidebar font sizes increased: project names, session titles, labels from 12px to 13px +- Model dropdown: `max-height: 360px` with scroll for long model lists +- Footer bar removed for cleaner layout +- Right sidebar toggle button in header (hidden when sidebar open) +- enowX Flux tooltip on hover with description and token usage info + +--- + +## [0.2.0] — 2026-04-22 + +### enowX Flux — Generative UI System +- **New feature**: enowX Flux — AI generates interactive charts, diagrams, SVG illustrations, dashboards, and widgets inline in chat +- Integrated Claude.ai's reverse-engineered design system (CSS variables, SVG color ramps, pre-styled form elements, light/dark mode) +- `html:preview` code blocks render as live interactive iframes with full JS/CSS support +- Chart.js, D3, Canvas, and CDN libraries supported inside previews +- Debounced iframe rendering during streaming (400ms) to prevent flicker +- Auto-resize iframe to match content height via direct DOM measurement + ResizeObserver +- Re-measure on window resize for responsive behavior +- Expand preview to fullscreen modal with source code view and copy button +- Toggle button in header to enable/disable Flux (saves ~3K tokens per request when off) +- Custom tooltip on hover explaining what enowX Flux does +- Enhanced `PREVIEW_GUIDE` with full Claude guidelines: diagram types, illustrative patterns, interactive examples, UI components, art/illustration + +### Welcome Screen +- Welcome screen with greeting + quick action chips (Write, Learn, Code, Personal, Brainstorm) +- Chips prefill prompt in input bar on click +- Auto-create project + session when user sends first message (no need to open folder first) +- Input bar always enabled — no more "Open a folder to start chatting" + +### Chat Improvements +- **Streaming output**: Agent responses now stream token-by-token with blinking cursor, instead of appearing all at once +- **Auto-rename chat**: After first AI response, LLM generates a short 2-5 word title (e.g. "Greeting", "React Auth Setup") +- **Copy response**: Copy button below each AI response with model name and generation duration +- **Agent info relocated**: Model name and duration moved to bottom of response, agent type stays at top +- **Markdown table fix**: `fixMarkdownTables()` utility fixes malformed tables from streaming — auto-corrects separator column count, splits crammed rows, injects missing separators +- **Scroll bounce fix**: Removed gradient overlay mount/unmount loop, added `isAutoScrolling` guard, throttled streaming scroll (80ms) + +### Sidebar +- **Left sidebar toggle**: Click logo icon to collapse/expand with smooth CSS grid animation (0.25s cubic-bezier) +- **Right sidebar toggle**: Toggle button inside sidebar header + in chat header when closed +- **Sidebar font size**: Increased project names, session titles, and labels from 12px to 13px for readability +- **Footer removed**: Cleaner layout, sidebar toggles moved to header + +### Settings & Providers +- **Custom provider fix**: Added "Default Model" input field for Custom/Ollama providers — fixes silent save failure +- **Error feedback**: Save errors now shown as red inline messages instead of silent `console.error` +- **Base URL save**: Can now save base URL even when provider doesn't exist yet (auto-creates) +- **Model dropdown scroll**: Fixed dropdown clipping — added `max-height: 360px` with scrollbar for long model lists + +### Header & Navigation +- **Rename chat**: Click pencil icon → inline edit with Enter/Escape +- **Three-dot menu**: New Chat + Delete Chat options +- **Delete confirmation**: Custom dark-themed confirm dialog (replaced broken native `window.confirm`) +- **Theme toggle**: Dark/light mode switch in header +- **enowX Flux toggle**: ON/OFF pill button with status tooltip + +### Theme & Design +- **Dark mode warm palette**: Replaced cold pure black (#0a0a0a) with warm Claude-inspired tones (#1a1816 bg, #e8e4de text, #D4845A accent) +- **Light/dark preview sync**: iframe previews now use class-based theme switching (`.light`/`.dark`) instead of `prefers-color-scheme` media query — syncs with app toggle +- **Tauri dialog permissions**: Upgraded from `dialog:allow-open` to `dialog:default` for full dialog support + +### Bug Fixes +- **Agent request fix**: Fixed parameter mismatch — frontend now wraps `run_agent` params in `request` object matching Rust `RunAgentRequest` struct +- **API key pre-flight**: Added validation check before API calls — clear error message instead of cryptic 401 +- **First message missing**: Fixed race condition where `setActiveSessionId` triggered DB reload that wiped optimistic user message +- **Clippy warnings**: Fixed all Rust clippy warnings — dead code removal, parameter struct refactoring, simplified patterns + +### Infrastructure +- **Tauri capabilities**: Added `dialog:default` permission for ask/confirm/message dialogs +- **Generate title command**: New `generate_title` Tauri command — LLM generates chat title via non-streaming API call + +--- + +## [0.1.0] — Initial Release + +- Tauri desktop app with Rust backend + React/TypeScript frontend +- Multi-agent system: Orchestrator, Planner, Coder FE/BE, Security, UX, UI, Tester, Reviewer, Researcher, Librarian +- Provider support: enowX Labs, OpenAI, Anthropic, Gemini, Ollama, Custom (OpenAI-compatible) +- Chat with streaming responses +- Tool execution: read_file, write_file, list_dir, search_files, run_command, web_search +- Settings modal with provider configuration and model management +- Project and session management +- Agent configuration per agent type diff --git a/README.md b/README.md index 102e366..73e083a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,310 @@ -# Tauri + React + Typescript +
-This template should help get you started developing with Tauri, React and Typescript in Vite. +# 🚀 enowX Coder -## Recommended IDE Setup +**Agentic Coding Tools - AI-Powered Development Assistant** -- [VS Code](https://code.visualstudio.com/) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer) +[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) +[![Tauri](https://img.shields.io/badge/Tauri-2.0-24C8DB?logo=tauri)](https://tauri.app) +[![React](https://img.shields.io/badge/React-19.1-61DAFB?logo=react)](https://react.dev) +[![Rust](https://img.shields.io/badge/Rust-1.75+-orange?logo=rust)](https://www.rust-lang.org) +[![TypeScript](https://img.shields.io/badge/TypeScript-5.8-3178C6?logo=typescript)](https://www.typescriptlang.org) + +*A powerful desktop application that combines AI agents with an intuitive interface for enhanced coding workflows* + +[Features](#-features) • [Installation](#-installation) • [Usage](#-usage) • [Architecture](#-architecture) • [Contributing](#-contributing) + +
+ +--- + +## ✨ Features + +### 🤖 AI-Powered Chat Interface +- **Multi-Provider Support**: Connect to enowX Labs, OpenAI, Anthropic, Google, or custom providers +- **Conversation Memory**: Smart context management with sliding window (up to 20 message pairs) +- **Agent Execution Timeline**: Visual representation of AI thinking process, tool usage, and results +- **Markdown Rendering**: Full GitHub-flavored markdown with syntax highlighting +- **Code Block Actions**: Copy, execute, or preview code directly from chat + +### 🎨 Excalidraw Canvas Integration +- **Collaborative Whiteboard**: Full-featured drawing canvas with shapes, arrows, text, and freehand tools +- **AI-Generated Diagrams**: Describe what you want to draw, AI generates native Excalidraw elements +- **Context-Aware Editing**: AI understands existing canvas elements for precise modifications +- **Auto-Save**: Drawings persist per project with 1-second auto-save +- **Theme Sync**: Dark/light mode automatically syncs with app theme + +### 🛠️ Advanced Agent System +- **Multiple Specialized Agents**: Orchestrator, Planner, Coder (FE/BE), Tester, Reviewer, Security, and more +- **Tool Execution**: File operations, shell commands, web scraping, and custom tools +- **Permission System**: User approval required for sensitive operations +- **Streaming Responses**: Real-time token streaming for immediate feedback + +### 🎯 Project Management +- **Multi-Project Support**: Switch between projects seamlessly +- **Session History**: Persistent chat sessions per project +- **SQLite Backend**: Fast, reliable local storage for all data + +### 🌓 Beautiful UI/UX +- **Warm Dark Mode**: Claude-inspired color palette with terracotta accents +- **Responsive Layout**: Three-panel layout with collapsible sidebars +- **Smooth Animations**: Polished transitions and micro-interactions +- **Accessibility**: Keyboard shortcuts and screen reader support + +--- + +## 📸 Screenshots + +### enowX Flux - AI Chat Interface +*Powerful AI-powered conversations with enowX Flux integration and warm Claude-inspired dark theme* + +![enowX Flux](screenshots/enowX%20Flux.png) + +### Chat Interface - Light Mode +*Clean and modern light theme for comfortable daytime coding* + +![Light Mode](screenshots/Light%20Moded.png) + +### Excalidraw Canvas +*Collaborative whiteboard with AI diagram generation* + +![Canvas](screenshots/Excalidraw.png) + +### Provider Settings +*Manage multiple AI providers and models with enable/disable toggles* + +![Settings](screenshots/Providers.png) + +--- + +## 🚀 Installation + +### Prerequisites +- **Node.js** 18+ or **Bun** 1.0+ +- **Rust** 1.75+ (for Tauri) +- **Git** + +### Quick Start + +```bash +# Clone the repository +git clone https://github.com/mhmmadazis/enowX-Coder.git +cd enowX-Coder + +# Install dependencies +npm install +# or +bun install + +# Run in development mode +npm run tauri dev +# or +bun run tauri dev +``` + +### Build for Production + +```bash +# Build the application +npm run tauri build +# or +bun run tauri build +``` + +The compiled application will be available in `src-tauri/target/release/bundle/`. + +--- + +## 🎯 Usage + +### Getting Started + +1. **Launch the Application** + - Run `npm run tauri dev` or open the built executable + +2. **Configure AI Provider** + - Click the settings icon (⚙️) in the top-right corner + - Navigate to "Providers" tab + - Add your API key for enowX Labs, OpenAI, Anthropic, or custom provider + - Enable the provider and select a model + +3. **Create a Project** + - Click "New Project" in the left sidebar + - Enter project name and optional path + - Start chatting with AI agents + +### Chat Commands + +- **Ask Questions**: Type naturally, AI understands context +- **Request Code**: "Create a React component for user authentication" +- **Execute Tools**: AI can read/write files, run shell commands (with permission) +- **Generate Diagrams**: Switch to Canvas tab and describe what to draw + +### Canvas Mode + +1. **Switch to Canvas**: Click "Canvas" in the header segmented control +2. **Draw Manually**: Use Excalidraw toolbar for shapes, arrows, text +3. **AI Generation**: Type prompt in bottom bar (e.g., "Draw a system architecture diagram") +4. **Edit with AI**: "Change the color of Database to blue" - AI modifies only that element + +### Keyboard Shortcuts + +- `Ctrl/Cmd + N` - New chat session +- `Ctrl/Cmd + ,` - Open settings +- `Ctrl/Cmd + B` - Toggle left sidebar +- `Ctrl/Cmd + Shift + B` - Toggle right sidebar +- `Esc` - Close dialogs/modals + +--- + +## 🏗️ Architecture + +### Tech Stack + +**Frontend** +- **React 19** - UI framework with concurrent features +- **TypeScript** - Type-safe development +- **Tailwind CSS 4** - Utility-first styling +- **Zustand** - Lightweight state management +- **Excalidraw** - Canvas whiteboard library + +**Backend** +- **Rust** - High-performance, memory-safe backend +- **Tauri 2** - Cross-platform desktop framework +- **SQLite** - Embedded database via rusqlite +- **Tokio** - Async runtime for concurrent operations + +### Project Structure + +``` +enowX-Coder/ +├── src/ # React frontend +│ ├── components/ # UI components +│ │ ├── chat/ # Chat interface components +│ │ ├── canvas/ # Excalidraw canvas +│ │ ├── layout/ # App shell and layout +│ │ ├── settings/ # Settings panels +│ │ └── ui/ # Reusable UI primitives +│ ├── stores/ # Zustand state stores +│ ├── types/ # TypeScript type definitions +│ └── lib/ # Utility functions +│ +├── src-tauri/ # Rust backend +│ ├── src/ +│ │ ├── agents/ # AI agent implementations +│ │ ├── commands/ # Tauri commands (IPC) +│ │ ├── services/ # Business logic layer +│ │ ├── models/ # Data models +│ │ ├── tools/ # Agent tool executors +│ │ └── state.rs # Application state +│ ├── migrations/ # SQLite schema migrations +│ └── Cargo.toml # Rust dependencies +│ +├── public/ # Static assets +├── screenshots/ # Application screenshots +└── CHANGELOG.md # Version history +``` + +### Key Components + +**Agent System** (`src-tauri/src/agents/`) +- `runner.rs` - Main agent execution loop with ReAct pattern +- `prompts/` - Specialized agent prompts (Orchestrator, Coder, Tester, etc.) + +**Services** (`src-tauri/src/services/`) +- `chat_service.rs` - Message handling, streaming, conversation memory +- `provider_service.rs` - AI provider management and API calls +- `drawing_service.rs` - Canvas persistence and AI diagram generation +- `agent_service.rs` - Agent configuration and execution + +**State Management** +- Frontend: Zustand stores for UI state, chat, projects, settings +- Backend: Tauri managed state with Arc> for thread-safe access + +--- + +## 🔧 Configuration + +### Environment Variables + +Create a `.env` file in the project root (optional): + +```env +# Default AI Provider +DEFAULT_PROVIDER=enowx-labs + +# API Keys (can also be set in UI) +ENOWX_API_KEY=your_key_here +OPENAI_API_KEY=your_key_here +ANTHROPIC_API_KEY=your_key_here +``` + +### Custom Providers + +Add custom AI providers via Settings UI: +1. Click "+ Add Provider" +2. Enter provider name, base URL, and API key +3. Add models manually or fetch from API +4. Enable provider and select model + +--- + +## 🤝 Contributing + +Contributions are welcome! Please follow these guidelines: + +1. **Fork the repository** +2. **Create a feature branch**: `git checkout -b feature/amazing-feature` +3. **Commit your changes**: `git commit -m 'feat: add amazing feature'` +4. **Push to the branch**: `git push origin feature/amazing-feature` +5. **Open a Pull Request** + +### Commit Convention + +Follow [Conventional Commits](https://www.conventionalcommits.org/): +- `feat:` - New feature +- `fix:` - Bug fix +- `refactor:` - Code refactoring +- `docs:` - Documentation changes +- `chore:` - Maintenance tasks +- `test:` - Test additions/changes + +### Development Guidelines + +- Run `cargo clippy` before committing Rust code +- Run `npm run build` to check TypeScript compilation +- Test on multiple platforms (Windows, macOS, Linux) +- Update CHANGELOG.md for notable changes + +--- + +## 📝 License + +This project is licensed under the **Apache License 2.0** - see the [LICENSE](LICENSE) file for details. + +--- + +## 🙏 Acknowledgments + +- **Tauri Team** - For the amazing cross-platform framework +- **Excalidraw** - For the collaborative whiteboard library +- **Anthropic** - For Claude AI inspiration and design patterns +- **enowX Labs** - For AI infrastructure and model access + +--- + +## 📞 Support + +- **Issues**: [GitHub Issues](https://github.com/mhmmadazis/enowX-Coder/issues) +- **Discussions**: [GitHub Discussions](https://github.com/mhmmadazis/enowX-Coder/discussions) +- **Email**: support@enowx.dev + +--- + +
+ +**Built with ❤️ by the enowX Community** + +⭐ Star this repo if you find it useful! + +
diff --git a/package.json b/package.json index fc7a71c..72d018c 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "tauri": "tauri" }, "dependencies": { + "@excalidraw/excalidraw": "^0.18.1", "@phosphor-icons/react": "^2.1.10", "@radix-ui/react-select": "^2.2.6", "@radix-ui/react-slot": "^1.2.4", diff --git a/screenshots/.gitkeep b/screenshots/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/screenshots/Excalidraw.png b/screenshots/Excalidraw.png new file mode 100644 index 0000000000000000000000000000000000000000..703fdc2b691bab5cbecfdc9589f5737209ccc8da GIT binary patch literal 132546 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
FJxM8WL*WC*KdI6v6{9>yBq> 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 KH7eBXBmN7yFNawG literal 0 HcmV?d00001 diff --git a/screenshots/Light Moded.png b/screenshots/Light Moded.png new file mode 100644 index 0000000000000000000000000000000000000000..ab1350a71629c2cb15ba040bb99f1c7ed675cb28 GIT binary patch literal 134127 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�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 literal 0 HcmV?d00001 diff --git a/screenshots/Providers.png b/screenshots/Providers.png new file mode 100644 index 0000000000000000000000000000000000000000..a2b83a3b30108993c85a39c6f3790f62a42d19c8 GIT binary patch literal 142025 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¬ekr(ZW*&M(ZXXY{xK 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 MW2@`cSMNRgKi>c!DgXcg literal 0 HcmV?d00001 diff --git a/screenshots/enowX Flux.png b/screenshots/enowX Flux.png new file mode 100644 index 0000000000000000000000000000000000000000..3fbba602e8df2575b4f60e1cf12e0768850b7437 GIT binary patch literal 150057 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

e%OJ- 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 or outer containers. The host app provides the background. Only set background on inner cards/surfaces using `var(--color-background-secondary)`. +- **Compact**: Show the essential visual inline. All explanatory text goes in your response text OUTSIDE the code block. +- **Text goes in your response, visuals go in the widget** — All explanatory text, descriptions, introductions, and summaries must be written as normal response text OUTSIDE the code block. The widget should contain ONLY the visual element. Never put paragraphs of explanation inside the HTML. +- **Streaming-safe**: `${bridge}`; + + if (/]/i.test(cleaned)) { + let result = cleaned.replace(/]*)>/i, ``); + if (/]/i.test(result)) { + return result.replace(/]*)>/i, `${headContent}`); + } + return result.replace(/]*)>/i, `${headContent}`); + } + + return `${headContent}${cleaned}`; +} + +export const HtmlPreview: React.FC = ({ code, title, onSendPrompt }) => { + const iframeRef = useRef(null); + const [expanded, setExpanded] = useState(false); + const [showSource, setShowSource] = useState(false); + const [copied, setCopied] = useState(false); + const [iframeHeight, setIframeHeight] = useState(200); + const theme = useUIStore((s) => s.theme); + + // Debounced srcdoc — only rebuild after code stops changing for 400ms + // This prevents iframe reload on every streaming token + const [debouncedCode, setDebouncedCode] = useState(code); + const debounceTimer = useRef | null>(null); + + useEffect(() => { + if (debounceTimer.current) clearTimeout(debounceTimer.current); + debounceTimer.current = setTimeout(() => { + setDebouncedCode(code); + }, 400); + return () => { if (debounceTimer.current) clearTimeout(debounceTimer.current); }; + }, [code]); + + const srcdoc = React.useMemo(() => buildSrcdoc(debouncedCode, theme), [debouncedCode, theme]); + + // Measure iframe content height directly via contentDocument (same-origin allowed by sandbox) + const pollTimers = useRef[]>([]); + + const measureHeight = useCallback(() => { + const iframe = iframeRef.current; + if (!iframe) return; + try { + const doc = iframe.contentDocument; + if (!doc?.body) return; + // Wrap all body content in a measuring div to get exact height + const h = doc.body.scrollHeight; + if (h > 20) { + setIframeHeight(h); + } + } catch {} + }, []); + + // Poll height after load and at intervals to catch async renders (Chart.js etc) + const startPolling = useCallback(() => { + pollTimers.current.forEach(clearTimeout); + pollTimers.current = []; + [0, 100, 300, 600, 1000, 2000, 4000].forEach((delay) => { + pollTimers.current.push(setTimeout(measureHeight, delay)); + }); + }, [measureHeight]); + + // Re-poll when debounced code changes (iframe reloads) + useEffect(() => { + startPolling(); + return () => pollTimers.current.forEach(clearTimeout); + }, [debouncedCode, startPolling]); + + // Re-measure on window resize so iframe adapts when user resizes the app + useEffect(() => { + let resizeRaf = 0; + const onResize = () => { + cancelAnimationFrame(resizeRaf); + resizeRaf = requestAnimationFrame(() => { + measureHeight(); + // Poll again after content reflows + setTimeout(measureHeight, 200); + setTimeout(measureHeight, 600); + }); + }; + window.addEventListener('resize', onResize); + return () => { + window.removeEventListener('resize', onResize); + cancelAnimationFrame(resizeRaf); + }; + }, [measureHeight]); + + // Listen for sendPrompt/openLink messages from iframe + useEffect(() => { + const handleMessage = (event: MessageEvent) => { + const data = event.data; + if (!data || typeof data !== 'object') return; + if (data.type === 'sendPrompt' && typeof data.text === 'string') { + onSendPrompt?.(data.text); + } + if (data.type === 'openLink' && typeof data.url === 'string') { + window.open(data.url, '_blank', 'noopener'); + } + }; + window.addEventListener('message', handleMessage); + return () => window.removeEventListener('message', handleMessage); + }, [onSendPrompt]); + + const handleCopy = useCallback(async () => { + await navigator.clipboard.writeText(code); + setCopied(true); + setTimeout(() => setCopied(false), 2000); + }, [code]); + + const displayTitle = React.useMemo(() => { + if (title) return title; + const match = /(.*?)<\/title>/i.exec(code); + if (match?.[1]) return match[1]; + return 'Preview'; + }, [title, code]); + + useEffect(() => { + if (!expanded) return; + const handleKey = (e: KeyboardEvent) => { if (e.key === 'Escape') setExpanded(false); }; + window.addEventListener('keydown', handleKey); + return () => window.removeEventListener('keydown', handleKey); + }, [expanded]); + + const btnClass = 'p-1.5 rounded-lg transition-all duration-150'; + const btnIdle = 'text-[var(--text-subtle)] hover:text-[var(--text-muted)] hover:bg-[var(--hover-bg)]'; + + return ( + <> + {expanded && ( + <div className="fixed inset-0 z-50 bg-[var(--overlay)] backdrop-blur-sm flex items-center justify-center p-6" onClick={() => setExpanded(false)}> + <div className="w-full max-w-5xl bg-[var(--surface)] border border-[var(--border)] rounded-2xl overflow-hidden shadow-2xl shadow-[var(--shadow)] flex flex-col" style={{ height: EXPANDED_HEIGHT }} onClick={(e) => e.stopPropagation()}> + <div className="flex items-center justify-between px-4 py-2 border-b border-[var(--border)] bg-[var(--surface-2)]"> + <span className="text-[12px] font-medium text-[var(--text-muted)]">{displayTitle}</span> + <div className="flex items-center gap-0.5"> + <button onClick={() => setShowSource(!showSource)} className={cn(btnClass, showSource ? 'text-[var(--accent)]' : btnIdle)} title={showSource ? 'Preview' : 'Source'}><Code size={14} /></button> + <button onClick={handleCopy} className={cn(btnClass, btnIdle)} title="Copy">{copied ? <Check size={14} className="text-[var(--accent)]" /> : <Copy size={14} />}</button> + <button onClick={() => setExpanded(false)} className={cn(btnClass, btnIdle)} title="Close (Esc)"><X size={14} /></button> + </div> + </div> + <div className="flex-1 overflow-hidden"> + {showSource ? ( + <pre className="h-full overflow-auto p-4 text-[13px] leading-relaxed font-mono text-[var(--text-muted)] bg-[var(--bg)] custom-scrollbar">{code}</pre> + ) : ( + <iframe srcDoc={srcdoc} sandbox="allow-scripts allow-same-origin" className="w-full h-full border-0 bg-transparent" title={displayTitle} /> + )} + </div> + </div> + </div> + )} + + {/* Seamless inline preview */} + <div className="group/preview relative my-2"> + <div className="absolute top-2 right-2 z-10 flex items-center gap-0.5 px-1.5 py-1 rounded-lg bg-[var(--surface)]/90 backdrop-blur-md border border-[var(--border)] shadow-sm opacity-0 group-hover/preview:opacity-100 transition-opacity duration-200 pointer-events-none group-hover/preview:pointer-events-auto"> + <button onClick={() => setShowSource(!showSource)} className={cn(btnClass, 'p-1', showSource ? 'text-[var(--accent)]' : btnIdle)} title={showSource ? 'Preview' : 'Source'}><Code size={13} /></button> + <button onClick={handleCopy} className={cn(btnClass, 'p-1', btnIdle)} title="Copy">{copied ? <Check size={13} className="text-[var(--accent)]" /> : <Copy size={13} />}</button> + <button onClick={() => setExpanded(true)} className={cn(btnClass, 'p-1', btnIdle)} title="Expand"><ArrowsOutSimple size={13} /></button> + </div> + + {showSource ? ( + <pre className="overflow-auto p-4 text-[13px] leading-relaxed font-mono text-[var(--text-muted)] bg-[var(--surface-2)] rounded-xl custom-scrollbar" style={{ maxHeight: '500px' }}>{code}</pre> + ) : ( + <iframe + ref={iframeRef} + srcDoc={srcdoc} + sandbox="allow-scripts allow-same-origin" + className="w-full border-0 bg-transparent rounded-xl" + style={{ height: `${iframeHeight}px`, overflow: 'hidden', display: 'block' }} + scrolling="no" + title={displayTitle} + onLoad={startPolling} + /> + )} + </div> + </> + ); +}; diff --git a/src/components/chat/MarkdownCodeBlock.tsx b/src/components/chat/MarkdownCodeBlock.tsx new file mode 100644 index 0000000..03107a6 --- /dev/null +++ b/src/components/chat/MarkdownCodeBlock.tsx @@ -0,0 +1,96 @@ +import React from 'react'; +import { Copy, Check } from '@phosphor-icons/react'; +import { HtmlPreview } from './HtmlPreview'; + +interface MarkdownCodeBlockProps { + inline?: boolean; + className?: string; + children?: React.ReactNode; +} + +/** + * Detect if a language tag is an HTML preview trigger. + * Supports: html:preview, html:artifact, html:viz, html:visual, html:render + */ +const isPreviewLang = (lang: string): boolean => + /^html:(preview|artifact|viz|visual|render)$/i.test(lang); + +/** + * Extract a title hint from the language tag, e.g. "html:preview:My Chart" → "My Chart" + */ +const extractPreviewTitle = (lang: string): string | undefined => { + const parts = lang.split(':'); + return parts.length >= 3 ? parts.slice(2).join(':') : undefined; +}; + +/** + * Detect if HTML code looks like a full interactive page that should be previewed. + */ +const looksLikeFullPage = (code: string): boolean => { + if (code.length < 100) return false; + const hasDoctype = /<!doctype\s+html/i.test(code); + const hasHtmlTag = /<html[\s>]/i.test(code); + const hasBodyTag = /<body[\s>]/i.test(code); + const hasScript = /<script[\s>]/i.test(code); + // Full page: has doctype or html tag, and has script + if ((hasDoctype || hasHtmlTag) && hasScript) return true; + // Canvas + script combo + if (/<canvas/i.test(code) && hasScript) return true; + // Has body + script + if (hasBodyTag && hasScript) return true; + return false; +}; + +export const MarkdownCodeBlock: React.FC<MarkdownCodeBlockProps> = ({ inline, className, children }) => { + const [copied, setCopied] = React.useState(false); + const code = String(children).replace(/\n$/, ''); + const lang = /language-(\S+)/.exec(className ?? '')?.[1] ?? ''; + + if (inline) { + return ( + <code className="px-1.5 py-0.5 rounded text-[0.84em] font-mono bg-[var(--surface-3)] text-[var(--text)] border border-[var(--border)]"> + {children} + </code> + ); + } + + // ── HTML Preview (explicit tag) ─────────────────────────── + if (isPreviewLang(lang)) { + const title = extractPreviewTitle(lang); + return <HtmlPreview code={code} title={title} />; + } + + // ── HTML Preview (auto-detect full page) ────────────────── + if (lang === 'html' && looksLikeFullPage(code)) { + return <HtmlPreview code={code} />; + } + + const handleCopy = async () => { + await navigator.clipboard.writeText(code); + setCopied(true); + setTimeout(() => setCopied(false), 2000); + }; + + // ── Normal code block ───────────────────────────────────── + const displayLang = lang.replace(/:.+$/, ''); + + return ( + <div className="my-3 rounded-xl overflow-hidden border border-[var(--border)]"> + <div className="flex items-center justify-between px-4 py-1.5 bg-[var(--surface-3)]"> + <span className="text-[11px] font-mono font-medium text-[var(--text-muted)] uppercase tracking-wider"> + {displayLang || 'code'} + </span> + <button + onClick={handleCopy} + className="flex items-center gap-1.5 px-2 py-0.5 rounded-md text-[11px] font-medium text-[var(--text-muted)] hover:text-[var(--text)] hover:bg-[var(--hover-bg)] transition-colors" + > + {copied ? <Check size={12} weight="bold" className="text-[var(--accent)]" /> : <Copy size={12} />} + {copied ? 'Copied' : 'Copy'} + </button> + </div> + <pre className="overflow-x-auto text-[13px] leading-relaxed bg-[var(--surface-2)] p-4 m-0"> + <code className={className}>{children}</code> + </pre> + </div> + ); +}; diff --git a/src/components/chat/PermissionDialog.tsx b/src/components/chat/PermissionDialog.tsx index 5c8d6f4..93afe3e 100644 --- a/src/components/chat/PermissionDialog.tsx +++ b/src/components/chat/PermissionDialog.tsx @@ -13,7 +13,7 @@ export function PermissionDialog({ request, onAllow, onDeny }: PermissionDialogP const agentLabel = AGENT_LABELS[request.agentType] || request.agentType; return ( - <div className="fixed inset-0 z-50 bg-black/70 backdrop-blur-sm flex items-center justify-center"> + <div className="fixed inset-0 z-50 bg-[var(--overlay)] backdrop-blur-sm flex items-center justify-center"> <div className="bg-[var(--surface)] border border-[var(--border)] rounded-2xl p-6 max-w-md w-full mx-4 shadow-xl"> <div className="flex items-center space-x-3 mb-4 text-[var(--text)]"> <Warning size={24} weight="duotone" className="text-yellow-500" /> @@ -46,7 +46,7 @@ export function PermissionDialog({ request, onAllow, onDeny }: PermissionDialogP </button> <button onClick={onAllow} - className="px-4 py-2 rounded-lg bg-white text-black hover:bg-gray-200 transition-colors text-sm font-medium" + className="px-4 py-2 rounded-lg bg-[var(--accent)] text-[var(--accent-fg)] hover:bg-[var(--accent-hover)] transition-colors text-sm font-medium" > Allow </button> diff --git a/src/components/chat/StreamingMessage.tsx b/src/components/chat/StreamingMessage.tsx index 8c462c0..b505d50 100644 --- a/src/components/chat/StreamingMessage.tsx +++ b/src/components/chat/StreamingMessage.tsx @@ -1,4 +1,5 @@ import React from 'react'; +import { Sparkle } from '@phosphor-icons/react'; import { useChatStore } from '@/stores/useChatStore'; export const StreamingMessage: React.FC = () => { @@ -7,18 +8,18 @@ export const StreamingMessage: React.FC = () => { if (!isStreaming) return null; return ( - <div className="flex flex-col gap-1.5 w-full"> - <div className="flex items-center gap-2 mb-1.5"> - <div className="w-6 h-6 rounded-md bg-[var(--surface-3)] border border-[var(--border)] flex items-center justify-center text-[10px] font-bold text-white shrink-0"> - AI - </div> - <span className="text-[12px] text-[var(--text-muted)] font-semibold tracking-wide">Assistant</span> + <div className="flex gap-3 w-full"> + {/* Avatar */} + <div className="w-7 h-7 rounded-full bg-[var(--accent)] flex items-center justify-center shrink-0 mt-0.5"> + <Sparkle size={14} weight="fill" className="text-[var(--accent-fg)]" /> </div> - <div className="w-full px-5 py-4 rounded-xl text-[15px] leading-relaxed bg-[var(--surface)] text-[var(--text)] border border-[var(--border-strong)] shadow-[inset_0_1px_0_rgba(255,255,255,0.04)]"> + + {/* Content */} + <div className="min-w-0 flex-1 pt-0.5 text-[15px] leading-relaxed text-[var(--text)]"> {streamingText ? ( <> <span className="whitespace-pre-wrap">{streamingText}</span> - <span className="inline-block w-0.5 h-4 bg-white/70 ml-0.5 align-middle animate-pulse" /> + <span className="inline-block w-0.5 h-4 bg-[var(--accent)] ml-0.5 align-middle animate-pulse rounded-full" /> </> ) : ( <span className="text-[var(--text-subtle)]" aria-label="Generating"> diff --git a/src/components/chat/ThinkingBlock.tsx b/src/components/chat/ThinkingBlock.tsx index d75ecbc..9d12936 100644 --- a/src/components/chat/ThinkingBlock.tsx +++ b/src/components/chat/ThinkingBlock.tsx @@ -15,22 +15,18 @@ export const ThinkingBlock: React.FC<ThinkingBlockProps> = ({ const [collapsed, setCollapsed] = useState(defaultCollapsed); return ( - <div className="rounded-lg border border-[var(--border)] bg-[var(--surface-2)]/60 overflow-hidden"> + <div> <button onClick={() => setCollapsed((v) => !v)} - className="w-full flex items-center justify-between px-3 py-2 text-left" + className="flex items-center gap-1.5 text-[12px] text-[var(--text-muted)] hover:text-[var(--text)] transition-colors py-1" > - <div className="flex items-center gap-2"> - <Brain size={13} weight="duotone" className="text-[var(--text-muted)]" /> - <span className="text-[11px] uppercase tracking-wider font-bold text-[var(--text-muted)]"> - {title} - </span> - </div> - {collapsed ? <CaretRight size={12} /> : <CaretDown size={12} />} + {collapsed ? <CaretRight size={10} weight="bold" /> : <CaretDown size={10} weight="bold" />} + <Brain size={12} weight="duotone" /> + <span className="font-medium">{title}</span> </button> {!collapsed && ( - <div className="px-3 pb-3 text-[12px] leading-relaxed text-[var(--text)] whitespace-pre-wrap"> + <div className="ml-5 pl-3 border-l-2 border-[var(--border)] text-[12px] leading-relaxed text-[var(--text-muted)] whitespace-pre-wrap mt-1 mb-1"> {content} </div> )} diff --git a/src/components/chat/ToolExecutionBlock.tsx b/src/components/chat/ToolExecutionBlock.tsx index c7ea43e..d161b87 100644 --- a/src/components/chat/ToolExecutionBlock.tsx +++ b/src/components/chat/ToolExecutionBlock.tsx @@ -9,10 +9,10 @@ interface ToolExecutionBlockProps { } const statusLabel = (status: ToolCall['status']) => { - if (status === 'failed') return 'Execute Failed'; - if (status === 'completed') return 'Result'; - if (status === 'running') return 'Running'; - return 'Queued'; + if (status === 'failed') return 'failed'; + if (status === 'completed') return 'done'; + if (status === 'running') return 'running'; + return 'queued'; }; export const ToolExecutionBlock: React.FC<ToolExecutionBlockProps> = ({ @@ -23,49 +23,42 @@ export const ToolExecutionBlock: React.FC<ToolExecutionBlockProps> = ({ const isFailed = tool.status === 'failed'; return ( - <div - className={cn( - 'rounded-lg border bg-[var(--surface-2)]/60 overflow-hidden', - isFailed ? 'border-white/35' : 'border-[var(--border)]' - )} - > + <div> <button onClick={() => setOpen((v) => !v)} - className="w-full flex items-center justify-between px-3 py-2 text-left" + className="flex items-center gap-1.5 text-[12px] text-[var(--text-muted)] hover:text-[var(--text)] transition-colors py-1" > - <div className="flex items-center gap-2"> - <Terminal size={13} weight="duotone" className="text-[var(--text-muted)]" /> - <span className="text-[11px] uppercase tracking-wider font-bold text-[var(--text-muted)]"> - Executed - </span> - <span - className={cn( - 'text-[10px] px-1.5 py-0.5 rounded border', - isFailed - ? 'text-white border-white/40 bg-white/5' - : 'text-[var(--text-subtle)] border-[var(--border)] bg-[var(--surface-3)]' - )} - > - {statusLabel(tool.status)} - </span> - </div> - {open ? <CaretDown size={12} /> : <CaretRight size={12} />} + {open ? <CaretDown size={10} weight="bold" /> : <CaretRight size={10} weight="bold" />} + <Terminal size={12} weight="duotone" /> + <span className="font-medium font-mono">{tool.toolName}</span> + <span + className={cn( + 'text-[10px] px-1.5 py-0.5 rounded-full', + isFailed + ? 'text-[var(--danger)] bg-[var(--danger-bg)]' + : tool.status === 'running' + ? 'text-[var(--accent)] bg-[var(--hover-bg)]' + : 'text-[var(--text-subtle)] bg-[var(--surface-3)]', + )} + > + {statusLabel(tool.status)} + </span> </button> {open && ( - <div className="px-3 pb-3 space-y-2"> - <div className="rounded border border-[var(--border)] bg-[var(--surface-3)] p-2 font-mono text-[11px] text-[var(--text)] whitespace-pre-wrap break-all"> + <div className="ml-5 pl-3 border-l-2 border-[var(--border)] space-y-1.5 mt-1 mb-1"> + <div className="font-mono text-[11px] text-[var(--text-muted)] whitespace-pre-wrap break-all bg-[var(--surface-2)] rounded-lg px-3 py-2"> {`> ${tool.toolName} ${tool.input}`} </div> {tool.output && ( - <div className="rounded border border-[var(--border)] bg-[var(--surface-3)]/70 p-2 font-mono text-[11px] text-[var(--text-muted)] whitespace-pre-wrap break-all"> + <div className="font-mono text-[11px] text-[var(--text-subtle)] whitespace-pre-wrap break-all bg-[var(--surface-2)] rounded-lg px-3 py-2 max-h-48 overflow-y-auto custom-scrollbar"> {tool.output} </div> )} {isFailed && ( - <div className="flex items-start gap-1.5 text-[11px] text-white border border-white/35 bg-white/5 rounded p-2"> + <div className="flex items-start gap-1.5 text-[11px] text-[var(--danger)] bg-[var(--danger-bg)] rounded-lg px-3 py-2"> <WarningCircle size={13} className="mt-0.5 shrink-0" /> <span>{tool.error ?? 'Tool execution failed.'}</span> </div> diff --git a/src/components/chat/preview-styles.ts b/src/components/chat/preview-styles.ts new file mode 100644 index 0000000..5ca0212 --- /dev/null +++ b/src/components/chat/preview-styles.ts @@ -0,0 +1,258 @@ +/** + * Design system CSS injected into every html:preview iframe. + * Theme is controlled by a class on <html>: .dark or .light. + * This is set by the host app based on its theme state, NOT by OS prefers-color-scheme. + */ + +export const PREVIEW_DESIGN_SYSTEM = ` +/* ── CSS Variables (dark mode default) ─────────────────────────────── */ +:root, .dark { + --p: #e0e0e0; + --s: #a0a0a0; + --t: #707070; + --bg2: #2a2a2a; + --b: #404040; + --color-text-primary: #e0e0e0; + --color-text-secondary: #a0a0a0; + --color-text-tertiary: #707070; + --color-text-info: #85B7EB; + --color-text-danger: #F09595; + --color-text-success: #97C459; + --color-text-warning: #EF9F27; + --color-background-primary: #1a1a1a; + --color-background-secondary: #2a2a2a; + --color-background-tertiary: #111111; + --color-background-info: #0C447C; + --color-background-danger: #791F1F; + --color-background-success: #27500A; + --color-background-warning: #633806; + --color-border-primary: rgba(255,255,255,0.4); + --color-border-secondary: rgba(255,255,255,0.3); + --color-border-tertiary: rgba(255,255,255,0.15); + --color-border-info: #85B7EB; + --color-border-danger: #F09595; + --color-border-success: #97C459; + --color-border-warning: #EF9F27; + --font-sans: system-ui, -apple-system, sans-serif; + --font-serif: Georgia, serif; + --font-mono: ui-monospace, monospace; + --border-radius-md: 8px; + --border-radius-lg: 12px; + --border-radius-xl: 16px; +} + +/* ── Light mode overrides (class-based, not media query) ───────────── */ +.light { + --p: #1a1a1a; + --s: #555555; + --t: #888888; + --bg2: #f5f5f0; + --b: #d8d5cc; + --color-text-primary: #1a1a1a; + --color-text-secondary: #555555; + --color-text-tertiary: #888888; + --color-text-info: #185FA5; + --color-text-danger: #A32D2D; + --color-text-success: #3B6D11; + --color-text-warning: #854F0B; + --color-background-primary: #ffffff; + --color-background-secondary: #f5f5f0; + --color-background-tertiary: #eaeae4; + --color-background-info: #E6F1FB; + --color-background-danger: #FCEBEB; + --color-background-success: #EAF3DE; + --color-background-warning: #FAEEDA; + --color-border-primary: rgba(0,0,0,0.4); + --color-border-secondary: rgba(0,0,0,0.2); + --color-border-tertiary: rgba(0,0,0,0.1); + --color-border-info: #378ADD; + --color-border-danger: #E24B4A; + --color-border-success: #639922; + --color-border-warning: #BA7517; +} + +/* ── Base styles ───────────────────────────────────────────────────── */ +* { box-sizing: border-box; } +body { + margin: 0; + padding: 1rem; + font-family: var(--font-sans); + font-size: 16px; + font-weight: 400; + line-height: 1.7; + color: var(--color-text-primary); + background: transparent; + -webkit-font-smoothing: antialiased; +} +h1 { font-size: 22px; font-weight: 500; margin: 0 0 12px; } +h2 { font-size: 18px; font-weight: 500; margin: 0 0 10px; } +h3 { font-size: 16px; font-weight: 500; margin: 0 0 8px; } + +/* ── SVG text classes ──────────────────────────────────────────────── */ +svg .t { font-family: var(--font-sans); font-size: 14px; fill: var(--p); } +svg .ts { font-family: var(--font-sans); font-size: 12px; fill: var(--s); } +svg .th { font-family: var(--font-sans); font-size: 14px; font-weight: 500; fill: var(--p); } + +/* ── SVG shape classes ─────────────────────────────────────────────── */ +svg .box { fill: var(--bg2); stroke: var(--b); } +svg .node { cursor: pointer; transition: opacity 0.15s; } +svg .node:hover { opacity: 0.8; } +svg .arr { stroke: var(--t); stroke-width: 1.5; fill: none; } +svg .leader { stroke: var(--t); stroke-width: 0.5; stroke-dasharray: 4 3; fill: none; } + +/* ── SVG Color Ramp Classes (dark mode default) ────────────────────── */ +svg .c-purple > rect, svg .c-purple > circle, svg .c-purple > ellipse { fill: #3C3489; stroke: #AFA9EC; stroke-width: 0.5; } +svg .c-purple > .th, svg .c-purple > .t { fill: #CECBF6; } +svg .c-purple > .ts { fill: #AFA9EC; } +svg rect.c-purple, svg circle.c-purple, svg ellipse.c-purple { fill: #3C3489; stroke: #AFA9EC; } + +svg .c-teal > rect, svg .c-teal > circle, svg .c-teal > ellipse { fill: #085041; stroke: #5DCAA5; stroke-width: 0.5; } +svg .c-teal > .th, svg .c-teal > .t { fill: #9FE1CB; } +svg .c-teal > .ts { fill: #5DCAA5; } +svg rect.c-teal, svg circle.c-teal, svg ellipse.c-teal { fill: #085041; stroke: #5DCAA5; } + +svg .c-coral > rect, svg .c-coral > circle, svg .c-coral > ellipse { fill: #712B13; stroke: #F0997B; stroke-width: 0.5; } +svg .c-coral > .th, svg .c-coral > .t { fill: #F5C4B3; } +svg .c-coral > .ts { fill: #F0997B; } +svg rect.c-coral, svg circle.c-coral, svg ellipse.c-coral { fill: #712B13; stroke: #F0997B; } + +svg .c-pink > rect, svg .c-pink > circle, svg .c-pink > ellipse { fill: #72243E; stroke: #ED93B1; stroke-width: 0.5; } +svg .c-pink > .th, svg .c-pink > .t { fill: #F4C0D1; } +svg .c-pink > .ts { fill: #ED93B1; } +svg rect.c-pink, svg circle.c-pink, svg ellipse.c-pink { fill: #72243E; stroke: #ED93B1; } + +svg .c-gray > rect, svg .c-gray > circle, svg .c-gray > ellipse { fill: #444441; stroke: #B4B2A9; stroke-width: 0.5; } +svg .c-gray > .th, svg .c-gray > .t { fill: #D3D1C7; } +svg .c-gray > .ts { fill: #B4B2A9; } +svg rect.c-gray, svg circle.c-gray, svg ellipse.c-gray { fill: #444441; stroke: #B4B2A9; } + +svg .c-blue > rect, svg .c-blue > circle, svg .c-blue > ellipse { fill: #0C447C; stroke: #85B7EB; stroke-width: 0.5; } +svg .c-blue > .th, svg .c-blue > .t { fill: #B5D4F4; } +svg .c-blue > .ts { fill: #85B7EB; } +svg rect.c-blue, svg circle.c-blue, svg ellipse.c-blue { fill: #0C447C; stroke: #85B7EB; } + +svg .c-green > rect, svg .c-green > circle, svg .c-green > ellipse { fill: #27500A; stroke: #97C459; stroke-width: 0.5; } +svg .c-green > .th, svg .c-green > .t { fill: #C0DD97; } +svg .c-green > .ts { fill: #97C459; } +svg rect.c-green, svg circle.c-green, svg ellipse.c-green { fill: #27500A; stroke: #97C459; } + +svg .c-amber > rect, svg .c-amber > circle, svg .c-amber > ellipse { fill: #633806; stroke: #EF9F27; stroke-width: 0.5; } +svg .c-amber > .th, svg .c-amber > .t { fill: #FAC775; } +svg .c-amber > .ts { fill: #EF9F27; } +svg rect.c-amber, svg circle.c-amber, svg ellipse.c-amber { fill: #633806; stroke: #EF9F27; } + +svg .c-red > rect, svg .c-red > circle, svg .c-red > ellipse { fill: #791F1F; stroke: #F09595; stroke-width: 0.5; } +svg .c-red > .th, svg .c-red > .t { fill: #F7C1C1; } +svg .c-red > .ts { fill: #F09595; } +svg rect.c-red, svg circle.c-red, svg ellipse.c-red { fill: #791F1F; stroke: #F09595; } + +/* ── Light mode color ramps (class-based) ──────────────────────────── */ +.light svg .c-purple > rect, .light svg .c-purple > circle, .light svg .c-purple > ellipse { fill: #EEEDFE; stroke: #7F77DD; } +.light svg .c-purple > .th, .light svg .c-purple > .t { fill: #3C3489; } +.light svg .c-purple > .ts { fill: #534AB7; } + +.light svg .c-teal > rect, .light svg .c-teal > circle, .light svg .c-teal > ellipse { fill: #E1F5EE; stroke: #1D9E75; } +.light svg .c-teal > .th, .light svg .c-teal > .t { fill: #085041; } +.light svg .c-teal > .ts { fill: #0F6E56; } + +.light svg .c-coral > rect, .light svg .c-coral > circle, .light svg .c-coral > ellipse { fill: #FAECE7; stroke: #D85A30; } +.light svg .c-coral > .th, .light svg .c-coral > .t { fill: #712B13; } +.light svg .c-coral > .ts { fill: #993C1D; } + +.light svg .c-pink > rect, .light svg .c-pink > circle, .light svg .c-pink > ellipse { fill: #FBEAF0; stroke: #D4537E; } +.light svg .c-pink > .th, .light svg .c-pink > .t { fill: #72243E; } +.light svg .c-pink > .ts { fill: #993556; } + +.light svg .c-gray > rect, .light svg .c-gray > circle, .light svg .c-gray > ellipse { fill: #F1EFE8; stroke: #888780; } +.light svg .c-gray > .th, .light svg .c-gray > .t { fill: #444441; } +.light svg .c-gray > .ts { fill: #5F5E5A; } + +.light svg .c-blue > rect, .light svg .c-blue > circle, .light svg .c-blue > ellipse { fill: #E6F1FB; stroke: #378ADD; } +.light svg .c-blue > .th, .light svg .c-blue > .t { fill: #0C447C; } +.light svg .c-blue > .ts { fill: #185FA5; } + +.light svg .c-green > rect, .light svg .c-green > circle, .light svg .c-green > ellipse { fill: #EAF3DE; stroke: #639922; } +.light svg .c-green > .th, .light svg .c-green > .t { fill: #27500A; } +.light svg .c-green > .ts { fill: #3B6D11; } + +.light svg .c-amber > rect, .light svg .c-amber > circle, .light svg .c-amber > ellipse { fill: #FAEEDA; stroke: #BA7517; } +.light svg .c-amber > .th, .light svg .c-amber > .t { fill: #633806; } +.light svg .c-amber > .ts { fill: #854F0B; } + +.light svg .c-red > rect, .light svg .c-red > circle, .light svg .c-red > ellipse { fill: #FCEBEB; stroke: #E24B4A; } +.light svg .c-red > .th, .light svg .c-red > .t { fill: #791F1F; } +.light svg .c-red > .ts { fill: #A32D2D; } + +.light svg rect.c-purple, .light svg circle.c-purple, .light svg ellipse.c-purple { fill: #EEEDFE; stroke: #7F77DD; } +.light svg rect.c-teal, .light svg circle.c-teal, .light svg ellipse.c-teal { fill: #E1F5EE; stroke: #1D9E75; } +.light svg rect.c-coral, .light svg circle.c-coral, .light svg ellipse.c-coral { fill: #FAECE7; stroke: #D85A30; } +.light svg rect.c-pink, .light svg circle.c-pink, .light svg ellipse.c-pink { fill: #FBEAF0; stroke: #D4537E; } +.light svg rect.c-gray, .light svg circle.c-gray, .light svg ellipse.c-gray { fill: #F1EFE8; stroke: #888780; } +.light svg rect.c-blue, .light svg circle.c-blue, .light svg ellipse.c-blue { fill: #E6F1FB; stroke: #378ADD; } +.light svg rect.c-green, .light svg circle.c-green, .light svg ellipse.c-green { fill: #EAF3DE; stroke: #639922; } +.light svg rect.c-amber, .light svg circle.c-amber, .light svg ellipse.c-amber { fill: #FAEEDA; stroke: #BA7517; } +.light svg rect.c-red, .light svg circle.c-red, .light svg ellipse.c-red { fill: #FCEBEB; stroke: #E24B4A; } + +/* ── Pre-styled form elements ──────────────────────────────────────── */ +button { + background: transparent; + border: 0.5px solid var(--color-border-secondary); + border-radius: var(--border-radius-md); + color: var(--color-text-primary); + padding: 6px 14px; + font-size: 14px; + cursor: pointer; + font-family: var(--font-sans); + transition: background 0.15s, transform 0.1s; +} +button:hover { background: var(--color-background-secondary); } +button:active { transform: scale(0.98); } + +input[type="range"] { + -webkit-appearance: none; + width: 100%; + height: 4px; + background: var(--color-border-secondary); + border-radius: 2px; + outline: none; +} +input[type="range"]::-webkit-slider-thumb { + -webkit-appearance: none; + width: 18px; + height: 18px; + border-radius: 50%; + background: var(--color-text-primary); + cursor: pointer; +} + +input[type="text"], input[type="number"], textarea, select { + height: 36px; + background: var(--color-background-primary); + border: 0.5px solid var(--color-border-tertiary); + border-radius: var(--border-radius-md); + color: var(--color-text-primary); + padding: 0 10px; + font-size: 14px; + font-family: var(--font-sans); + outline: none; + transition: border-color 0.15s; +} +input:hover, textarea:hover, select:hover { border-color: var(--color-border-secondary); } +input:focus, textarea:focus, select:focus { border-color: var(--color-border-primary); } + +/* ── Utility classes ───────────────────────────────────────────────── */ +.metric-card { + background: var(--color-background-secondary); + border: 0.5px solid var(--color-border-tertiary); + border-radius: var(--border-radius-lg); + padding: 16px; +} +.metric-value { font-size: 28px; font-weight: 500; color: var(--color-text-primary); } +.metric-label { font-size: 12px; color: var(--color-text-secondary); margin-top: 4px; } +.metric-change { font-size: 12px; margin-top: 4px; } +.metric-change.up { color: var(--color-text-success); } +.metric-change.down { color: var(--color-text-danger); } + +/* ── Fade-in animation for new elements ────────────────────────────── */ +@keyframes fadeIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } } +`; diff --git a/src/components/layout/AppFooter.tsx b/src/components/layout/AppFooter.tsx index 6f9fee9..08e8a30 100644 --- a/src/components/layout/AppFooter.tsx +++ b/src/components/layout/AppFooter.tsx @@ -4,13 +4,29 @@ import { useUIStore } from '@/stores/useUIStore'; import { cn } from '@/lib/utils'; export const AppFooter: React.FC = () => { - const { rightSidebarOpen, toggleRightSidebar } = useUIStore(); + const { leftSidebarOpen, toggleLeftSidebar, rightSidebarOpen, toggleRightSidebar } = useUIStore(); return ( - <footer className="h-9 flex items-center justify-between px-4 border-t border-[var(--border)] bg-[var(--surface)] col-span-3 shrink-0"> - <span className="text-[10px] text-[var(--text-subtle)] tracking-wide select-none"> - enowX Coder v0.1.0 - </span> + <footer + className="h-9 flex items-center justify-between px-4 border-t border-[var(--border)] bg-[var(--surface)] shrink-0 col-span-3" + > + <div className="flex items-center gap-3"> + <button + onClick={toggleLeftSidebar} + title={leftSidebarOpen ? 'Hide left panel' : 'Show left panel'} + className={cn( + 'flex items-center justify-center w-6 h-6 rounded-md transition-colors', + leftSidebarOpen + ? 'text-[var(--text-muted)] hover:text-[var(--text)] hover:bg-[var(--hover-bg)]' + : 'text-[var(--text-subtle)] hover:text-[var(--text-muted)] hover:bg-[var(--hover-bg)]' + )} + > + <SidebarSimple size={14} weight={leftSidebarOpen ? 'fill' : 'regular'} /> + </button> + <span className="text-[10px] text-[var(--text-subtle)] tracking-wide select-none"> + enowX Coder v0.1.0 + </span> + </div> <div className="flex items-center gap-3"> <span className="flex items-center gap-1 text-[10px] text-[var(--text-subtle)] select-none"> @@ -34,8 +50,8 @@ export const AppFooter: React.FC = () => { className={cn( 'flex items-center justify-center w-6 h-6 rounded-md transition-colors', rightSidebarOpen - ? 'text-[var(--text-muted)] hover:text-[var(--text)] hover:bg-white/5' - : 'text-[var(--text-subtle)] hover:text-[var(--text-muted)] hover:bg-white/5' + ? 'text-[var(--text-muted)] hover:text-[var(--text)] hover:bg-[var(--hover-bg)]' + : 'text-[var(--text-subtle)] hover:text-[var(--text-muted)] hover:bg-[var(--hover-bg)]' )} > <SidebarSimple size={14} weight={rightSidebarOpen ? 'fill' : 'regular'} className="scale-x-[-1]" /> diff --git a/src/components/layout/AppShell.tsx b/src/components/layout/AppShell.tsx index 8d8413a..adbdfdf 100644 --- a/src/components/layout/AppShell.tsx +++ b/src/components/layout/AppShell.tsx @@ -4,9 +4,9 @@ import { listen, UnlistenFn } from '@tauri-apps/api/event'; import { LeftSidebar } from '@/components/layout/LeftSidebar'; import { RightSidebar } from '@/components/layout/RightSidebar'; import { ChatHeader } from '@/components/layout/ChatHeader'; -import { AppFooter } from '@/components/layout/AppFooter'; + import { ChatPanel } from '@/components/chat/ChatPanel'; -import { ChatInputBar } from '@/components/chat/ChatInputBar'; +import { ChatInputBar, ChatInputBarHandle } from '@/components/chat/ChatInputBar'; import { PermissionDialog } from '@/components/chat/PermissionDialog'; import { useChatStore } from '@/stores/useChatStore'; import { useProjectStore } from '@/stores/useProjectStore'; @@ -15,19 +15,25 @@ import { useSettingsStore } from '@/stores/useSettingsStore'; import { useUIStore } from '@/stores/useUIStore'; import { useAgentStore } from '@/stores/useAgentStore'; import { SettingsModal } from '@/components/settings/SettingsModal'; -import { AgentConfig, AgentRunWithTools, AgentType, Message, PermissionRequest, Project, Session, ToolCall } from '@/types'; +import { ExcalidrawCanvas } from '@/components/canvas/ExcalidrawCanvas'; +import { AgentConfig, AgentRunWithTools, AgentType, Message, PermissionRequest, Project, Provider, ProviderModelConfig, Session, ToolCall } from '@/types'; +import { cn } from '@/lib/utils'; export const AppShell: React.FC = () => { const { addMessage, appendStreamToken, setStreaming, clearStreaming, setMessages } = useChatStore(); const setProjects = useProjectStore((s) => s.setProjects); + const addProject = useProjectStore((s) => s.addProject); const setActiveProjectId = useProjectStore((s) => s.setActiveProjectId); - const activeProjectId = useProjectStore((s) => s.activeProjectId); - const projects = useProjectStore((s) => s.projects); const activeSessionId = useSessionStore((s) => s.activeSessionId); const setSessions = useSessionStore((s) => s.setSessions); + const addSession = useSessionStore((s) => s.addSession); const setActiveSessionId = useSessionStore((s) => s.setActiveSessionId); - const { setProviders, setDefaultProviderId, defaultProviderId, selectedModelId } = useSettingsStore(); + const { setProviders, setDefaultProviderId, defaultProviderId, selectedModelId, setSelectedModelId } = useSettingsStore(); + const leftSidebarOpen = useUIStore((s) => s.leftSidebarOpen); + const toggleLeftSidebar = useUIStore((s) => s.toggleLeftSidebar); const rightSidebarOpen = useUIStore((s) => s.rightSidebarOpen); + const mainView = useUIStore((s) => s.mainView); + const { addAgentRun, setAgentRuns, @@ -41,6 +47,39 @@ export const AppShell: React.FC = () => { agentConfigs, } = useAgentStore(); + const chatInputRef = React.useRef<ChatInputBarHandle>(null); + + // Track which sessions have already been auto-renamed to avoid duplicates + const renamedSessionsRef = React.useRef<Set<string>>(new Set()); + + const autoRenameSession = React.useCallback((sessionId: string) => { + if (renamedSessionsRef.current.has(sessionId)) return; + + const session = useSessionStore.getState().sessions.find(s => s.id === sessionId); + if (!session || session.title !== 'New Chat') return; + + renamedSessionsRef.current.add(sessionId); + + // Ask the LLM to generate a short title based on the conversation + const { defaultProviderId: pid, selectedModelId: mid } = useSettingsStore.getState(); + invoke<string>('generate_title', { + sessionId, + providerId: pid ?? null, + modelId: mid ?? null, + }) + .then((title) => { + if (title && title !== 'New Chat') { + useSessionStore.getState().updateSessionTitle(sessionId, title); + invoke('update_session_title', { id: sessionId, title }).catch(console.error); + } + }) + .catch((err) => { + console.error('Auto-rename failed:', err); + // Remove from set so it can retry next time + renamedSessionsRef.current.delete(sessionId); + }); + }, []); + useEffect(() => { const loadPersistedData = async () => { try { @@ -85,11 +124,30 @@ export const AppShell: React.FC = () => { }, [setProjects, setActiveProjectId, setSessions, setActiveSessionId]); useEffect(() => { - invoke<{ id: string; name: string; model: string; isDefault: boolean }[]>('list_providers') - .then((ps) => { - setProviders(ps as Parameters<typeof setProviders>[0]); - const def = ps.find((p) => p.isDefault); - if (def) setDefaultProviderId(def.id); + invoke<Provider[]>('list_providers') + .then(async (ps) => { + setProviders(ps); + // Auto-select provider: default > first enabled > first any + const def = ps.find((p) => p.isDefault && p.isEnabled); + const firstEnabled = ps.find((p) => p.isEnabled); + const picked = def ?? firstEnabled ?? ps[0]; + if (picked) { + setDefaultProviderId(picked.id); + // Auto-select first model if none selected + if (!selectedModelId) { + try { + const models = await invoke<ProviderModelConfig[]>('list_provider_models', { providerId: picked.id }); + const enabled = models.filter((m) => m.enabled); + if (enabled.length > 0) { + setSelectedModelId(enabled[0].modelId); + } else { + // Fallback: fetch all available models + const allModels = await invoke<string[]>('list_models', { providerId: picked.id }); + if (allModels.length > 0) setSelectedModelId(allModels[0]); + } + } catch {} + } + } }) .catch(console.error); }, [setProviders, setDefaultProviderId]); @@ -110,7 +168,10 @@ export const AppShell: React.FC = () => { const sessionId = useSessionStore.getState().activeSessionId; if (sessionId) { invoke<Message[]>('get_messages', { sessionId }) - .then((msgs) => useChatStore.getState().setMessages(msgs)) + .then((msgs) => { + useChatStore.getState().setMessages(msgs); + autoRenameSession(sessionId); + }) .catch(console.error); } }); @@ -224,6 +285,12 @@ export const AppShell: React.FC = () => { output, completedAt: new Date().toISOString(), }); + + // Auto-rename after agent completes + const sessionId = useSessionStore.getState().activeSessionId; + if (sessionId) { + autoRenameSession(sessionId); + } } ); @@ -289,6 +356,14 @@ export const AppShell: React.FC = () => { useEffect(() => { if (!activeSessionId) return; + + // Skip DB reload for sessions we just created — they're empty and we already + // have the optimistic user message in the store. The reload would wipe it. + if (justCreatedSessionRef.current.has(activeSessionId)) { + justCreatedSessionRef.current.delete(activeSessionId); + return; + } + invoke<Message[]>('get_messages', { sessionId: activeSessionId }) .then(setMessages) .catch(console.error); @@ -317,19 +392,52 @@ export const AppShell: React.FC = () => { .catch(console.error); }, [activeSessionId, setMessages, setAgentRuns]); - const handleSend = async (content: string) => { - if (!activeSessionId) { - console.warn('No active session — open a folder first'); - return; + // Track sessions we just created so the activeSessionId effect doesn't wipe messages + const justCreatedSessionRef = React.useRef<Set<string>>(new Set()); + + const ensureSession = async (): Promise<{ sessionId: string; projectPath: string } | null> => { + let currentSessionId = useSessionStore.getState().activeSessionId; + let currentProjectId = useProjectStore.getState().activeProjectId; + const currentProjects = useProjectStore.getState().projects; + + // If we already have an active session, just return it + if (currentSessionId) { + const proj = currentProjects.find(p => p.id === currentProjectId); + return { sessionId: currentSessionId, projectPath: proj?.path ?? '' }; } - const activeProject = projects.find((p) => p.id === activeProjectId); - const projectPath = activeProject?.path ?? ''; + try { + // If no project exists, create a default one + if (!currentProjectId || currentProjects.length === 0) { + const project = await invoke<Project>('create_project', { name: 'Default', path: null }); + addProject(project); + setActiveProjectId(project.id); + currentProjectId = project.id; + } + + // Create a new session + const session = await invoke<Session>('create_session', { projectId: currentProjectId, title: 'New Chat' }); + addSession(session); + // Mark as just-created so the effect doesn't wipe our optimistic messages + justCreatedSessionRef.current.add(session.id); + setActiveSessionId(session.id); + return { sessionId: session.id, projectPath: currentProjects.find(p => p.id === currentProjectId)?.path ?? '' }; + } catch (err) { + console.error('Failed to auto-create session:', err); + return null; + } + }; + + const handleSend = async (content: string) => { + const ctx = await ensureSession(); + if (!ctx) return; + + const { sessionId: currentSessionId, projectPath } = ctx; if (selectedAgentType === 'orchestrator' || selectedAgentType === 'planner') { const userMsg: Message = { id: crypto.randomUUID(), - sessionId: activeSessionId, + sessionId: currentSessionId, role: 'user', content, createdAt: new Date().toISOString(), @@ -345,12 +453,15 @@ export const AppShell: React.FC = () => { try { await invoke('run_agent', { - sessionId: activeSessionId, - agentType: selectedAgentType, - task: content, - projectPath, - providerId: agentProviderId, - modelId: agentModelId, + request: { + sessionId: currentSessionId, + agentType: selectedAgentType, + task: content, + projectPath, + providerId: agentProviderId, + modelId: agentModelId, + fluxEnabled: useUIStore.getState().fluxEnabled, + }, onToken, }); } catch (err) { @@ -361,7 +472,7 @@ export const AppShell: React.FC = () => { const userMsg: Message = { id: crypto.randomUUID(), - sessionId: activeSessionId, + sessionId: currentSessionId, role: 'user', content, createdAt: new Date().toISOString(), @@ -376,7 +487,7 @@ export const AppShell: React.FC = () => { try { await invoke('send_message', { - sessionId: activeSessionId, + sessionId: currentSessionId, content, providerId: defaultProviderId ?? null, modelId: selectedModelId ?? null, @@ -388,6 +499,53 @@ export const AppShell: React.FC = () => { } }; + const handleStop = async () => { + const currentSessionId = useSessionStore.getState().activeSessionId; + + // 1. Stop chat streaming via backend cancellation + const { isStreaming, streamingText, clearStreaming } = useChatStore.getState(); + if (isStreaming && currentSessionId) { + try { + await invoke('cancel_chat', { sessionId: currentSessionId }); + } catch (e) { + console.error('Failed to cancel chat:', e); + } + // Save partial output as assistant message + if (streamingText.trim()) { + const partialMsg: Message = { + id: crypto.randomUUID(), + sessionId: currentSessionId, + role: 'assistant', + content: streamingText.trim(), + createdAt: new Date().toISOString(), + }; + useChatStore.getState().addMessage(partialMsg); + } + clearStreaming(); + } + + // 2. Cancel any running agent runs via backend cancellation + if (currentSessionId) { + const { agentRuns } = useAgentStore.getState(); + const runningAgents = agentRuns.filter((r) => r.status === 'running'); + if (runningAgents.length > 0) { + try { + // Cancel by session ID — this cancels the token that the agent runner uses + await invoke('cancel_agent', { id: currentSessionId }); + } catch (e) { + console.error('Failed to cancel agent:', e); + } + for (const run of runningAgents) { + updateAgentRun(run.id, { + status: 'failed', + error: 'Stopped by user', + completedAt: new Date().toISOString(), + }); + } + } + } + }; + const handlePermissionAllow = () => { if (!pendingPermission) return; invoke('agent_permission_response', { @@ -411,24 +569,36 @@ export const AppShell: React.FC = () => { className="bg-[var(--bg)] text-[var(--text)] h-screen w-screen overflow-hidden" style={{ display: 'grid', - gridTemplateColumns: rightSidebarOpen - ? 'var(--sidebar-width-left) 1fr var(--sidebar-width-right)' - : 'var(--sidebar-width-left) 1fr', - gridTemplateRows: '1fr auto', - transition: 'grid-template-columns 0.2s ease', + gridTemplateColumns: `${leftSidebarOpen ? 'var(--sidebar-width-left)' : '0px'} 1fr ${rightSidebarOpen ? 'var(--sidebar-width-right)' : '0px'}`, + gridTemplateRows: '1fr', + transition: 'grid-template-columns 0.25s cubic-bezier(0.4, 0, 0.2, 1)', }} > - <LeftSidebar /> + <div className={cn( + 'h-full overflow-hidden transition-opacity duration-200', + leftSidebarOpen ? 'opacity-100' : 'opacity-0 pointer-events-none' + )}> + <LeftSidebar /> + </div> <main className="flex flex-col overflow-hidden min-h-0"> - <ChatHeader /> - <ChatPanel /> - <ChatInputBar onSend={handleSend} /> + <ChatHeader onToggleLeftSidebar={!leftSidebarOpen ? toggleLeftSidebar : undefined} /> + {mainView === 'chat' ? ( + <> + <ChatPanel onChipClick={(text) => chatInputRef.current?.prefill(text)} /> + <ChatInputBar ref={chatInputRef} onSend={handleSend} onStop={handleStop} /> + </> + ) : ( + <ExcalidrawCanvas /> + )} </main> - {rightSidebarOpen && <RightSidebar />} - - <AppFooter /> + <div className={cn( + 'h-full overflow-hidden transition-opacity duration-200', + rightSidebarOpen ? 'opacity-100' : 'opacity-0 pointer-events-none' + )}> + <RightSidebar /> + </div> <SettingsModal /> diff --git a/src/components/layout/ChatHeader.tsx b/src/components/layout/ChatHeader.tsx index 120cb49..df8094f 100644 --- a/src/components/layout/ChatHeader.tsx +++ b/src/components/layout/ChatHeader.tsx @@ -1,37 +1,295 @@ -import React from 'react'; +import React, { useState, useRef, useEffect } from 'react'; +import { invoke } from '@tauri-apps/api/core'; import { useSessionStore } from '@/stores/useSessionStore'; -import { PencilSimple, DotsThreeVertical, ShareNetwork } from '@phosphor-icons/react'; +import { useProjectStore } from '@/stores/useProjectStore'; -export const ChatHeader: React.FC = () => { - const { activeSessionId, sessions } = useSessionStore(); +import { useChatStore } from '@/stores/useChatStore'; +import { useAgentStore } from '@/stores/useAgentStore'; +import { PencilSimple, DotsThreeVertical, Sun, Moon, Trash, Plus, Check, X, SidebarSimple, ChatCircle, PaintBrush } from '@phosphor-icons/react'; +import { ConfirmDialog } from '@/components/ui/ConfirmDialog'; +import { cn } from '@/lib/utils'; +import { useUIStore } from '@/stores/useUIStore'; +import { Session } from '@/types'; +import { generateId } from '@/lib/utils'; + +interface ChatHeaderProps { + onToggleLeftSidebar?: () => void; +} + +export const ChatHeader: React.FC<ChatHeaderProps> = ({ onToggleLeftSidebar }) => { + const { activeSessionId, sessions, updateSessionTitle, setActiveSessionId, addSession, removeSession, setSessions } = useSessionStore(); + const rightSidebarOpen = useUIStore((s) => s.rightSidebarOpen); + const toggleRightSidebar = useUIStore((s) => s.toggleRightSidebar); + const fluxEnabled = useUIStore((s) => s.fluxEnabled); + const toggleFlux = useUIStore((s) => s.toggleFlux); + const mainView = useUIStore((s) => s.mainView); + const setMainView = useUIStore((s) => s.setMainView); + const { activeProjectId } = useProjectStore(); + + const { theme, toggleTheme } = useUIStore(); const activeSession = sessions.find(s => s.id === activeSessionId); + const [isRenaming, setIsRenaming] = useState(false); + const [renameValue, setRenameValue] = useState(''); + const [menuOpen, setMenuOpen] = useState(false); + const [deleteConfirmOpen, setDeleteConfirmOpen] = useState(false); + const menuRef = useRef<HTMLDivElement>(null); + const renameInputRef = useRef<HTMLInputElement>(null); + + // Close menu on outside click + useEffect(() => { + if (!menuOpen) return; + const handleClick = (e: MouseEvent) => { + if (menuRef.current && !menuRef.current.contains(e.target as Node)) { + setMenuOpen(false); + } + }; + document.addEventListener('mousedown', handleClick); + return () => document.removeEventListener('mousedown', handleClick); + }, [menuOpen]); + + // Focus rename input when entering rename mode + useEffect(() => { + if (isRenaming && renameInputRef.current) { + renameInputRef.current.focus(); + renameInputRef.current.select(); + } + }, [isRenaming]); + + const handleStartRename = () => { + if (!activeSession) return; + setRenameValue(activeSession.title); + setIsRenaming(true); + }; + + const handleConfirmRename = async () => { + const trimmed = renameValue.trim(); + if (!trimmed || !activeSessionId) { + setIsRenaming(false); + return; + } + updateSessionTitle(activeSessionId, trimmed); + setIsRenaming(false); + try { + await invoke('update_session_title', { id: activeSessionId, title: trimmed }); + } catch (e) { + console.error('Failed to rename session:', e); + } + }; + + const handleCancelRename = () => { + setIsRenaming(false); + }; + + const handleNewChat = async () => { + setMenuOpen(false); + if (!activeProjectId) return; + const now = new Date().toISOString(); + const tempSession = { id: generateId(), projectId: activeProjectId, title: 'New Chat', createdAt: now, updatedAt: now }; + addSession(tempSession); + setActiveSessionId(tempSession.id); + try { + const created = await invoke<Session>('create_session', { projectId: activeProjectId, title: 'New Chat' }); + const currentSessions = useSessionStore.getState().sessions; + setSessions(currentSessions.map(s => s.id === tempSession.id ? created : s)); + setActiveSessionId(created.id); + } catch (e) { + console.error('Failed to create session:', e); + } + }; + + const handleDeleteChat = () => { + setMenuOpen(false); + if (!activeSessionId || !activeSession) return; + setDeleteConfirmOpen(true); + }; + + const confirmDelete = async () => { + setDeleteConfirmOpen(false); + if (!activeSessionId) return; + removeSession(activeSessionId); + useChatStore.getState().setMessages([]); + useAgentStore.getState().setAgentRuns([]); + try { + await invoke('delete_session', { id: activeSessionId }); + } catch (e) { + console.error('Failed to delete session:', e); + } + }; + + + return ( + <> <header className="h-16 border-b border-[var(--border)] bg-[var(--surface)] flex items-center justify-between px-6 backdrop-blur-md sticky top-0 z-10"> <div className="flex items-center gap-3 min-w-0"> - <h1 className="text-sm font-bold truncate tracking-tight"> - {activeSession ? activeSession.title : 'Chat'} - </h1> - <button className="p-1 rounded hover:bg-[var(--surface-2)] text-[var(--text-muted)] transition-colors"> - <PencilSimple size={14} /> - </button> + {onToggleLeftSidebar && ( + <button + onClick={onToggleLeftSidebar} + className="p-1.5 rounded-lg hover:bg-[var(--hover-bg)] text-[var(--text-muted)] hover:text-[var(--text)] transition-colors" + title="Open sidebar" + > + <SidebarSimple size={18} /> + </button> + )} + {isRenaming ? ( + <div className="flex items-center gap-1.5"> + <input + ref={renameInputRef} + value={renameValue} + onChange={(e) => setRenameValue(e.target.value)} + onKeyDown={(e) => { + if (e.key === 'Enter') void handleConfirmRename(); + if (e.key === 'Escape') handleCancelRename(); + }} + className="text-sm font-bold bg-[var(--surface-2)] border border-[var(--border)] rounded px-2 py-1 w-48 focus:border-[var(--focus-border)] transition-colors" + /> + <button onClick={() => void handleConfirmRename()} className="p-1 rounded hover:bg-[var(--hover-bg)] text-[var(--text-muted)] hover:text-[var(--text)] transition-colors"> + <Check size={14} /> + </button> + <button onClick={handleCancelRename} className="p-1 rounded hover:bg-[var(--hover-bg)] text-[var(--text-muted)] hover:text-[var(--text)] transition-colors"> + <X size={14} /> + </button> + </div> + ) : ( + <> + <h1 className="text-sm font-bold truncate tracking-tight"> + {activeSession ? activeSession.title : 'Chat'} + </h1> + {activeSession && ( + <button + onClick={handleStartRename} + className="p-1 rounded hover:bg-[var(--hover-bg)] text-[var(--text-muted)] hover:text-[var(--text)] transition-colors" + title="Rename chat" + > + <PencilSimple size={14} /> + </button> + )} + </> + )} </div> - <div className="flex items-center gap-4"> - <div className="flex items-center gap-1.5 bg-[var(--surface-2)]/50 px-3 py-1.5 rounded-full border border-[var(--border)]"> - <div className="w-1.5 h-1.5 rounded-full bg-[var(--text-subtle)]" /> - <span className="text-[10px] font-bold uppercase tracking-widest text-[var(--text-muted)]">Ollama / DeepSeek-V3</span> + <div className="flex items-center gap-3"> + {/* View tabs: Chat / Canvas */} + <div className="flex items-center bg-[var(--surface-2)]/50 rounded-lg border border-[var(--border)] p-0.5"> + <button + onClick={() => setMainView('chat')} + className={cn( + 'flex items-center gap-1.5 px-2.5 py-1 rounded-md text-[11px] font-semibold transition-all', + mainView === 'chat' + ? 'bg-[var(--surface)] text-[var(--text)] shadow-sm' + : 'text-[var(--text-subtle)] hover:text-[var(--text-muted)]' + )} + > + <ChatCircle size={13} weight={mainView === 'chat' ? 'fill' : 'regular'} /> + Chat + </button> + <button + onClick={() => setMainView('canvas')} + className={cn( + 'flex items-center gap-1.5 px-2.5 py-1 rounded-md text-[11px] font-semibold transition-all', + mainView === 'canvas' + ? 'bg-[var(--surface)] text-[var(--text)] shadow-sm' + : 'text-[var(--text-subtle)] hover:text-[var(--text-muted)]' + )} + > + <PaintBrush size={13} weight={mainView === 'canvas' ? 'fill' : 'regular'} /> + Canvas + </button> + </div> + + <div className="relative group/flux"> + <button + onClick={toggleFlux} + className={cn( + 'flex items-center gap-2 px-3 py-1.5 rounded-full border text-[11px] font-bold tracking-wide transition-all duration-200', + fluxEnabled + ? 'bg-[var(--accent)]/10 border-[var(--accent)]/30 text-[var(--accent)]' + : 'bg-[var(--surface-2)]/50 border-[var(--border)] text-[var(--text-subtle)]' + )} + > + <div className={cn( + 'w-1.5 h-1.5 rounded-full transition-colors', + fluxEnabled ? 'bg-[var(--accent)]' : 'bg-[var(--text-subtle)]' + )} /> + enowX Flux + </button> + <div className="absolute top-full right-0 mt-2 w-64 p-3 rounded-xl bg-[var(--surface-2)] border border-[var(--border)] shadow-xl opacity-0 invisible group-hover/flux:opacity-100 group-hover/flux:visible transition-all duration-200 z-50 pointer-events-none"> + <p className="text-[12px] font-semibold text-[var(--text)] mb-1"> + {fluxEnabled ? 'enowX Flux is ON' : 'enowX Flux is OFF'} + </p> + <p className="text-[11px] text-[var(--text-muted)] leading-relaxed"> + {fluxEnabled + ? 'AI can generate interactive charts, diagrams, and visual widgets inline in chat. Uses ~3K extra tokens per request.' + : 'Text-only mode. AI won\'t generate visuals — saves tokens and speeds up responses.'} + </p> + </div> </div> <div className="flex items-center gap-1"> - <button className="p-2 rounded-lg hover:bg-[var(--surface-2)] text-[var(--text-muted)] hover:text-[var(--text)] transition-colors"> - <ShareNetwork size={20} /> - </button> - <button className="p-2 rounded-lg hover:bg-[var(--surface-2)] text-[var(--text-muted)] hover:text-[var(--text)] transition-colors"> - <DotsThreeVertical size={20} weight="bold" /> + <button + onClick={toggleTheme} + className="p-2 rounded-lg hover:bg-[var(--hover-bg)] text-[var(--text-muted)] hover:text-[var(--text)] transition-colors" + title={theme === 'dark' ? 'Switch to light mode' : 'Switch to dark mode'} + > + {theme === 'dark' ? <Sun size={20} /> : <Moon size={20} />} </button> + + {/* Three-dot menu */} + <div className="relative" ref={menuRef}> + <button + onClick={() => setMenuOpen(!menuOpen)} + className="p-2 rounded-lg hover:bg-[var(--surface-2)] text-[var(--text-muted)] hover:text-[var(--text)] transition-colors" + title="Chat options" + > + <DotsThreeVertical size={20} weight="bold" /> + </button> + + {menuOpen && ( + <div className="absolute right-0 top-full mt-1 w-44 bg-[var(--surface-2)] border border-[var(--border)] rounded-lg shadow-xl overflow-hidden z-50"> + <button + onClick={() => void handleNewChat()} + className="w-full flex items-center gap-2.5 px-3 py-2.5 text-xs text-[var(--text)] hover:bg-[var(--hover-bg-strong)] transition-colors" + > + <Plus size={14} /> + New Chat + </button> + {activeSession && ( + <button + onClick={() => void handleDeleteChat()} + className="w-full flex items-center gap-2.5 px-3 py-2.5 text-xs text-[var(--danger-hover)] hover:bg-[var(--danger-bg)] transition-colors" + > + <Trash size={14} /> + Delete Chat + </button> + )} + </div> + )} + </div> + + {!rightSidebarOpen && ( + <button + onClick={toggleRightSidebar} + className="p-2 rounded-lg hover:bg-[var(--surface-2)] text-[var(--text-muted)] hover:text-[var(--text)] transition-colors" + title="Show right panel" + > + <SidebarSimple size={20} className="scale-x-[-1]" /> + </button> + )} </div> </div> </header> + + <ConfirmDialog + open={deleteConfirmOpen} + title="Delete Chat" + message={`Are you sure you want to delete "${activeSession?.title ?? 'this chat'}"? This action cannot be undone.`} + confirmLabel="Delete" + cancelLabel="Cancel" + danger + onConfirm={() => void confirmDelete()} + onCancel={() => setDeleteConfirmOpen(false)} + /> + </> ); }; diff --git a/src/components/layout/LeftSidebar.tsx b/src/components/layout/LeftSidebar.tsx index d9fcdce..4dbcd43 100644 --- a/src/components/layout/LeftSidebar.tsx +++ b/src/components/layout/LeftSidebar.tsx @@ -6,21 +6,26 @@ import { useUIStore } from '@/stores/useUIStore'; export const LeftSidebar: React.FC = () => { const setSettingsOpen = useUIStore((s) => s.setSettingsOpen); + const toggleLeftSidebar = useUIStore((s) => s.toggleLeftSidebar); return ( <aside className="h-full bg-[var(--surface)] border-r border-[var(--border)] flex flex-col w-[var(--sidebar-width-left)]"> <div className="flex items-center gap-2 p-4 border-b border-[var(--border)]"> - <div className="w-7 h-7 rounded-lg bg-[var(--surface-3)] border border-[var(--border)] flex items-center justify-center"> - <SidebarSimple size={15} weight="fill" className="text-white" /> - </div> - <span className="font-bold text-sm tracking-tight text-white">enowX Coder</span> + <button + onClick={toggleLeftSidebar} + className="w-7 h-7 rounded-lg bg-[var(--surface-3)] border border-[var(--border)] flex items-center justify-center hover:bg-[var(--surface-2)] transition-colors" + title="Toggle sidebar" + > + <SidebarSimple size={15} weight="fill" className="text-[var(--text)]" /> + </button> + <span className="font-bold text-sm tracking-tight text-[var(--text)]">enowX Coder</span> </div> <div className="px-3 pt-3 pb-2"> <ProjectSwitcher /> </div> - <div className="px-4 pt-2 pb-1 text-[10px] uppercase tracking-widest font-semibold text-[var(--text-subtle)] select-none"> + <div className="px-4 pt-2 pb-1 text-[11px] uppercase tracking-widest font-semibold text-[var(--text-subtle)] select-none"> History </div> @@ -31,7 +36,7 @@ export const LeftSidebar: React.FC = () => { <div className="p-3 border-t border-[var(--border)]"> <button onClick={() => setSettingsOpen(true)} - className="w-full flex items-center gap-2.5 px-3 py-2 rounded-lg text-[var(--text-muted)] hover:text-[var(--text)] hover:bg-white/5 transition-colors text-sm" + className="w-full flex items-center gap-2.5 px-3 py-2 rounded-lg text-[var(--text-muted)] hover:text-[var(--text)] hover:bg-[var(--hover-bg)] transition-colors text-sm" > <GearSix size={16} /> <span>Settings</span> diff --git a/src/components/layout/RightSidebar.tsx b/src/components/layout/RightSidebar.tsx index f77e9ae..a5945f0 100644 --- a/src/components/layout/RightSidebar.tsx +++ b/src/components/layout/RightSidebar.tsx @@ -1,11 +1,13 @@ import React, { useState } from 'react'; -import { Robot, Code, ChartBar, TerminalWindow, Cpu, Books } from '@phosphor-icons/react'; +import { Robot, Code, ChartBar, TerminalWindow, Cpu, Books, SidebarSimple } from '@phosphor-icons/react'; import { cn } from '@/lib/utils'; +import { useUIStore } from '@/stores/useUIStore'; type Tab = 'agents' | 'skills' | 'metrics'; export const RightSidebar: React.FC = () => { const [activeTab, setActiveTab] = useState<Tab>('agents'); + const toggleRightSidebar = useUIStore((s) => s.toggleRightSidebar); const tabs = [ { id: 'agents' as Tab, icon: Robot, label: 'Agents' }, @@ -15,7 +17,14 @@ export const RightSidebar: React.FC = () => { return ( <aside className="h-full bg-[var(--surface)] border-l border-[var(--border)] flex flex-col w-[var(--sidebar-width-right)]"> - <div className="flex border-b border-[var(--border)]"> + <div className="flex items-center border-b border-[var(--border)]"> + <button + onClick={toggleRightSidebar} + className="p-2.5 text-[var(--text-muted)] hover:text-[var(--text)] hover:bg-[var(--surface-2)] transition-colors shrink-0" + title="Hide panel" + > + <SidebarSimple size={16} weight="fill" className="scale-x-[-1]" /> + </button> {tabs.map((tab) => ( <button key={tab.id} @@ -23,14 +32,14 @@ export const RightSidebar: React.FC = () => { className={cn( "flex-1 flex flex-col items-center gap-1 py-3 transition-all relative group", activeTab === tab.id - ? "text-white" + ? "text-[var(--text)]" : "text-[var(--text-muted)] hover:text-[var(--text)]" )} > <tab.icon size={20} weight={activeTab === tab.id ? "fill" : "regular"} /> <span className="text-[10px] font-bold uppercase tracking-wider">{tab.label}</span> {activeTab === tab.id && ( - <div className="absolute bottom-0 left-0 right-0 h-0.5 bg-white" /> + <div className="absolute bottom-0 left-0 right-0 h-0.5 bg-[var(--accent)]" /> )} </button> ))} @@ -45,7 +54,7 @@ export const RightSidebar: React.FC = () => { </h3> <div className="p-4 rounded-xl border border-[var(--border)] bg-[var(--surface-2)]/50 text-center space-y-2"> <div className="w-10 h-10 rounded-full bg-[var(--surface)] border border-[var(--border)] flex items-center justify-center mx-auto"> - <TerminalWindow size={20} weight="duotone" className="text-white" /> + <TerminalWindow size={20} weight="duotone" className="text-[var(--text)]" /> </div> <p className="text-xs font-medium">No agents running</p> <p className="text-[10px] text-[var(--text-muted)]">Spawn an agent from the chat to see progress here.</p> diff --git a/src/components/onboarding/OnboardingWizard.tsx b/src/components/onboarding/OnboardingWizard.tsx index aca2a91..54294eb 100644 --- a/src/components/onboarding/OnboardingWizard.tsx +++ b/src/components/onboarding/OnboardingWizard.tsx @@ -44,6 +44,7 @@ export const OnboardingWizard: React.FC<OnboardingWizardProps> = ({ onComplete } model: model || preset.model, isDefault: true, isBuiltin: false, + isEnabled: true, createdAt: now, updatedAt: now, }; @@ -67,10 +68,10 @@ export const OnboardingWizard: React.FC<OnboardingWizardProps> = ({ onComplete } return ( <div className="fixed inset-0 z-50 flex items-center justify-center bg-[var(--bg)]/90 backdrop-blur-sm"> - <div className="w-full max-w-md mx-4 bg-[var(--surface)] border border-[var(--border)] rounded-2xl shadow-2xl shadow-black/50 overflow-hidden"> + <div className="w-full max-w-md mx-4 bg-[var(--surface)] border border-[var(--border)] rounded-2xl shadow-2xl shadow-[var(--shadow)] overflow-hidden"> <div className="h-1 bg-[var(--surface-2)]"> <div - className="h-full bg-white transition-all duration-500" + className="h-full bg-[var(--accent)] transition-all duration-500" style={{ width: step === 'welcome' ? '0%' : step === 'provider' ? '33%' : step === 'project' ? '66%' : '100%' }} /> </div> @@ -79,7 +80,7 @@ export const OnboardingWizard: React.FC<OnboardingWizardProps> = ({ onComplete } {step === 'welcome' && ( <div className="text-center space-y-6"> <div className="w-16 h-16 rounded-2xl bg-[var(--surface-3)] border border-[var(--border)] flex items-center justify-center mx-auto"> - <Sparkle size={32} weight="duotone" className="text-white" /> + <Sparkle size={32} weight="duotone" className="text-[var(--accent)]" /> </div> <div> <h1 className="text-2xl font-bold mb-2">Welcome to enowX Coder</h1> @@ -89,7 +90,7 @@ export const OnboardingWizard: React.FC<OnboardingWizardProps> = ({ onComplete } </div> <button onClick={() => setStep('provider')} - className="w-full flex items-center justify-center gap-2 py-3 rounded-xl bg-white hover:bg-[#e5e5e5] text-black font-semibold transition-colors" + className="w-full flex items-center justify-center gap-2 py-3 rounded-xl bg-[var(--accent)] hover:bg-[var(--accent-hover)] text-[var(--accent-fg)] font-semibold transition-colors" > Get Started <ArrowRight size={18} weight="bold" /> </button> @@ -111,11 +112,11 @@ export const OnboardingWizard: React.FC<OnboardingWizardProps> = ({ onComplete } className={cn( 'p-3 rounded-xl border text-left transition-all', selectedPreset === i - ? 'border-white bg-white/5 text-white' + ? 'border-[var(--accent)] bg-[var(--hover-bg)] text-[var(--text)]' : 'border-[var(--border)] hover:border-[var(--accent)]/50 text-[var(--text-muted)]' )} > - <Robot size={18} weight={selectedPreset === i ? 'fill' : 'regular'} className={selectedPreset === i ? 'text-white mb-1' : 'mb-1'} /> + <Robot size={18} weight={selectedPreset === i ? 'fill' : 'regular'} className={selectedPreset === i ? 'text-[var(--accent)] mb-1' : 'mb-1'} /> <p className="text-xs font-semibold">{p.label}</p> </button> ))} @@ -159,7 +160,7 @@ export const OnboardingWizard: React.FC<OnboardingWizardProps> = ({ onComplete } <button onClick={handleProviderNext} - className="w-full flex items-center justify-center gap-2 py-3 rounded-xl bg-white hover:bg-[#e5e5e5] text-black font-semibold transition-colors" + className="w-full flex items-center justify-center gap-2 py-3 rounded-xl bg-[var(--accent)] hover:bg-[var(--accent-hover)] text-[var(--accent-fg)] font-semibold transition-colors" > Continue <ArrowRight size={18} weight="bold" /> </button> @@ -188,7 +189,7 @@ export const OnboardingWizard: React.FC<OnboardingWizardProps> = ({ onComplete } <button onClick={handleProjectNext} - className="w-full flex items-center justify-center gap-2 py-3 rounded-xl bg-white hover:bg-[#e5e5e5] text-black font-semibold transition-colors" + className="w-full flex items-center justify-center gap-2 py-3 rounded-xl bg-[var(--accent)] hover:bg-[var(--accent-hover)] text-[var(--accent-fg)] font-semibold transition-colors" > Continue <ArrowRight size={18} weight="bold" /> </button> @@ -198,7 +199,7 @@ export const OnboardingWizard: React.FC<OnboardingWizardProps> = ({ onComplete } {step === 'done' && ( <div className="text-center space-y-6"> <div className="w-16 h-16 rounded-full bg-[var(--surface-3)] border border-[var(--border)] flex items-center justify-center mx-auto"> - <Check size={32} weight="bold" className="text-white" /> + <Check size={32} weight="bold" className="text-[var(--accent)]" /> </div> <div> <h2 className="text-xl font-bold mb-2">You're all set!</h2> @@ -208,7 +209,7 @@ export const OnboardingWizard: React.FC<OnboardingWizardProps> = ({ onComplete } </div> <button onClick={onComplete} - className="w-full flex items-center justify-center gap-2 py-3 rounded-xl bg-white hover:bg-[#e5e5e5] text-black font-semibold transition-colors" + className="w-full flex items-center justify-center gap-2 py-3 rounded-xl bg-[var(--accent)] hover:bg-[var(--accent-hover)] text-[var(--accent-fg)] font-semibold transition-colors" > Start Coding <Sparkle size={18} weight="fill" /> </button> diff --git a/src/components/settings/AgentsTab.tsx b/src/components/settings/AgentsTab.tsx index 0145e1d..e00beb3 100644 --- a/src/components/settings/AgentsTab.tsx +++ b/src/components/settings/AgentsTab.tsx @@ -216,7 +216,7 @@ export function AgentsTab() { <button onClick={handleSave} disabled={loading || (localConfig.providerId !== null && localConfig.modelId === null)} - className="px-4 py-2 bg-white text-black text-sm font-medium rounded-lg hover:bg-gray-200 transition-colors disabled:opacity-50 disabled:cursor-not-allowed" + className="px-4 py-2 bg-[var(--accent)] text-[var(--accent-fg)] text-sm font-medium rounded-lg hover:bg-[var(--accent-hover)] transition-colors disabled:opacity-50 disabled:cursor-not-allowed" > {loading ? 'Saving...' : 'Save Configuration'} </button> diff --git a/src/components/settings/ProvidersTab.tsx b/src/components/settings/ProvidersTab.tsx index 1c3e44c..ca89255 100644 --- a/src/components/settings/ProvidersTab.tsx +++ b/src/components/settings/ProvidersTab.tsx @@ -25,16 +25,15 @@ const FIXED_BASE_URL: Record<string, boolean> = { gemini: true, }; -const PROVIDER_PRESETS: Record<ProviderType, { label: string; baseUrl: string; model: string }> = { +const PROVIDER_PRESETS: Record<string, { label: string; baseUrl: string; model: string }> = { enowxlabs: { label: 'enowX Labs', baseUrl: 'https://api.enowxlabs.com/v1', model: 'enowx-default' }, openai: { label: 'OpenAI', baseUrl: 'https://api.openai.com/v1', model: 'gpt-4o' }, anthropic: { label: 'Anthropic', baseUrl: 'https://api.anthropic.com/v1', model: 'claude-3-5-sonnet-20241022' }, gemini: { label: 'Gemini', baseUrl: 'https://generativelanguage.googleapis.com/v1beta/openai', model: 'gemini-2.0-flash' }, ollama: { label: 'Ollama', baseUrl: 'http://localhost:11434/v1', model: 'llama3.2' }, - custom: { label: 'Custom', baseUrl: '', model: '' }, }; -const SIDEBAR_ITEMS: ProviderType[] = ['enowxlabs', 'openai', 'anthropic', 'gemini', 'ollama', 'custom']; +const BUILTIN_TYPES: ProviderType[] = ['enowxlabs', 'openai', 'anthropic', 'gemini', 'ollama']; interface ModelRowProps { modelName: string; @@ -65,15 +64,15 @@ const ModelRow: React.FC<ModelRowProps> = ({ modelName, config, onUpdate }) => { return ( <div className="border-b border-[var(--border)] last:border-0"> - <div className="flex items-center gap-3 py-2.5 px-3 hover:bg-white/[0.02] transition-colors"> + <div className="flex items-center gap-3 py-2.5 px-3 hover:bg-[var(--hover-bg)] transition-colors"> <div className="relative flex items-center justify-center w-5 h-5 cursor-pointer shrink-0" onClick={toggleEnabled}> <input type="checkbox" checked={config?.enabled ?? false} readOnly - className="peer appearance-none w-4 h-4 rounded border border-[var(--border)] bg-[var(--surface)] checked:bg-white checked:border-white transition-all cursor-pointer" + className="peer appearance-none w-4 h-4 rounded border border-[var(--border)] bg-[var(--surface)] checked:bg-[var(--accent)] checked:border-[var(--accent)] transition-all cursor-pointer" /> - <Check size={10} weight="bold" className="absolute text-black opacity-0 peer-checked:opacity-100 pointer-events-none" /> + <Check size={10} weight="bold" className="absolute text-[var(--accent-fg)] opacity-0 peer-checked:opacity-100 pointer-events-none" /> </div> <span className={cn('text-sm flex-1 truncate', config?.enabled ? 'text-[var(--text)]' : 'text-[var(--text-muted)]')}> @@ -101,7 +100,7 @@ const ModelRow: React.FC<ModelRowProps> = ({ modelName, config, onUpdate }) => { max={2000000} value={contextWindow} onChange={(e) => { setContextWindow(Number(e.target.value)); setIsDirty(true); }} - className="w-full bg-[var(--surface-2)] border border-[var(--border)] rounded px-2 py-1.5 text-xs text-[var(--text)] focus:border-white/30 transition-colors" + className="w-full bg-[var(--surface-2)] border border-[var(--border)] rounded px-2 py-1.5 text-xs text-[var(--text)] focus:border-[var(--focus-border)] transition-colors" /> <p className="text-[9px] text-[var(--text-subtle)] mt-1">Total tokens (input + output)</p> </div> @@ -116,7 +115,7 @@ const ModelRow: React.FC<ModelRowProps> = ({ modelName, config, onUpdate }) => { step={0.1} value={temperature} onChange={(e) => { setTemperature(Number(e.target.value)); setIsDirty(true); }} - className="w-full bg-[var(--surface-2)] border border-[var(--border)] rounded px-2 py-1.5 text-xs text-[var(--text)] focus:border-white/30 transition-colors" + className="w-full bg-[var(--surface-2)] border border-[var(--border)] rounded px-2 py-1.5 text-xs text-[var(--text)] focus:border-[var(--focus-border)] transition-colors" /> </div> </div> @@ -124,7 +123,7 @@ const ModelRow: React.FC<ModelRowProps> = ({ modelName, config, onUpdate }) => { <div className="flex justify-end"> <button onClick={handleSave} - className="text-[10px] font-bold bg-white text-black px-2.5 py-1 rounded hover:bg-[#e5e5e5] transition-colors" + className="text-[10px] font-bold bg-[var(--accent)] text-[var(--accent-fg)] px-2.5 py-1 rounded hover:bg-[var(--accent-hover)] transition-colors" > Save </button> @@ -154,9 +153,26 @@ export const ProvidersTab: React.FC = () => { const [baseUrlEdit, setBaseUrlEdit] = useState(''); const [baseUrlDirty, setBaseUrlDirty] = useState(false); + const [modelEdit, setModelEdit] = useState(''); + const [modelDirty, setModelDirty] = useState(false); + const [isEditingName, setIsEditingName] = useState(false); const [nameEdit, setNameEdit] = useState(''); + const [saveError, setSaveError] = useState<string | null>(null); + + // Manual model add + const [manualModelName, setManualModelName] = useState(''); + + // Add Provider form state + const [addingNew, setAddingNew] = useState(false); + const [newName, setNewName] = useState(''); + const [newBaseUrl, setNewBaseUrl] = useState(''); + const [newApiKey, setNewApiKey] = useState(''); + const [newModel, setNewModel] = useState(''); + const [newSaving, setNewSaving] = useState(false); + const [newError, setNewError] = useState<string | null>(null); + // The provider record for the currently selected type (may be null if not yet created) const selectedProvider = providers.find(p => p.providerType === selectedType) ?? null; @@ -180,12 +196,16 @@ export const ProvidersTab: React.FC = () => { setModelsError(null); setApiKeyDirty(false); setBaseUrlDirty(false); + setModelDirty(false); setIsEditingName(false); + setSaveError(null); const p = providers.find(pr => pr.providerType === selectedType) ?? null; + const preset = PROVIDER_PRESETS[selectedType]; setApiKeyEdit(p?.apiKey ?? ''); - setBaseUrlEdit(p?.baseUrl ?? PROVIDER_PRESETS[selectedType].baseUrl); - setNameEdit(p?.name ?? PROVIDER_PRESETS[selectedType].label); + setBaseUrlEdit(p?.baseUrl ?? preset?.baseUrl ?? ''); + setModelEdit(p?.model ?? preset?.model ?? ''); + setNameEdit(p?.name ?? preset?.label ?? selectedType); if (!p) return; @@ -194,10 +214,14 @@ export const ProvidersTab: React.FC = () => { setModelsError(null); try { const [models, configs] = await Promise.all([ - invoke<string[]>('list_models', { providerId: p.id }), + invoke<string[]>('list_models', { providerId: p.id }).catch(() => [] as string[]), invoke<ProviderModelConfig[]>('list_provider_models', { providerId: p.id }), ]); - setAvailableModels(models); + // Merge: API models + any manually added models from DB configs + const configModelIds = configs.map(c => c.modelId); + const manualModels = configModelIds.filter(id => !models.includes(id)); + const allModels = [...models, ...manualModels]; + setAvailableModels(allModels); const map: Record<string, ProviderModelConfig> = {}; configs.forEach(c => { map[c.modelId] = c; }); setModelConfigs(map); @@ -228,17 +252,25 @@ export const ProvidersTab: React.FC = () => { const ensureProvider = async (): Promise<Provider | null> => { if (selectedProvider) return selectedProvider; const preset = PROVIDER_PRESETS[selectedType]; + const resolvedModel = modelEdit.trim() || preset.model; + if (!resolvedModel) { + setSaveError('Model name is required. Enter a model name first.'); + return null; + } try { + setSaveError(null); const created = await invoke<Provider>('create_provider', { - name: preset.label, + name: nameEdit || preset.label, providerType: selectedType, - baseUrl: preset.baseUrl || baseUrlEdit, + baseUrl: baseUrlEdit || preset.baseUrl, apiKey: apiKeyEdit || null, - model: preset.model, + model: resolvedModel, }); await loadProviders(); return created; } catch (e) { + const msg = typeof e === 'string' ? e : (e as Error)?.message ?? 'Failed to create provider'; + setSaveError(msg); console.error('create_provider error:', e); return null; } @@ -246,6 +278,7 @@ export const ProvidersTab: React.FC = () => { const handleSaveApiKey = async () => { setIsSavingKey(true); + setSaveError(null); try { let p = selectedProvider; if (!p) { @@ -255,13 +288,15 @@ export const ProvidersTab: React.FC = () => { await invoke('update_provider', { id: p.id, name: p.name, - baseUrl: p.baseUrl, + baseUrl: baseUrlEdit || p.baseUrl, apiKey: apiKeyEdit || null, - model: p.model, + model: modelEdit.trim() || p.model, }); await loadProviders(); setApiKeyDirty(false); } catch (e) { + const msg = typeof e === 'string' ? e : (e as Error)?.message ?? 'Failed to save API key'; + setSaveError(msg); console.error('update_provider (apiKey) error:', e); } finally { setIsSavingKey(false); @@ -269,22 +304,58 @@ export const ProvidersTab: React.FC = () => { }; const handleSaveBaseUrl = async () => { - if (!selectedProvider) return; + setSaveError(null); + let p = selectedProvider; + if (!p) { + p = await ensureProvider(); + if (!p) return; + } try { await invoke('update_provider', { - id: selectedProvider.id, - name: selectedProvider.name, + id: p.id, + name: p.name, baseUrl: baseUrlEdit, - apiKey: selectedProvider.apiKey ?? null, - model: selectedProvider.model, + apiKey: p.apiKey ?? null, + model: modelEdit.trim() || p.model, }); await loadProviders(); setBaseUrlDirty(false); } catch (e) { + const msg = typeof e === 'string' ? e : (e as Error)?.message ?? 'Failed to save base URL'; + setSaveError(msg); console.error('update_provider (baseUrl) error:', e); } }; + const handleSaveModel = async () => { + setSaveError(null); + const trimmedModel = modelEdit.trim(); + if (!trimmedModel) { + setSaveError('Model name cannot be empty.'); + return; + } + let p = selectedProvider; + if (!p) { + p = await ensureProvider(); + if (!p) return; + } + try { + await invoke('update_provider', { + id: p.id, + name: p.name, + baseUrl: p.baseUrl, + apiKey: p.apiKey ?? null, + model: trimmedModel, + }); + await loadProviders(); + setModelDirty(false); + } catch (e) { + const msg = typeof e === 'string' ? e : (e as Error)?.message ?? 'Failed to save model'; + setSaveError(msg); + console.error('update_provider (model) error:', e); + } + }; + const handleSaveName = async () => { if (!selectedProvider) return; try { @@ -307,11 +378,53 @@ export const ProvidersTab: React.FC = () => { try { await invoke('delete_provider', { id: selectedProvider.id }); await loadProviders(); + setSelectedType('enowxlabs'); } catch (e) { console.error('delete_provider error:', e); } }; + const handleToggleEnabled = async () => { + if (!selectedProvider) return; + try { + await invoke('toggle_provider_enabled', { id: selectedProvider.id, enabled: !selectedProvider.isEnabled }); + await loadProviders(); + } catch (e) { + console.error('toggle_provider_enabled error:', e); + } + }; + + const handleAddProvider = async () => { + const trimmedName = newName.trim(); + if (!trimmedName) { setNewError('Provider name is required.'); return; } + if (!newBaseUrl.trim()) { setNewError('Base URL is required.'); return; } + if (!newModel.trim()) { setNewError('Default model is required.'); return; } + + setNewSaving(true); + setNewError(null); + try { + // Use a slug of the name as providerType + const providerType = trimmedName.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, ''); + const created = await invoke<Provider>('create_provider', { + name: trimmedName, + providerType, + baseUrl: newBaseUrl.trim(), + apiKey: newApiKey.trim() || null, + model: newModel.trim(), + }); + await loadProviders(); + // Select the new provider + setSelectedType(created.providerType as ProviderType); + setAddingNew(false); + setNewName(''); setNewBaseUrl(''); setNewApiKey(''); setNewModel(''); + } catch (e) { + const msg = typeof e === 'string' ? e : (e as Error)?.message ?? 'Failed to create provider'; + setNewError(msg); + } finally { + setNewSaving(false); + } + }; + const handleUpsertConfig = async ( modelId: string, patch: { enabled?: boolean; contextWindow?: number; temperature?: number }, @@ -335,6 +448,18 @@ export const ProvidersTab: React.FC = () => { } }; + const handleAddModelManually = async () => { + const name = manualModelName.trim(); + if (!name || !selectedProvider) return; + // Add to available models list if not already there + if (!availableModels.includes(name)) { + setAvailableModels(prev => [...prev, name]); + } + // Auto-enable it + await handleUpsertConfig(name, { enabled: true }); + setManualModelName(''); + }; + const handleCheckAll = async (enable: boolean) => { if (!selectedProvider) return; await Promise.all( @@ -350,35 +475,79 @@ export const ProvidersTab: React.FC = () => { {/* Sidebar */} <div className="w-52 shrink-0 border-r border-[var(--border)] flex flex-col h-full bg-[var(--surface-2)]/10"> <div className="flex-1 overflow-y-auto py-3 space-y-0.5"> - {SIDEBAR_ITEMS.map(type => { - const exists = providers.some(p => p.providerType === type); - const isBuiltin = providers.find(p => p.providerType === type)?.isBuiltin ?? false; + {/* Built-in provider types */} + {BUILTIN_TYPES.map(type => { + const provider = providers.find(p => p.providerType === type); + const exists = !!provider; return ( <div key={type} - onClick={() => setSelectedType(type)} + onClick={() => { setSelectedType(type); setAddingNew(false); }} className={cn( 'cursor-pointer px-3 py-2.5 mx-2 rounded-lg flex items-center gap-2.5 transition-colors', - selectedType === type - ? 'bg-white/10 text-white' - : 'text-[var(--text-muted)] hover:bg-white/5 hover:text-[var(--text)]' + selectedType === type && !addingNew + ? 'bg-[var(--hover-bg-strong)] text-[var(--text)]' + : 'text-[var(--text-muted)] hover:bg-[var(--hover-bg)] hover:text-[var(--text)]' )} > - {isBuiltin ? ( - <Sparkle size={10} weight="fill" className="shrink-0 text-[var(--text-muted)]" /> - ) : ( - <div className={cn('w-2 h-2 rounded-full shrink-0', exists ? 'bg-white/60' : 'bg-white/20')} /> - )} + <Sparkle size={10} weight="fill" className="shrink-0 text-[var(--text-muted)]" /> <div className="flex-1 min-w-0"> - <div className="font-medium text-xs truncate">{PROVIDER_PRESETS[type].label}</div> + <div className="font-medium text-xs truncate">{PROVIDER_PRESETS[type]?.label ?? type}</div> <div className="text-[9px] uppercase tracking-wider text-[var(--text-subtle)] truncate">{type}</div> </div> - {exists && ( - <div className="w-1.5 h-1.5 rounded-full bg-white/40 shrink-0" title="Configured" /> + {exists && provider.isEnabled && ( + <div className="w-1.5 h-1.5 rounded-full bg-[var(--accent)] shrink-0" title="Active" /> + )} + {exists && !provider.isEnabled && ( + <div className="w-1.5 h-1.5 rounded-full bg-[var(--border)] shrink-0" title="Disabled" /> )} </div> ); })} + + {/* User-created providers */} + {providers.filter(p => !BUILTIN_TYPES.includes(p.providerType as ProviderType) && p.providerType !== 'custom').length > 0 && ( + <div className="mx-4 my-2 border-t border-[var(--border)]" /> + )} + {providers + .filter(p => !BUILTIN_TYPES.includes(p.providerType as ProviderType)) + .map(p => ( + <div + key={p.id} + onClick={() => { setSelectedType(p.providerType as ProviderType); setAddingNew(false); }} + className={cn( + 'cursor-pointer px-3 py-2.5 mx-2 rounded-lg flex items-center gap-2.5 transition-colors', + selectedType === p.providerType && !addingNew + ? 'bg-[var(--hover-bg-strong)] text-[var(--text)]' + : 'text-[var(--text-muted)] hover:bg-[var(--hover-bg)] hover:text-[var(--text)]' + )} + > + <div className={cn('w-2 h-2 rounded-full shrink-0', p.isEnabled ? 'bg-[var(--accent)]' : 'bg-[var(--border)]')} /> + <div className="flex-1 min-w-0"> + <div className="font-medium text-xs truncate">{p.name}</div> + <div className="text-[9px] uppercase tracking-wider text-[var(--text-subtle)] truncate">{p.providerType}</div> + </div> + {p.isEnabled && ( + <div className="w-1.5 h-1.5 rounded-full bg-[var(--accent)] shrink-0" title="Active" /> + )} + </div> + ))} + </div> + + {/* Add Provider button */} + <div className="p-2 border-t border-[var(--border)]"> + <button + onClick={() => setAddingNew(true)} + className={cn( + 'w-full flex items-center gap-2 px-3 py-2 rounded-lg text-xs font-medium transition-colors', + addingNew + ? 'bg-[var(--hover-bg-strong)] text-[var(--text)]' + : 'text-[var(--text-muted)] hover:bg-[var(--hover-bg)] hover:text-[var(--text)]' + )} + > + <span className="text-sm">+</span> + Add Provider + </button> </div> </div> @@ -386,7 +555,81 @@ export const ProvidersTab: React.FC = () => { <div className="flex-1 flex flex-col h-full bg-[var(--surface)] overflow-hidden"> <div className="flex-1 overflow-y-auto p-6 space-y-6"> - {/* Header */} + {/* ── Add Provider Form ── */} + {addingNew ? ( + <> + <div className="pb-5 border-b border-[var(--border)]"> + <h1 className="text-lg font-bold">Add Provider</h1> + <p className="text-[11px] text-[var(--text-muted)] mt-1">Add a custom OpenAI-compatible provider.</p> + </div> + + <div className="space-y-4 max-w-lg"> + <div> + <label className="block text-[11px] font-semibold text-[var(--text-muted)] mb-1.5">Provider Name</label> + <input + value={newName} + onChange={(e) => setNewName(e.target.value)} + placeholder="e.g. Together AI, Groq, DeepSeek" + className="w-full px-3 py-2 rounded-lg bg-[var(--surface-2)] border border-[var(--border)] text-sm focus:border-[var(--focus-border)] transition-colors" + /> + </div> + <div> + <label className="block text-[11px] font-semibold text-[var(--text-muted)] mb-1.5">Base URL</label> + <input + value={newBaseUrl} + onChange={(e) => setNewBaseUrl(e.target.value)} + placeholder="https://api.example.com/v1" + className="w-full px-3 py-2 rounded-lg bg-[var(--surface-2)] border border-[var(--border)] text-sm focus:border-[var(--focus-border)] transition-colors" + /> + </div> + <div> + <label className="block text-[11px] font-semibold text-[var(--text-muted)] mb-1.5">API Key</label> + <input + type="password" + value={newApiKey} + onChange={(e) => setNewApiKey(e.target.value)} + placeholder="sk-..." + className="w-full px-3 py-2 rounded-lg bg-[var(--surface-2)] border border-[var(--border)] text-sm focus:border-[var(--focus-border)] transition-colors" + /> + </div> + <div> + <label className="block text-[11px] font-semibold text-[var(--text-muted)] mb-1.5">Default Model</label> + <input + value={newModel} + onChange={(e) => setNewModel(e.target.value)} + placeholder="e.g. deepseek-chat, llama-3.1-70b" + className="w-full px-3 py-2 rounded-lg bg-[var(--surface-2)] border border-[var(--border)] text-sm focus:border-[var(--focus-border)] transition-colors" + /> + <p className="text-[9px] text-[var(--text-subtle)] mt-1">The model identifier used for API requests</p> + </div> + + {newError && ( + <div className="flex items-center gap-2 px-3 py-2 rounded-lg bg-[var(--danger-bg)] border border-[var(--danger-border)]"> + <X size={14} className="text-[var(--danger)] shrink-0" /> + <p className="text-xs text-[var(--danger)]">{newError}</p> + </div> + )} + + <div className="flex items-center gap-2 pt-2"> + <button + onClick={() => void handleAddProvider()} + disabled={newSaving} + className="px-4 py-2 rounded-lg bg-[var(--accent)] text-[var(--accent-fg)] text-xs font-bold hover:bg-[var(--accent-hover)] transition-colors disabled:opacity-50" + > + {newSaving ? 'Creating…' : 'Create Provider'} + </button> + <button + onClick={() => { setAddingNew(false); setNewError(null); }} + className="px-4 py-2 rounded-lg text-xs font-medium text-[var(--text-muted)] hover:text-[var(--text)] hover:bg-[var(--hover-bg)] transition-colors" + > + Cancel + </button> + </div> + </div> + </> + ) : ( + <> + {/* ── Provider Detail Header ── */} <div className="flex items-start justify-between pb-5 border-b border-[var(--border)]"> <div> <div className="flex items-center gap-3"> @@ -395,18 +638,18 @@ export const ProvidersTab: React.FC = () => { <input value={nameEdit} onChange={(e) => setNameEdit(e.target.value)} - className="bg-[var(--surface-2)] border border-[var(--border)] rounded px-2 py-1 text-base font-bold w-48 focus:border-white/40" + className="bg-[var(--surface-2)] border border-[var(--border)] rounded px-2 py-1 text-base font-bold w-48 focus:border-[var(--focus-border)]" autoFocus onKeyDown={(e) => { if (e.key === 'Enter') handleSaveName(); if (e.key === 'Escape') setIsEditingName(false); }} /> - <button onClick={handleSaveName} className="p-1 text-[var(--text-muted)] hover:text-white"><Check size={15} /></button> - <button onClick={() => setIsEditingName(false)} className="p-1 text-[var(--text-muted)] hover:text-white"><X size={15} /></button> + <button onClick={handleSaveName} className="p-1 text-[var(--text-muted)] hover:text-[var(--text)]"><Check size={15} /></button> + <button onClick={() => setIsEditingName(false)} className="p-1 text-[var(--text-muted)] hover:text-[var(--text)]"><X size={15} /></button> </div> ) : ( <h1 className="text-lg font-bold flex items-center gap-2"> - {selectedProvider?.name ?? PROVIDER_PRESETS[selectedType].label} + {selectedProvider?.name ?? PROVIDER_PRESETS[selectedType]?.label ?? selectedType} {selectedProvider && !selectedProvider.isBuiltin && ( - <button onClick={() => setIsEditingName(true)} className="text-[var(--text-muted)] hover:text-white transition-colors"> + <button onClick={() => setIsEditingName(true)} className="text-[var(--text-muted)] hover:text-[var(--text)] transition-colors"> <PencilSimple size={13} /> </button> )} @@ -418,7 +661,7 @@ export const ProvidersTab: React.FC = () => { {selectedType} </span> {selectedProvider?.isBuiltin && ( - <span className="text-[10px] uppercase tracking-wider font-semibold text-[var(--text-muted)] bg-white/5 px-1.5 py-0.5 rounded flex items-center gap-1"> + <span className="text-[10px] uppercase tracking-wider font-semibold text-[var(--text-muted)] bg-[var(--hover-bg)] px-1.5 py-0.5 rounded flex items-center gap-1"> <Sparkle size={9} weight="fill" /> Built-in </span> )} @@ -428,15 +671,34 @@ export const ProvidersTab: React.FC = () => { </div> </div> - {selectedProvider && !selectedProvider.isBuiltin && ( - <button - onClick={handleDeleteProvider} - className="p-2 rounded-lg text-[var(--text-muted)] hover:text-white hover:bg-white/5 transition-colors" - title="Remove provider" - > - <Trash size={16} /> - </button> - )} + <div className="flex items-center gap-1"> + {/* Enable/Disable toggle */} + {selectedProvider && ( + <button + onClick={() => void handleToggleEnabled()} + className={cn( + 'px-3 py-1.5 rounded-lg text-[11px] font-semibold transition-colors', + selectedProvider.isEnabled + ? 'bg-[var(--accent)]/10 text-[var(--accent)] hover:bg-[var(--accent)]/20' + : 'bg-[var(--surface-2)] text-[var(--text-subtle)] hover:text-[var(--text-muted)]' + )} + title={selectedProvider.isEnabled ? 'Disable this provider' : 'Enable this provider'} + > + {selectedProvider.isEnabled ? 'Enabled' : 'Disabled'} + </button> + )} + + {/* Delete button (non-builtin only) */} + {selectedProvider && !selectedProvider.isBuiltin && ( + <button + onClick={handleDeleteProvider} + className="p-2 rounded-lg text-[var(--text-muted)] hover:text-[var(--danger)] hover:bg-[var(--danger-bg)] transition-colors" + title="Remove provider" + > + <Trash size={16} /> + </button> + )} + </div> </div> {/* Configuration */} @@ -452,17 +714,41 @@ export const ProvidersTab: React.FC = () => { value={baseUrlEdit} onChange={(e) => { setBaseUrlEdit(e.target.value); setBaseUrlDirty(true); }} placeholder="http://localhost:11434/v1" - className="flex-1 px-3 py-2 rounded-lg bg-[var(--surface-2)] border border-[var(--border)] text-sm focus:border-white/40 transition-colors" + className="flex-1 px-3 py-2 rounded-lg bg-[var(--surface-2)] border border-[var(--border)] text-sm focus:border-[var(--focus-border)] transition-colors" /> - {baseUrlDirty && selectedProvider && ( + {baseUrlDirty && ( <button onClick={handleSaveBaseUrl} - className="px-3 py-2 rounded-lg bg-white text-black text-xs font-bold hover:bg-[#e5e5e5] transition-colors" + className="px-3 py-2 rounded-lg bg-[var(--accent)] text-[var(--accent-fg)] text-xs font-bold hover:bg-[var(--accent-hover)] transition-colors" + > + Save + </button> + )} + </div> + </div> + )} + + {/* Model Name — for custom/ollama */} + {!FIXED_BASE_URL[selectedType] && ( + <div> + <label className="block text-[11px] font-semibold text-[var(--text-muted)] mb-1.5">Default Model</label> + <div className="flex gap-2"> + <input + value={modelEdit} + onChange={(e) => { setModelEdit(e.target.value); setModelDirty(true); setSaveError(null); }} + placeholder="e.g. deepseek-v3, llama3.2, gpt-4o" + className="flex-1 px-3 py-2 rounded-lg bg-[var(--surface-2)] border border-[var(--border)] text-sm focus:border-[var(--focus-border)] transition-colors" + /> + {modelDirty && selectedProvider && ( + <button + onClick={handleSaveModel} + className="px-3 py-2 rounded-lg bg-[var(--accent)] text-[var(--accent-fg)] text-xs font-bold hover:bg-[var(--accent-hover)] transition-colors" > Save </button> )} </div> + <p className="text-[9px] text-[var(--text-subtle)] mt-1">The model identifier used for API requests</p> </div> )} @@ -475,13 +761,13 @@ export const ProvidersTab: React.FC = () => { value={apiKeyEdit} onChange={(e) => { setApiKeyEdit(e.target.value); setApiKeyDirty(true); }} placeholder={selectedType === 'ollama' ? 'Not required for local Ollama' : 'sk-...'} - className="flex-1 px-3 py-2 rounded-lg bg-[var(--surface-2)] border border-[var(--border)] text-sm focus:border-white/40 transition-colors" + className="flex-1 px-3 py-2 rounded-lg bg-[var(--surface-2)] border border-[var(--border)] text-sm focus:border-[var(--focus-border)] transition-colors" /> {apiKeyDirty && ( <button onClick={handleSaveApiKey} disabled={isSavingKey} - className="px-3 py-2 rounded-lg bg-white text-black text-xs font-bold hover:bg-[#e5e5e5] transition-colors disabled:opacity-50" + className="px-3 py-2 rounded-lg bg-[var(--accent)] text-[var(--accent-fg)] text-xs font-bold hover:bg-[var(--accent-hover)] transition-colors disabled:opacity-50" > {isSavingKey ? 'Saving…' : 'Save'} </button> @@ -490,12 +776,20 @@ export const ProvidersTab: React.FC = () => { {selectedType === 'enowxlabs' && ( <p className="text-[10px] text-[var(--text-muted)] mt-1.5"> Get your API key at{' '} - <a href="https://api.enowxlabs.com" target="_blank" rel="noreferrer" className="underline hover:text-white"> + <a href="https://api.enowxlabs.com" target="_blank" rel="noreferrer" className="underline hover:text-[var(--text)]"> api.enowxlabs.com </a> </p> )} </div> + + {/* Error message */} + {saveError && ( + <div className="flex items-center gap-2 px-3 py-2 rounded-lg bg-[var(--danger-bg)] border border-[var(--danger-border)]"> + <X size={14} className="text-[var(--danger)] shrink-0" /> + <p className="text-xs text-[var(--danger)]">{saveError}</p> + </div> + )} </div> {/* Available Models — only shown when provider is configured */} @@ -507,7 +801,7 @@ export const ProvidersTab: React.FC = () => { {availableModels.length > 0 && !modelsLoading && ( <button onClick={() => handleCheckAll(!allEnabled)} - className="flex items-center gap-1.5 text-[10px] text-[var(--text-muted)] hover:text-white transition-colors" + className="flex items-center gap-1.5 text-[10px] text-[var(--text-muted)] hover:text-[var(--text)] transition-colors" > {allEnabled ? <CheckSquare size={13} weight="fill" /> : someEnabled ? <CheckSquare size={13} /> : <Square size={13} />} {allEnabled ? 'Uncheck all' : 'Check all'} @@ -516,7 +810,7 @@ export const ProvidersTab: React.FC = () => { <button onClick={refreshModels} disabled={modelsLoading} - className="flex items-center gap-1.5 text-[10px] text-[var(--text-muted)] hover:text-white transition-colors disabled:opacity-50" + className="flex items-center gap-1.5 text-[10px] text-[var(--text-muted)] hover:text-[var(--text)] transition-colors disabled:opacity-50" > <ArrowsClockwise size={12} className={modelsLoading ? 'animate-spin' : ''} /> Refresh @@ -524,6 +818,24 @@ export const ProvidersTab: React.FC = () => { </div> </div> + {/* Add model manually */} + <div className="flex gap-2"> + <input + value={manualModelName} + onChange={(e) => setManualModelName(e.target.value)} + onKeyDown={(e) => { if (e.key === 'Enter') void handleAddModelManually(); }} + placeholder="Add model manually (e.g. gpt-4o, claude-sonnet-4)" + className="flex-1 px-3 py-1.5 rounded-lg bg-[var(--surface-2)] border border-[var(--border)] text-xs focus:border-[var(--focus-border)] transition-colors" + /> + <button + onClick={() => void handleAddModelManually()} + disabled={!manualModelName.trim()} + className="px-3 py-1.5 rounded-lg text-xs font-semibold bg-[var(--surface-2)] border border-[var(--border)] text-[var(--text-muted)] hover:text-[var(--text)] hover:bg-[var(--hover-bg-strong)] transition-colors disabled:opacity-40 disabled:cursor-not-allowed" + > + Add + </button> + </div> + <div className="border border-[var(--border)] rounded-xl overflow-hidden bg-[var(--surface-2)]/20"> {modelsLoading ? ( <div className="p-8 text-center text-[var(--text-muted)] text-sm"> @@ -533,7 +845,7 @@ export const ProvidersTab: React.FC = () => { ) : modelsError ? ( <div className="p-8 text-center space-y-2"> <p className="text-sm text-[var(--text-muted)]">{modelsError}</p> - <button onClick={refreshModels} className="text-xs underline text-[var(--text-muted)] hover:text-white"> + <button onClick={refreshModels} className="text-xs underline text-[var(--text-muted)] hover:text-[var(--text)]"> Try again </button> </div> @@ -564,6 +876,8 @@ export const ProvidersTab: React.FC = () => { <p className="text-[10px] text-[var(--text-subtle)]">Available models will appear once configured.</p> </div> )} + </> + )} </div> </div> diff --git a/src/components/settings/SettingsModal.tsx b/src/components/settings/SettingsModal.tsx index 7376cb1..ac1250b 100644 --- a/src/components/settings/SettingsModal.tsx +++ b/src/components/settings/SettingsModal.tsx @@ -24,18 +24,18 @@ export const SettingsModal: React.FC = () => { return ( <div - className="fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm" + className="fixed inset-0 z-50 flex items-center justify-center bg-[var(--overlay)] backdrop-blur-sm" onClick={() => setSettingsOpen(false)} > <div - className="bg-[var(--surface)] border border-[var(--border)] rounded-2xl w-full max-w-6xl h-[64vh] flex flex-col overflow-hidden shadow-2xl shadow-black/50" + className="bg-[var(--surface)] border border-[var(--border)] rounded-2xl w-full max-w-6xl h-[64vh] flex flex-col overflow-hidden shadow-2xl shadow-[var(--shadow)]" onClick={(e) => e.stopPropagation()} > <div className="flex items-center justify-between px-5 pt-5 pb-1"> <h2 className="text-sm font-bold text-[var(--text)]">Settings</h2> <button onClick={() => setSettingsOpen(false)} - className="p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text)] hover:bg-white/5 transition-colors" + className="p-1.5 rounded-lg text-[var(--text-muted)] hover:text-[var(--text)] hover:bg-[var(--hover-bg)] transition-colors" > <X size={16} /> </button> @@ -47,8 +47,8 @@ export const SettingsModal: React.FC = () => { className={cn( "px-3 py-2 text-xs font-semibold rounded-t-lg transition-colors border-b-2 -mb-px flex items-center gap-2", activeTab === 'providers' - ? "text-white border-white bg-white/5" - : "text-[var(--text-muted)] border-transparent hover:text-[var(--text)] hover:bg-white/5" + ? "text-[var(--text)] border-[var(--accent)] bg-[var(--hover-bg)]" + : "text-[var(--text-muted)] border-transparent hover:text-[var(--text)] hover:bg-[var(--hover-bg)]" )} > <Robot size={14} weight={activeTab === 'providers' ? "fill" : "regular"} /> @@ -59,8 +59,8 @@ export const SettingsModal: React.FC = () => { className={cn( "px-3 py-2 text-xs font-semibold rounded-t-lg transition-colors border-b-2 -mb-px flex items-center gap-2", activeTab === 'agents' - ? "text-white border-white bg-white/5" - : "text-[var(--text-muted)] border-transparent hover:text-[var(--text)] hover:bg-white/5" + ? "text-[var(--text)] border-[var(--accent)] bg-[var(--hover-bg)]" + : "text-[var(--text-muted)] border-transparent hover:text-[var(--text)] hover:bg-[var(--hover-bg)]" )} > <Robot size={14} weight={activeTab === 'agents' ? "fill" : "regular"} /> @@ -71,8 +71,8 @@ export const SettingsModal: React.FC = () => { className={cn( "px-3 py-2 text-xs font-semibold rounded-t-lg transition-colors border-b-2 -mb-px flex items-center gap-2", activeTab === 'tools' - ? "text-white border-white bg-white/5" - : "text-[var(--text-muted)] border-transparent hover:text-[var(--text)] hover:bg-white/5" + ? "text-[var(--text)] border-[var(--accent)] bg-[var(--hover-bg)]" + : "text-[var(--text-muted)] border-transparent hover:text-[var(--text)] hover:bg-[var(--hover-bg)]" )} > <Wrench size={14} weight={activeTab === 'tools' ? "fill" : "regular"} /> @@ -83,8 +83,8 @@ export const SettingsModal: React.FC = () => { className={cn( "px-3 py-2 text-xs font-semibold rounded-t-lg transition-colors border-b-2 -mb-px flex items-center gap-2", activeTab === 'system' - ? "text-white border-white bg-white/5" - : "text-[var(--text-muted)] border-transparent hover:text-[var(--text)] hover:bg-white/5" + ? "text-[var(--text)] border-[var(--accent)] bg-[var(--hover-bg)]" + : "text-[var(--text-muted)] border-transparent hover:text-[var(--text)] hover:bg-[var(--hover-bg)]" )} > <GearSix size={14} weight={activeTab === 'system' ? "fill" : "regular"} /> diff --git a/src/components/sidebar/ProjectSwitcher.tsx b/src/components/sidebar/ProjectSwitcher.tsx index efbc952..0592266 100644 --- a/src/components/sidebar/ProjectSwitcher.tsx +++ b/src/components/sidebar/ProjectSwitcher.tsx @@ -37,14 +37,14 @@ export const ProjectSwitcher: React.FC = () => { <button onClick={handleOpenFolder} disabled={loading} - className="w-full flex items-center gap-2.5 px-3 py-2 rounded-lg text-[var(--text-muted)] hover:text-[var(--text)] hover:bg-white/5 transition-colors text-sm border border-dashed border-[var(--border)] hover:border-[var(--border-strong)] disabled:opacity-50 disabled:cursor-not-allowed" + className="w-full flex items-center gap-2.5 px-3 py-2 rounded-lg text-[var(--text-muted)] hover:text-[var(--text)] hover:bg-[var(--hover-bg)] transition-colors text-sm border border-dashed border-[var(--border)] hover:border-[var(--border-strong)] disabled:opacity-50 disabled:cursor-not-allowed" > {loading ? ( <CircleNotch size={15} className="animate-spin" /> ) : ( <FolderOpen size={15} /> )} - <span className="text-xs">{loading ? 'Opening…' : 'Open folder'}</span> + <span className="text-[13px]">{loading ? 'Opening…' : 'Open folder'}</span> </button> ); }; diff --git a/src/components/sidebar/SessionList.tsx b/src/components/sidebar/SessionList.tsx index 41ec144..fe92bac 100644 --- a/src/components/sidebar/SessionList.tsx +++ b/src/components/sidebar/SessionList.tsx @@ -2,7 +2,10 @@ import React, { useState, useEffect } from 'react'; import { invoke } from '@tauri-apps/api/core'; import { useSessionStore } from '@/stores/useSessionStore'; import { useProjectStore } from '@/stores/useProjectStore'; +import { useChatStore } from '@/stores/useChatStore'; +import { useAgentStore } from '@/stores/useAgentStore'; import { FolderSimple, ChatCircleText, Trash, CaretRight, Plus } from '@phosphor-icons/react'; +import { ConfirmDialog } from '@/components/ui/ConfirmDialog'; import { cn } from '@/lib/utils'; import { generateId } from '@/lib/utils'; import { Session } from '@/types'; @@ -13,6 +16,7 @@ export const SessionList: React.FC = () => { const [expandedProjects, setExpandedProjects] = useState<Set<string>>(() => { return new Set(activeProjectId ? [activeProjectId] : []); }); + const [deleteTarget, setDeleteTarget] = useState<string | null>(null); useEffect(() => { if (!activeProjectId) return; @@ -49,9 +53,22 @@ export const SessionList: React.FC = () => { } }; - const handleDeleteSession = async (e: React.MouseEvent, sessionId: string) => { + const handleDeleteSession = (e: React.MouseEvent, sessionId: string) => { e.stopPropagation(); + setDeleteTarget(sessionId); + }; + + const confirmDeleteSession = async () => { + if (!deleteTarget) return; + const sessionId = deleteTarget; + setDeleteTarget(null); + + const wasActive = activeSessionId === sessionId; removeSession(sessionId); + if (wasActive) { + useChatStore.getState().setMessages([]); + useAgentStore.getState().setAgentRuns([]); + } try { await invoke('delete_session', { id: sessionId }); @@ -78,7 +95,7 @@ export const SessionList: React.FC = () => { return ( <div key={project.id}> <div - className="group flex items-center gap-1.5 px-2 py-1.5 mx-1 rounded-md cursor-pointer hover:bg-white/5 transition-colors" + className="group flex items-center gap-1.5 px-2 py-1.5 mx-1 rounded-md cursor-pointer hover:bg-[var(--hover-bg)] transition-colors" onClick={() => toggleProject(project.id)} > <CaretRight @@ -90,16 +107,16 @@ export const SessionList: React.FC = () => { )} /> <FolderSimple - size={14} + size={16} weight={isExpanded ? 'fill' : 'regular'} className="text-[var(--text-muted)] shrink-0" /> - <span className="text-xs font-medium text-[var(--text-muted)] truncate flex-1 group-hover:text-[var(--text)]"> + <span className="text-[13px] font-medium text-[var(--text-muted)] truncate flex-1 group-hover:text-[var(--text)]"> {project.name} </span> <button onClick={(e) => handleNewSession(e, project.id)} - className="opacity-0 group-hover:opacity-100 p-0.5 rounded hover:bg-white/10 text-[var(--text-subtle)] hover:text-[var(--text)] transition-all" + className="opacity-0 group-hover:opacity-100 p-0.5 rounded hover:bg-[var(--hover-bg-strong)] text-[var(--text-subtle)] hover:text-[var(--text)] transition-all" title="New chat" > <Plus size={12} /> @@ -115,15 +132,15 @@ export const SessionList: React.FC = () => { <div key={session.id} className={cn( - 'group flex items-center gap-2 px-2 py-1.5 mx-1 rounded-md cursor-pointer transition-colors text-xs', + 'group flex items-center gap-2 px-2 py-1.5 mx-1 rounded-md cursor-pointer transition-colors text-[13px]', activeSessionId === session.id - ? 'bg-white/10 text-white' - : 'text-[var(--text-subtle)] hover:bg-white/5 hover:text-[var(--text-muted)]' + ? 'bg-[var(--hover-bg-strong)] text-[var(--text)]' + : 'text-[var(--text-subtle)] hover:bg-[var(--hover-bg)] hover:text-[var(--text-muted)]' )} onClick={() => setActiveSessionId(session.id)} > <ChatCircleText - size={13} + size={15} weight={activeSessionId === session.id ? 'fill' : 'regular'} className="shrink-0" /> @@ -132,7 +149,7 @@ export const SessionList: React.FC = () => { onClick={(e) => { void handleDeleteSession(e, session.id); }} - className="opacity-0 group-hover:opacity-100 p-0.5 rounded hover:bg-white/10 transition-all" + className="opacity-0 group-hover:opacity-100 p-0.5 rounded hover:bg-[var(--hover-bg-strong)] transition-all" > <Trash size={11} /> </button> @@ -144,6 +161,17 @@ export const SessionList: React.FC = () => { </div> ); })} + + <ConfirmDialog + open={deleteTarget !== null} + title="Delete Chat" + message={`Are you sure you want to delete "${sessions.find(s => s.id === deleteTarget)?.title ?? 'this chat'}"? This action cannot be undone.`} + confirmLabel="Delete" + cancelLabel="Cancel" + danger + onConfirm={() => void confirmDeleteSession()} + onCancel={() => setDeleteTarget(null)} + /> </div> ); }; diff --git a/src/components/ui/ConfirmDialog.tsx b/src/components/ui/ConfirmDialog.tsx new file mode 100644 index 0000000..f3fc4da --- /dev/null +++ b/src/components/ui/ConfirmDialog.tsx @@ -0,0 +1,89 @@ +import React, { useEffect, useRef } from 'react'; +import { Warning } from '@phosphor-icons/react'; +import { cn } from '@/lib/utils'; + +interface ConfirmDialogProps { + open: boolean; + title: string; + message: string; + confirmLabel?: string; + cancelLabel?: string; + danger?: boolean; + onConfirm: () => void; + onCancel: () => void; +} + +export const ConfirmDialog: React.FC<ConfirmDialogProps> = ({ + open, + title, + message, + confirmLabel = 'Confirm', + cancelLabel = 'Cancel', + danger = false, + onConfirm, + onCancel, +}) => { + const confirmRef = useRef<HTMLButtonElement>(null); + + useEffect(() => { + if (!open) return; + // Focus confirm button on open + setTimeout(() => confirmRef.current?.focus(), 50); + + const handleKeyDown = (e: KeyboardEvent) => { + if (e.key === 'Escape') onCancel(); + }; + window.addEventListener('keydown', handleKeyDown); + return () => window.removeEventListener('keydown', handleKeyDown); + }, [open, onCancel]); + + if (!open) return null; + + return ( + <div + className="fixed inset-0 z-[60] flex items-center justify-center bg-[var(--overlay)] backdrop-blur-sm animate-in fade-in duration-150" + onClick={onCancel} + > + <div + className="bg-[var(--surface)] border border-[var(--border)] rounded-2xl w-full max-w-sm overflow-hidden shadow-2xl shadow-[var(--shadow)] animate-in zoom-in-95 duration-150" + onClick={(e) => e.stopPropagation()} + > + <div className="p-6 space-y-4"> + <div className="flex items-start gap-4"> + <div className={cn( + 'w-10 h-10 rounded-xl flex items-center justify-center shrink-0', + danger ? 'bg-[var(--danger-bg)]' : 'bg-[var(--hover-bg-strong)]' + )}> + <Warning size={20} weight="fill" className={danger ? 'text-[var(--danger)]' : 'text-[var(--text)]'} /> + </div> + <div className="flex-1 min-w-0"> + <h3 className="text-sm font-bold text-[var(--text)] mb-1">{title}</h3> + <p className="text-xs text-[var(--text-muted)] leading-relaxed">{message}</p> + </div> + </div> + </div> + + <div className="flex items-center justify-end gap-2 px-6 pb-5"> + <button + onClick={onCancel} + className="px-4 py-2 rounded-lg text-xs font-semibold text-[var(--text-muted)] hover:text-[var(--text)] hover:bg-[var(--hover-bg)] transition-colors" + > + {cancelLabel} + </button> + <button + ref={confirmRef} + onClick={onConfirm} + className={cn( + 'px-4 py-2 rounded-lg text-xs font-bold transition-all active:scale-95', + danger + ? 'bg-[var(--danger)] text-white hover:bg-[var(--danger-hover)]' + : 'bg-[var(--accent)] text-[var(--accent-fg)] hover:bg-[var(--accent-hover)]' + )} + > + {confirmLabel} + </button> + </div> + </div> + </div> + ); +}; diff --git a/src/components/ui/select.tsx b/src/components/ui/select.tsx index 66b7107..f568e9b 100644 --- a/src/components/ui/select.tsx +++ b/src/components/ui/select.tsx @@ -18,7 +18,7 @@ const SelectTrigger = React.forwardRef< "bg-[var(--surface-3)] border border-[var(--border)]", "text-xs font-medium text-[var(--text-muted)] hover:text-[var(--text)]", "hover:bg-[var(--surface-2)] transition-colors", - "focus:outline-none focus:border-white/20", + "focus:outline-none focus:border-[var(--focus-border)]", "disabled:cursor-not-allowed disabled:opacity-50", "whitespace-nowrap shrink-0", className @@ -71,7 +71,7 @@ const SelectContent = React.forwardRef< className={cn( "relative z-50 min-w-[8rem] overflow-hidden rounded-xl", "bg-[var(--surface-2)] border border-[var(--border)]", - "shadow-xl shadow-black/40", + "shadow-xl shadow-[var(--shadow)]", "data-[state=open]:animate-in data-[state=closed]:animate-out", "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95", @@ -85,8 +85,8 @@ const SelectContent = React.forwardRef< <SelectScrollUpButton /> <SelectPrimitive.Viewport className={cn( - "p-1", - position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]" + "p-1 max-h-[min(360px,var(--radix-select-content-available-height))] overflow-y-auto custom-scrollbar", + position === "popper" && "w-full min-w-[var(--radix-select-trigger-width)]" )} > {children} @@ -118,8 +118,8 @@ const SelectItem = React.forwardRef< className={cn( "relative flex w-full cursor-pointer select-none items-center rounded-lg py-2 pl-3 pr-8", "text-xs text-[var(--text-muted)] outline-none", - "hover:bg-white/5 hover:text-[var(--text)]", - "focus:bg-white/5 focus:text-[var(--text)]", + "hover:bg-[var(--hover-bg)] hover:text-[var(--text)]", + "focus:bg-[var(--hover-bg)] focus:text-[var(--text)]", "data-[disabled]:pointer-events-none data-[disabled]:opacity-50", className )} diff --git a/src/index.css b/src/index.css index 199d6db..64cf82f 100644 --- a/src/index.css +++ b/src/index.css @@ -2,23 +2,66 @@ @plugin "@tailwindcss/typography"; :root { - --bg: #0a0a0a; - --surface: #111111; - --surface-2: #1a1a1a; - --surface-3: #222222; - --border: #2a2a2a; - --border-strong: #3a3a3a; - --text: #ffffff; - --text-muted: #888888; - --text-subtle: #555555; - --accent: #ffffff; - --accent-hover: #e5e5e5; - --accent-fg: #000000; + --bg: #1a1816; + --surface: #201e1b; + --surface-2: #2a2724; + --surface-3: #33302c; + --border: #3d3a35; + --border-strong: #524e48; + --text: #e8e4de; + --text-muted: #9c9790; + --text-subtle: #6b6560; + --accent: #D4845A; + --accent-hover: #C17348; + --accent-fg: #1a1816; + --shadow: rgba(0, 0, 0, 0.5); + --overlay: rgba(0, 0, 0, 0.6); + --hover-bg: rgba(255, 255, 255, 0.05); + --hover-bg-strong: rgba(255, 255, 255, 0.1); + --focus-ring: rgba(212, 132, 90, 0.3); + --focus-border: rgba(212, 132, 90, 0.25); + --focus-glow: rgba(212, 132, 90, 0.08); + --inset-shadow: rgba(255, 255, 255, 0.03); + --link: #D4845A; + --link-hover: #E09A72; + --danger: #E24B4A; + --danger-hover: #F09595; + --danger-bg: rgba(226, 75, 74, 0.1); + --danger-border: rgba(226, 75, 74, 0.2); --sidebar-width-left: 260px; --sidebar-width-right: 320px; } +:root.light { + --bg: #FFFFFF; + --surface: #F4F3EE; + --surface-2: #EAE8E1; + --surface-3: #E2E0D8; + --border: #D8D5CC; + --border-strong: #B1ADA1; + --text: #1a1816; + --text-muted: #6B6560; + --text-subtle: #9C9790; + --accent: #C15F3C; + --accent-hover: #A8502F; + --accent-fg: #FFFFFF; + --shadow: rgba(0, 0, 0, 0.08); + --overlay: rgba(0, 0, 0, 0.3); + --hover-bg: rgba(0, 0, 0, 0.04); + --hover-bg-strong: rgba(0, 0, 0, 0.08); + --focus-ring: rgba(193, 95, 60, 0.3); + --focus-border: rgba(193, 95, 60, 0.4); + --focus-glow: rgba(193, 95, 60, 0.08); + --inset-shadow: rgba(255, 255, 255, 0.5); + --link: #C15F3C; + --link-hover: #A8502F; + --danger: #dc2626; + --danger-hover: #ef4444; + --danger-bg: rgba(220, 38, 38, 0.08); + --danger-border: rgba(220, 38, 38, 0.15); +} + body { background: var(--bg); color: var(--text); @@ -63,7 +106,7 @@ body { } *:focus-visible { - outline: 1px solid rgba(255,255,255,0.25); + outline: 1px solid var(--focus-ring); outline-offset: 2px; } @@ -98,7 +141,7 @@ body { border-radius: 0.35rem; padding: 0.4rem 0.75rem; margin: 0.9rem 0; - color: #c8c8c8; + color: var(--text-muted); } .ai-prose-readable code { @@ -110,7 +153,7 @@ body { } .ai-prose-readable td { - color: #d0d0d0; + color: var(--text-muted); } .ai-prose p { margin: 0 0 0.75rem; } @@ -157,11 +200,11 @@ body { .ai-prose em { font-style: italic; color: var(--text-muted); } .ai-prose a { - color: #7eb8f7; + color: var(--link); text-decoration: underline; text-underline-offset: 2px; } -.ai-prose a:hover { color: #a8d0ff; } +.ai-prose a:hover { color: var(--link-hover); } .ai-prose table { width: 100%; @@ -184,6 +227,59 @@ body { } .ai-prose tr:nth-child(even) td { background: var(--surface-2); } +/* Light theme syntax highlighting overrides */ +:root.light .hljs { + background: var(--surface-3) !important; + color: var(--text) !important; +} + +:root.light .hljs-comment, +:root.light .hljs-quote { + color: #6a737d; +} + +:root.light .hljs-keyword, +:root.light .hljs-selector-tag, +:root.light .hljs-type { + color: #d73a49; +} + +:root.light .hljs-string, +:root.light .hljs-addition { + color: #22863a; +} + +:root.light .hljs-number, +:root.light .hljs-literal { + color: #005cc5; +} + +:root.light .hljs-title, +:root.light .hljs-section, +:root.light .hljs-attr { + color: #6f42c1; +} + +:root.light .hljs-name, +:root.light .hljs-selector-id, +:root.light .hljs-selector-class { + color: #005cc5; +} + +:root.light .hljs-built_in, +:root.light .hljs-builtin-name { + color: #e36209; +} + +:root.light .hljs-deletion { + color: #b31d28; + background: #ffeef0; +} + +:root.light .hljs-addition { + background: #f0fff4; +} + @keyframes letter-fade { 0%, 100% { opacity: 0.2; } 50% { opacity: 1; } diff --git a/src/lib/utils.ts b/src/lib/utils.ts index 160ecc2..9b7a75a 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -16,3 +16,150 @@ export function formatDate(dateString: string): string { day: 'numeric', }); } + +/** + * Fix markdown tables that are malformed. + * + * Main issues: + * 1. Separator row has wrong number of columns: "|---|---|" but header has 4 cols + * 2. Multiple table rows crammed on one line during streaming + * 3. Missing separator row entirely + * 4. Missing blank line before table + */ +export function fixMarkdownTables(text: string): string { + const lines = text.split('\n'); + const result: string[] = []; + + for (let i = 0; i < lines.length; i++) { + const trimmed = lines[i].trim(); + + // Detect crammed rows: multiple table rows on one line + if (trimmed.startsWith('|') && trimmed.endsWith('|') && (trimmed.match(/\|/g) || []).length > 8) { + const split = splitCrammedRows(trimmed); + if (split.length > 1) { + // Ensure blank line before table if needed + const prev = result[result.length - 1]?.trim() ?? ''; + if (prev && !prev.startsWith('|')) result.push(''); + result.push(...split); + continue; + } + } + + result.push(lines[i]); + } + + // Second pass: fix separator rows to match header column count + const fixed: string[] = []; + for (let i = 0; i < result.length; i++) { + const line = result[i].trim(); + const nextLine = result[i + 1]?.trim() ?? ''; + const prevLine = fixed[fixed.length - 1]?.trim() ?? ''; + + // Case 1: Current line is header, next is separator with wrong col count → fix it + if (isTableRow(line) && isSeparatorRow(nextLine)) { + const headerCols = countColumns(line); + const sepCols = countColumns(nextLine); + fixed.push(result[i]); + if (headerCols !== sepCols) { + // Replace separator with correct column count + fixed.push('|' + Array(headerCols).fill('---').join('|') + '|'); + i++; // skip original separator + } + continue; + } + + // Case 2: Current line is header, next is data row (no separator) → inject + // Only if previous line is NOT part of a table (not a row and not a separator) + if ( + isTableRow(line) && + isTableRow(nextLine) && + !isSeparatorRow(nextLine) && + !isTableRow(prevLine) && + !isSeparatorRow(prevLine) && + !isSeparatorRow(line) + ) { + fixed.push(result[i]); + const headerCols = countColumns(line); + fixed.push('|' + Array(headerCols).fill('---').join('|') + '|'); + continue; + } + + // Case 3: Current line is separator but previous is not a table row → remove orphan + if (isSeparatorRow(line) && !isTableRow(prevLine)) { + continue; + } + + // Case 4: Data row has fewer columns than header → pad with empty cells + if (isTableRow(line) && !isSeparatorRow(line) && isTableRow(prevLine)) { + // Find the header (walk back past separator and other data rows) + let headerIdx = fixed.length - 1; + while (headerIdx >= 0 && (isTableRow(fixed[headerIdx].trim()) || isSeparatorRow(fixed[headerIdx].trim()))) { + headerIdx--; + } + headerIdx++; // first table row = header + if (headerIdx >= 0 && headerIdx < fixed.length) { + const headerCols = countColumns(fixed[headerIdx].trim()); + const dataCols = countColumns(line); + if (dataCols < headerCols) { + const padded = line.replace(/\|$/, '') + Array(headerCols - dataCols).fill(' |').join('') ; + fixed.push(padded); + continue; + } + } + } + + fixed.push(result[i]); + } + + // Third pass: ensure blank line before table starts + const final: string[] = []; + for (let i = 0; i < fixed.length; i++) { + const line = fixed[i].trim(); + const prev = final[final.length - 1]?.trim() ?? ''; + if (isTableRow(line) && prev && !prev.startsWith('|') && !isSeparatorRow(prev) && prev !== '') { + final.push(''); + } + final.push(fixed[i]); + } + + return final.join('\n'); +} + +/** Split "| a | b | | c | d | | e | f |" into separate rows */ +function splitCrammedRows(line: string): string[] { + // Strategy: split by "| |" which is the boundary between rows + const parts = line.split(/\|\s*\|/); + if (parts.length <= 2) return [line]; // normal single row has 2 empty parts at edges + + const rows: string[] = []; + let current = ''; + for (let i = 0; i < parts.length; i++) { + const part = parts[i].trim(); + if (part === '' && current) { + // End of a row + rows.push('| ' + current + ' |'); + current = ''; + } else if (part) { + current = current ? current + ' | ' + part : part; + } + } + if (current) rows.push('| ' + current + ' |'); + + return rows.length > 1 ? rows : [line]; +} + +function isTableRow(line: string): boolean { + if (!line) return false; + const t = line.trim(); + return t.startsWith('|') && t.endsWith('|') && t.length > 2 && !isSeparatorRow(t); +} + +function isSeparatorRow(line: string): boolean { + if (!line) return false; + return /^\|[\s\-:|]+\|$/.test(line.trim()); +} + +function countColumns(row: string): number { + const cells = row.split('|').slice(1, -1); // remove first/last empty from split + return Math.max(cells.length, 1); +} diff --git a/src/stores/useUIStore.ts b/src/stores/useUIStore.ts index 09788f6..454de34 100644 --- a/src/stores/useUIStore.ts +++ b/src/stores/useUIStore.ts @@ -1,17 +1,55 @@ import { create } from 'zustand'; +export type Theme = 'dark' | 'light'; +export type MainView = 'chat' | 'canvas'; + interface UIState { + leftSidebarOpen: boolean; + toggleLeftSidebar: () => void; + setLeftSidebarOpen: (open: boolean) => void; rightSidebarOpen: boolean; toggleRightSidebar: () => void; setRightSidebarOpen: (open: boolean) => void; settingsOpen: boolean; setSettingsOpen: (open: boolean) => void; + theme: Theme; + setTheme: (theme: Theme) => void; + toggleTheme: () => void; + fluxEnabled: boolean; + toggleFlux: () => void; + mainView: MainView; + setMainView: (view: MainView) => void; } +const getStoredTheme = (): Theme => { + try { + const stored = localStorage.getItem('enowx-theme'); + if (stored === 'light' || stored === 'dark') return stored; + } catch {} + return 'dark'; +}; + export const useUIStore = create<UIState>((set) => ({ + leftSidebarOpen: true, + toggleLeftSidebar: () => set((s) => ({ leftSidebarOpen: !s.leftSidebarOpen })), + setLeftSidebarOpen: (open) => set({ leftSidebarOpen: open }), rightSidebarOpen: true, toggleRightSidebar: () => set((s) => ({ rightSidebarOpen: !s.rightSidebarOpen })), setRightSidebarOpen: (open) => set({ rightSidebarOpen: open }), settingsOpen: false, setSettingsOpen: (open) => set({ settingsOpen: open }), + theme: getStoredTheme(), + setTheme: (theme) => { + localStorage.setItem('enowx-theme', theme); + set({ theme }); + }, + toggleTheme: () => set((s) => { + const next = s.theme === 'dark' ? 'light' : 'dark'; + localStorage.setItem('enowx-theme', next); + return { theme: next }; + }), + fluxEnabled: true, + toggleFlux: () => set((s) => ({ fluxEnabled: !s.fluxEnabled })), + mainView: 'chat' as MainView, + setMainView: (view) => set({ mainView: view }), })); diff --git a/src/types/index.ts b/src/types/index.ts index 44e99f3..4c26385 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -32,6 +32,7 @@ export interface Provider { model: string; isDefault: boolean; isBuiltin: boolean; + isEnabled: boolean; createdAt: string; updatedAt: string; }