forgexa-cli 1.23.2__tar.gz → 1.24.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.
- {forgexa_cli-1.23.2 → forgexa_cli-1.24.2}/PKG-INFO +27 -4
- {forgexa_cli-1.23.2 → forgexa_cli-1.24.2}/README.md +26 -3
- {forgexa_cli-1.23.2 → forgexa_cli-1.24.2}/forgexa_cli/__init__.py +1 -1
- {forgexa_cli-1.23.2 → forgexa_cli-1.24.2}/forgexa_cli/daemon.py +710 -72
- {forgexa_cli-1.23.2 → forgexa_cli-1.24.2}/forgexa_cli/main.py +838 -22
- {forgexa_cli-1.23.2 → forgexa_cli-1.24.2}/forgexa_cli.egg-info/PKG-INFO +27 -4
- {forgexa_cli-1.23.2 → forgexa_cli-1.24.2}/forgexa_cli.egg-info/SOURCES.txt +3 -0
- {forgexa_cli-1.23.2 → forgexa_cli-1.24.2}/pyproject.toml +1 -1
- {forgexa_cli-1.23.2 → forgexa_cli-1.24.2}/tests/test_auth_and_runtime_commands.py +531 -10
- forgexa_cli-1.24.2/tests/test_expiry_warnings_and_revoke.py +373 -0
- forgexa_cli-1.24.2/tests/test_runtime_credentials.py +385 -0
- forgexa_cli-1.24.2/tests/test_session_credentials.py +314 -0
- {forgexa_cli-1.23.2 → forgexa_cli-1.24.2}/forgexa_cli/_build_config.py +0 -0
- {forgexa_cli-1.23.2 → forgexa_cli-1.24.2}/forgexa_cli/autoupgrade.py +0 -0
- {forgexa_cli-1.23.2 → forgexa_cli-1.24.2}/forgexa_cli/py.typed +0 -0
- {forgexa_cli-1.23.2 → forgexa_cli-1.24.2}/forgexa_cli.egg-info/dependency_links.txt +0 -0
- {forgexa_cli-1.23.2 → forgexa_cli-1.24.2}/forgexa_cli.egg-info/entry_points.txt +0 -0
- {forgexa_cli-1.23.2 → forgexa_cli-1.24.2}/forgexa_cli.egg-info/requires.txt +0 -0
- {forgexa_cli-1.23.2 → forgexa_cli-1.24.2}/forgexa_cli.egg-info/top_level.txt +0 -0
- {forgexa_cli-1.23.2 → forgexa_cli-1.24.2}/setup.cfg +0 -0
- {forgexa_cli-1.23.2 → forgexa_cli-1.24.2}/tests/test_autoupgrade.py +0 -0
- {forgexa_cli-1.23.2 → forgexa_cli-1.24.2}/tests/test_check_command.py +0 -0
- {forgexa_cli-1.23.2 → forgexa_cli-1.24.2}/tests/test_silent_install.py +0 -0
- {forgexa_cli-1.23.2 → forgexa_cli-1.24.2}/tests/test_upgrade_observability.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: forgexa-cli
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.24.2
|
|
4
4
|
Summary: Forgexa CLI — command-line client and AI agent runtime for the Forgexa platform
|
|
5
5
|
Author-email: Jason Sun <dev.winds@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -69,7 +69,7 @@ pip install -e .
|
|
|
69
69
|
# Configure server (default: http://localhost:8000)
|
|
70
70
|
export FORGEXA_SERVER_URL=https://your-server.example.com
|
|
71
71
|
|
|
72
|
-
# Login (saves
|
|
72
|
+
# Login (saves session to ~/.forgexa/credentials.json)
|
|
73
73
|
forgexa login
|
|
74
74
|
|
|
75
75
|
# List workspaces
|
|
@@ -106,8 +106,11 @@ forgexa board --project <project-id>
|
|
|
106
106
|
| `forgexa budget --workspace <id>` | Budget overview |
|
|
107
107
|
| `forgexa daemon start` | Start local daemon (discover agents, run tasks) |
|
|
108
108
|
| `forgexa daemon start -d` | Start daemon in background |
|
|
109
|
-
| `forgexa daemon status` | Show your daemon statuses |
|
|
109
|
+
| `forgexa daemon status` | Show your daemon statuses (credential type, prefix, expiry) |
|
|
110
110
|
| `forgexa daemon stop` | Stop local daemon |
|
|
111
|
+
| `forgexa daemon enroll` | Issue a dedicated runtime credential for this machine (recommended for long-running daemons) |
|
|
112
|
+
| `forgexa daemon rotate-token` | Rotate this runtime's credential (old one is revoked immediately) |
|
|
113
|
+
| `forgexa daemon revoke-credential` | Revoke this runtime's credential (keeps your login session) |
|
|
111
114
|
| `forgexa check` | Verify locally-installed agent CLIs are genuinely usable (runs a real task per agent) |
|
|
112
115
|
| `forgexa check --quick` | Same, but discovery only — no live task, no API calls |
|
|
113
116
|
| `forgexa check --agent <name>` | Check a single agent (e.g. `claude`, `codex`, `kimi`) |
|
|
@@ -239,6 +242,26 @@ forgexa runtimes list
|
|
|
239
242
|
forgexa runtimes list --all
|
|
240
243
|
```
|
|
241
244
|
|
|
245
|
+
### Runtime Credentials
|
|
246
|
+
|
|
247
|
+
A freshly logged-in daemon authenticates with your interactive login session. For a
|
|
248
|
+
long-running daemon (e.g. a machine that stays on 24/7), issue it a dedicated,
|
|
249
|
+
revocable credential instead so it never depends on your session expiring:
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
# Issue a runtime credential for this machine (default 90-day expiry, max 365)
|
|
253
|
+
forgexa daemon enroll
|
|
254
|
+
|
|
255
|
+
# Rotate it (the old credential is revoked immediately — no overlap window)
|
|
256
|
+
forgexa daemon rotate-token
|
|
257
|
+
|
|
258
|
+
# Revoke it (keeps your login session; run 'forgexa daemon enroll' again to reissue)
|
|
259
|
+
forgexa daemon revoke-credential
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
`forgexa daemon status` shows which credential type is active, its prefix, and its
|
|
263
|
+
expiry — the raw credential value is only ever printed once, at enroll/rotate time.
|
|
264
|
+
|
|
242
265
|
### Agent Health Check
|
|
243
266
|
|
|
244
267
|
Before starting the daemon (or when tasks keep failing on this machine), verify that every
|
|
@@ -294,7 +317,7 @@ The daemon automatically discovers these agents if installed on your system:
|
|
|
294
317
|
| Variable | Default | Description |
|
|
295
318
|
|----------|---------|-------------|
|
|
296
319
|
| `DAEMON_SERVER_URL` | `http://localhost:8000` | Server to connect to |
|
|
297
|
-
| `DAEMON_API_TOKEN` | — |
|
|
320
|
+
| `DAEMON_API_TOKEN` | — | Explicit override token (not persisted, never auto-refreshed); omit this to let the daemon use your login session or an enrolled runtime credential |
|
|
298
321
|
| `DAEMON_MAX_CONCURRENT` | `5` | Max parallel tasks |
|
|
299
322
|
| `DAEMON_POLL_INTERVAL` | `3` | Poll interval (seconds) |
|
|
300
323
|
|
|
@@ -37,7 +37,7 @@ pip install -e .
|
|
|
37
37
|
# Configure server (default: http://localhost:8000)
|
|
38
38
|
export FORGEXA_SERVER_URL=https://your-server.example.com
|
|
39
39
|
|
|
40
|
-
# Login (saves
|
|
40
|
+
# Login (saves session to ~/.forgexa/credentials.json)
|
|
41
41
|
forgexa login
|
|
42
42
|
|
|
43
43
|
# List workspaces
|
|
@@ -74,8 +74,11 @@ forgexa board --project <project-id>
|
|
|
74
74
|
| `forgexa budget --workspace <id>` | Budget overview |
|
|
75
75
|
| `forgexa daemon start` | Start local daemon (discover agents, run tasks) |
|
|
76
76
|
| `forgexa daemon start -d` | Start daemon in background |
|
|
77
|
-
| `forgexa daemon status` | Show your daemon statuses |
|
|
77
|
+
| `forgexa daemon status` | Show your daemon statuses (credential type, prefix, expiry) |
|
|
78
78
|
| `forgexa daemon stop` | Stop local daemon |
|
|
79
|
+
| `forgexa daemon enroll` | Issue a dedicated runtime credential for this machine (recommended for long-running daemons) |
|
|
80
|
+
| `forgexa daemon rotate-token` | Rotate this runtime's credential (old one is revoked immediately) |
|
|
81
|
+
| `forgexa daemon revoke-credential` | Revoke this runtime's credential (keeps your login session) |
|
|
79
82
|
| `forgexa check` | Verify locally-installed agent CLIs are genuinely usable (runs a real task per agent) |
|
|
80
83
|
| `forgexa check --quick` | Same, but discovery only — no live task, no API calls |
|
|
81
84
|
| `forgexa check --agent <name>` | Check a single agent (e.g. `claude`, `codex`, `kimi`) |
|
|
@@ -207,6 +210,26 @@ forgexa runtimes list
|
|
|
207
210
|
forgexa runtimes list --all
|
|
208
211
|
```
|
|
209
212
|
|
|
213
|
+
### Runtime Credentials
|
|
214
|
+
|
|
215
|
+
A freshly logged-in daemon authenticates with your interactive login session. For a
|
|
216
|
+
long-running daemon (e.g. a machine that stays on 24/7), issue it a dedicated,
|
|
217
|
+
revocable credential instead so it never depends on your session expiring:
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
# Issue a runtime credential for this machine (default 90-day expiry, max 365)
|
|
221
|
+
forgexa daemon enroll
|
|
222
|
+
|
|
223
|
+
# Rotate it (the old credential is revoked immediately — no overlap window)
|
|
224
|
+
forgexa daemon rotate-token
|
|
225
|
+
|
|
226
|
+
# Revoke it (keeps your login session; run 'forgexa daemon enroll' again to reissue)
|
|
227
|
+
forgexa daemon revoke-credential
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
`forgexa daemon status` shows which credential type is active, its prefix, and its
|
|
231
|
+
expiry — the raw credential value is only ever printed once, at enroll/rotate time.
|
|
232
|
+
|
|
210
233
|
### Agent Health Check
|
|
211
234
|
|
|
212
235
|
Before starting the daemon (or when tasks keep failing on this machine), verify that every
|
|
@@ -262,7 +285,7 @@ The daemon automatically discovers these agents if installed on your system:
|
|
|
262
285
|
| Variable | Default | Description |
|
|
263
286
|
|----------|---------|-------------|
|
|
264
287
|
| `DAEMON_SERVER_URL` | `http://localhost:8000` | Server to connect to |
|
|
265
|
-
| `DAEMON_API_TOKEN` | — |
|
|
288
|
+
| `DAEMON_API_TOKEN` | — | Explicit override token (not persisted, never auto-refreshed); omit this to let the daemon use your login session or an enrolled runtime credential |
|
|
266
289
|
| `DAEMON_MAX_CONCURRENT` | `5` | Max parallel tasks |
|
|
267
290
|
| `DAEMON_POLL_INTERVAL` | `3` | Poll interval (seconds) |
|
|
268
291
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"""forgexa-cli — Forgexa command-line client."""
|
|
2
|
-
__version__ = "1.
|
|
2
|
+
__version__ = "1.24.2"
|