agent-manager-cli 0.1.0__tar.gz → 0.1.2__tar.gz
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.
- {agent_manager_cli-0.1.0 → agent_manager_cli-0.1.2}/PKG-INFO +7 -7
- {agent_manager_cli-0.1.0 → agent_manager_cli-0.1.2}/README.md +6 -6
- {agent_manager_cli-0.1.0 → agent_manager_cli-0.1.2}/am/__init__.py +1 -1
- {agent_manager_cli-0.1.0 → agent_manager_cli-0.1.2}/am/cli.py +13 -6
- {agent_manager_cli-0.1.0 → agent_manager_cli-0.1.2}/pyproject.toml +1 -1
- {agent_manager_cli-0.1.0 → agent_manager_cli-0.1.2}/.gitignore +0 -0
- {agent_manager_cli-0.1.0 → agent_manager_cli-0.1.2}/am/__main__.py +0 -0
- {agent_manager_cli-0.1.0 → agent_manager_cli-0.1.2}/am/scanners/__init__.py +0 -0
- {agent_manager_cli-0.1.0 → agent_manager_cli-0.1.2}/am/scanners/_util.py +0 -0
- {agent_manager_cli-0.1.0 → agent_manager_cli-0.1.2}/am/scanners/claude.py +0 -0
- {agent_manager_cli-0.1.0 → agent_manager_cli-0.1.2}/am/scanners/codex.py +0 -0
- {agent_manager_cli-0.1.0 → agent_manager_cli-0.1.2}/am/scanners/gemini.py +0 -0
- {agent_manager_cli-0.1.0 → agent_manager_cli-0.1.2}/am/schemas/__init__.py +0 -0
- {agent_manager_cli-0.1.0 → agent_manager_cli-0.1.2}/am/schemas/session.py +0 -0
- {agent_manager_cli-0.1.0 → agent_manager_cli-0.1.2}/tests/__init__.py +0 -0
- {agent_manager_cli-0.1.0 → agent_manager_cli-0.1.2}/tests/test_cli.py +0 -0
- {agent_manager_cli-0.1.0 → agent_manager_cli-0.1.2}/tests/test_event_mapping.py +0 -0
- {agent_manager_cli-0.1.0 → agent_manager_cli-0.1.2}/tests/test_scanners.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-manager-cli
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: CLI для удалённого управления AI-агентами — Node Agent, daemon, сканер сессий
|
|
5
5
|
License-Expression: MIT
|
|
6
6
|
Requires-Python: >=3.11
|
|
@@ -10,7 +10,7 @@ Description-Content-Type: text/markdown
|
|
|
10
10
|
|
|
11
11
|
# Agent Manager CLI
|
|
12
12
|
|
|
13
|
-
CLI-клиент для удалённого управления AI-агентами. Работает в паре с сервером [Agent
|
|
13
|
+
CLI-клиент для удалённого управления AI-агентами. Работает в паре с сервером [Agent Manager](https://agent-manager.space).
|
|
14
14
|
|
|
15
15
|
## Что это
|
|
16
16
|
|
|
@@ -34,13 +34,13 @@ $ am connect → WS /ws/node (постоянное)
|
|
|
34
34
|
## Установка
|
|
35
35
|
|
|
36
36
|
```bash
|
|
37
|
-
pip install
|
|
37
|
+
pip install agent-manager-cli
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
Или через uv:
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
|
-
uv tool install
|
|
43
|
+
uv tool install agent-manager-cli
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
## Быстрый старт
|
|
@@ -48,12 +48,12 @@ uv tool install agentmanager
|
|
|
48
48
|
### 1. Авторизация
|
|
49
49
|
|
|
50
50
|
```bash
|
|
51
|
-
am login
|
|
51
|
+
am login
|
|
52
52
|
```
|
|
53
53
|
|
|
54
54
|
Запросит email и пароль. Сохраняет токены в `~/.agentmanager/config.json`.
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
По умолчанию подключается к `agent-manager.space` по HTTPS. Для локальной разработки:
|
|
57
57
|
|
|
58
58
|
```bash
|
|
59
59
|
am login --host localhost:8000 --email user@test.com --password pass
|
|
@@ -112,7 +112,7 @@ am login --host <HOST> [--email <EMAIL>] [--password <PASS>] [--secure]
|
|
|
112
112
|
|
|
113
113
|
| Флаг | Описание |
|
|
114
114
|
|------|----------|
|
|
115
|
-
| `--host` | Адрес сервера (
|
|
115
|
+
| `--host` | Адрес сервера (по умолчанию `agent-manager.space`) |
|
|
116
116
|
| `--email` | Email (запросит, если не указан) |
|
|
117
117
|
| `--password` | Пароль (запросит, если не указан) |
|
|
118
118
|
| `--secure` | Использовать HTTPS/WSS |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Agent Manager CLI
|
|
2
2
|
|
|
3
|
-
CLI-клиент для удалённого управления AI-агентами. Работает в паре с сервером [Agent
|
|
3
|
+
CLI-клиент для удалённого управления AI-агентами. Работает в паре с сервером [Agent Manager](https://agent-manager.space).
|
|
4
4
|
|
|
5
5
|
## Что это
|
|
6
6
|
|
|
@@ -24,13 +24,13 @@ $ am connect → WS /ws/node (постоянное)
|
|
|
24
24
|
## Установка
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
|
-
pip install
|
|
27
|
+
pip install agent-manager-cli
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
Или через uv:
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
|
-
uv tool install
|
|
33
|
+
uv tool install agent-manager-cli
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
## Быстрый старт
|
|
@@ -38,12 +38,12 @@ uv tool install agentmanager
|
|
|
38
38
|
### 1. Авторизация
|
|
39
39
|
|
|
40
40
|
```bash
|
|
41
|
-
am login
|
|
41
|
+
am login
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
Запросит email и пароль. Сохраняет токены в `~/.agentmanager/config.json`.
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
По умолчанию подключается к `agent-manager.space` по HTTPS. Для локальной разработки:
|
|
47
47
|
|
|
48
48
|
```bash
|
|
49
49
|
am login --host localhost:8000 --email user@test.com --password pass
|
|
@@ -102,7 +102,7 @@ am login --host <HOST> [--email <EMAIL>] [--password <PASS>] [--secure]
|
|
|
102
102
|
|
|
103
103
|
| Флаг | Описание |
|
|
104
104
|
|------|----------|
|
|
105
|
-
| `--host` | Адрес сервера (
|
|
105
|
+
| `--host` | Адрес сервера (по умолчанию `agent-manager.space`) |
|
|
106
106
|
| `--email` | Email (запросит, если не указан) |
|
|
107
107
|
| `--password` | Пароль (запросит, если не указан) |
|
|
108
108
|
| `--secure` | Использовать HTTPS/WSS |
|
|
@@ -243,12 +243,13 @@ def _log(prefix: str, msg: str) -> None:
|
|
|
243
243
|
print(f"[{prefix}] {msg}", file=sys.stderr)
|
|
244
244
|
|
|
245
245
|
|
|
246
|
-
def _safe_urlopen(url
|
|
246
|
+
def _safe_urlopen(url, **kwargs):
|
|
247
247
|
"""urlopen wrapper that only allows http/https schemes."""
|
|
248
248
|
import urllib.request
|
|
249
249
|
|
|
250
|
-
|
|
251
|
-
|
|
250
|
+
check = url.full_url if isinstance(url, urllib.request.Request) else url
|
|
251
|
+
if not check.startswith(("http://", "https://")):
|
|
252
|
+
raise ValueError(f"Unsafe URL scheme: {check}")
|
|
252
253
|
return urllib.request.urlopen(url, **kwargs) # nosec B310 — scheme validated above
|
|
253
254
|
|
|
254
255
|
|
|
@@ -508,7 +509,9 @@ def cmd_login(args: argparse.Namespace) -> None:
|
|
|
508
509
|
email = args.email or input("Email: ")
|
|
509
510
|
password = args.password or getpass.getpass("Password: ")
|
|
510
511
|
|
|
511
|
-
|
|
512
|
+
# Default to secure for production host
|
|
513
|
+
secure = args.secure or not host.startswith("localhost")
|
|
514
|
+
proto = "https" if secure else "http"
|
|
512
515
|
url = f"{proto}://{host}/api/auth/login"
|
|
513
516
|
|
|
514
517
|
payload = json.dumps({"email": email, "password": password}).encode()
|
|
@@ -532,7 +535,7 @@ def cmd_login(args: argparse.Namespace) -> None:
|
|
|
532
535
|
|
|
533
536
|
config = load_config()
|
|
534
537
|
config["host"] = host
|
|
535
|
-
config["secure"] =
|
|
538
|
+
config["secure"] = secure
|
|
536
539
|
config["access_token"] = data["access_token"]
|
|
537
540
|
config["refresh_token"] = data["refresh_token"]
|
|
538
541
|
save_config(config)
|
|
@@ -786,7 +789,11 @@ def main() -> None:
|
|
|
786
789
|
|
|
787
790
|
# --- login ---
|
|
788
791
|
login_p = subparsers.add_parser("login", help="Authenticate with the server")
|
|
789
|
-
login_p.add_argument(
|
|
792
|
+
login_p.add_argument(
|
|
793
|
+
"--host",
|
|
794
|
+
default="agent-manager.space",
|
|
795
|
+
help="Server host (default: agent-manager.space)",
|
|
796
|
+
)
|
|
790
797
|
login_p.add_argument("--email", help="Email (will prompt if not provided)")
|
|
791
798
|
login_p.add_argument("--password", help="Password (will prompt if not provided)")
|
|
792
799
|
login_p.add_argument("--secure", action="store_true", help="Use HTTPS/WSS")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|