{"_id":"@ai-craft/agent-panel","name":"@ai-craft/agent-panel","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.1":{"name":"@ai-craft/agent-panel","version":"0.1.1","description":"Browser UI to spawn and manage sandboxed AI agents (raw Node HTTP + SSE + React+Vite frontend)","type":"module","main":"./cli.js","module":"./cli.js","types":"./src/index.d.ts","bin":{"agent-panel":"cli.js"},"engines":{"node":">=22.0.0"},"license":"MIT","publishConfig":{"access":"public"},"dependencies":{"react":"^19.2.5","react-dom":"^19.2.5","@ai-craft/sandbox":"1.0.0","@ai-craft/tokentracker":"0.1.0","@ai-craft/agent-workflow":"0.0.3"},"devDependencies":{"@types/react":"^19.2.14","@types/react-dom":"^19.0.0","@vitejs/plugin-react":"^4.0.0","vite":"^6.0.0"},"_id":"@ai-craft/agent-panel@0.1.1","_integrity":"sha512-kYmuYxJ1HVDCPY+L+OnGdeRPai0wvNj6T2DNUy9aJMKiGQT+qHErjTEmSgw/hnYvZBxuNfl+FAOl24kKsCSoVQ==","_resolved":"/private/var/folders/_j/tzygz83s12v4rnxgchnxz55m0000gp/T/cb8b27fb805c3abb14dc3bb41bae3cac/ai-craft-agent-panel-0.1.1.tgz","_from":"file:ai-craft-agent-panel-0.1.1.tgz","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-kYmuYxJ1HVDCPY+L+OnGdeRPai0wvNj6T2DNUy9aJMKiGQT+qHErjTEmSgw/hnYvZBxuNfl+FAOl24kKsCSoVQ==","shasum":"599b039d8236e130e66e91ec1d0f64711741fa52","tarball":"https://registry.npmjs.org/@ai-craft/agent-panel/-/agent-panel-0.1.1.tgz","fileCount":496,"unpackedSize":6002998,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDrQd9HK6pne5xdxOzeF2i03gS3meyUzFgfs7gnRryqAwIgMNl26hIphIjqZ+2xSAvb4ezDoQiEuHeA3idoOY7omv4="}]},"_npmUser":{"name":"volkz","email":"delacruzd93@gmail.com"},"directories":{},"maintainers":[{"name":"volkz","email":"delacruzd93@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agent-panel_0.1.1_1784450392575_0.7203051456975307"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-19T08:39:52.478Z","0.1.1":"2026-07-19T08:39:52.808Z","modified":"2026-07-19T08:39:52.982Z"},"maintainers":[{"name":"volkz","email":"delacruzd93@gmail.com"}],"description":"Browser UI to spawn and manage sandboxed AI agents (raw Node HTTP + SSE + React+Vite frontend)","license":"MIT","readme":"# @ai-craft/agent-panel\n\nBrowser UI to spawn and manage sandboxed AI agents.\n\n## Status\n\nReady. Phase_6 complete: full CLI, raw-Node HTTP server, React+Vite frontend,\ndetached session-worker model, NDJSON event log + SSE replay, optional\ntokentracker proxy.\n\n## Quick start\n\n```bash\npnpm exec agent-panel --port 7878 --open\n```\n\nThen visit <http://127.0.0.1:7878>.\n\n## CLI flags\n\n| Flag | Default | Description |\n|---|---|---|\n| `--port <n>` | `7878` | HTTP port. `0` picks a random free port. |\n| `--host <addr>` | `127.0.0.1` | Hostname. Loopback only (`127.0.0.1`, `localhost`, `::1`). |\n| `--open` | off | Open the panel in your default browser after boot. |\n| `--data-dir <path>` | XDG default | Override the data dir for sessions/templates. |\n| `--tokentracker-url <url>` | unset | Mount `/tokens/*` as a reverse proxy to that URL. |\n| `--no-tokentracker` | off | Force-disable the tokens tab even if a URL is set. |\n| `--version`, `-v` | — | Print version and exit. |\n| `--help`, `-h` | — | Show this help and exit. |\n\n## API surface\n\n| Method | Path | Description |\n|---|---|---|\n| `GET` | `/api/templates` | List saved templates. |\n| `POST` | `/api/templates` | Save a new template (returns `{ id, ... }`). |\n| `DELETE` | `/api/templates/:id` | Delete a template. |\n| `POST` | `/api/sessions` | Spawn a new sandboxed session. |\n| `GET` | `/api/sessions` | List active + past sessions. |\n| `GET` | `/api/sessions/:id` | Session detail (metadata + RunResult). |\n| `GET` | `/api/sessions/:id/events` | SSE stream w/ `Last-Event-ID` replay. |\n| `POST` | `/api/sessions/:id/stop` | Signal the worker (SIGTERM → graceful abort). |\n| `DELETE` | `/api/sessions/:id` | Remove a non-running session from disk. |\n| `* ` | `/tokens/*` | Reverse proxy to tokentracker (when configured). |\n\n## Architecture\n\n```\nBrowser ── HTTP/SSE ──> agent-panel server ──> SessionManager\n                              │                       │\n                              │                spawn detached\n                              ▼                       ▼\n                       events.ndjson <── session-worker (owns sandbox)\n                       metadata.json                  │\n                                                      ▼\n                                              @ai-craft/sandbox\n                                              (Docker / Podman / no-sandbox)\n```\n\nEach session runs in a **detached child Node process** that owns its sandbox.\nRunning agents survive panel restarts: on next boot, `hydrate()` reattaches\nto live workers via `worker.lock` + `process.kill(pid, 0)` and resumes\nstreaming from `events.ndjson`.\n\n## Tokentracker integration\n\nThe tokens tab is a same-origin iframe served via a reverse proxy mounted at\n`/tokens/*`. To enable:\n\n```bash\n# In another terminal:\npnpm exec tokentracker --port 7879 --headless &\n\n# Then:\npnpm exec agent-panel --tokentracker-url http://127.0.0.1:7879\n```\n\nIn v1 the panel does **not** auto-start tokentracker in-process — you must\nlaunch it yourself and pass `--tokentracker-url`. Auto-start is a planned\nfollow-up.\n\n## Limitations (v1)\n\n- Binds **127.0.0.1 only**. No LAN exposure, no auth.\n- Tokentracker auto-start out of scope (use `--tokentracker-url`).\n- Worker-crash recovery marks the session `interrupted` and removes the\n  orphan container. Re-attach is a planned follow-up.\n- No retention/pruning yet (panel keeps every session). `--session-retention`\n  is a small future addition.\n\n## Development\n\n```bash\n# Install deps (Node 22.14.0 required).\nnvm use 22.14.0 && pnpm install\n\n# Run the test suite (vitest, run-mode).\npnpm exec nx test agent-panel -- --run\n\n# Typecheck (lib + spec + web).\npnpm exec nx typecheck agent-panel\npnpm exec nx run agent-panel:typecheck-spec\npnpm exec nx run agent-panel:typecheck-web\n\n# Build (server + web bundles).\npnpm exec nx build agent-panel --skip-nx-cache\n\n# Run from dist (verifies post-build smoke).\nnode dist/packages/agent-panel/cli.js --version\nnode dist/packages/agent-panel/cli.js --help\n```\n\n## See also\n\n- Plan: `~/.claude/plans/the-goal-now-is-playful-axolotl.md`\n- Sandbox SDK: [`@ai-craft/sandbox`](../sandbox)\n- Agent CLI: [`@ai-craft/agent-cli`](../agent-cli)\n- Token dashboard: [`@ai-craft/tokentracker`](../tokentracker)\n","readmeFilename":"README.md","_rev":"1-e7f86b6a8e78fb9fd4706bb01c740c23"}