# 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 // Trebuie modificată să accepte: export async function listMemoryFiles( workspaceDir: string, extraPaths?: string[] ): Promise ``` 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.