0fdc12695e
ci / JVM build + tests (push) Failing after 1m57s
- 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 как бинарные ассеты.
77 lines
3.3 KiB
Markdown
77 lines
3.3 KiB
Markdown
# :agentik-cli — JVM CLI клиент к /agentik
|
||
|
||
REPL-клиент к запущенному `:standalone`-серверу на базе `:client`. **JVM-only**
|
||
(JLine требует termios + `java.io.File`); для desktop-альтернативы — `:agentik-tui`.
|
||
|
||
## Сборка
|
||
|
||
```bash
|
||
./gradlew :agentik-cli:shadowJar
|
||
# Результат: agentik-cli/build/libs/agentik-cli-all.jar (~8 MB)
|
||
```
|
||
|
||
Также доступен через Maven Central Nexus (`caffeine` репо) — см. релизы:
|
||
`https://git.binom.pw/subochev/agentik/releases`. После публикации нового
|
||
тега jar появляется как `pw.binom.agentik:agentik-cli:VERSION` (artifact + classifier `all`).
|
||
|
||
## Запуск
|
||
|
||
```bash
|
||
# По умолчанию — http://localhost:8080/agentik
|
||
java -jar agentik-cli-all.jar
|
||
|
||
# К другому серверу
|
||
java -jar agentik-cli-all.jar --server http://192.168.76.166:8080/agentik
|
||
|
||
# Без восстановления последней беседы
|
||
java -jar agentik-cli-all.jar --no-history
|
||
|
||
# В конкретной беседе
|
||
java -jar agentik-cli-all.jar --id <conversation-uuid>
|
||
```
|
||
|
||
Альтернативно: `AGENTIK_SERVER` env-переменная с тем же эффектом, что и `--server`.
|
||
|
||
## Slash-команды внутри REPL
|
||
|
||
| Команда | Алиасы | Действие |
|
||
|---|---|---|
|
||
| `/help` | `/?` | список команд + клавиш |
|
||
| `/new <title?>` | `/n` | создать новый диалог |
|
||
| `/list` | `/ls` | показать все диалоги |
|
||
| `/switch <id>` | `/sw <id>` | переключиться на диалог |
|
||
| `/rename <title>` | `/mv <title>` | переименовать текущий |
|
||
| `/delete <id?>` | `/rm <id?>` | удалить (без id — текущий) |
|
||
| `/interrupt` | `/stop`, `/cancel` | прервать активный ход |
|
||
| `/history` | `/h`, `/hist` | backfill истории через `getMessages` |
|
||
| `/pwd` | `/where` | показать текущий conversation id |
|
||
| `/exit` | `/quit` | выйти (Ctrl-D / Ctrl-C — то же) |
|
||
|
||
Свободный текст = сообщение текущему диалогу; SSE-события (start_reasoning /
|
||
start_response / append_text / end / interrupted / error) стримятся в stdout
|
||
в реальном времени.
|
||
|
||
## Переменные окружения
|
||
|
||
| Переменная | Дефолт | Назначение |
|
||
|---|---|---|
|
||
| `AGENTIK_SERVER` | `http://localhost:8080/agentik` | URL HTTP-фасада `:server` |
|
||
|
||
История сессий (id + last event timestamp) сохраняется в
|
||
`~/.agentik/cli-state.json` (атомарно через `tmp → rename`).
|
||
|
||
## Особенности
|
||
|
||
- **Arrow keys, history (↑/↓), Ctrl-D/Ctrl-C** — через JLine 3.30, история
|
||
readline в `~/.agentik/.inputrc`-стиле (через JLine `DefaultHistory`).
|
||
- **Reconnect-safe SSE** — если сервер рестартовал, клиент подхватывает с
|
||
`lastEventAt` через `events(after)`.
|
||
- **Snapshot-режим** — если подключились к диалогу впервые, `/history`
|
||
подгружает старые сообщения через `getMessages(after)` (offline-бэкфилл).
|
||
|
||
## Тесты
|
||
|
||
```bash
|
||
./gradlew :agentik-cli:jvmTest
|
||
```
|