docs: update documentation for P7 web UI dashboard completion
- README: add Web UI Dashboard section, update features list with all current capabilities (multi-channel, media pipeline, sandboxing, etc.), expand model providers table, update architecture diagram - CHANGELOG: add P7 entries (dashboard SPA, 4 new gateway handlers) - state.json: add P7 entry with all 6 phases and file lists, update overall_progress to reflect P0-P7 completion - web-ui-dashboard.md: mark as completed with detailed phase outcomes
This commit is contained in:
@@ -4,16 +4,24 @@ Self-hosted personal AI assistant with Telegram and Terminal interfaces.
|
||||
|
||||
## Features
|
||||
|
||||
- **Multi-Frontend**: Telegram bot + Terminal UI (minimal & fullscreen modes)
|
||||
- **Multi-Model**: Anthropic Claude, OpenAI, Ollama with intelligent routing
|
||||
- **Multi-Frontend**: Telegram bot + Terminal UI (minimal & fullscreen modes) + Web UI dashboard
|
||||
- **Multi-Model**: Anthropic Claude, OpenAI, GitHub Copilot, Gemini, Bedrock, Ollama, llama.cpp with intelligent routing
|
||||
- **Multi-Channel**: Telegram, Discord, Slack, WhatsApp with unified adapter interface
|
||||
- **Web Dashboard**: SPA control panel with health monitoring, chat, session browser, and settings editor
|
||||
- **Model Switching**: Switch between cloud/local models on demand
|
||||
- **Session Persistence**: SQLite-backed conversation history
|
||||
- **Fallback Chains**: Automatic failover when primary model fails
|
||||
- **Hook Engine**: Confirmation system for sensitive operations
|
||||
- **Tool Framework**: Shell, file, web-fetch, web-search, browser control, image analysis, media send
|
||||
- **Docker Sandboxing**: Per-session container isolation for tool execution
|
||||
- **Multi-Agent Routing**: Config-driven agent selection per sender/channel with tool profiles
|
||||
- **Media Pipeline**: Image analysis, outbound attachments, audio transcription across all channels
|
||||
- **Session Transfer**: Move conversations between frontends
|
||||
- **CLI**: Full command-line interface (`flynn start`, `send`, `doctor`, etc.)
|
||||
- **Cron Scheduling**: Automated messages on cron schedules with output routing
|
||||
- **Health Diagnostics**: `flynn doctor` validates config, connectivity, and system state
|
||||
- **MCP Integration**: External tool servers via Model Context Protocol
|
||||
- **Skills System**: Extensible capability packages (bundled, managed, workspace tiers)
|
||||
|
||||
## Quick Start
|
||||
|
||||
@@ -96,7 +104,11 @@ hooks:
|
||||
|----------|--------|
|
||||
| Anthropic | `provider: anthropic`, `api_key` or `auth_token` |
|
||||
| OpenAI | `provider: openai`, `api_key`, optional `endpoint` |
|
||||
| GitHub Copilot | `provider: github`, auto-login via OAuth device flow |
|
||||
| Gemini | `provider: gemini`, `api_key` |
|
||||
| Bedrock | `provider: bedrock`, AWS credentials |
|
||||
| Ollama | `provider: ollama`, `model`, optional `endpoint` |
|
||||
| llama.cpp | `provider: llamacpp`, `endpoint` |
|
||||
|
||||
### Model Tiers
|
||||
|
||||
@@ -121,6 +133,21 @@ models:
|
||||
| `/cloud` | Switch to cloud model |
|
||||
| `/model` | Show model info and options |
|
||||
|
||||
## Web UI Dashboard
|
||||
|
||||
Flynn includes a built-in web control dashboard served by the WebSocket gateway. Access it at `http://localhost:18800` (or your configured gateway port).
|
||||
|
||||
### Pages
|
||||
|
||||
| Page | Description |
|
||||
|------|-------------|
|
||||
| **Dashboard** | System health cards, channel status, usage stats. Auto-refreshes every 10s |
|
||||
| **Chat** | Session selector, streaming tool events, markdown rendering with syntax highlighting |
|
||||
| **Sessions** | Browse all sessions, view message history, delete sessions |
|
||||
| **Settings** | Edit hook patterns (confirm/log/silent), view tools, channels, and redacted config |
|
||||
|
||||
The dashboard is a vanilla JS SPA with no build step — hash-based routing, ES modules, and the existing WebSocket JSON-RPC protocol.
|
||||
|
||||
## Terminal UI
|
||||
|
||||
```bash
|
||||
@@ -278,22 +305,32 @@ Exit code is `1` if any check fails, `0` otherwise. Checks that depend on a vali
|
||||
|
||||
```
|
||||
src/
|
||||
├── agents/ # Multi-agent routing
|
||||
├── auth/ # OAuth flows (GitHub Copilot)
|
||||
├── backends/native/ # Agent implementation + orchestrator
|
||||
├── channels/ # Channel adapters (Telegram, Discord, Slack, WhatsApp, WebChat)
|
||||
├── cli/ # CLI commands (commander)
|
||||
├── config/ # YAML config + Zod validation
|
||||
├── models/ # Model providers + router
|
||||
├── backends/native/ # Agent implementation
|
||||
├── session/ # SQLite persistence
|
||||
├── context/ # Token estimation + compaction
|
||||
├── daemon/ # Lifecycle management + routing
|
||||
├── frontends/
|
||||
│ ├── telegram/ # Telegram bot
|
||||
│ └── tui/ # Terminal UI (minimal + fullscreen)
|
||||
├── gateway/ # WebSocket gateway + web UI dashboard
|
||||
│ ├── handlers/ # JSON-RPC method handlers
|
||||
│ └── ui/ # SPA dashboard (vanilla JS)
|
||||
│ ├── pages/ # Dashboard, Chat, Sessions, Settings
|
||||
│ └── lib/ # WebSocket RPC client
|
||||
├── hooks/ # Confirmation engine
|
||||
├── daemon/ # Lifecycle management
|
||||
├── channels/ # Channel adapter abstraction
|
||||
├── automation/ # Cron scheduler
|
||||
├── gateway/ # WebSocket gateway + web UI
|
||||
├── mcp/ # MCP tool server integration
|
||||
├── memory/ # Persistent memory store
|
||||
├── models/ # Model providers + router + media pipeline
|
||||
├── prompt/ # System prompt templating
|
||||
├── sandbox/ # Docker sandboxing
|
||||
├── session/ # SQLite persistence
|
||||
├── skills/ # Skill packages
|
||||
├── tools/ # Builtin tools (shell, file, web)
|
||||
└── frontends/
|
||||
├── telegram/ # Telegram bot
|
||||
└── tui/ # Terminal UI
|
||||
├── tools/ # Builtin tools (shell, file, web, browser, process, media)
|
||||
└── automation/ # Cron scheduler
|
||||
```
|
||||
|
||||
## Development
|
||||
|
||||
Reference in New Issue
Block a user