3.8 KiB
3.8 KiB
T14: Dashboard — konzola za komunikaciju sa agentom
Kreirao: planer Datum: 2026-02-20 Agent: coder Model: Sonnet Zavisi od: T12
Opis
Terminal/konzola unutar dashboarda. Operater šalje komande mastermindu, vidi output. Kao chat sa Claude Code-om ali iz browsera.
Kako radi
- Tab "Konzola" na dashboardu
- Dva panela — mogućnost pokretanja 2 paralelne sesije
- Svaka sesija = zaseban Claude Code proces (
claudeCLI) - Operater šalje komandu → ENTER
- Server pokrene Claude Code sa tom komandom
- Output se prikazuje u realnom vremenu (SSE stream)
- Kad završi — prompt se vraća
Izgled
┌──────────────────────────┬──────────────────────────┐
│ 🔧 Sesija 1 │ 🔧 Sesija 2 │
├──────────────────────────┼──────────────────────────┤
│ > radi T13 │ > radi T14 │
│ ✅ T13 pokrenut... │ ✅ T14 pokrenut... │
│ [streaming output] │ [streaming output] │
│ ... │ ... │
│ │ │
│ ┌────────────────────┐ │ ┌────────────────────┐ │
│ │ Komanda... [⏎] │ │ │ Komanda... [⏎] │ │
│ └────────────────────┘ │ └────────────────────┘ │
└──────────────────────────┴──────────────────────────┘
Operater može koristiti 1 ili 2 panela. Drugi panel se otvara dugmetom [+].
Endpointi
POST /console/exec → pokreni komandu (body: {"cmd": "...", "session": 1|2})
GET /console/stream/{id} → SSE stream outputa
GET /console/history/{session} → istorija komandi za sesiju
POST /console/kill/{session} → prekini proces u sesiji
GET /console/sessions → status obe sesije (idle/running)
Podržane komande
Konzola poziva kaos-supervisor CLI:
| Komanda | Šta radi |
|---|---|
status |
Prikaži status svih taskova |
next |
Šta je sledeće za rad |
verify |
Pokreni verifikaciju |
history |
Prikaži izvršene taskove |
radi [TASK_ID] |
Pokreni task |
Nepoznata komanda → prosleđuje se Claude Code-u kao free-form prompt.
SSE streaming
const source = new EventSource('/console/stream/' + execId);
source.onmessage = function(e) {
document.getElementById('console-output').innerHTML += e.data + '\n';
};
source.addEventListener('done', function(e) {
source.close();
// vrati prompt
});
Pravila
- Max 2 paralelne sesije (svaka = zaseban
claudeproces) - Sesije ne smeju raditi na istom tasku
- Server proverava: ako je task već active/ u drugoj sesiji → odbij
- Timeout: KAOS_TIMEOUT iz .env (po sesiji)
- Output se čuva u memoriji (poslednje 50 komandi po sesiji)
- Scroll to bottom na novi output
- Ctrl+C → prekini trenutnu komandu (POST /console/kill/{session})
- Istorija komandi: ↑/↓ strelice (po sesiji)
- Claude Code se pokreće:
claude --dangerously-skip-permissions
Testovi
- POST /console/exec {"cmd": "status", "session": 1} → 200 + exec ID
- GET /console/stream/{id} → SSE stream
- Dve sesije paralelno → obe rade
- Isti task u obe sesije → druga odbijena
- POST /console/kill/1 → prekine sesiju 1
- GET /console/sessions → status obe sesije
- GET /console/history/1 → lista komandi sesije 1