# 5. Personal, Infra i Integracje — Pulpit Majstra i Ukryte Wrota

> Źródło: repo afterlife/docs/api/05-personal-i-infra-rp.md — edytuj w repo, nie tutaj.

# Personal, Infra i Integracje — Pulpit Majstra i Ukryte Wrota

![Orin przed panelem kontrolnym Warsztatu](https://wiki.ariku.pl/uploads/images/gallery/2026-10/orin-panel-kontrolny.png)

*Wskakuje na główny pulpit sterowniczy, a wokół jej łapek zapalają się dziesiątki kontrolek!* Oho, dotarliśmy do serca samego Warsztatu, nyah~! Tutaj znajdują się **Wrota** (i **Ukryte Wrota** do Portainera), panel **Elemental Stars**, w którym spoczywają **Iskry**, a także pełny silnik zadań „Co robimy?” i inwentarz naszej serwerowni! Prawie wszystkie ścieżki na tej stronie są pilnie strzeżone — wpuszczają wyłącznie samego **Majstra** (`isOwner`) albo zaufane narzędzia z odpowiednim kluczem. Spójrzmy na wszystkie trzydzieści pięć tras! *strzyże uszami*

---

## Pulpit PERSONAL — Rdzeń, Iskry, Kuźnia i Dom (10 ścieżek)

Te endpointy zasilają prywatną zakładkę **PERSONAL** oraz pulpit `/dashboard`. To stąd Majster dogląda sprzętu, zarządza kluczami i przełącza zasilanie kontenerów!

| Endpoint | Metody | Dostęp | Opis działania i parametry |
|---|---|---|---|
| `/api/personal/overview` | `GET` | Tylko Majster (Owner) | Główny zrzut telemetrii dla pulpitu PERSONAL: stan hostów, metryki karty graficznej, pamięć, dyski oraz podsumowanie usług. |
| `/api/personal/stats` | `GET` | Tylko Majster (Owner) | Szczegółowe statystyki ruchu, odwiedzin i zdarzeń zebranych w bazie analitycznej. |
| `/api/personal/elemental-stars` | `GET`, `POST`, `DELETE` | Tylko Majster (Owner) | Obsługa panelu **Elemental Stars**, w którym przechowywane są **Iskry** (klucze API i poświadczenia przechowywane w **Lemurii**). |
| `/api/personal/forge-control` | `GET`, `POST` | Tylko Majster (Owner) | Właścicielski panel sterowania **Kuźnią** — bezpośrednie otwieranie, zamykanie i zmiana trybu pracy regulatora VRAM niezależnie od kolejki społeczności. |
| `/api/personal/comfyui-control` | `GET`, `POST` | Tylko Majster (Owner) | Bezpośrednie sterowanie procesem i kolejką silnika ComfyUI na maszynie z GPU (restart, czyszczenie pamięci VRAM, przerwanie generowania). |
| `/api/personal/container-control` | `GET`, `POST` | Tylko Majster (Owner) | **Ukryte Wrota** — pełny panel kontroli kontenerów przez Portainer API (uruchamianie, zatrzymywanie i restart usług w całej infrastrukturze). |
| `/api/personal/light-control` | `GET`, `POST` | Tylko Majster (Owner) | Sterowanie oświetleniem i encjami inteligentnego domu przez integrację z Home Assistantem. |
| `/api/personal/rig-locks` | `GET`, `POST`, `DELETE` | Tylko Majster (Owner) | Zarządzanie blokadami roboczymi maszyny GPU (`rig-locks`), aby zadania w tle nie wchodziły w drogę aktywnej pracy lub grze. |
| `/api/personal/alert-rules` | `GET`, `POST`, `DELETE` | Tylko Majster (Owner) | Konfiguracja progów i reguł ostrzegawczych dla **strażnika** (systemu monitoringu i powiadomień). |
| `/api/personal/system-updater` | `GET`, `POST` | Tylko Majster (Owner) | Podgląd i wyzwalanie aktualizacji pakietów systemowych oraz obrazów kontenerów w homelabie. |

---

## Pulpit PERSONAL — AI, Grafy, Głos i Luneta Admin (10 ścieżek)

Tutaj konfiguruje się mój koci mózg, rysuje grafy uprawnień i opowieści, a także transkrybuje nagrania głosowe! *macha ogonem z dumą*

| Endpoint | Metody | Dostęp | Opis działania i parametry |
|---|---|---|---|
| `/api/personal/ai-config` | `GET`, `POST` | Tylko Majster (Owner) | Wybór mojego aktywnego modelu językowego (Ollama / Gemini / router), przełącznik generowania obrazów (`isImageGenEnabled`) oraz konfiguracja umiejętności (`skillsDb`). |
| `/api/personal/ai-graph` | `GET`, `POST` | Tylko Majster (Owner) | Płótno grafu uprawnień i architektury AI! To tutaj krawędzie `can_invoke` decydują, która rola (np. `Zwłoki w Taczce`) może wywołać konkretny preset obrazkowy lub głosowy. |
| `/api/personal/ai-graph/position` | `POST` | Tylko Majster (Owner) | Zapisuje współrzędne `(x, y)` węzłów na płótnie grafu AI w **Lemurii**, żeby układ kafelków się nie rozsypał po odświeżeniu! |
| `/api/personal/ai-graph/relations` | `POST`, `DELETE` | Tylko Majster (Owner) | Tworzy i usuwa krawędzie relacji (np. uprawnienia `can_invoke`) pomiędzy węzłami na grafie AI. |
| `/api/personal/story-graph` | `GET`, `POST` | Tylko Majster (Owner) | Interaktywny graf powiązań fabularnych i postaci zbudowany na podstawie wydarzeń z **Kroniki**. |
| `/api/personal/luneta` | `GET`, `POST`, `PUT`, `DELETE` | Tylko Majster (Owner) | Administracyjna konfiguracja gier w **Lunecie** — definiowanie obsługiwanych tytułów, walut (w tym `premium`), zadań cyklicznych oraz źródeł zewnętrznych. |
| `/api/personal/voice` | `GET`, `POST`, `DELETE` | Tylko Majster (Owner) | Zarządzanie nagraniami głosowymi z **Kroniki**, podgląd zgód użytkowników oraz ręczne operacje na próbkach. |
| `/api/personal/transcribe` | `GET`, `POST` | Tylko Majster (Owner) | Wrzucanie plików audio do lokalnej transkrypcji oraz lista zadań transkrypcyjnych. |
| `/api/personal/transcribe/[id]` | `GET`, `DELETE` | Tylko Majster (Owner) | Odczyt gotowego tekstu transkrypcji dla zadania `[id]` lub usunięcie nagrania z kolejki. |
| `/api/personal/vikunja-task` | `GET`, `POST` | Tylko Majster (Owner) | Szybkie tworzenie i odhaczanie zadań bezpośrednio w systemie Vikunja z poziomu pulpitu PERSONAL. |

---

## Pulpit PERSONAL — Silnik „Co robimy?” i Notatki Companiona (8 ścieżek)

To webowe serce ekranu `/co-robimy`, które zasila poziom **Majstra** (0–99), wylicza wskaźnik **Chaos Meter** (0–100) oraz pozwala przeglądać notatki i załączniki nadsyłane z telefonu przez **Companiona**!

| Endpoint | Metody | Dostęp | Opis działania i parametry |
|---|---|---|---|
| `/api/personal/quests` | `GET`, `POST` | Tylko Majster (Owner) | `GET` zwraca pełny widok planu dnia (`getQuestView`), **Chaos Meter** i poziom **Majstra**. `POST` pozwala dodać nową sprawę lub zsynchronizować źródła zadań. |
| `/api/personal/quests/action` | `POST` | Tylko Majster (Owner) | Wykonuje akcję na zadaniu: zamknięcie (`done`), odłożenie, lub świadome porzucenie („Porzuć”). Każda zamknięta lub uporządkowana sprawa dodaje punkty doświadczenia do toru **Majstra** (bez żadnych kar ani ujemnego XP!). |
| `/api/personal/quests/split` | `POST` | Tylko Majster (Owner) | Dzieli dużą, przytłaczającą sprawę na mniejsze, wykonalne kroki podrzędne (`steps`). |
| `/api/personal/quests/hint` | `POST` | Tylko Majster (Owner) | Prosi lokalnego pomocnika AI (Gienka) o podpowiedź, jak ugryźć trudne zadanie i rozbić je na pierwsze kroki (bez wysyłania prywatnych identyfikatorów w prompcie). |
| `/api/personal/quests/alternatives` | `GET` | Tylko Majster (Owner) | Zwraca alternatywne propozycje zadań, gdy brakuje energii lub głowy na główne zadanie (`low_energy`, `no_head`, `not_now`). |
| `/api/personal/quests/inbox` | `GET`, `POST` | Tylko Majster (Owner) | Szybka skrzynka odbiorcza (`inbox`) na nowe myśli i sprawy do późniejszego uporządkowania. |
| `/api/personal/companion-inbox` | `GET`, `POST` | Tylko Majster (Owner) | Panel weryfikacji notatek spływających z telefonu: `GET` zwraca listę luźnych wpisów z powiązanymi plikami, a `POST` pozwala Majstrowi zdecydować o losie notatki (`accept` tworzy zadanie w odpowiednim projekcie Vikunji wg kategorii `dom`, `projekty`, `praca`, `pomysly`, `reject` odrzuca wpis, `done` oznacza jako załatwiony). |
| `/api/personal/companion-inbox/files/[id]` | `GET` | Tylko Majster (Owner) | Bezpieczny odczyt i pobieranie załącznika przesłanego z telefonu (obraz, wideo, audio, PDF) z piaskownicą nagłówków (`Content-Security-Policy: sandbox`, `nosniff`). |

---

## Inwentarz Infrastruktury, Integracje i Wrota Gier (7 ścieżek)

Na koniec siedem ścieżek, które łączą nasz Warsztat ze światem zewnętrznym, pozwalają adminom dopisywać śledzone repozytoria w **Radarze** oraz pilnują porządku w kontenerach, żeby **Lord Nito** (dług techniczny i martwe usługi) nie zalęgł się w kątach serwerowni! *fuka cicho*

| Endpoint | Metody | Dostęp | Opis działania i parametry |
|---|---|---|---|
| `/api/infra/alerts` | `GET` | Majster / Klucz Companiona (`inventoryCaller`) | Lista „Co wymaga uwagi” dla paska na `/dashboard` oraz powiadomień w aplikacji **Companion**. Grupuje pozycje z inwentarza według poziomów: `critical`, `warning` (`attention`, `stale`) oraz `info` (`update`). |
| `/api/infra/inventory` | `GET` | `inventoryCaller` | Pełny inwentarz homelabu: maszyny wirtualne, kontenery LXC, obrazy Dockera, wersje pakietów oraz 100 ostatnich zdarzeń zmian statusu z ostatnich 7 dni. |
| `/api/integrations/github` | `GET` | Publiczny | Zwraca zbuforowaną aktywność kontrybucji na GitHubie (`getGithubContributionsCached`) dla widoku IT PRO. Gdy brak konfiguracji, zwraca `{ configured: false }`. |
| `/api/integrations/home-assistant` | `GET` | Publiczny / Dashboard | Zwraca bezpieczne podsumowanie stanu Home Assistanta (`getHomeAssistantSummary`). |
| `/api/integrations/jellyfin` | `GET` | Publiczny / Dashboard | Zwraca informacje o aktywnych sesjach odtwarzania w serwerze mediów Jellyfin (`getJellyfinSessions`). |
| `/api/services/control` | `GET`, `POST` | Admini Discorda / Operatorzy gier (`canControlGames`) | **Wrota** — panel kontroli serwerów gier (**Ironloom**, **Ymirel**, **Nidarel**), pozwalający uprawnionym opiekunom uruchomić lub zrestartować serwer gry bez dostępu do pełnych Ukrytych Wrót! |
| `/api/radar/repos` | `GET`, `POST`, `DELETE` | Majster / Admini Discorda (`canManageRadarRepos`) | Zarządzanie listą repozytoriów śledzonych przez **Radar** (`radar_repos` w **Lemurii**). Pozwala właścicielowi i adminom Discorda dodawać, wstrzymywać (`enabled`) i usuwać repozytoria z GitHuba (`owner/repo`) oraz zaufanych instancji Forgejo (`https://git.ariku.pl/owner/repo`, `codeberg.org`), z opcjonalnym śledzeniem commitów (`trackCommits`). |

---

Na tej piątej stronie księgi opisałam dla ciebie dokładnie **35 ścieżek** API (28 w przestrzeni `/api/personal/*`, 2 w `/api/infra/*`, 3 w `/api/integrations/*`, 1 pod `/api/services/control` oraz 1 pod `/api/radar/repos`). *Zeskakuje z pulpitu sterowniczego, poprawia przekrzywioną kokardkę i mruczy z zadowoleniem!*