{"_id":"@bankung/agent-teams","_rev":"2-3b69bde3c3bc284d986e4bcda550e07a","name":"@bankung/agent-teams","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@bankung/agent-teams","version":"0.1.0","keywords":["agent-teams","kanban","claude","ai","cli"],"license":"MIT","_id":"@bankung/agent-teams@0.1.0","maintainers":[{"name":"zeeeeed","email":"bankung99@gmail.com"}],"homepage":"https://github.com/bankung/agent-teams#readme","bugs":{"url":"https://github.com/bankung/agent-teams/issues"},"bin":{"agent-teams":"cli/index.js"},"dist":{"shasum":"438440aa47293150e2a3906ff7723860a6fe3287","tarball":"https://registry.npmjs.org/@bankung/agent-teams/-/agent-teams-0.1.0.tgz","fileCount":11,"integrity":"sha512-pKk53C1t2Gz/bFAhmDffgHwNjXakouCA58vFp6P+WXyg1bqKlC8/H9YdPaFusRW09MsEJGDpTeto+QiUD6Rt9A==","signatures":[{"sig":"MEUCID6L1Ckknqdo8VcImUvtHk2oohyRVnu1ymsOE+y8Nwk1AiEA1NCM1F+O8aA1p311Qqi6U2KKhuKEt/i/F4fvJrm50tk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79326},"type":"commonjs","engines":{"node":">=18"},"gitHead":"b589e9e2d5f995b9a5b5564b0008c74f6958ab41","_npmUser":{"name":"zeeeeed","email":"bankung99@gmail.com"},"repository":{"url":"git+https://github.com/bankung/agent-teams.git","type":"git"},"_npmVersion":"11.14.1","description":"CLI launcher for the agent-teams AI Kanban platform (pull pre-built images, or clone + build locally).","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent-teams_0.1.0_1780984945688_0.013908601488153094","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bankung/agent-teams","version":"0.1.1","description":"CLI launcher for the agent-teams AI Kanban platform (pull pre-built images, or clone + build locally).","license":"MIT","type":"commonjs","engines":{"node":">=18"},"bin":{"agent-teams":"cli/index.js"},"keywords":["agent-teams","kanban","claude","ai","cli"],"repository":{"type":"git","url":"git+https://github.com/bankung/agent-teams.git"},"publishConfig":{"access":"public"},"gitHead":"8dfac6b34973e013168488bbfcc92fa993b0c4fd","_id":"@bankung/agent-teams@0.1.1","bugs":{"url":"https://github.com/bankung/agent-teams/issues"},"homepage":"https://github.com/bankung/agent-teams#readme","_nodeVersion":"24.15.0","_npmVersion":"11.14.1","dist":{"integrity":"sha512-nXIdlc+82p1rRygyl5twcVxxil+xuFxvn5COnVXUpq+EQG4ttLo13guVxn4gQKCus9Oj1h/VVVnFaZhEfhkU9A==","shasum":"f8e336d00d62bb838926eb3bd8dc7f59cdc5a469","tarball":"https://registry.npmjs.org/@bankung/agent-teams/-/agent-teams-0.1.1.tgz","fileCount":11,"unpackedSize":87983,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC5y9Z/D1R721IxaUtu8QGLNLss6CahMtBL8sNLwbOZSAIhALqM2W/V3DzpJWtVvF1wAW9g8CMq7sutXkIBtUmqvQBv"}]},"_npmUser":{"name":"zeeeeed","email":"bankung99@gmail.com"},"directories":{},"maintainers":[{"name":"zeeeeed","email":"bankung99@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agent-teams_0.1.1_1781374417932_0.9997682307112592"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-09T06:02:25.498Z","modified":"2026-06-13T18:13:38.200Z","0.1.0":"2026-06-09T06:02:25.831Z","0.1.1":"2026-06-13T18:13:38.071Z"},"bugs":{"url":"https://github.com/bankung/agent-teams/issues"},"license":"MIT","homepage":"https://github.com/bankung/agent-teams#readme","keywords":["agent-teams","kanban","claude","ai","cli"],"repository":{"type":"git","url":"git+https://github.com/bankung/agent-teams.git"},"description":"CLI launcher for the agent-teams AI Kanban platform (pull pre-built images, or clone + build locally).","maintainers":[{"name":"zeeeeed","email":"bankung99@gmail.com"}],"readme":"# agent-teams\r\n\r\n**A self-hosted orchestration and governance layer that turns Claude Code or OpenAI Codex into a persistent, governed, multi-domain agent team.**\r\n\r\nYou know the feeling: the coding session that started sharp is now drifting, re-explaining itself, and holding your entire plan hostage. A single CLI is a powerful brain with no memory across sessions, no project structure, and no safety rails.\r\n\r\nagent-teams closes that gap. It wraps your coding CLI with a Postgres-backed Kanban, a Lead meta-orchestrator that spawns fresh domain specialists per task, a five-zone context model, and a defense-in-depth safety layer. File the queue, step away, trust it's handled — the leverage of a whole team, without the burnout of being one.\r\n\r\nEverything runs locally in Docker. No cloud sign-up, no SaaS subscription, no code leaving your network.\r\n\r\nIt is also **dogfooded**: agent-teams builds agent-teams. The repo's own commit history and Kanban are living proof.\r\n\r\n---\r\n\r\n## Why it's different\r\n\r\nClaude Code already gives you sub-agents, and you can keep several sessions open. agent-teams is the layer that makes that raw power actually land: every task becomes a clean, scoped contract instead of one sprawling chat you keep having to wrangle.\r\n\r\n| | Self-hosted | Persistent task/project state | Beyond code | Governance/safety layer | Form |\r\n|---|:--:|:--:|:--:|:--:|---|\r\n| Cloud SWE agents (Devin, Cursor, Devin Desktop — ex-Windsurf) | ✗ | ~ per-run cloud agents, no project board | ✗ code-only | black-box | product / IDE |\r\n| GitHub Copilot (incl. coding agent) | ✗ | ~ issue→PR runs, no project board | ✗ code-only | black-box | product |\r\n| Agent frameworks (CrewAI, AG2/AutoGen, LangGraph) | ✓ lib | ~ lib checkpointers (LangGraph); app/task state DIY | ✓ DIY | ~ platform tiers (CrewAI AMP); OSS DIY | library (+ managed platforms) |\r\n| Self-hosted platform (OpenHands) | ✓ | ~ less structured | ~ dev-focused | local isolation | product / SDK / cloud |\r\n| **agent-teams** | ✓ | ✓ Postgres Kanban + 5-zone context | ✓ team playbooks (dev/content/SEO/…) | ✓ defense-in-depth + AC + HITL + cost | **layer on Claude Code / Codex** |\r\n\r\n*Competitor capabilities last verified 2026-06 — Copilot coding agent (GA 2025-09), LangGraph checkpointers + LangSmith Deployment (platform GA 2025-05), CrewAI AMP (v1.9.x), Windsurf renamed Devin Desktop (2026-06), AutoGen in maintenance mode (v0.7.5) with Microsoft Agent Framework / AG2 as successors, OpenHands v1.16.*\r\n\r\nThe gap it fills: a **self-hosted, persistent, governed, multi-domain orchestration layer** — the cloud agents and IDEs aren't self-hosted and carry no cross-session project state; the frameworks give you primitives (some now ship checkpointing), but the operating layer — task contracts with verified acceptance criteria, HITL gates, budgets, multi-domain playbooks, the board itself — is still yours to build. agent-teams ships that part, already wired.\r\n\r\n---\r\n\r\n## What's genuinely special\r\n\r\n- **Tasks are contracts — with proof.** Every task carries structured acceptance criteria. Before a task can be marked done, each criterion is verified with evidence and stamped passed/failed. The system proves the work met the contract; it doesn't just claim \"done.\" Hard cost guardrails (daily/monthly budget caps → `429`) and a full `tasks_history` audit trail are built in.\r\n\r\n- **Batch and parallel without context rot.** Queue tasks, run them back-to-back or in parallel — each spawns a fresh domain specialist with scoped context. No sprawling conversation, no bleed-through. The Kanban holds the plan; the agents hold nothing stale.\r\n\r\n- **Two execution modes.** Mode A (production today): Claude Code or Codex drives each specialist interactively with per-action approval — you keep control. Mode B (actively in development): flip a task to `auto_headless` and the LangGraph engine runs it with no terminal open, Postgres-checkpointed.\r\n\r\n- **Governed real-world tool layer — email and calendar behind tiered gates.** Agents can read, triage, draft, reply, forward, and send email across Gmail and Outlook — and read/create/respond to calendar events on both. Every action passes a three-tier gate: auto-approved safe operations, an operator-proof token for destructive or send-class actions, and forced human escalation for anything that crosses an external send boundary. Every action lands in an audit trail. This is what \"beyond code\" means in practice.\r\n\r\n- **Rich planning views.** Board · List · Calendar · Gantt in one switcher. Calendar supports week/month with drag-to-reschedule. Gantt doubles as the milestone home — drag a task straight onto a milestone and watch the progress rollup update.\r\n\r\n- **Extend without migrations.** Add a new team or new agent types by editing constants and dropping a markdown file — no DB migration required. 8 teams and ~39 specialist agent definitions ship today. → [How to add a team](readme_dev.md#team-roster--dev-team) · [Full onboarding runbook](context/teams/dev/team-onboarding-runbook.md)\r\n\r\n- **Self-hosted, local-first, dogfooded.** Runs in Docker on your machine. Anthropic, OpenAI, Google Gemini, or fully-local Ollama — your choice, one `.env` variable. No code leaves your network. And the system building itself is the system you're reading about: the commit log and live Kanban are the proof.\r\n\r\n---\r\n\r\n## What's new in v0.6.3\r\n\r\n- **Context metering and lifecycle tracking.** Mode-A token and cost metering ships with a new append-only `usage_events` ledger. Claude Code `SubagentStop` and `SessionEnd` hooks capture task-scoped token usage (per subagent run and at session end); the API computes cost server-side, idempotent-deduped on `dedup_key`. Early warning on per-project rate limits (60 requests per 10s, 429-before-DB-work) gates runaway capture loops. Files: `usage_events.py`, `cost_tracker.py`, lifecycle hooks in `.claude/hooks/`.\r\n- **Cross-session context — story docs and activity rail.** `context/projects/<p>/shared/stories/` holds living per-thread state (Lead-only writer, in-file versioning with optimistic lock) that survives sessions and compactions. A separate activity rail records immutable per-task events. This is what lets a task be picked up cleanly in a fresh session — no context bloat, no re-explaining. Files: the `_template.md` story scaffold + the story-context decisions lock.\r\n- **Agent gallery — browse specialist definitions.** A new `/agents` page (+ detail cards) and `GET /api/agents` endpoint let you explore the 38+ specialist agent definitions, view their tools, hooks, and spawn history across projects. See who does what and which agents are in-flight.\r\n- **Task output viewer.** In-progress tasks now surface their generated artifacts (code files, HTML, CSVs, logs, markdown). `GET /api/tasks/{id}/outputs` lists files; the TaskDetail Outputs section previews them (images, HTML in a sandbox iframe, CSV tables, raw downloads). Guards against traversal and header injection; 50-file cap per task.\r\n- **Board activity feed.** IN_PROGRESS cards show a live 3-row activity strip — recent tool calls, running/idle state, relative timestamps. 10-second visibility-aware polling keeps you abreast without noise. `GET /api/tool-calls?limit` supports optional paging.\r\n- **Per-role effort overrides.** Mode-B engine now respects `_runtime/effort-overrides.json` (operator-authored, TTL-cached) to dial specialist effort level per role (e.g. a tester gets more thorough reasoning). Falls back gracefully to project mode or off if the file is missing or unparseable.\r\n- **Hardening.** API host port now binds to `127.0.0.1` (localhost-only by default) to close unintended LAN exposure. Token inputs are bounded server-side so computed cost stays within the ledger's numeric column. Capture hooks drop conversation content from entry logs.\r\n\r\n---\r\n\r\n## What's new in v0.6.2\r\n\r\n- **Lighter task-list API.** A new `GET /api/tasks/summary` endpoint returns a slim projection — board and ordering fields only, omitting the heavy `description` and `acceptance_criteria` payloads. List responses are ~8× smaller, keeping the Lead and the board fast and comfortably inside smaller models' context windows.\r\n- **Kanban DONE-lane count fix.** The DONE column header now shows the true project total (from the project stats) instead of just the first loaded page, which was capped at 50.\r\n\r\n---\r\n\r\n## What's new in v0.6.0\r\n\r\n- **Email actions grew from triage to the full send ladder.** Reply, forward, send-to-internal, and external-send routes landed for both Gmail and Outlook — all behind the operator-proof gate, with external-send additionally forcing an out-of-band human confirmation. A Kanban audit step records every send action. An `INTERNAL_EMAIL_DOMAIN` guard and header-injection hardening ship alongside.\r\n\r\n- **Calendar: read, free/busy, create, and respond — Google and Outlook.** Agents can list events, query availability, create events, and respond to invitations. Read endpoints are auto-approved; create/respond pass the operator-proof gate. Both providers share a unified `/api/tools/calendar` router.\r\n\r\n- **One-command install.** `npx @bankung/agent-teams up --images` (Node 18+, Docker required) pulls pre-built images from GHCR and starts the full stack — no clone, no local build. Production images slimmed from ~847 MiB to ~216 MiB (~75% reduction).\r\n\r\n- **Board and UX.** First-run product tour (resumable, dark-mode), task templates in the New Task modal, append-only task comments, a file resources panel, calendar week view with drag-to-reschedule, editable acceptance criteria in the task drawer, an \"On you (N)\" chip surfacing tasks waiting on the operator's decision, DONE-lane keyset pagination, and shared-SSE + code-splitting for a faster board.\r\n\r\n- **Headless engine (Mode B) — progress and honest status.** One worker now serves multiple project boards concurrently. A local-model rig (Ollama) with a regression pack and capability probe hardens the engine, and a filesystem destination guard keeps file writes inside each project's declared working folder. Native Google Gemini provider added. Mode B remains actively in development — don't rely on it for critical work yet.\r\n\r\n- **Operations.** Per-task cost metering for Mode A runs captures prompt-cache token counts against each session. A `/tn-release` slash-command skill encodes the full weekly release flow end-to-end so milestone flips are never skipped. The `/tn-email` skill brings secretary email operations into the paved-path skill family.\r\n\r\n---\r\n\r\n## What it is — and isn't\r\n\r\n**It is:** an orchestration and governance layer on top of a coding CLI. Works today with **Claude Code** and **OpenAI Codex**.\r\n\r\n**It isn't:**\r\n- a frontier autonomous SWE agent like **Devin** — it orchestrates your coding agent, it doesn't replace one;\r\n- an IDE like **Cursor** or **Devin Desktop** (formerly Windsurf) — no editor here; keep your own;\r\n- a from-scratch agent framework like **CrewAI** / **AG2 (AutoGen)** / **LangGraph** — it actually *uses* LangGraph for its headless engine rather than reinventing it.\r\n\r\n**Honest status on the headless engine:** today the production path is Mode A — Claude Code / Codex CLI driven interactively (per-action approval). The `langgraph` service (supervisor → specialist graph, Postgres-checkpointed) is the Mode B path and is **actively in development**. One worker now serves multiple project boards concurrently, a regression pack and capability probe run against a local-model (Ollama) rig to harden it, and a filesystem destination guard keeps writes inside each project's declared working folder. Don't rely on it for critical work yet.\r\n\r\n---\r\n\r\n## Architecture at a glance\r\n\r\n```mermaid\r\nflowchart TD\r\n    Operator([Operator]) -->|files tasks, answers HITL| Kanban[(Kanban · Postgres)]\r\n    Operator -->|talks to| Lead[Lead · meta-orchestrator]\r\n    Lead -->|reads| Playbook[Team playbook]\r\n    Lead -->|resolves project, spawns| Specialists[Specialists: backend / frontend / tester / reviewer / …]\r\n    Specialists -->|run on| CLI[Claude Code / Codex CLI]\r\n    Lead <-->|read/write state| Context[(5-zone context:<br/>standards · team · project · role)]\r\n    Specialists -->|update| Kanban\r\n    CLI -.headless path.-> Engine[LangGraph engine · Postgres checkpoints]\r\n```\r\n\r\nThe Lead reads the team playbook, resolves the active project, and spawns the right specialists. Specialists run on your coding CLI and write their results back to the Kanban and five context zones — no context leaks between tasks.\r\n\r\n---\r\n\r\n## CLI-agnostic by design\r\n\r\nThe orchestration works across coding CLIs because the rules live in portable instruction files: [`CLAUDE.md`](CLAUDE.md) for Claude Code and [`AGENTS.md`](AGENTS.md) for Codex. Same governance, same lanes, same team structure — whichever CLI you run. You're not locked to one vendor.\r\n\r\n---\r\n\r\n## Get started\r\n\r\n**Quickest path — no clone needed (Node 18 + Docker required):**\r\n\r\n```bash\r\nnpx @bankung/agent-teams up --images\r\n```\r\n\r\nPulls pre-built images from GHCR and starts the full stack. Then skip to step 3 below.\r\n\r\n**From a clone (contributor / source-build path):**\r\n\r\n1. Install [Docker Desktop](https://www.docker.com/products/docker-desktop/) and restart your computer.\r\n2. Open a terminal **in this folder** and run the installer:\r\n   - **macOS / Linux / WSL:** `./bin/install.sh`\r\n   - **Windows (PowerShell):** `.\\bin\\install.ps1` *(if scripts are blocked, run `Set-ExecutionPolicy -Scope CurrentUser RemoteSigned` once first)*\r\n3. Open **http://localhost:5431** — your Kanban board. The installer seeds a `demo-tour` project to explore. Create tasks, queue them, and answer agent questions as they come up.\r\n\r\nTwo ways to put agents to work:\r\n\r\n- **Mode A — Claude Code / Codex session (production today).** Open this repo in Claude Code or OpenAI Codex. The Lead resolves your project, loads the team playbook, and orchestrates specialists end-to-end. → **[CLAUDE-CODE-START.md](CLAUDE-CODE-START.md)**\r\n- **Mode B — One-click \"Start\" on the board *(in active development)*.** Flip a task to auto-run and the headless `langgraph` engine handles it with no terminal open. See \"What it is — and isn't\" above for the honest status.\r\n\r\nThe installer is safe to re-run; services keep running after you close the terminal.\r\n\r\n**Multi-provider, local-first.** Switch models with one `.env` variable (`LANGGRAPH_LLM_PROVIDER`): **Anthropic** (default), **OpenAI**, **Google Gemini**, or **Ollama** for fully local inference — no API key, no network egress. With Ollama, nothing leaves your machine.\r\n\r\n**Stop / reset:** `docker compose down` to stop; `.\\bin\\reset.ps1` (or `./bin/reset.sh`) to wipe and start fresh.\r\n\r\n---\r\n\r\n## Slash-command skills (tn-*)\r\n\r\nThese are reusable Claude Code commands that encode Kanban API conventions, preventing common mistakes (missing project_id, incomplete acceptance criteria, status-change guard violations). 15 skills ship today. They activate after a Claude Code restart and are auto-detected on live-reload.\r\n\r\n| Command | What it does |\r\n|---------|-------------|\r\n| **Tasks** | |\r\n| `/tn-task-create <description>` | Create a Kanban task correctly (project_id in request body, acceptance_criteria at creation). |\r\n| `/tn-task <id>` | Show one task with its acceptance criteria (read-only). |\r\n| `/tn-tasks-next [N]` | List the next N actionable tasks (current milestone first, blockers first, then priority; N defaults 10). |\r\n| `/tn-task-done <id>` | Verify every acceptance criterion, then flip the task to DONE (refuses if any criterion is unmet). |\r\n| `/tn-task-update <id> <changes>` | Guarded status/priority update (BLOCKED only via blocked_by; status changes carry a reason; DONE is redirected to /tn-task-done). |\r\n| `/tn-task-attach <task> <milestone>` | Attach a task to a milestone (same-project checked). |\r\n| **Milestones** | |\r\n| `/tn-milestone-create <title>` | Create a milestone (defaults to \"planned\"). |\r\n| `/tn-milestone-done <id>` | Release a milestone after checking its child tasks are complete. |\r\n| `/tn-milestones` | List milestones with their task rollup (done/total, progress %). |\r\n| **Workflow** | |\r\n| `/tn-intense-review <scope>` | 2-round adversarial review + test-hardening pass (reviewers + determinism loop). |\r\n| `/tn-spec <idea>` | 2 rounds of spec pushback + revision before creating a task. |\r\n| `/tn-release [vX.Y.Z]` | Run the full weekly release flow — Tier-2 gate, merge dev→main, version bump, annotated tag, push, milestone flips (released + activate next), resume dev. |\r\n| **Project** | |\r\n| `/tn-bind <project>` | Bind the session to a project by name (resolves + persists the active project). |\r\n| `/tn-audit [project]` | On-demand project health audit (3 metrics + continue/review/pause). |\r\n| **Secretary** | |\r\n| `/tn-email <verb>` | Secretary email operations across Gmail and Outlook — search, read, triage, archive, mark, draft, trash. All mutation actions are HITL-gated. |\r\n\r\nEach skill lives at `.claude/skills/<name>/SKILL.md` and is invoked as `/<name>` in Claude Code.\r\n\r\n---\r\n\r\n## Learn more\r\n\r\nCompanion docs go deep so this README stays scannable:\r\n\r\n- **[QUICKSTART.md](QUICKSTART.md)** — 5-minute tour via the browser UI.\r\n- **[CLAUDE-CODE-START.md](CLAUDE-CODE-START.md)** — driving the team from a Claude Code terminal session.\r\n- **[USAGE-POWER.md](USAGE-POWER.md)** — parallel agents, auto-mode, multi-project workflows, mobile remote access.\r\n- **[readme_dev.md](readme_dev.md)** — architecture deep-dive: storage zones, team rosters, configuration, and extensibility (including how to add a new team or agent type).\r\n- **[context/teams/dev/team-onboarding-runbook.md](context/teams/dev/team-onboarding-runbook.md)** — full step-by-step runbook for adding teams and agents.\r\n\r\nFor the full development history, browse the git log and the Kanban that drove it — dogfooding in action.\r\n","readmeFilename":"README.md"}