panopticon-cli 0.4.0 → 0.4.4
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.
- package/README.md +442 -109
- package/dist/{agents-RCAPFJG7.js → agents-B5NRTVHK.js} +3 -4
- package/dist/chunk-7HHDVXBM.js +349 -0
- package/dist/chunk-7HHDVXBM.js.map +1 -0
- package/dist/chunk-H45CLB7E.js +2044 -0
- package/dist/chunk-H45CLB7E.js.map +1 -0
- package/dist/{chunk-7BGFIAWQ.js → chunk-ITI4IC5A.js} +2 -2
- package/dist/cli/index.js +1525 -432
- package/dist/cli/index.js.map +1 -1
- package/dist/dashboard/public/assets/index-BDd8hGYb.css +32 -0
- package/dist/dashboard/public/assets/index-sFwLPko-.js +556 -0
- package/dist/dashboard/public/index.html +3 -2
- package/dist/dashboard/server.js +21702 -14954
- package/dist/index.d.ts +125 -1
- package/dist/index.js +30 -5
- package/package.json +9 -2
- package/templates/claude-md/sections/warnings.md +27 -2
- package/templates/context/CLAUDE.md.template +22 -0
- package/templates/context/REOPEN_PROMPT.md.template +75 -0
- package/dist/chunk-4BIZ4OVN.js +0 -827
- package/dist/chunk-4BIZ4OVN.js.map +0 -1
- package/dist/chunk-DGUM43GV.js +0 -11
- package/dist/chunk-DGUM43GV.js.map +0 -1
- package/dist/chunk-U4LCHEVU.js +0 -116
- package/dist/chunk-U4LCHEVU.js.map +0 -1
- package/dist/dashboard/public/assets/index-BZXQno9X.js +0 -540
- package/dist/dashboard/public/assets/index-BtAxF_yl.css +0 -32
- package/dist/js-yaml-DLUPUHNL.js +0 -2648
- package/dist/js-yaml-DLUPUHNL.js.map +0 -1
- /package/dist/{agents-RCAPFJG7.js.map → agents-B5NRTVHK.js.map} +0 -0
- /package/dist/{chunk-7BGFIAWQ.js.map → chunk-ITI4IC5A.js.map} +0 -0
package/README.md
CHANGED
|
@@ -1,33 +1,72 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
1
3
|
# Panopticon CLI
|
|
2
4
|
|
|
3
|
-
Multi-agent orchestration for AI coding assistants
|
|
5
|
+
**Multi-agent orchestration for AI coding assistants**
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/panopticon-cli)
|
|
8
|
+
[](https://opensource.org/licenses/MIT)
|
|
9
|
+
[](https://nodejs.org/)
|
|
10
|
+
[](https://github.com/eltmon/panopticon/pulls)
|
|
4
11
|
|
|
5
12
|
> *"The Panopticon had six sides, one for each of the Founders of Gallifrey..."*
|
|
6
13
|
|
|
7
|
-
|
|
14
|
+
<img src="docs/dashboard-overview.png" alt="Panopticon Dashboard" width="800" />
|
|
15
|
+
|
|
16
|
+
</div>
|
|
17
|
+
|
|
18
|
+
---
|
|
8
19
|
|
|
9
|
-
|
|
20
|
+
## What is Panopticon?
|
|
21
|
+
|
|
22
|
+
| Without Panopticon | With Panopticon |
|
|
23
|
+
|:------------------|:----------------|
|
|
24
|
+
| Manually juggle multiple AI agents | **Automatic orchestration** - spawn, monitor, and coordinate agents from a dashboard |
|
|
25
|
+
| Agents start fresh every session | **Persistent context** - skills, state files, and beads track work across sessions |
|
|
26
|
+
| Simple tasks eat Opus credits | **Smart model routing** - Haiku for simple, Sonnet for medium, Opus for complex |
|
|
27
|
+
| Stuck agents waste your time | **Automatic recovery** - detect stuck agents and hand off to specialists |
|
|
28
|
+
| AI tools have separate configs | **Universal skills** - one SKILL.md works across Claude, Codex, Cursor, Gemini |
|
|
29
|
+
|
|
30
|
+
## Screenshots
|
|
31
|
+
|
|
32
|
+
<div align="center">
|
|
33
|
+
<table>
|
|
34
|
+
<tr>
|
|
35
|
+
<td><img src="docs/planning-session-dialog.png" alt="Planning Dialog" width="300" /></td>
|
|
36
|
+
<td><img src="docs/planning-session-discovery.png" alt="Discovery Phase" width="300" /></td>
|
|
37
|
+
<td><img src="docs/planning-session-active.png" alt="Active Session" width="300" /></td>
|
|
38
|
+
</tr>
|
|
39
|
+
<tr>
|
|
40
|
+
<td align="center"><em>Start planning</em></td>
|
|
41
|
+
<td align="center"><em>Discovery phase</em></td>
|
|
42
|
+
<td align="center"><em>Active session</em></td>
|
|
43
|
+
</tr>
|
|
44
|
+
</table>
|
|
45
|
+
</div>
|
|
46
|
+
|
|
47
|
+
## Key Features
|
|
48
|
+
|
|
49
|
+
| Feature | Description |
|
|
50
|
+
|:--------|:------------|
|
|
51
|
+
| **Multi-Agent Orchestration** | Spawn and manage AI agents in tmux sessions via dashboard or CLI |
|
|
52
|
+
| **Cloister Lifecycle Manager** | Automatic model routing, stuck detection, and specialist handoffs |
|
|
53
|
+
| **Universal Skills** | One SKILL.md format works across all supported AI tools |
|
|
54
|
+
| **Workspaces** | Git worktree-based feature branches with Docker isolation |
|
|
55
|
+
| **Convoys** | Run parallel agents on related issues with auto-synthesis |
|
|
56
|
+
| **Specialists** | Dedicated review, test, and merge agents for quality control |
|
|
57
|
+
| **Heartbeat Monitoring** | Real-time agent activity tracking via Claude Code hooks |
|
|
58
|
+
| **Legacy Codebase Support** | AI self-monitoring skills that learn from your codebase |
|
|
59
|
+
|
|
60
|
+
## Supported Tools
|
|
10
61
|
|
|
11
62
|
| Tool | Support |
|
|
12
|
-
|
|
63
|
+
|:-----|:--------|
|
|
13
64
|
| **Claude Code** | Full support |
|
|
14
65
|
| **Codex** | Skills sync |
|
|
15
66
|
| **Cursor** | Skills sync |
|
|
16
67
|
| **Gemini CLI** | Skills sync |
|
|
17
68
|
| **Google Antigravity** | Skills sync |
|
|
18
69
|
|
|
19
|
-
### Features
|
|
20
|
-
|
|
21
|
-
- **Multi-agent orchestration** - Spawn and manage multiple AI agents in tmux sessions
|
|
22
|
-
- **Cloister AI Lifecycle Manager** - Automatic model routing, stuck detection, and specialist handoffs
|
|
23
|
-
- **Universal skills** - One SKILL.md format works across all supported tools
|
|
24
|
-
- **Heartbeat Hooks** - Real-time agent activity monitoring via Claude Code hooks
|
|
25
|
-
- **Multi-project support** - YAML-based project registry with label-based issue routing
|
|
26
|
-
- **Health Monitoring** - Deacon-style stuck detection with auto-recovery
|
|
27
|
-
- **Context Engineering** - Structured state management (STATE.md, WORKSPACE.md)
|
|
28
|
-
- **Agent CVs** - Work history tracking for capability-based routing
|
|
29
|
-
- **Google Stitch Integration** - AI-powered UI design with automatic design-to-code workflows
|
|
30
|
-
|
|
31
70
|
---
|
|
32
71
|
|
|
33
72
|
## Legacy Codebase Support
|
|
@@ -159,54 +198,12 @@ The AI adapts to your org structure, not the other way around.
|
|
|
159
198
|
## Quick Start
|
|
160
199
|
|
|
161
200
|
```bash
|
|
162
|
-
|
|
163
|
-
npm install -g panopticon-cli
|
|
164
|
-
|
|
165
|
-
# Install prerequisites and setup (includes optional HTTPS/Traefik)
|
|
166
|
-
pan install
|
|
167
|
-
|
|
168
|
-
# Sync skills to all AI tools
|
|
169
|
-
pan sync
|
|
170
|
-
|
|
171
|
-
# Check system health
|
|
172
|
-
pan doctor
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
### HTTPS Setup (Optional)
|
|
176
|
-
|
|
177
|
-
Panopticon supports local HTTPS via Traefik reverse proxy:
|
|
178
|
-
|
|
179
|
-
```bash
|
|
180
|
-
# Full install (includes Traefik + mkcert for HTTPS)
|
|
181
|
-
pan install
|
|
182
|
-
|
|
183
|
-
# Add to /etc/hosts (macOS/Linux)
|
|
184
|
-
echo "127.0.0.1 pan.localhost" | sudo tee -a /etc/hosts
|
|
185
|
-
|
|
186
|
-
# Start with HTTPS
|
|
187
|
-
pan up
|
|
188
|
-
# → Dashboard: https://pan.localhost
|
|
189
|
-
# → Traefik UI: https://traefik.pan.localhost:8080
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
**Minimal install** (skip Traefik, use ports):
|
|
193
|
-
```bash
|
|
194
|
-
pan install --minimal
|
|
195
|
-
pan up
|
|
196
|
-
# → Dashboard: http://localhost:3010
|
|
201
|
+
npm install -g panopticon-cli && pan install && pan sync && pan up
|
|
197
202
|
```
|
|
198
203
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
## Supported Platforms
|
|
204
|
+
**That's it!** Dashboard runs at https://pan.localhost (or http://localhost:3010 if you skip HTTPS setup).
|
|
202
205
|
|
|
203
|
-
|
|
204
|
-
|----------|---------|
|
|
205
|
-
| **Linux** | Full support |
|
|
206
|
-
| **macOS** | Full support |
|
|
207
|
-
| **Windows** | WSL2 required |
|
|
208
|
-
|
|
209
|
-
> **Windows users:** Panopticon requires WSL2 (Windows Subsystem for Linux 2). Native Windows is not supported. [Install WSL2](https://docs.microsoft.com/en-us/windows/wsl/install)
|
|
206
|
+
📖 **[Full installation guide, requirements, and platform support →](https://panopticon-cli.com/quickstart)**
|
|
210
207
|
|
|
211
208
|
## Requirements
|
|
212
209
|
|
|
@@ -270,6 +267,111 @@ Panopticon supports multiple issue trackers:
|
|
|
270
267
|
|
|
271
268
|
Secondary trackers sync issues to the dashboard alongside Linear issues, allowing unified project management.
|
|
272
269
|
|
|
270
|
+
### Multi-Model Support
|
|
271
|
+
|
|
272
|
+
Panopticon integrates with [claude-code-router](https://github.com/musistudio/claude-code-router) to enable using multiple AI model providers alongside Anthropic models. Configure which models to use for different agent types and task complexities.
|
|
273
|
+
|
|
274
|
+
📖 **[Complete work types guide and configuration examples →](docs/WORK-TYPES.md)**
|
|
275
|
+
📋 **[Configuration file reference and presets →](docs/CONFIGURATION.md)**
|
|
276
|
+
🧠 **[Model recommendations for optimal cost/performance →](docs/MODEL_RECOMMENDATIONS.md)**
|
|
277
|
+
|
|
278
|
+
#### Supported Providers and Models
|
|
279
|
+
|
|
280
|
+
**Anthropic** (via Claude Code / Claude API)
|
|
281
|
+
- `claude-opus-4-5` - Most capable, best for planning and complex tasks
|
|
282
|
+
- `claude-sonnet-4-5` - Balanced performance and cost
|
|
283
|
+
- `claude-haiku-4-5` - Fast and cost-effective for simple tasks
|
|
284
|
+
|
|
285
|
+
**OpenAI**
|
|
286
|
+
- `gpt-5.2-codex` - Agentic coding and research
|
|
287
|
+
- `o3-deep-research` - Deep research capabilities
|
|
288
|
+
- `gpt-4o` - General-purpose model
|
|
289
|
+
- `gpt-4o-mini` - Faster, more cost-effective variant
|
|
290
|
+
|
|
291
|
+
**Google (Gemini)**
|
|
292
|
+
- `gemini-3-pro-preview` - Supports `thinking_level: high|low`
|
|
293
|
+
- `gemini-3-flash-preview` - Supports `thinking_level: minimal|low|medium|high`
|
|
294
|
+
|
|
295
|
+
**Z.AI**
|
|
296
|
+
- `glm-4.7` - General-purpose model
|
|
297
|
+
- `glm-4.7-flash` - Faster variant
|
|
298
|
+
|
|
299
|
+
#### Configuration via Dashboard
|
|
300
|
+
|
|
301
|
+
1. Open the Panopticon dashboard and navigate to **Settings**
|
|
302
|
+
2. Configure **API keys** for external providers:
|
|
303
|
+
- OpenAI API Key
|
|
304
|
+
- Google AI API Key
|
|
305
|
+
- Z.AI API Key
|
|
306
|
+
3. Configure **models per agent type**:
|
|
307
|
+
- Review Agent - Model for code review
|
|
308
|
+
- Test Agent - Model for running tests
|
|
309
|
+
- Merge Agent - Model for handling merges
|
|
310
|
+
- Planning Agent - Model for autonomous planning
|
|
311
|
+
4. Configure **models by task complexity** (for PAN-75):
|
|
312
|
+
- Trivial tasks → Cost-effective models (e.g., `claude-haiku-4-5`)
|
|
313
|
+
- Expert tasks → Most capable models (e.g., `claude-opus-4-5`)
|
|
314
|
+
|
|
315
|
+
**Configuration Files:**
|
|
316
|
+
|
|
317
|
+
Panopticon uses YAML-based configuration (new in v0.5+):
|
|
318
|
+
|
|
319
|
+
| File | Purpose |
|
|
320
|
+
|------|---------|
|
|
321
|
+
| `~/.panopticon/config.yaml` | Global model settings, provider enable/disable, API key references |
|
|
322
|
+
| `~/.panopticon.env` | API keys and sensitive credentials (auto-loaded) |
|
|
323
|
+
| `.panopticon.yaml` | Per-project config (optional, overrides global) |
|
|
324
|
+
|
|
325
|
+
**Security:** For added security, restrict file permissions:
|
|
326
|
+
```bash
|
|
327
|
+
chmod 600 ~/.panopticon/config.yaml ~/.panopticon.env
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
**Environment Variables:** API keys are loaded from `~/.panopticon.env` at startup:
|
|
331
|
+
```bash
|
|
332
|
+
# ~/.panopticon.env
|
|
333
|
+
KIMI_API_KEY="sk-kimi-..."
|
|
334
|
+
OPENAI_API_KEY="sk-..."
|
|
335
|
+
GOOGLE_AI_KEY="AIza..."
|
|
336
|
+
ZAI_API_KEY="..."
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
In `config.yaml`, reference them with `$` syntax:
|
|
340
|
+
```yaml
|
|
341
|
+
models:
|
|
342
|
+
providers:
|
|
343
|
+
kimi:
|
|
344
|
+
enabled: true
|
|
345
|
+
api_key: $KIMI_API_KEY
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
#### Router Configuration
|
|
349
|
+
|
|
350
|
+
**Panopticon owns the router configuration.** When you save settings in the dashboard, Panopticon automatically generates `~/.claude-code-router/config.json` with the appropriate provider and routing configuration. Manual edits to this file will be overwritten on the next settings change.
|
|
351
|
+
|
|
352
|
+
#### Example Use Cases
|
|
353
|
+
|
|
354
|
+
**Cost optimization:**
|
|
355
|
+
```
|
|
356
|
+
Specialist agents → claude-sonnet-4-5 (balanced)
|
|
357
|
+
Planning agent → claude-opus-4-5 (most capable)
|
|
358
|
+
Simple tasks → claude-haiku-4-5 (cost-effective)
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
**Multi-provider setup:**
|
|
362
|
+
```
|
|
363
|
+
Code review → gpt-4o (OpenAI's code understanding)
|
|
364
|
+
Testing → claude-sonnet-4-5 (Anthropic's reliability)
|
|
365
|
+
Planning → claude-opus-4-5 (Anthropic's reasoning)
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
**Research-heavy workflows:**
|
|
369
|
+
```
|
|
370
|
+
Research tasks → o3-deep-research (OpenAI)
|
|
371
|
+
Implementation → claude-sonnet-4-5 (Anthropic)
|
|
372
|
+
Code review → gemini-3-pro-preview (Google)
|
|
373
|
+
```
|
|
374
|
+
|
|
273
375
|
### Register Projects
|
|
274
376
|
|
|
275
377
|
Register your local project directories so Panopticon knows where to create workspaces:
|
|
@@ -347,6 +449,35 @@ When Stitch is configured, the planning agent can:
|
|
|
347
449
|
2. **Document in STATE.md** - Record Stitch project/screen IDs for workers
|
|
348
450
|
3. **Worker agents pick up designs** - Use the Stitch skills to convert to React
|
|
349
451
|
|
|
452
|
+
### Bidirectional Sync
|
|
453
|
+
|
|
454
|
+
Designs are stored in your Google account and sync bidirectionally:
|
|
455
|
+
|
|
456
|
+
```
|
|
457
|
+
Planning Agent creates design via MCP
|
|
458
|
+
↓
|
|
459
|
+
Stored in Google Cloud (your account)
|
|
460
|
+
↓
|
|
461
|
+
Visible on stitch.withgoogle.com
|
|
462
|
+
↓
|
|
463
|
+
Worker agent retrieves via MCP → converts to React
|
|
464
|
+
```
|
|
465
|
+
|
|
466
|
+
- **MCP → Web UI:** Designs created by agents appear in Stitch web UI
|
|
467
|
+
- **Web UI → MCP:** Designs created in web UI are accessible to agents
|
|
468
|
+
- **Edit anywhere:** Refine AI-generated designs in the web UI before workers convert them
|
|
469
|
+
|
|
470
|
+
### Available MCP Tools
|
|
471
|
+
|
|
472
|
+
| Tool | Purpose |
|
|
473
|
+
|------|---------|
|
|
474
|
+
| `create_project` | Create a new Stitch project |
|
|
475
|
+
| `list_projects` | List all your projects (owned/shared) |
|
|
476
|
+
| `get_project` | Get project details |
|
|
477
|
+
| `list_screens` | List screens in a project |
|
|
478
|
+
| `get_screen` | Get screen details + HTML/CSS download URLs |
|
|
479
|
+
| `generate_screen_from_text` | Generate a screen from a text prompt |
|
|
480
|
+
|
|
350
481
|
### Stitch Skills
|
|
351
482
|
|
|
352
483
|
| Skill | Purpose |
|
|
@@ -1054,7 +1185,50 @@ Panopticon creates workspaces as git worktrees. Docker, HTTPS, and seeding are o
|
|
|
1054
1185
|
|
|
1055
1186
|
## Polyrepo Workspace Configuration
|
|
1056
1187
|
|
|
1057
|
-
For projects with multiple git repositories (like separate frontend/backend repos), configure workspace settings directly in `projects.yaml
|
|
1188
|
+
For projects with multiple git repositories (like separate frontend/backend repos), configure workspace settings directly in `projects.yaml`.
|
|
1189
|
+
|
|
1190
|
+
### Recommended: Separate Infra Repository
|
|
1191
|
+
|
|
1192
|
+
For polyrepo projects, we strongly recommend maintaining a **dedicated infrastructure repository** alongside your code repos:
|
|
1193
|
+
|
|
1194
|
+
```
|
|
1195
|
+
myproject/
|
|
1196
|
+
├── infra/ # Infrastructure repo (git)
|
|
1197
|
+
│ ├── .devcontainer-template/ # Templates for workspace creation
|
|
1198
|
+
│ │ ├── dev.template # Dev script template
|
|
1199
|
+
│ │ ├── compose.infra.yml.template
|
|
1200
|
+
│ │ └── docker-compose.devcontainer.yml.template
|
|
1201
|
+
│ ├── new-feature # Script to create workspaces
|
|
1202
|
+
│ ├── remove-feature # Script to clean up workspaces
|
|
1203
|
+
│ ├── certs/ # SSL certificates
|
|
1204
|
+
│ └── traefik/ # Traefik config
|
|
1205
|
+
├── frontend/ # Frontend repo (git)
|
|
1206
|
+
├── backend/ # Backend repo (git)
|
|
1207
|
+
└── workspaces/ # Feature workspaces (git worktrees)
|
|
1208
|
+
└── feature-xxx/
|
|
1209
|
+
├── fe/ # Worktree of frontend
|
|
1210
|
+
├── api/ # Worktree of backend
|
|
1211
|
+
└── .devcontainer/ # Generated from templates
|
|
1212
|
+
```
|
|
1213
|
+
|
|
1214
|
+
**Benefits of a separate infra repo:**
|
|
1215
|
+
|
|
1216
|
+
1. **Version-controlled templates** - Dev script changes are tracked and shared
|
|
1217
|
+
2. **Centralized configuration** - DNS, ports, Traefik rules in one place
|
|
1218
|
+
3. **Workspace consistency** - All workspaces use the same templates
|
|
1219
|
+
4. **Team collaboration** - Infra changes go through normal PR review
|
|
1220
|
+
5. **Easy updates** - Fix a template once, regenerate affected workspaces
|
|
1221
|
+
|
|
1222
|
+
**Key files in the infra repo:**
|
|
1223
|
+
|
|
1224
|
+
| File | Purpose |
|
|
1225
|
+
|------|---------|
|
|
1226
|
+
| `dev.template` | Template for `./dev` script (container management) |
|
|
1227
|
+
| `new-feature` | Creates workspace with git worktrees + devcontainer |
|
|
1228
|
+
| `remove-feature` | Cleans up workspace and worktrees |
|
|
1229
|
+
| `.devcontainer-template/` | Docker Compose and devcontainer templates |
|
|
1230
|
+
|
|
1231
|
+
|
|
1058
1232
|
|
|
1059
1233
|
```yaml
|
|
1060
1234
|
projects:
|
|
@@ -1468,6 +1642,165 @@ pan work recover min-123
|
|
|
1468
1642
|
pan work recover --all
|
|
1469
1643
|
```
|
|
1470
1644
|
|
|
1645
|
+
### Convoys: Multi-Agent Orchestration
|
|
1646
|
+
|
|
1647
|
+
Convoys enable Panopticon to run multiple AI agents in parallel for complex tasks like code review. Instead of a single agent doing everything, specialized agents focus on specific concerns and a synthesis agent combines their findings.
|
|
1648
|
+
|
|
1649
|
+
**Why Convoys?**
|
|
1650
|
+
|
|
1651
|
+
When reviewing code, a single AI agent must context-switch between:
|
|
1652
|
+
- Checking for logic errors
|
|
1653
|
+
- Looking for security vulnerabilities
|
|
1654
|
+
- Analyzing performance issues
|
|
1655
|
+
|
|
1656
|
+
This leads to:
|
|
1657
|
+
- Shallow reviews (can't go deep on everything)
|
|
1658
|
+
- Missed issues (focus on one area, miss others)
|
|
1659
|
+
- Long sequential execution (can't parallelize)
|
|
1660
|
+
|
|
1661
|
+
Convoys solve this by **specialization + parallelization**:
|
|
1662
|
+
- 3 focused agents review in parallel (10x faster)
|
|
1663
|
+
- Each agent goes deep in their domain
|
|
1664
|
+
- Synthesis agent combines findings with prioritization
|
|
1665
|
+
|
|
1666
|
+
#### Built-in Convoy Templates
|
|
1667
|
+
|
|
1668
|
+
| Template | Agents | Use Case |
|
|
1669
|
+
|----------|--------|----------|
|
|
1670
|
+
| `code-review` | correctness, security, performance, synthesis | Comprehensive code review |
|
|
1671
|
+
| `planning` | planner | Codebase exploration and planning |
|
|
1672
|
+
| `triage` | (dynamic) | Parallel issue triage |
|
|
1673
|
+
| `health-monitor` | monitor | Check health of running agents |
|
|
1674
|
+
|
|
1675
|
+
#### Quick Start
|
|
1676
|
+
|
|
1677
|
+
```bash
|
|
1678
|
+
# Run a parallel code review
|
|
1679
|
+
pan convoy start code-review --files "src/**/*.ts"
|
|
1680
|
+
|
|
1681
|
+
# Check status
|
|
1682
|
+
pan convoy status
|
|
1683
|
+
|
|
1684
|
+
# List all convoys (running and completed)
|
|
1685
|
+
pan convoy list
|
|
1686
|
+
|
|
1687
|
+
# Stop a convoy
|
|
1688
|
+
pan convoy stop <convoy-id>
|
|
1689
|
+
```
|
|
1690
|
+
|
|
1691
|
+
#### How Code Review Convoy Works
|
|
1692
|
+
|
|
1693
|
+
```
|
|
1694
|
+
pan convoy start code-review --files "src/**/*.ts"
|
|
1695
|
+
│
|
|
1696
|
+
├─→ Phase 1 (Parallel): 3 specialized reviewers run simultaneously
|
|
1697
|
+
│ ├─→ Correctness (Haiku) → correctness.md
|
|
1698
|
+
│ ├─→ Security (Sonnet) → security.md
|
|
1699
|
+
│ └─→ Performance (Haiku) → performance.md
|
|
1700
|
+
│
|
|
1701
|
+
└─→ Phase 2 (Sequential): Synthesis agent runs after Phase 1 completes
|
|
1702
|
+
└─→ Synthesis reads all 3 reviews → synthesis.md
|
|
1703
|
+
```
|
|
1704
|
+
|
|
1705
|
+
**Phase 1 - Specialized Reviews (Parallel)**
|
|
1706
|
+
- **Correctness** (Haiku) - Logic errors, edge cases, type safety
|
|
1707
|
+
- **Security** (Sonnet) - OWASP Top 10, injection, XSS, auth issues
|
|
1708
|
+
- **Performance** (Haiku) - N+1 queries, blocking ops, memory leaks
|
|
1709
|
+
|
|
1710
|
+
**Phase 2 - Synthesis (Sequential)**
|
|
1711
|
+
- Reads all three review files
|
|
1712
|
+
- Removes duplicates (same issue found by multiple reviewers)
|
|
1713
|
+
- Prioritizes findings (blocker → critical → high → medium → low)
|
|
1714
|
+
- Generates unified report with action items
|
|
1715
|
+
|
|
1716
|
+
#### What is Synthesis?
|
|
1717
|
+
|
|
1718
|
+
Synthesis is the process of combining findings from multiple parallel agents into a single, prioritized, actionable report.
|
|
1719
|
+
|
|
1720
|
+
**Without synthesis**, after 3 parallel reviews you get:
|
|
1721
|
+
- 3 separate markdown files to read
|
|
1722
|
+
- Duplicate findings (same issue reported differently)
|
|
1723
|
+
- No prioritization (which to fix first?)
|
|
1724
|
+
- Mental overhead to merge them yourself
|
|
1725
|
+
|
|
1726
|
+
**With synthesis**, you get:
|
|
1727
|
+
- Single unified report
|
|
1728
|
+
- Deduplicated findings
|
|
1729
|
+
- AI-prioritized by severity × impact
|
|
1730
|
+
- Clear action items
|
|
1731
|
+
|
|
1732
|
+
**Example synthesis output:**
|
|
1733
|
+
|
|
1734
|
+
```markdown
|
|
1735
|
+
# Code Review - Complete Analysis
|
|
1736
|
+
|
|
1737
|
+
## Executive Summary
|
|
1738
|
+
- 2 blockers (MUST FIX)
|
|
1739
|
+
- 3 critical issues
|
|
1740
|
+
- 5 high-priority items
|
|
1741
|
+
|
|
1742
|
+
## Top Priority
|
|
1743
|
+
1. SQL injection in auth.ts:42 (Security, Critical)
|
|
1744
|
+
2. execSync blocking event loop in sync.ts:89 (Performance, Blocker)
|
|
1745
|
+
3. Null pointer in user fetch in api.ts:156 (Correctness, High)
|
|
1746
|
+
|
|
1747
|
+
## Blocker Issues
|
|
1748
|
+
[Detailed findings with code examples and fixes]
|
|
1749
|
+
|
|
1750
|
+
## Critical Issues
|
|
1751
|
+
[...]
|
|
1752
|
+
|
|
1753
|
+
## Review Statistics
|
|
1754
|
+
- Files reviewed: 12
|
|
1755
|
+
- Issues found: 10
|
|
1756
|
+
- Duplicates removed: 3
|
|
1757
|
+
```
|
|
1758
|
+
|
|
1759
|
+
#### Convoy Commands
|
|
1760
|
+
|
|
1761
|
+
```bash
|
|
1762
|
+
# Start a convoy
|
|
1763
|
+
pan convoy start <template> [options]
|
|
1764
|
+
--files <pattern> # File pattern (e.g., "src/**/*.ts")
|
|
1765
|
+
--pr-url <url> # Pull request URL
|
|
1766
|
+
--issue-id <id> # Issue ID
|
|
1767
|
+
--project-path <path> # Project path (defaults to cwd)
|
|
1768
|
+
|
|
1769
|
+
# Check convoy status
|
|
1770
|
+
pan convoy status [convoy-id] # Show status (defaults to most recent)
|
|
1771
|
+
|
|
1772
|
+
# List convoys
|
|
1773
|
+
pan convoy list # All convoys
|
|
1774
|
+
pan convoy list --status running # Filter by status
|
|
1775
|
+
|
|
1776
|
+
# Stop a convoy
|
|
1777
|
+
pan convoy stop <convoy-id> # Kill all agents, mark failed
|
|
1778
|
+
```
|
|
1779
|
+
|
|
1780
|
+
#### Custom Convoy Templates
|
|
1781
|
+
|
|
1782
|
+
Create custom templates in `~/.panopticon/convoy-templates/`:
|
|
1783
|
+
|
|
1784
|
+
```json
|
|
1785
|
+
{
|
|
1786
|
+
"name": "lightweight-review",
|
|
1787
|
+
"description": "Quick security-only review",
|
|
1788
|
+
"agents": [
|
|
1789
|
+
{
|
|
1790
|
+
"role": "security",
|
|
1791
|
+
"subagent": "code-review-security",
|
|
1792
|
+
"parallel": false
|
|
1793
|
+
}
|
|
1794
|
+
],
|
|
1795
|
+
"config": {
|
|
1796
|
+
"outputDir": ".claude/reviews",
|
|
1797
|
+
"timeout": 600000
|
|
1798
|
+
}
|
|
1799
|
+
}
|
|
1800
|
+
```
|
|
1801
|
+
|
|
1802
|
+
Then use with: `pan convoy start lightweight-review --files "src/**/*.ts"`
|
|
1803
|
+
|
|
1471
1804
|
### Health Monitoring
|
|
1472
1805
|
|
|
1473
1806
|
```bash
|
|
@@ -1629,15 +1962,24 @@ These safeguards are enforced through:
|
|
|
1629
1962
|
|  |  |  |
|
|
1630
1963
|
| Click to create workspace and start AI planning | Claude explores the codebase, reads docs, understands patterns | Interactive questions to clarify requirements and approach |
|
|
1631
1964
|
|
|
1632
|
-
Planning artifacts are stored **inside the workspace
|
|
1965
|
+
Planning artifacts are stored **inside the workspace**:
|
|
1966
|
+
|
|
1967
|
+
> ⚠️ **Note: `.planning/` is currently ephemeral (not tracked in git)**
|
|
1968
|
+
>
|
|
1969
|
+
> The `.planning/` directory is listed in `.gitignore` to prevent cross-contamination between issues. When branches merge, planning state from issue A could contaminate issue B's workspace, causing agents to work on the wrong tasks.
|
|
1970
|
+
>
|
|
1971
|
+
> **Current behavior:** Planning state is local to your machine only. If you switch machines, you'll need to re-run the planning session.
|
|
1972
|
+
>
|
|
1973
|
+
> See [#111](https://github.com/eltmon/panopticon-cli/issues/111) for the future enhancement to support cross-machine planning sync safely.
|
|
1633
1974
|
|
|
1634
1975
|
```
|
|
1635
1976
|
workspaces/feature-min-123/
|
|
1636
|
-
├── .planning/
|
|
1637
|
-
│ ├──
|
|
1638
|
-
│ ├──
|
|
1977
|
+
├── .planning/ # ⚠️ NOT tracked in git (ephemeral)
|
|
1978
|
+
│ ├── STATE.md # Current planning state
|
|
1979
|
+
│ ├── output.jsonl # Full conversation history
|
|
1980
|
+
│ ├── PLANNING_PROMPT.md # Initial planning prompt
|
|
1639
1981
|
│ ├── CONTINUATION_PROMPT.md # Context for continued sessions
|
|
1640
|
-
│ └── output-*.jsonl
|
|
1982
|
+
│ └── output-*.jsonl # Backup of previous rounds
|
|
1641
1983
|
└── ... (code)
|
|
1642
1984
|
```
|
|
1643
1985
|
|
|
@@ -1648,42 +1990,16 @@ When the planning session completes, the AI generates:
|
|
|
1648
1990
|
- **Beads tasks** - Trackable sub-tasks with dependencies for the implementation
|
|
1649
1991
|
- **Feature PRD** - Copied to `docs/prds/active/{issue}-plan.md` for documentation
|
|
1650
1992
|
|
|
1651
|
-
**
|
|
1652
|
-
|
|
1653
|
-
1. **Collaborative async planning** - Push your branch, someone else pulls and continues the planning session with full context
|
|
1654
|
-
2. **Context recovery** - If Claude's context compacts, the full conversation is preserved in the branch
|
|
1655
|
-
3. **Audit trail** - See how planning decisions were made, what files were explored, what questions were asked
|
|
1656
|
-
4. **Branch portability** - The planning state travels with the feature branch
|
|
1993
|
+
**Future capabilities (currently disabled - see note above):**
|
|
1657
1994
|
|
|
1658
|
-
**
|
|
1995
|
+
1. ~~**Collaborative async planning** - Push your branch, someone else pulls and continues the planning session with full context~~
|
|
1996
|
+
2. ~~**Branch portability** - The planning state travels with the feature branch~~
|
|
1659
1997
|
|
|
1660
|
-
|
|
1998
|
+
**What still works:**
|
|
1661
1999
|
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
| **Push** | Commits `.planning/` artifacts and pushes to origin |
|
|
1666
|
-
|
|
1667
|
-
1. Person A starts planning in dashboard, clicks **Push** when interrupted
|
|
1668
|
-
2. Person B opens same issue in dashboard, clicks **Pull** → gets Person A's full context
|
|
1669
|
-
3. Person B continues the planning session and clicks **Push** when done
|
|
1670
|
-
|
|
1671
|
-
**CLI workflow:**
|
|
1672
|
-
```bash
|
|
1673
|
-
# Person A starts planning
|
|
1674
|
-
pan work plan MIN-123
|
|
1675
|
-
# ... answers discovery questions, gets interrupted ...
|
|
1676
|
-
|
|
1677
|
-
# Push the branch (includes planning context)
|
|
1678
|
-
cd workspaces/feature-min-123
|
|
1679
|
-
git add .planning && git commit -m "WIP: planning session"
|
|
1680
|
-
git push origin feature/min-123
|
|
1681
|
-
|
|
1682
|
-
# Person B continues
|
|
1683
|
-
git pull origin feature/min-123
|
|
1684
|
-
pan work plan MIN-123 --continue
|
|
1685
|
-
# Claude has full context from Person A's session
|
|
1686
|
-
```
|
|
2000
|
+
1. **Context recovery** - If Claude's context compacts, STATE.md and beads preserve the planning decisions
|
|
2001
|
+
2. **Audit trail** - See decisions made in STATE.md
|
|
2002
|
+
3. **Beads tasks** - Sub-tasks created during planning ARE persisted (beads uses label-based isolation)
|
|
1687
2003
|
|
|
1688
2004
|
```bash
|
|
1689
2005
|
# Create a workspace (git worktree) without starting an agent
|
|
@@ -2472,15 +2788,26 @@ localhostForwarding=true
|
|
|
2472
2788
|
# Disable GPU/GUI passthrough - reduces dxg driver errors
|
|
2473
2789
|
guiApplications=false
|
|
2474
2790
|
|
|
2791
|
+
# ============================================================
|
|
2792
|
+
# WINDOWS 11 ONLY - Comment these out on Windows 10!
|
|
2793
|
+
# These settings require Windows 11 22H2 or later.
|
|
2794
|
+
# On Windows 10 they are silently ignored or may cause issues.
|
|
2795
|
+
# ============================================================
|
|
2796
|
+
|
|
2475
2797
|
# Route DNS through Windows - prevents getaddrinfo() failures
|
|
2476
|
-
dnsTunneling=true
|
|
2798
|
+
# dnsTunneling=true # Windows 11 only
|
|
2477
2799
|
|
|
2478
2800
|
# Inherit Windows proxy settings
|
|
2479
|
-
autoProxy=true
|
|
2801
|
+
# autoProxy=true # Windows 11 only
|
|
2480
2802
|
|
|
2481
|
-
#
|
|
2482
|
-
#
|
|
2483
|
-
|
|
2803
|
+
# Aggressively reclaim cached memory
|
|
2804
|
+
# autoMemoryReclaim=dropCache # Windows 11 only
|
|
2805
|
+
|
|
2806
|
+
# Use sparse VHD to allow better memory compaction
|
|
2807
|
+
# sparseVhd=true # Windows 11 only
|
|
2808
|
+
|
|
2809
|
+
# Mirrored networking (may conflict with Docker Desktop)
|
|
2810
|
+
# networkingMode=mirrored # Windows 11 only
|
|
2484
2811
|
```
|
|
2485
2812
|
|
|
2486
2813
|
**After changing `.wslconfig`:**
|
|
@@ -2505,15 +2832,21 @@ ip addr show eth0 # NAT mode shows 172.x.x.x IP
|
|
|
2505
2832
|
|
|
2506
2833
|
| Feature | Windows 10 | Windows 11 22H2+ |
|
|
2507
2834
|
|---------|-----------|------------------|
|
|
2508
|
-
| `
|
|
2509
|
-
| `
|
|
2835
|
+
| `memory`, `processors`, `swap` | ✅ Works | ✅ Works |
|
|
2836
|
+
| `localhostForwarding` | ✅ Works | ✅ Works |
|
|
2510
2837
|
| `guiApplications=false` | ✅ Works | ✅ Works |
|
|
2838
|
+
| `networkingMode=mirrored` | ❌ Not supported | ✅ Supported |
|
|
2839
|
+
| `dnsTunneling=true` | ❌ Not supported | ✅ Supported |
|
|
2840
|
+
| `autoProxy=true` | ❌ Not supported | ✅ Supported |
|
|
2841
|
+
| `autoMemoryReclaim` | ❌ Not supported | ✅ Supported |
|
|
2842
|
+
| `sparseVhd=true` | ❌ Not supported | ✅ Supported |
|
|
2511
2843
|
|
|
2512
|
-
**Windows 10 users:**
|
|
2844
|
+
**Windows 10 users:** Most advanced WSL2 features require Windows 11. On Windows 10, only the basic resource limits and `localhostForwarding`/`guiApplications` settings are supported. Other settings will be silently ignored or may cause instability.
|
|
2513
2845
|
|
|
2514
2846
|
If you experience frequent WSL2 crashes on Windows 10, consider:
|
|
2515
|
-
-
|
|
2847
|
+
- Using only the basic settings shown above (memory, processors, swap, localhostForwarding, guiApplications)
|
|
2516
2848
|
- Reducing `memory` allocation if system is under pressure
|
|
2849
|
+
- Upgrading to Windows 11 for full WSL2 feature support
|
|
2517
2850
|
- Checking Windows Event Viewer for specific crash causes
|
|
2518
2851
|
|
|
2519
2852
|
#### Additional Windows 10 Workarounds
|
|
@@ -16,9 +16,8 @@ import {
|
|
|
16
16
|
saveSessionId,
|
|
17
17
|
spawnAgent,
|
|
18
18
|
stopAgent
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-DGUM43GV.js";
|
|
19
|
+
} from "./chunk-H45CLB7E.js";
|
|
20
|
+
import "./chunk-7HHDVXBM.js";
|
|
22
21
|
export {
|
|
23
22
|
appendActivity,
|
|
24
23
|
autoRecoverAgents,
|
|
@@ -38,4 +37,4 @@ export {
|
|
|
38
37
|
spawnAgent,
|
|
39
38
|
stopAgent
|
|
40
39
|
};
|
|
41
|
-
//# sourceMappingURL=agents-
|
|
40
|
+
//# sourceMappingURL=agents-B5NRTVHK.js.map
|