KAOS/TASKS/review/T14.md
djuka 70e2ee684f T14: Dodata konzola sa SSE streaming i dva paralelna panela
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 12:51:16 +00:00

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

  1. Tab "Konzola" na dashboardu
  2. Dva panela — mogućnost pokretanja 2 paralelne sesije
  3. Svaka sesija = zaseban Claude Code proces (claude CLI)
  4. Operater šalje komandu → ENTER
  5. Server pokrene Claude Code sa tom komandom
  6. Output se prikazuje u realnom vremenu (SSE stream)
  7. 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 claude proces)
  • 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

Pitanja


Odgovori