refactor: mutat kb/ -> memory/kb/ pentru memory search
- 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ă
This commit is contained in:
136
memory/kb/projects/clawdbot-extrapaths-prompt.md
Normal file
136
memory/kb/projects/clawdbot-extrapaths-prompt.md
Normal file
@@ -0,0 +1,136 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user