KRET LANGUAGE ACADEMY · DOKUMENTACJA ZE ŹRÓDEŁ
Naucz się budować z Kret.
Od pierwszego manifestu do własnego pluginu. Ucz się z rzeczywistych plików, poznawaj kontrakty i sprawdzaj wiedzę krok po kroku.
Wybierz swoją ścieżkę
Podstawy ekosystemu Kret
Od wyboru technologii przez pierwszy projekt do czytania diagnostyki i granic brokera.
Zobacz programLANGUAGE · 3 lekcjiKretL — trzy poziomy
KretL opisuje plugin: tożsamość, zgodność z Core i API, uprawnienia (deklaracje), cykl życia, tryb wykonania, limity, izolację, obszary danych, zależności i komendy hosta. Nie zawiera logiki. Jedyny manifest bieżącej generacji to `plugin.kretl` w katalogu głównym projektu.
Zobacz programLANGUAGE · 3 lekcjiKretS — trzy poziomy
KretS (oficjalnie KretScript, generacja 2.0) to statycznie typowany język logiki pluginów. Kompiluje się do bytecode KBC 2 i działa w maszynie z weryfikatorem w osobnym procesie pluginu. Operacje hosta (dziennik, KretDB, konfiguracja, AI, mosty) są dostępne tylko przez brokera i tylko przy uprawnieniu z KretL.
Zobacz programLANGUAGE · 3 lekcjiKretDB — trzy poziomy
KretDB to własny interfejs bazy danych pluginu: schemat w `Disk/Schema.kdb`, nazwane zapytania typowane względem KretS, transakcje, izolowana baza należąca do brokera (backend SQLite — decyzja R-11). Plugin nigdy nie widzi SQL ani uchwytu bazy.
Zobacz programLANGUAGE · 3 lekcjiKretUI — trzy poziomy
KretUI opisuje strukturę i interakcje interfejsu (widoki, stan, bindingi, akcje do komend KretS). KretStyle opisuje wygląd (selektory, kaskada, stany, `media`), KTheme — motyw (tokeny, warianty `dark`/`highContrast`, kontrola kontrastu WCAG). Renderer SDK (Avalonia) działa we własnym procesie, logika w procesie pluginu. Interfejs nie nadaje uprawnień i nie przechowuje sekretów.
Zobacz programLANGUAGE · 3 lekcjiKretFlow — trzy poziomy
KretFlow zapisuje logikę jako graf bloków (JSON, `kretflow-ir/2`). **Nie ma osobnego silnika przepływów**: graf jest obniżany do automatu stanów w KretS, kompilowany zwykłym kompilatorem i wykonywany przez tę samą maszynę, z tymi samymi uprawnieniami i limitami. Nazwa „KretFollow” nie występuje w żadnym źródle — to literówka, nie nazwa historyczna.
Zobacz programLANGUAGE · 3 lekcjiKretAI — trzy poziomy
KretAI (w SDK `KretAi`) deklaruje modele, narzędzia (funkcje KretS) i agentów. Zamrożone są deklaracje, walidacja oraz bramki uprawnień i polityki danych. **Wykonanie z prawdziwym modelem nie należy do kontraktu 1.0** (KretAI 1.1+, NOT_RUN). W Core KretAI jest DISABLED.
Zobacz programLANGUAGE · 3 lekcjiKretLink — trzy poziomy
KretLink to wersjonowane kontrakty usług (`.klink`) i dwa protokoły: łącze broker↔plugin `kretlink-local/1` (stdin/stdout) oraz RPC `kretlink-rpc/1` na potokach nazwanych (tożsamość procesu, wzajemny HMAC, terminy). Kontrakt można walidować, ale **nie daje on prawa do komunikacji**. Eksport usług pluginów, `stream` w Core i produkcyjne uprawnienia `kretlink.*` są zablokowane (A17, FB-06).
Zobacz programLANGUAGE · 3 lekcjiKretM — trzy poziomy
KretM opisuje strukturę projektu: warstwy, moduły z katalogami i plikami, dozwolone (`allow`) i zakazane (`deny`) zależności oraz połączenia. Kompilator sprawdza kod KretS względem mapy. **KretM niczego nie przyznaje** i **nie jest językiem bibliotek funkcji** (to rola KretMod). Mapę włącza `project { map }` w KretL.
Zobacz programLANGUAGE · 3 lekcjiKretLib — trzy poziomy
KretLib zarządza bibliotekami KretS: manifest biblioteki (`library.klib`), wymagania projektu (`project.klibs`), rozstrzyganie wersji, plik blokady ze skrótami SHA-256, instalacja offline do `Libs/` i opcjonalny rejestr HTTPS. Zamrożony zakres: biblioteki offline z blokadą i skrótami. Biblioteka **nie deklaruje uprawnień**.
Zobacz programLANGUAGE · 3 lekcjiKretBridge — trzy poziomy
KretBridge łączy KretS z biblioteką C# działającą w **osobnym procesie usługi**, wywoływanej przez brokera jak operacja hosta (KretS → broker → KretLink RPC → proces C# → wynik). Status PROVISIONAL_VERSIONED; **w Core zablokowany** — kod natywny nie jest izolowany jak plugin w AppContainer. To nie jest sandbox dla C#.
Zobacz programLANGUAGE · 3 lekcjiKretConfig — trzy poziomy
KretConfig opisuje ustawienia pluginu: schemat (typy z jednostkami, zakresy, wartości dozwolone, `hotReload`, ustawienia tajne), profile (z dziedziczeniem), warstwy (domyślne → użytkownik → projekt → moduł) i politykę hosta, która zawsze wygrywa. Sekrety wyłącznie przez Vault (Windows DPAPI). Status **PROVISIONAL_VERSIONED** (własna ścieżka rozwoju).
Zobacz programLANGUAGE · 3 lekcjiKretMod — trzy poziomy
KretMod to **zdefiniowana, niezaimplementowana** koncepcja bibliotek funkcji i modułów Kret: jednostek kodu wielokrotnego użytku, publikowanych i wersjonowanych niezależnie od pluginu. **KretMod ≠ KretM** (KretM to mapa jednego projektu). Implementacja nie istnieje w żadnym repozytorium, SDK, KretStudio, bazie wiedzy ani na stronie. Dziś tę funkcję pełni KretLib.
Zobacz programPLUGIN · 21 lekcjiTwój pierwszy plugin — KretHello
21 etapów: od nowego projektu przez check, testy i paczkę dev do jawnie opisanych bramek Core oraz publikacji.
Zobacz programPROJECT · 5 lekcjiNotatnik KretDB
Notatnik na KretDB: tworzenie, odczyt, edycja z kontrolą rewizji, usuwanie, wyszukiwanie, sortowanie; izolowana baza pluginu (4 MB, limit 1000 rekordów). Interfejs KretUI z KretStyle/KTheme. Dane wyłącznie przez nazwane zapytania i transakcje — plugin nie widzi SQL.
Zobacz programPROJECT · 5 lekcjiKretTasks — lista zadań
Menedżer zadań: lista, priorytet (`low`/`normal`/`high`), termin (data ISO z kontrolą lat przestępnych), status wykonania, filtr otwarte/zrobione, zapis i odczyt w KretDB, interfejs KretUI.
Zobacz programPROJECT · 5 lekcjiDashboard KretUI
Panel informacji systemowych: RAM, CPU, GPU, VRAM, temperatury, RPM — wyłącznie przez moduł hosta `Kret.Hardware` (PROVISIONAL, G-06) i **opcjonalne** uprawnienia KCS. Każdy odczyt przechodzi przez Security Broker; odmowa albo brak sensora jest pokazywany jako `DENIED`/`UNAVAILABLE`, a plugin działa dalej. Brak sterowania sprzętem (bez PWM). W SDK nie ma dostawcy sensorów, więc odczyty kończą się odmową — to oczekiwane.
Zobacz programPROJECT · 5 lekcjiPlugin wielojęzykowy
Jeden projekt łączący oficjalnie obsługiwane technologie: manifest KretL z mapą KretM (warstwy Ui → Logic → Data), moduły KretS z regułami mapy, dane KretDB, biblioteka offline KretLib (`mathx` → `textutil`) i widok KretUI wywołujący komendę `orders.summary`.
Zobacz programTwoja nauka
Kursy są publiczne. Postęp i zakładki zapiszesz po zalogowaniu na konto użytkownika. Zaloguj się →
Jedno zadanie, właściwa technologia
Status języka, wynik SDK i dostęp Core to osobne informacje. KretMod jest koncepcją bez implementacji.