# Assistent Knowledge Hub (swarm-assistent) gpu-rent builds and seeds **books** locally. Runtime lives in [swarm-assistent](https://gitea.hsrv.site/mrleo1nid/swarm-assistent.git). ## VM layout ```text /mnt/swarm_data/Assistent/books// book.yaml # title, description, content_kind search.jsonl # FTS rows (unified contract) meta.json # row_count, content_sha, built_at .gpu-rent-meta.json # same sha for gpu-rent skip/push ``` ## Unified search row ```json { "id": "civitai-krea2:42", "book": "civitai-krea2", "title": "", "tags": ["woman"], "text": "excerpt ≤500 chars", "body": "longer chunk", "rating": "pg13", "meta": {} } ``` ## swarm-assistent tasks (not in gpu-rent) 1. **`Knowledge/IKnowledgeSource.cs`** + adapters: Book, MemorySeed, MemoryPersonal, Tag, Session 2. **`AssistentKnowledgeHub`**: ListCatalog, Search, Upsert, Forget, RunPipeline, BuildSystemLayer 3. **Remove training UI**: Обучение tab, AssistentTrainingJobs, AssistentListTrainSamples, taste APIs 4. **HTTP** `AssistentChat` → `knowledge: {catalog, hops, results}`; legacy `civitai_results` shim 5. **Persona UI** «Знания»: attach toggles; bundled personas default attach civitai-krea2 + ru-fictext-rplus 6. **Skill `knowledge`**: list / search / upsert / forget ## Default attach (bundled only) - `neutral`, `aggressive`, `dreamer`: civitai-krea2 + ru-fictext-rplus - UI-created personas: no auto-attach - Pack `leonid`: from `assistent-pack.yaml` `knowledge.attach` ## Index on VM On book push or sha change: reindex `search.jsonl` → sqlite FTS `books_fts`. Progress in UI on first chat.