75 lines
5.8 KiB
Markdown
75 lines
5.8 KiB
Markdown
# agentik-desktop — дизайн десктопного клиента
|
||
|
||
Десктопный клиент агента **agentik** (Jetpack Compose Desktop). UI общается с агентом
|
||
через опубликованную библиотеку `pw.binom.agentik:client` — она даёт готовые
|
||
`Agent` / `Conversation`, живой поток событий и `interrupt()` для кнопки «Стоп».
|
||
|
||
Это пока **только дизайн**, не код приложения.
|
||
|
||
## Что где лежит
|
||
|
||
```
|
||
sketches/001-sidebar-utility/index.html # привычный мессенджер — ВЫБРАН
|
||
sketches/002-rail-voice-first/index.html # голос — главное действие
|
||
sketches/003-three-pane-command/index.html # три панели + состояние агента
|
||
sketches/004-settings-agents/index.html # настройки агентов + проверка связи
|
||
```
|
||
|
||
`BORROW-FROM-ASSISTENT.md` — что берём из `ai/assistent` (приёмы, плагины, версии),
|
||
а что не берём (архитектура, экраны, дизайн — своё).
|
||
`MARKDOWN-SOURCE.md` — откуда брать готовую отрисовку Markdown (файлы и адреса).
|
||
`REQUIREMENTS.md` — требования. Статус: накидываем, ни один пункт не обязателен
|
||
к исполнению в том виде, как записан.
|
||
|
||
## Что решено
|
||
|
||
- **Основа — вариант 1** (`001-sidebar-utility`). Остальные остаются рядом как
|
||
источник идей.
|
||
- Стиль — тёмный, из уже принятой темы клиента assistent: фон `#121218`,
|
||
панели `#17212B`, акцент `#6AB2F2`, текст `#EBEBEB`.
|
||
- **Узкое окно** — на экране что-то одно: либо список диалогов, либо чат.
|
||
Переключение кнопкой «Назад», как в Телеграме. Широкое — обе части сразу.
|
||
- **Подсказка о горячих клавишах** под полем ввода убрана.
|
||
- **Счётчиков токенов и кольца заполнения не будет.** В библиотеке `client`
|
||
таких данных нет вообще: ни модели, ни отправлено/получено, ни предела
|
||
контекста. Правило: нет данных — нет цифры.
|
||
- **Несколько агентов** — предусмотреть. Различение: **цвет или картинка** на выбор.
|
||
Цвет помечает диалоги агента (полоска у строки, точка у группы); картинка
|
||
показывается кружком вместо цвета. **Картинку клиент копирует себе**, а не берёт
|
||
по исходному адресу — иначе значок пропадёт вместе с файлом.
|
||
- **Markdown** — показывать разметкой, а не сырыми символами. Готовый рендер
|
||
лежит в репозитории `ai/assistent` — писать свой не надо, брать оттуда.
|
||
Точные координаты файлов — в `MARKDOWN-SOURCE.md`.
|
||
- **Папки над списком диалогов** («Все чаты», «Работа», «Дом») — часть выбранного
|
||
варианта 1, не терять их при доработках.
|
||
- **Проверка связи с агентом** — в отдельном окне поверх настроек: идёт → отвечает
|
||
→ не отвечает, с подробностями и подсказкой. Добавить агента можно только
|
||
после успешной проверки.
|
||
|
||
## Заимствования: только приёмы, не архитектура
|
||
|
||
Из репозитория `ai/assistent` берём **приёмы отрисовки, плагины и версии**.
|
||
Архитектуру, слои, готовые экраны и окна — **не берём**: дизайн у нас свой,
|
||
нарисованный (см. `sketches/`). Разбор по пунктам — в `BORROW-FROM-ASSISTENT.md`,
|
||
там же таблица «берём / не берём».
|
||
|
||
## Как смотреть
|
||
|
||
Открыть в браузере любой из файлов — каждый самодостаточный, без сборки.
|
||
В четвёртом сверху переключатель состояний: список агентов, форма, проверка
|
||
связи (успех и ошибка), список диалогов с двумя агентами.
|
||
|
||
## Что предстоит решить
|
||
|
||
1. **Запись** — по нажатию (нажал — говоришь — нажал) или на удержание.
|
||
2. Форма показа хода работы агента в свёрнутом виде.
|
||
3. Различение агентов: одного цвета может оказаться мало.
|
||
4. Где хранится список агентов.
|
||
5. Нужны ли папки для диалогов, как в мобильном клиенте, или хватит поиска.
|
||
|
||
## Что сознательно не решается здесь
|
||
|
||
- **Откуда берётся распознавание речи.** Отдельная тема, к интерфейсу не
|
||
относится: в дизайне показано только место кнопки и что происходит на экране
|
||
во время записи. Кто именно превращает голос в текст — решается потом.
|