refactor!: rebrand CCAM to AgentHub

Clean break, no compatibility alias. Renames the product name, the CLI
binary (`ccam` -> `agenthub`), the env var prefix (`CCAM_` ->
`AGENTHUB_`), the Prometheus metric namespace (`ccam_*` ->
`agenthub_*`), the tmux session prefix (`ccam-lane-<id>` ->
`agenthub-lane-<id>`), the per-repo runtime profile directory
(`.ccam/profile` -> `.agenthub/profile`), the lanes state root
(`~/.claude/ccam-lanes` -> `~/.claude/agenthub-lanes`), the bundled
plugins (`plugins/ccam*` -> `plugins/agenthub*`) and their slash
commands (`/ccam-doctor` -> `/agenthub-doctor`, `/ccam:*` ->
`/agenthub:*`).

Because there is no alias, an existing install has to be updated by
hand: rename its `.ccam/profile` directory and any `CCAM_*` variables,
and reinstall the plugin under its new name.

Two other name families are deliberately left alone here, since they are
not just strings: the `Claude-Code-Monitor` repository/marketplace name,
and the `agent-dashboard` npm package plus its `~/.claude/agent-dashboard`
runtime directory, which holds the live database and needs a migration
rather than a rename.

Verified: server 1406/1406, client 459/459, `grep -i ccam` clean across
tracked files, `openapi.yaml` regenerated (95 paths, unchanged count).
This commit is contained in:
2026-09-07 12:09:15 +07:00
parent ae9b3dbcd5
commit 17d56d0e01
345 changed files with 2705 additions and 2727 deletions
@@ -0,0 +1,36 @@
---
description: Quick connectivity + health probe of the Agent Monitor dashboard.
---
Run a fast health probe against the Agent Monitor dashboard at
`http://localhost:4820`. Do two checks and print OK / FAIL for each.
1. **API + stats** — fetch core stats:
```bash
curl -s -o /dev/null -w '%{http_code}' http://localhost:4820/api/stats
curl -s http://localhost:4820/api/stats
```
PASS if HTTP 200 and the body is valid JSON. From the body, surface
`total_sessions`, `active_sessions`, `total_events`, and `events_today`.
2. **Self-update status** — confirm the update subsystem responds:
```bash
curl -s -o /dev/null -w '%{http_code}' http://localhost:4820/api/updates/status
curl -s http://localhost:4820/api/updates/status
```
PASS if HTTP 200 and valid JSON. Surface whether an update is available and
the current vs latest version if present.
Print a compact report, one line per check:
```
Agent Monitor Doctor
API /api/stats ............ OK (sessions=12 active=1 events=3480 today=57)
/api/updates/status ....... OK (up to date — v1.x.x)
Overall: OK (2/2)
```
Use ✅ OK / ❌ FAIL markers. If any curl fails to connect (non-200 or no
response), mark that check FAIL and end with: "Dashboard unreachable — start it
with `npm start` from the repo root." Keep it to the report only; no extra prose.
@@ -0,0 +1,30 @@
---
description: Export Agent Monitor data (sessions/events/analytics/costs/all) as json/csv/md.
argument-hint: "[sessions|events|analytics|costs|all] [json|csv|md]"
---
Export Agent Monitor data using the dashboard export endpoint. Arguments:
**$ARGUMENTS** — the first token is the data `type`, the second is the `format`.
- `type` ∈ `sessions | events | analytics | costs | all` (default `all`)
- `format` ∈ `json | csv | md` (default `json`)
Set `TYPE` and `FORMAT` from the args (apply the defaults if missing), then run:
```bash
TYPE="${1:-all}"; FORMAT="${2:-json}"
curl -s "http://localhost:4820/api/settings/export?type=${TYPE}&format=${FORMAT}" \
-o "agenthub-export-${TYPE}.${FORMAT}"
```
Then:
1. Confirm the file was written and report its absolute path and byte size.
2. Preview the result: for `csv`/`md` print the first ~15 lines; for `json`
print a pretty-printed head (e.g. `head -c 1500` or the first array element
plus the record count).
3. Print a one-line summary: `Exported <type> as <format> → <path> (<N> records / <bytes>)`.
If the curl returns a non-200 or an error body, do not claim success — print the
error and remind the user to start the dashboard with `npm start` from the repo
root. Do not delete or overwrite any existing data; this command only reads via
the export endpoint and writes a new export file.
@@ -0,0 +1,33 @@
---
description: Show the latest N ingested events with timestamp, event_type, and tool_name.
argument-hint: "[N]"
---
Show the most recent events from the Agent Monitor dashboard. Argument:
**$ARGUMENTS** — `N`, the number of events to show (default 20).
Fetch recent events and take the newest N:
```bash
N="${1:-20}"
curl -s "http://localhost:4820/api/events?limit=${N}" | jq -r '.[] | "\(.timestamp)\t\(.event_type)\t\(.tool_name // "-")"'
```
The `/api/events` list is returned newest-first; show the most recent `N`.
Render a compact, aligned table — one row per event:
```
TIME EVENT_TYPE TOOL_NAME
2026-06-25T14:03:11Z PostToolUse Bash
2026-06-25T14:03:09Z PreToolUse Bash
2026-06-25T14:02:58Z Stop -
```
Include `event_type` (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart,
SessionEnd, Notification, Compaction, APIError, TurnDuration) and `tool_name`
when present (use `-` for events without a tool). End with a one-line count:
`Showing latest <N> events.`
If the request returns a non-200 or empty body, say so and tell the user to start
the dashboard with `npm start` from the repo root. Read-only — never POST or
modify events.