Przejdź do treści

KRET LANGUAGE ACADEMY · DOKUMENTACJA ZE ŹRÓDEŁ

UiDemo — notatki (KretUI + KretStyle + KTheme + KretS + KretDB)

UiDemo — notatki (KretUI + KretStyle + KTheme + KretS + KretDB)

Mała aplikacja z listą notatek. Pokazuje podział odpowiedzialności:

PlikRola
Ui/Notes.kretuistruktura widoku, stan, akcje
Ui/App.kstylewygląd (kaskada, stany, reguły dla małego okna i dotyku)
Ui/App.kthememotyw z wariantami dark i highContrast oraz wymaganiami kontrastu
Script/Main.krslogika: komendy notes.load, notes.add, notes.clear
Disk/Schema.kdbbaza KretDB
plugin.kretlmanifest: uprawnienia i lista komend, które host może wywołać
host-policy.jsonuprawnienia przyznane przez hosta

Uruchomienie

Kontrola projektu (interfejs razem z logiką i manifestem) oraz logika bez okna — komendy interfejsu wywołane przez brokera:

kret check 11_Examples\UiDemo
kret run 11_Examples\UiDemo --policy 11_Examples\UiDemo\host-policy.json --data %TEMP%\kret-data -o %TEMP%\kret-build\UiDemo --invoke "notes.add=[\"pierwsza notatka\"]" --invoke notes.load
Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. kret check 11_Examples\UiDemoOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  2. kret run 11_Examples\UiDemo --policy 11_Examples\UiDemo\host-policy.json --data %TEMP%\kret-data -o %TEMP%\kret-build\UiDemo --invoke "notes.add=[\"pierwsza notatka\"]" --invoke notes.loadOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.

Okno wymaga hosta interfejsu. Zbuduj go (artefakty poza katalogiem roboczym):

dotnet build 04_Languages\KretUI\src\Kret.Ui.Host\Kret.Ui.Host.csproj -c Release --artifacts-path %TEMP%\kcs-build\final
Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. dotnet build 04_Languages\KretUI\src\Kret.Ui.Host\Kret.Ui.Host.csproj -c Release --artifacts-path %TEMP%\kcs-build\finalOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.

Okno:

%TEMP%\kcs-build\final\bin\Kret.Ui.Host\release\kretui-host.exe 11_Examples\UiDemo
Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. %TEMP%\kcs-build\final\bin\Kret.Ui.Host\release\kretui-host.exe 11_Examples\UiDemoOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.

Warianty: --variant dark, --variant highContrast, --touch, --width 420.

Test bez okna (obraz i opis kontrolek w katalogu wyników):

kretui-host 11_Examples\UiDemo --self-test %TEMP%\uidemo-out --input "0/2/0=Kupić mleko" --click 0/2/1
Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. kretui-host 11_Examples\UiDemo --self-test %TEMP%\uidemo-out --input "0/2/0=Kupić mleko" --click 0/2/1Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.

Oczekiwane zachowanie

  1. Po otwarciu widok wywołuje notes.load i pokazuje zapisane notatki (albo „Brak notatek.”).
  2. Przycisk Dodaj jest nieaktywny, dopóki pole jest puste. Po wpisaniu tekstu i kliknięciu (albo Enter) notatka trafia

do bazy, lista się odświeża, a pole się czyści.

  1. Wyczyść… otwiera okno potwierdzenia; Usuń kasuje notatki w jednej transakcji, Anuluj zamyka okno.
  2. Notatki zostają po zamknięciu i ponownym uruchomieniu.
  3. Błąd logiki (np. pusta notatka wysłana z pominięciem interfejsu) pojawia się jako komunikat w widoku.

Test automatyczny

08_Testing/KretTest/Kret.Ui.Tests → Demo_host_renders_the_example_and_handles_input_end_to_end, Preview_runs_project_logic_in_a_separate_process_under_host_policy, Preview_without_granted_permissions_fails_closed, Preview_rejects_ui_that_does_not_match_logic_or_manifest; oraz MandatoryExamplesTests.UiDemo_is_checked_with_its_logic_and_starts_in_isolation (kontrola projektu i komendy interfejsu przez kret run).

Wynik (Windows 11 x64, 2026-10-11): PASS.

Stan bezpieczeństwa

  • Logika działa w osobnym procesie (Kret.PluginHost) za brokerem; host rysuje tylko interfejs.
  • Plugin ma wyłącznie uprawnienia z host-policy.json: dziennik i własna baza KretDB. Bez polityki nie uruchomi się.
  • Host może wywołać tylko komendy z bloku handlers manifestu; typy argumentów sprawdza proces pluginu.
  • Przykład nie korzysta z sieci, plików użytkownika ani modeli AI.
  • Proces logiki działa na poziomie izolacji hosta (domyślnie ograniczony token i niski poziom integralności). Ten poziom nie

blokuje odczytu plików użytkownika ani sieci — niezaufane pluginy uruchamia się w kontenerze aplikacji (07_Security/SecurityBroker/README.md).

Źródło i wersja

Zweryfikowany import PUBLIC_CANDIDATE. Identyfikatory źródeł odnoszą się do eksportu i nie dają dostępu do plików serwera.

03_EXAMPLE_PLUGINS/KretUiDemo/docs/UPSTREAM_README_PL.md
SHA-256 1F7DF896531775B8A36FD6E5EAA4277E153AC07D31E723B63C8482609D6FCE2A

Oryginalne źródło jest dwujęzyczne; terminy techniczne i polecenia zachowano.

Zaloguj się na konto użytkownika, aby zapisywać postęp i zakładki. Konta obsługi mogą czytać bez zapisu postępu. Logowanie →

Wybierz, co możemy zapamiętać w tej przeglądarce. Możesz zmienić decyzję w każdej chwili.

Polityka prywatności