agent-usage-manager 0.2.3__tar.gz → 0.2.4__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.
Files changed (20) hide show
  1. {agent_usage_manager-0.2.3 → agent_usage_manager-0.2.4}/PKG-INFO +19 -1
  2. {agent_usage_manager-0.2.3 → agent_usage_manager-0.2.4}/README.md +18 -0
  3. {agent_usage_manager-0.2.3 → agent_usage_manager-0.2.4}/agent_usage_manager/agents.yaml +4 -0
  4. {agent_usage_manager-0.2.3 → agent_usage_manager-0.2.4}/pyproject.toml +1 -1
  5. {agent_usage_manager-0.2.3 → agent_usage_manager-0.2.4}/uv.lock +1 -1
  6. {agent_usage_manager-0.2.3 → agent_usage_manager-0.2.4}/.github/workflows/ci.yml +0 -0
  7. {agent_usage_manager-0.2.3 → agent_usage_manager-0.2.4}/.gitignore +0 -0
  8. {agent_usage_manager-0.2.3 → agent_usage_manager-0.2.4}/LICENSE +0 -0
  9. {agent_usage_manager-0.2.3 → agent_usage_manager-0.2.4}/agent_usage_manager/__init__.py +0 -0
  10. {agent_usage_manager-0.2.3 → agent_usage_manager-0.2.4}/agent_usage_manager/app.py +0 -0
  11. {agent_usage_manager-0.2.3 → agent_usage_manager-0.2.4}/agent_usage_manager/cli.py +0 -0
  12. {agent_usage_manager-0.2.3 → agent_usage_manager-0.2.4}/agent_usage_manager/static/index.html +0 -0
  13. {agent_usage_manager-0.2.3 → agent_usage_manager-0.2.4}/demo.tape +0 -0
  14. {agent_usage_manager-0.2.3 → agent_usage_manager-0.2.4}/docs/dashboard.png +0 -0
  15. {agent_usage_manager-0.2.3 → agent_usage_manager-0.2.4}/docs/design/HLD.md +0 -0
  16. {agent_usage_manager-0.2.3 → agent_usage_manager-0.2.4}/docs/design/LLD.md +0 -0
  17. {agent_usage_manager-0.2.3 → agent_usage_manager-0.2.4}/requirements.txt +0 -0
  18. {agent_usage_manager-0.2.3 → agent_usage_manager-0.2.4}/run.sh +0 -0
  19. {agent_usage_manager-0.2.3 → agent_usage_manager-0.2.4}/tests/test_smoke.py +0 -0
  20. {agent_usage_manager-0.2.3 → agent_usage_manager-0.2.4}/tests/test_synthetic.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-usage-manager
3
- Version: 0.2.3
3
+ Version: 0.2.4
4
4
  Summary: htop for AI agents — liveness, CPU/mem/GPU usage, and a kill switch for headless agents (openclaw, hermes, ollama, vllm, claude-code).
5
5
  Project-URL: Homepage, https://github.com/minglong51/agent-usage-manager
6
6
  Project-URL: Repository, https://github.com/minglong51/agent-usage-manager
@@ -161,6 +161,15 @@ This is the important part — a web page that can kill processes needs guardrai
161
161
 
162
162
  ## Limits & known issues
163
163
 
164
+ - **Matching is a heuristic and it over-matches.** An agent's identity usually
165
+ lives in its arguments (`node .../bin/codex`), and a GUI agent's real name is
166
+ its `.app` bundle (Kiro launches a binary called `Electron`) — so the match
167
+ target is the executable basename plus the first few args plus the bundle
168
+ name. The cost is that anything living inside an agent's `.app` (updaters,
169
+ crash handlers, helpers) and any process that names an agent in its first
170
+ args (`tmux attach -t workspace-claude`) can be misclassified as that agent.
171
+ `ignore:` is the escape hatch. The bundled list is not exhaustive and can't
172
+ be — every new agent ships new helpers under its own name.
164
173
  - **GPU column is NVIDIA-only.** Per-process GPU memory comes from
165
174
  `nvidia-smi --query-compute-apps` — NVIDIA compute processes (CUDA), in
166
175
  practice on Linux. AMD/Intel GPUs aren't read, graphics-only workloads don't
@@ -365,6 +374,15 @@ SIGTERM/SIGKILL on POSIX and TerminateProcess on Windows.
365
374
 
366
375
  ## Release notes
367
376
 
377
+ ### 0.2.4 — stop reporting non-agents
378
+
379
+ - `ignore:` now covers Sparkle's `Autoupdate`/`Updater` (Codex.app's equivalent of
380
+ Squirrel's ShipIt), the "Codex for Chrome" extension host, and `tmux attach`
381
+ clients — a session named `workspace-claude` matched the claude pattern via the
382
+ `-t` argument.
383
+ - Dogfooded against `ps` on a live 10-agent fleet: 22 rows → 17, with all six
384
+ removals confirmed as not agents and every real agent retained.
385
+
368
386
  ### 0.2.3 — startup fixes
369
387
 
370
388
  - The browser now opens once the port actually accepts, instead of on a fixed
@@ -142,6 +142,15 @@ This is the important part — a web page that can kill processes needs guardrai
142
142
 
143
143
  ## Limits & known issues
144
144
 
145
+ - **Matching is a heuristic and it over-matches.** An agent's identity usually
146
+ lives in its arguments (`node .../bin/codex`), and a GUI agent's real name is
147
+ its `.app` bundle (Kiro launches a binary called `Electron`) — so the match
148
+ target is the executable basename plus the first few args plus the bundle
149
+ name. The cost is that anything living inside an agent's `.app` (updaters,
150
+ crash handlers, helpers) and any process that names an agent in its first
151
+ args (`tmux attach -t workspace-claude`) can be misclassified as that agent.
152
+ `ignore:` is the escape hatch. The bundled list is not exhaustive and can't
153
+ be — every new agent ships new helpers under its own name.
145
154
  - **GPU column is NVIDIA-only.** Per-process GPU memory comes from
146
155
  `nvidia-smi --query-compute-apps` — NVIDIA compute processes (CUDA), in
147
156
  practice on Linux. AMD/Intel GPUs aren't read, graphics-only workloads don't
@@ -346,6 +355,15 @@ SIGTERM/SIGKILL on POSIX and TerminateProcess on Windows.
346
355
 
347
356
  ## Release notes
348
357
 
358
+ ### 0.2.4 — stop reporting non-agents
359
+
360
+ - `ignore:` now covers Sparkle's `Autoupdate`/`Updater` (Codex.app's equivalent of
361
+ Squirrel's ShipIt), the "Codex for Chrome" extension host, and `tmux attach`
362
+ clients — a session named `workspace-claude` matched the claude pattern via the
363
+ `-t` argument.
364
+ - Dogfooded against `ps` on a live 10-agent fleet: 22 rows → 17, with all six
365
+ removals confirmed as not agents and every real agent retained.
366
+
349
367
  ### 0.2.3 — startup fixes
350
368
 
351
369
  - The browser now opens once the port actually accepts, instead of on a fixed
@@ -57,6 +57,10 @@ ignore:
57
57
  - crashpad # chrome_crashpad_handler — the bundle's crash reporter
58
58
  - shipit # Squirrel.framework auto-updater
59
59
  - kiro-cli-term # Kiro's integrated-terminal shells (zsh), not the agent
60
+ - autoupdate # Sparkle's Autoupdate helper — Codex.app's ShipIt equivalent
61
+ - updater # Sparkle's Updater.app; argv[1] is the app path, so it matches
62
+ - for chrome # "Codex for Chrome" extension host, not the agent
63
+ - tmux attach # tmux clients: `attach -t <session>` carries the agent's name
60
64
 
61
65
  # Optional: per-instance labels from tmux session names. A fleet of identical
62
66
  # agents (e.g. several claude-code bots, one per tmux session bot-*) all hit
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "agent-usage-manager"
7
- version = "0.2.3"
7
+ version = "0.2.4"
8
8
  description = "htop for AI agents — liveness, CPU/mem/GPU usage, and a kill switch for headless agents (openclaw, hermes, ollama, vllm, claude-code)."
9
9
  readme = "README.md"
10
10
  license = { text = "MIT" }
@@ -8,7 +8,7 @@ resolution-markers = [
8
8
 
9
9
  [[package]]
10
10
  name = "agent-usage-manager"
11
- version = "0.2.3"
11
+ version = "0.2.4"
12
12
  source = { editable = "." }
13
13
  dependencies = [
14
14
  { name = "fastapi", version = "0.128.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },