No description
  • Svelte 34.9%
  • Rust 32.9%
  • TypeScript 29.1%
  • HTML 1.1%
  • CSS 0.9%
  • Other 1.1%
Find a file
Sergey Aristov a7aecb4601
Merge pull request #1
TERMIA-011-ui-new-features
2026-07-13 09:46:02 +03:00
.github/workflows feat: извлечение termia-2 в standalone репозиторий 2026-06-27 18:44:59 +03:00
docs chore(release): бамп termia-2 до 0.4.2 2026-07-10 08:29:46 +03:00
landing (termia-2) Исправлено поведение при закрытии всех файлов - ранее было переключение на чат. 2026-06-10 17:56:40 +03:00
scripts feat: извлечение termia-2 в standalone репозиторий 2026-06-27 18:44:59 +03:00
src fix(git): синхронизировать Git-дерево и окно коммита с активным проектом 2026-07-09 16:24:46 +03:00
src-tauri chore(release): бамп termia-2 до 0.4.2 2026-07-10 08:29:46 +03:00
termia-terminal Add 'termia-terminal/' from commit '7db112f20d' 2026-06-27 18:28:49 +03:00
.env.example (termia-2) Исправлены недоработки логирования 2026-06-02 14:23:18 +03:00
.gitattributes docs: восстановить docs/specs и docs/research, удалить ссылки на ui-tests, нормализовать окончания строк схем 2026-06-27 18:59:14 +03:00
.gitignore feat: извлечение termia-2 в standalone репозиторий 2026-06-27 18:44:59 +03:00
ARCHITECTURE.md docs: финальное обновление документации для fan-extensions-skills 2026-07-02 20:38:23 +03:00
CLAUDE.md docs(claude): задокументировать синхронизацию FileManager с активным агентом 2026-07-08 14:39:37 +03:00
CONTRIBUTING.md feat: извлечение termia-2 в standalone репозиторий 2026-06-27 18:44:59 +03:00
index.html (termia-2) feat: Stage 0 PoC — Tauri v2 + Svelte 5 проект с Chat Panel, Task Board, Tool Approval, LLM API и Agent Bridge 2026-05-29 09:18:18 +03:00
INSTALL.md feat: извлечение termia-2 в standalone репозиторий 2026-06-27 18:44:59 +03:00
LICENSE feat: извлечение termia-2 в standalone репозиторий 2026-06-27 18:44:59 +03:00
package.json chore(release): бамп termia-2 до 0.4.2 2026-07-10 08:29:46 +03:00
pnpm-lock.yaml feat: извлечение termia-2 в standalone репозиторий 2026-06-27 18:44:59 +03:00
pnpm-workspace.yaml (termia-2) feat: Stage 0 PoC — Tauri v2 + Svelte 5 проект с Chat Panel, Task Board, Tool Approval, LLM API и Agent Bridge 2026-05-29 09:18:18 +03:00
README.md chore(release): бамп termia-2 до 0.4.2 2026-07-10 08:29:46 +03:00
RELEASE_NOTES.md chore(release): бамп termia-2 до 0.4.2 2026-07-10 08:29:46 +03:00
svelte.config.js (termia-2) fix: restart loop (workspace.db вне watch-зоны) + a11y warnings 2026-05-31 09:20:01 +03:00
tsconfig.json (termia-2) fix: все ошибки svelte-check + tsconfig ESNext 2026-06-06 13:46:17 +03:00
tsconfig.node.json (termia-2) feat: Stage 0 PoC — Tauri v2 + Svelte 5 проект с Chat Panel, Task Board, Tool Approval, LLM API и Agent Bridge 2026-05-29 09:18:18 +03:00
vite.config.ts (termia-2) feat(termia-2): внедрить единый frontend-logger для релизных логов 2026-06-24 14:07:00 +03:00
vitest.config.ts (termia-2) refactor(termia-2): перенести задачи из чата в панель над вводом 2026-06-15 17:43:07 +03:00

Termia — Desktop Agent

Пульт управления ИИ-агентами. Desktop-приложение на Tauri 2 + Svelte 5.

Актуальная версия: termia-2 0.4.2.

Termia 1.0.0 = termia-2 Desktop Agent — исторический релиз.
Это был основной продукт релиза Termia 1.0.0.

Статус разработки

Этап Статус Коммитов Описание
Stage 0 — PoC 8 Core loop: Chat → Task Board → Approval
Stage 1 — MVP 12 Terminal + Code Viewer + Diff + Workspace + Git + Layout
Stage 2 — rmux integration 20+ rmux daemon backend + terminal persistence
Stage 2 — AI Orchestrator AI Orchestrator + Shared Memory
Fan Extensions & Skills (0.4.0) 13 Discovery + UI panel + per-tab routing + slash autocomplete

Быстрый старт

# из корня репозитория
pnpm install
pnpm tauri dev    # Dev режим (Vite + Rust)
pnpm tauri build  # Production сборка

Подробнее:

Архитектура

Фронтенд (src/)

src/
├── App.svelte              # Главный layout (CSS Grid, 4 панели)
├── lib/
│   ├── chat/               # ChatPanel.svelte — чат с агентами
│   ├── taskboard/          # TaskBoard, TaskTreeItem, ApprovalCard
│   ├── terminal/           # Terminal*.svelte — xterm.js + WebGL
│   ├── workspace/          # CodeViewer + DiffViewer (CodeMirror 6)
│   ├── files/              # FileExplorer.svelte — дерево проекта
│   ├── git/                # GitExplorer.svelte — status, commit, log
│   └── store.svelte.ts     # Svelte 5 runes — глобальное состояние
└── lib/CommandPalette.svelte

Бэкенд (src-tauri/src/)

src-tauri/src/
├── lib.rs                  # Tauri команды, invoke_handler
├── llm_api/                # 6 LLM-провайдеров (DeepSeek, OpenAI, Anthropic, Ollama, Xiaomi, ZAI)
├── agent_bridge/           # AgentBridge trait + FanBridge + PiBridge + EventBus
│   ├── traits.rs           # AgentBridge, AgentEventHandler, AgentState, event types
│   ├── bridges.rs          # FanBridge (WebSocket), PiBridge (pi_agent_rust SDK)
│   ├── event_bus.rs        # Мультиплексирование событий
│   ├── agent_manager.rs    # Параллельные агенты
│   ├── commands.rs         # Tauri команды: start_task, approve, reject, cancel
│   └── connection.rs       # WebSocket клиент к FAN server
├── terminal/               # PTY spawn/read/write (portable-pty, feature-gated rmux)
├── workspace/              # SQLite workspace persistence
└── chat_history/           # SQLite история чата

Основные фичи

Stage 1 MVP (завершён)

  • 4-панельный layout — CSS Grid с drag handles и collapse
  • Чат с агентами — FAN + PI, streaming ответов, markdown, XSS-safe
  • Task Board — дерево задач, 5 статусов, approval карточки
  • Терминал — xterm.js WebGL, scrollback 10K, множественные табы
  • Code Viewer — CodeMirror 6, 11 языков, fold gutter
  • Diff Viewer — unified/side-by-side, accept/reject per hunk
  • File Explorer — tree view, git индикаторы (M/A/D/?), контекстное меню
  • Git Explorer — status, stage/unstage, commit, log, branch switch
  • Workspace persistence — SQLite WAL, автосохранение 30s
  • 6 LLM-провайдеров — DeepSeek, OpenAI, Anthropic, Ollama, Xiaomi, ZAI
  • Agent Protocol — единый event stream для FAN и PI

Stage 2 — rmux integration (завершён)

  • termia-terminal path-dependencyPtyBackend и TerminalBridge из termia-terminal/
  • Push-модель — Tauri Events вместо polling
  • Terminal persistence@xterm/addon-serialize + SQLite terminal_tabs
  • RmuxBackendrmux-sdk 0.5 через feature flag rmux-backend
  • Graceful shutdownprevent_closesave-and-closegraceful_exit

Stage 2 — AI Orchestrator (в разработке)

  • FAN extensions & skills — панель установленных расширений и скиллов, интеграция с CommandPalette, запуск в активном FAN-табе через per-tab RPC (agent_session_send_prompt).

Тестирование

  • Rust-тесты: 162 unit-теста (0 failures)
  • Svelte: svelte-check 0 errors

Тесты

cargo test --lib           # 162 теста
cargo check                # Проверка компиляции
npx svelte-check           # Проверка Svelte компонентов

Зависимости

  • Фронтенд: svelte 5, xterm.js, codemirror 6, marked, @tauri-apps/api
  • Бэкенд: tauri 2, portable-pty, rusqlite, tokio, serde, tokio-tungstenite
  • Инструменты: vite, pnpm, TypeScript, Rust 1.92+