# MiniLlama — CLI Test-Szenario

> Dieses Szenario testet die Kernfunktionen des CrowdCode CLI:
> Datei-Operationen (FILE:, DIR:, EDIT:), Shell-Zugriff (```bash),
> @mentions, und Chat.

## Vorbereitung

Sicherstellen, dass der Server läuft oder über den CLI automatisch gestartet wird:

```bash
cd /home/xray/code/MiniLlama
./start.sh
```

Oder für API-Zugriff:

```bash
cd /home/xray/code/MiniLlama
./start-server.sh
```

## Test 1: Einfacher Chat

**Eingabe:**
```
Sag kurz: Hallo Welt
```

**Erwartet:** Antwort "Hallo Welt!" (oder ähnlich)

---

## Test 2: Verzeichnis + Datei anlegen

**Eingabe:**
```
Lege ein Verzeichnis test_reihe an, erstelle darin Test.txt mit dem Text "ich bin ein test"
```

**Erwartet:**
- CLI zeigt `DIR: test_reihe` → Verzeichnis wird erstellt
- CLI zeigt `FILE: test_reihe/Test.txt` → Datei wird geschrieben
- Inhalt: `ich bin ein test`

---

## Test 3: Datei kopieren

**Eingabe:**
```
kopiere Test.txt als Test2.txt ins gleiche Verzeichnis
```

**Erwartet:**
- CLI zeigt `` ```bash cp test_reihe/Test.txt test_reihe/Test2.txt````
- CLI fragt: "Ausführen? (j/N)" → **j** eingeben
- `Test2.txt` existiert mit gleichem Inhalt

---

## Test 4: Shell-Befehl (direkt)

**Eingabe:**
```
ls -la test_reihe/
```

**Erwartet:**
- Wird direkt als Shell-Befehl erkannt (kein LLM)
- Zeigt `Test.txt` und `Test2.txt`

---

## Test 5: Shell-Befehl mit Prompt-Präfix

**Eingabe:**
```
$ pwd
```

**Erwartet:**
- `$ ` wird ignoriert, `pwd` wird erkannt
- Zeigt aktuellen Pfad

---

## Test 6: Datei lesen (@mention)

**Eingabe:**
```
@test_reihe/Test.txt
```

**Erwartet:**
- Inhalt `ich bin ein test` wird eingelesen und ans LLM übergeben

---

## Test 7: Verzeichnis auflisten (@mention)

**Eingabe:**
```
@test_reihe/
```

**Erwartet:**
- Listet `Test.txt` und `Test2.txt`

---

## Test 8: Natürlichsprachliche Dateiabfrage

**Eingabe:**
```
liste die dateien in test_reihe auf
```

**Erwartet:**
- LLM gibt `` ```bash ls -la test_reihe/```` zurück
- CLI fragt "Ausführen? (j/N)" → **j** eingeben
- Zeigt Dateiliste

---

## Test 9: Mehrere Dateien auf einmal (Wiki-Stil)

**Eingabe:**
```
Erstelle folgende Dateien:
- DIR: projekt/src
- FILE: projekt/src/hello.py mit einem print("Hallo Welt")
- FILE: projekt/README.md mit einer kurzen Beschreibung
```

**Erwartet:**
- Alle DIR:- und FILE:-Patterns werden automatisch ausgeführt
- Keine Bestätigungsabfragen nötig

---

## Test 10: Aufräumen

**Eingabe:**
```
Lösche das test_reihe und projekt Verzeichnis
```

**Erwartet:**
- CLI zeigt `` ```bash rm -rf test_reihe projekt````
- CLI fragt "Ausführen? (j/N)" → **j** für Bestätigung

---

## Erfolgskriterien

| Test | Feature | Status |
|---|---|---|
| 1 | Chat | ⬜ |
| 2 | DIR: + FILE: | ⬜ |
| 3 | ```bash (cp) mit Bestätigung | ⬜ |
| 4 | Shell direkt | ⬜ |
| 5 | Prompt-Präfix $ | ⬜ |
| 6 | @mention (lesen) | ⬜ |
| 7 | @mention (dir) | ⬜ |
| 8 | NL-Dateiabfrage via LLM | ⬜ |
| 9 | Multi-File Wiki-Stil | ⬜ |
| 10 | Aufräumen | ⬜ |
