# Prompt pentru Claude Code - Implementare `extraPaths` în Clawdbot

## Problema

Clawdbot memory search indexează doar `MEMORY.md` și `memory/**/*.md`. 

Vreau să pot indexa și alte directoare (ex: `kb/`) pentru semantic search, dar:
1. Funcția `extraPaths` e menționată în documentație dar **nu există în cod**
2. Clawdbot e instalat via npm în `/usr/lib/node_modules/clawdbot/`
3. Orice modificare directă **va fi suprascrisă** la următorul `npm update`

## Obiectiv

Găsește și implementează cea mai bună soluție pentru a adăuga suport `extraPaths` care:
- Să supraviețuiască update-urilor npm
- Să fie ușor de menținut
- Să funcționeze cu versiunea curentă (2026.1.24-3)

## Opțiuni de evaluat

### Opțiunea 1: Fork oficial + PR
- Fork repo-ul Clawdbot
- Implementez feature-ul
- Fac PR upstream
- **Pro:** Soluție permanentă, ajută comunitatea
- **Contra:** Durează până e acceptat

### Opțiunea 2: Patch cu patch-package
- Folosesc `patch-package` pentru a aplica un patch persistent
- Patch-ul se re-aplică automat după npm install
- **Pro:** Supraviețuiește update-urilor
- **Contra:** Poate necesita actualizare la versiuni noi

### Opțiunea 3: Plugin/Extension custom
- Verific dacă Clawdbot suportă extensii pentru memory
- Creez un plugin care extinde funcționalitatea
- **Pro:** Nu modific core-ul
- **Contra:** Poate să nu fie posibil arhitectural

### Opțiunea 4: Post-install hook
- Script în package.json care aplică modificările după install
- **Pro:** Automatizat
- **Contra:** Fragil

### Opțiunea 5: Sync script (workaround)
- Script care copiază/sincronizează `kb/` → `memory/kb/`
- Rulează periodic sau la modificări (inotify/fswatch)
- **Pro:** Zero modificări în Clawdbot
- **Contra:** Duplicare fișiere, nu e elegant

## Configurația dorită

```json
{
  "agents": {
    "defaults": {
      "memorySearch": {
        "enabled": true,
        "extraPaths": ["kb", "docs/notes"]
      }
    }
  }
}
```

## Fișierele relevante din Clawdbot

Dacă alegi să modifici codul:

1. **Schema config** - adaugă `extraPaths: z.array(z.string()).optional()`
   - Caută în `src/config/` fișierele cu `zod-schema`

2. **Listare fișiere** - `src/memory/internal.ts`:
   ```typescript
   // Funcția actuală:
   export async function listMemoryFiles(workspaceDir: string): Promise<string[]>
   
   // Trebuie modificată să accepte:
   export async function listMemoryFiles(
     workspaceDir: string, 
     extraPaths?: string[]
   ): Promise<string[]>
   ```

3. **Manager** - `src/memory/manager.ts`:
   - Clasa `MemoryIndexManager` 
   - Trebuie să paseze `extraPaths` și să adauge watcher

4. **Config resolution** - `src/agents/memory-search.ts`:
   - Funcția `mergeConfig` - să includă extraPaths

## Comportament dorit

- `extraPaths: ["kb"]` → indexează `workspace/kb/**/*.md`
- Path-uri relative la workspace
- Urmărește symlink-uri (opțional)
- Watcher monitorizează și directoarele extra
- Directoare inexistente → ignoră silențios
- Path-uri în afara workspace → warning și ignoră

## Pași de testare

```bash
# 1. Adaugă în config
# extraPaths: ["kb"]

# 2. Creează fișier test
echo "# Test\nConținut unic pentru testare extraPaths" > kb/test-extrapaths.md

# 3. Reindexează
clawdbot memory reindex

# 4. Verifică indexul
clawdbot memory status

# 5. Testează căutarea
clawdbot memory search "conținut unic testare"
# Ar trebui să găsească kb/test-extrapaths.md
```

## Context sistem

- **OS:** Linux (LXC container)
- **Clawdbot:** 2026.1.24-3 (instalat global cu npm)
- **Locație:** `/usr/lib/node_modules/clawdbot/`
- **Config:** `~/.clawdbot/clawdbot.json`
- **Workspace:** `/home/moltbot/clawd/`

## Ce aștept de la tine

1. **Evaluează opțiunile** și recomandă cea mai bună pentru cazul meu
2. **Implementează soluția** aleasă
3. **Testează** că funcționează
4. **Documentează** cum să mențin soluția la update-uri viitoare

Începe prin a explora codul Clawdbot și a înțelege arhitectura, apoi propune soluția.
