Files
agentik/agentik-tui/README.md
T
subochev 0fdc12695e
ci / JVM build + tests (push) Failing after 1m57s
docs: per-module README + root navigation hub + CI/release workflows
- README.md в каждом подмодуле: для библиотек — описание проблемы,
  подключение через maven-central/caffeine, версии в gradle/libs.versions.toml.
  Для запускаемых модулей — команды запуска + переменные среды с дефолтами.
- Корневой README.md переписан как навигационный хаб: что это, где клиенты,
  где серверы, как собрать, как опубликовать.
- build.gradle.kts: per-module POM-description через единую карту в rootProject.extra
  (порядок важен — нужно ДО apply плагина KMP, поэтому beforeEvaluate в subprojects).
- .gitea/workflows/ci.yml (новый): build + jvmTest + shadowJar на PR/push main.
- .gitea/workflows/release.yml (обновлён): публикует библиотеки в caffeine
  Nexus + собирает 3 fatjar'а и крепит их к release как бинарные ассеты.
2026-09-16 16:24:03 +03:00

5.2 KiB
Raw Blame History

:agentik-tui — Compose-for-Mosaic TUI клиент к /agentik

Compose-style TUI-клиент (KMP desktop, без iOS), рендерится в ANSI-терминал через библиотеку Mosaic 0.18. Полная клавиатурная навигация — никаких :-префиксов (как в vim).

Сборка

./gradlew :agentik-tui:shadowJar
# Результат: agentik-tui/build/libs/agentik-tui-all.jar (~10 MB)

Также доступен через Nexus (caffeine репо) — pw.binom.agentik:agentik-tui:VERSION.

Запуск

# По умолчанию — http://localhost:8080/agentik
java --enable-native-access=ALL-UNNAMED \
     -jar agentik-tui-all.jar

# К другому серверу
java --enable-native-access=ALL-UNNAMED \
     -jar agentik-tui-all.jar --server http://192.168.76.166:8080/agentik

# Без восстановления последней беседы
java --enable-native-access=ALL-UNNAMED \
     -jar agentik-tui-all.jar --no-history

# Конкретная беседа
java --enable-native-access=ALL-UNNAMED \
     -jar agentik-tui-all.jar --id <conversation-uuid>

Альтернативно: AGENTIK_SERVER env-переменная.

--enable-native-access=ALL-UNNAMED обязателен: Mosaic использует нативные API терминала (stdin/stdout raw mode), что требует --enable-native-access.

Клавиши

Клавиша Действие
Tab / Shift-Tab переключение фокуса: input → history → sidebar → …
Enter отправить набранное сообщение
Backspace / Delete удалить символ
←/→ / Home/End курсор в input
↑/↓ scrollback (в фокусе на history) / input history (в фокусе на input)
Esc очистить input
F1 показать/скрыть help overlay
Ctrl-D / Ctrl-C прервать активный ход (повторное нажатие — выход)

:-префикс команд отключён намеренно — для отправки команд используются клавиши. Если нужно сделать что-то нестандартное — переключитесь на :agentik-cli (REPL с slash-командами).

Переменные окружения

Переменная Дефолт Назначение
AGENTIK_SERVER http://localhost:8080/agentik URL HTTP-фасада :server

История сессий: ~/.agentik/tui-state.json.

Layout

┌────────────────────────────────────────────────────────────────┐
│ agentik · agent-id · <conv-uuid> · focus=input                  │ ← header
├────────────────────────────────────────────────────────────────┤
│                                                                │
│  [User 14:32]                                                   │
│   привет                                                       │
│                                                                │
│  [Bot  14:32]                                                   │
│   привет! чем помочь?                                          │ ← history (scroll)
│   ▍                                                            │
│                                                                │
├────────────────────────────────────────────────────────────────┤
│ > | |                                                          │ ← input (cursor)
├────────────────────────────────────────────────────────────────┤
│ Tab focus  ↑↓ scroll  Enter send  Esc clear  F1 help  ⌃D exit  │ ← footer
└────────────────────────────────────────────────────────────────┘

Что пока работает и что нет

✅ header + history + input + footer
✅ focus cycling (Tab / Shift-Tab)
✅ input editing (chars, BS, Del, ←/→, Home/End, Enter)
✅ история input'а через ↑/↓ (в фокусе на input)
✅ scrollback history (в фокусе на history)
✅ F1 help overlay
✅ Ctrl-D / Ctrl-C interrupt

⌛ mouse support (термиос SGR-mouse parsing) — для v3+.
⌛ split-pane (history left / input right) — пока input внизу, full-width.
⌛ :agentik-cli-slash-команды внутри TUI (history backfill / list / switch).

Тесты

./gradlew :agentik-tui:jvmTest