agent-manager-cli 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,183 @@
1
+ Metadata-Version: 2.4
2
+ Name: agent-manager-cli
3
+ Version: 0.1.0
4
+ Summary: CLI для удалённого управления AI-агентами — Node Agent, daemon, сканер сессий
5
+ License-Expression: MIT
6
+ Requires-Python: >=3.11
7
+ Requires-Dist: pydantic>=2.0
8
+ Requires-Dist: websockets>=13.0
9
+ Description-Content-Type: text/markdown
10
+
11
+ # Agent Manager CLI
12
+
13
+ CLI-клиент для удалённого управления AI-агентами. Работает в паре с сервером [Agent Control](https://agent-manager.space).
14
+
15
+ ## Что это
16
+
17
+ **Node Agent** — процесс на вашем компьютере, который:
18
+ 1. Сканирует локальные CLI-сессии (Claude Code, Codex, Gemini)
19
+ 2. Отправляет список сессий на сервер
20
+ 3. Получает команды от сервера («подключись к сессии X»)
21
+ 4. Запускает daemon для стриминга событий в дашборд
22
+
23
+ ```
24
+ Ваш компьютер Сервер
25
+ $ am login → авторизация
26
+ $ am connect → WS /ws/node (постоянное)
27
+ сканирует ~/.claude/ и т.д. → список сессий → Redis
28
+
29
+ Телефон: "+ Агент" → "Подключить"
30
+ Сервер → {"type":"attach",...}
31
+ Node запускает daemon → WS /ws/daemon (стрим)
32
+ ```
33
+
34
+ ## Установка
35
+
36
+ ```bash
37
+ pip install agentmanager
38
+ ```
39
+
40
+ Или через uv:
41
+
42
+ ```bash
43
+ uv tool install agentmanager
44
+ ```
45
+
46
+ ## Быстрый старт
47
+
48
+ ### 1. Авторизация
49
+
50
+ ```bash
51
+ am login --host agent-manager.space --secure
52
+ ```
53
+
54
+ Запросит email и пароль. Сохраняет токены в `~/.agentmanager/config.json`.
55
+
56
+ Для локальной разработки (без HTTPS):
57
+
58
+ ```bash
59
+ am login --host localhost:8000 --email user@test.com --password pass
60
+ ```
61
+
62
+ ### 2. Запуск Node Agent
63
+
64
+ ```bash
65
+ am connect
66
+ ```
67
+
68
+ Node Agent:
69
+ - Подключается к серверу через WebSocket
70
+ - Сканирует сессии каждые 30 секунд
71
+ - Отправляет heartbeat каждые 25 секунд
72
+ - Слушает команды `attach` от сервера
73
+
74
+ После запуска в дашборде появится статус «Node Agent онлайн» и список ваших сессий.
75
+
76
+ ### 3. Подключение сессии
77
+
78
+ В дашборде: **+ Агент** → **Подключить сессию** → выберите сессию → **Подключить**.
79
+
80
+ Node Agent автоматически запустит daemon, и стрим появится в дашборде.
81
+
82
+ ## Ручной режим (daemon)
83
+
84
+ Можно запустить daemon напрямую, без Node Agent:
85
+
86
+ ```bash
87
+ am daemon --token <DAEMON_TOKEN> -- \
88
+ claude --continue --resume <SESSION_ID> \
89
+ --output-format stream-json \
90
+ --input-format stream-json
91
+ ```
92
+
93
+ Pipe-режим (только чтение, без двустороннего ввода):
94
+
95
+ ```bash
96
+ claude -p "task" --output-format stream-json | am daemon --token <TOKEN>
97
+ ```
98
+
99
+ ## Команды
100
+
101
+ | Команда | Описание |
102
+ |---------|----------|
103
+ | `am login` | Авторизация на сервере |
104
+ | `am connect` | Запуск Node Agent |
105
+ | `am daemon` | Запуск daemon для конкретной сессии |
106
+
107
+ ### am login
108
+
109
+ ```
110
+ am login --host <HOST> [--email <EMAIL>] [--password <PASS>] [--secure]
111
+ ```
112
+
113
+ | Флаг | Описание |
114
+ |------|----------|
115
+ | `--host` | Адрес сервера (обязательно) |
116
+ | `--email` | Email (запросит, если не указан) |
117
+ | `--password` | Пароль (запросит, если не указан) |
118
+ | `--secure` | Использовать HTTPS/WSS |
119
+
120
+ ### am connect
121
+
122
+ ```
123
+ am connect [--host <HOST>] [--secure]
124
+ ```
125
+
126
+ | Флаг | Описание |
127
+ |------|----------|
128
+ | `--host` | Переопределить сохранённый хост |
129
+ | `--secure` | Использовать WSS |
130
+
131
+ ### am daemon
132
+
133
+ ```
134
+ am daemon --token <TOKEN> [--host <HOST>] [--secure] [--no-followup] [-- <CLI_COMMAND>]
135
+ ```
136
+
137
+ | Флаг | Описание |
138
+ |------|----------|
139
+ | `--token` | Daemon JWT токен (обязательно) |
140
+ | `--host` | Адрес сервера (по умолчанию `localhost:8000`) |
141
+ | `--secure` | Использовать WSS |
142
+ | `--no-followup` | Не ждать follow-up сообщений |
143
+
144
+ ## Поддерживаемые CLI
145
+
146
+ | CLI | Директория сессий | Формат |
147
+ |-----|-------------------|--------|
148
+ | Claude Code | `~/.claude/projects/` | JSONL |
149
+ | Codex | `~/.codex/sessions/` | JSONL |
150
+ | Gemini | `~/.gemini/tmp/` | JSON |
151
+
152
+ ## Конфигурация
153
+
154
+ Токены и настройки хранятся в `~/.agentmanager/config.json`:
155
+
156
+ ```json
157
+ {
158
+ "host": "agent-manager.space",
159
+ "secure": true,
160
+ "access_token": "...",
161
+ "refresh_token": "..."
162
+ }
163
+ ```
164
+
165
+ ## Требования
166
+
167
+ - Python 3.11+
168
+ - Зависимости: `websockets`, `pydantic`
169
+
170
+ ## Разработка
171
+
172
+ ```bash
173
+ git clone <repo>
174
+ cd am-cli
175
+ uv sync
176
+ uv run am --help
177
+ uv run pytest
178
+ uv run ruff check .
179
+ ```
180
+
181
+ ## Лицензия
182
+
183
+ MIT
@@ -0,0 +1,14 @@
1
+ am/__init__.py,sha256=T4ioqQdnqjJUI9nY1zgXVqjsuwqDEWAuudusCfwmDqw,88
2
+ am/__main__.py,sha256=ka93K_S68x_kl7KJ-mMGU-efBZatflBt0x9Fx4puvLA,72
3
+ am/cli.py,sha256=XETrxgsQOYD0SoX-__P4Ln0PugmZGtdDV5SlpxFO9KU,27544
4
+ am/scanners/__init__.py,sha256=VDmjDu10EdX62w2tVncfnzSOJP87Q6AxXfwGa1-mvnI,698
5
+ am/scanners/_util.py,sha256=Dn_OvwTIVCmGihtDqwOQKmjBrfSPD8vWa2YV704W-6s,564
6
+ am/scanners/claude.py,sha256=e-2pdLtUSeuulrVc0BD6L22oN1ucRMul0lR-x1--vRk,3082
7
+ am/scanners/codex.py,sha256=nu4BnlxEnGOyI1dbqRXSn28pQNqAru0obtYcGUn6BVM,2660
8
+ am/scanners/gemini.py,sha256=QbiMAobJ1wgaMlTgDF4BE-dMLux8bWvVX-O9dbVYIrw,3165
9
+ am/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
+ am/schemas/session.py,sha256=ZGjtdgRGFELvYBO4j_OgRup8OUetkwvFH1Pty2Pqmhs,273
11
+ agent_manager_cli-0.1.0.dist-info/METADATA,sha256=SUtAwCJ5W4s8EWZsuScBN9M6LKv_W1uv3Ay0VAY1au4,5295
12
+ agent_manager_cli-0.1.0.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
13
+ agent_manager_cli-0.1.0.dist-info/entry_points.txt,sha256=1e-BUHd892-xgIYd9haRnGt1ZpMk0yU890JY60cHAWA,35
14
+ agent_manager_cli-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.29.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ am = am.cli:main
am/__init__.py ADDED
@@ -0,0 +1,3 @@
1
+ """Agent Manager CLI — Node Agent, daemon, session scanner."""
2
+
3
+ __version__ = "0.1.0"
am/__main__.py ADDED
@@ -0,0 +1,5 @@
1
+ """Allow running as `python -m am`."""
2
+
3
+ from am.cli import main
4
+
5
+ main()