- Mutat toate fișierele din kb/ în memory/kb/ - Actualizat toate referințele în fișiere (.md, .py, .html) - Actualizat 10 joburi cron cu noi căi - Memory search indexează acum 58 fișiere din memory/ - TOOLS.md actualizat cu documentație completă
137 lines
4.0 KiB
Markdown
137 lines
4.0 KiB
Markdown
# 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.
|