# Wiki — Baza wiedzy

> Dokumentacja, którą Twój agent AI potrafi przeszukać semantycznie

Hierarchiczne strony Markdown z edytorem WYSIWYG, uploadem obrazów do MinIO i wyszukiwaniem semantycznym przez pgvector + OpenAI embeddings. To wiki zaprojektowane dla ludzi i agentów AI jednocześnie.

## Funkcje

- **Hierarchia stron**: Drzewo stron z relacją parent/child. Breadcrumby do nawigacji. Podstrony wyświetlane na stronie rodzica.
- **Edytor WYSIWYG (EasyMDE)**: Markdown z podglądem na żywo, formatowaniem i wstawianiem obrazów przez drag & drop. Dark theme dopasowany do UI.
- **Upload obrazów do MinIO**: Obrazy przechowywane w object storage (MinIO). Ścieżka: {slug}/attachments/{filename}. Serwowane bezpośrednio.
- **Wyszukiwanie semantyczne (RAG)**: pgvector z HNSW index + OpenAI text-embedding-3-small. Pytasz naturalnym językiem — system znajduje najlepiej pasujące fragmenty.
- **Chunking z overlapping**: Strony dzielone na fragmenty ~500 tokenów z nakładaniem się. Tokenizacja przez tiktoken. Każdy chunk ma osobny embedding.
- **Śledzenie autorów**: Kto utworzył stronę, kto ostatnio edytował. Pełna przejrzystość zmian.
- **Graceful degradation**: Brak klucza OpenAI? Wiki działa normalnie — wyszukiwanie semantyczne jest po prostu wyłączone.
- **Markdown rendering**: render_markdown_html() z Tailwind prose prose-invert. Ten sam renderer używany w ticketach i komentarzach Scrum.

## Jak to działa

1. **Utwórz stronę główną**: Np. "Architektura systemu". Użyj edytora EasyMDE do pisania w Markdown.
2. **Dodaj podstrony**: Twórz strony-dzieci, np. "Baza danych" pod "Architekturą". Drzewo buduje się automatycznie.
3. **Wstaw obrazy**: Przeciągnij obrazy do edytora — automatycznie uploadują się do MinIO i wstawiają jako Markdown.
4. **Wyszukuj semantycznie**: Wpisz pytanie w polu szukaj — system znajdzie najlepiej pasujące fragmenty stron na podstawie znaczenia, nie tylko słów kluczowych.
5. **AI przeszukuje wiki przez MCP**: Agent AI może przeczytać dowolną stronę i wyszukać informacje semantycznie — tak jakby był członkiem zespołu.

## AI i MCP

Wiki to serce AI-first podejścia Monolynx. Agent AI przeszukuje dokumentację, zarządza załącznikami i plikami projektu — 12 narzędzi MCP.

- `list_wiki_pages`: Pełne drzewo hierarchii z parent_id i głębokością
- `get_wiki_page`: Treść strony + breadcrumby do nawigacji
- `create_wiki_page`: Nowa strona z opcjonalnym parent_id (podstrona)
- `update_wiki_page`: Edycja treści, tytułu, pozycji
- `delete_wiki_page`: Usuwanie kaskadowe (strona + podstrony)
- `search_wiki`: Wyszukiwanie semantyczne RAG (jeśli embeddingi aktywne)
- `add_wiki_page_attachment`: Dodaj załącznik do strony wiki (base64)
- `get_wiki_attachment`: Pobierz zawartość załącznika strony wiki (base64)
- `add_wiki_file`: Dodaj globalny plik do repozytorium wiki
- `get_wiki_file`: Pobierz zawartość globalnego pliku (base64)
- `update_wiki_file`: Zaktualizuj opis lub nazwę pliku
- `list_wiki_files`: Lista globalnych plików w repozytorium wiki

## Szczegóły techniczne

- **Embeddings**: OpenAI text-embedding-3-small (1536 wymiarów). Chunking przez tiktoken (model gpt-4o), ~500 tokenów z overlap.
- **Wyszukiwanie**: pgvector z HNSW index, cosine similarity. Wyniki posortowane po trafności z podglądem snippetu.
- **Content storage**: Markdown w MinIO ({slug}/pages/{page_id}.md). Metadata (tytuł, hierarchia, pozycja) w PostgreSQL.
- **Graceful degradation**: OPENAI_API_KEY='' wyłącza embeddingi. Wiki działa bez wyszukiwania semantycznego.
