Przejdź do treści

KRET LANGUAGE ACADEMY · DOKUMENTACJA ZE ŹRÓDEŁ

Pakowanie i analiza ograniczeń

ADVANCED30 minAnaliza / koncepcja
Postęp nauki 0 / 5
Zaloguj się na konto użytkownika, aby zachować postęp.

Czego się nauczysz

  • Prześledź źródła i wyjaśnij opisany kontrakt.
  • Przygotuj listę dowodów i blokad przed testem Core lub publikacją.
Wymagania wstępne
  • Kurs KretHello oraz kursy technologii wskazanych w karcie projektu.

Wyjaśnienie krok po kroku

Odczytaj zgodność, wymagane uprawnienia i status produkcyjny z karty, zanim przygotujesz paczkę dev ze źródłami. Nie zmieniaj root of trust ani uprawnień hosta na potrzeby ćwiczenia. Publikacja pozostaje osobnym zatwierdzanym procesem.

Materiały źródłowe do tego tematu

Przeczytaj powiązane rozdziały. Kod i kontrakty zachowano z importu; historia źródeł jest dostępna przy każdym rozdziale.

BUILD_INSTRUCTIONS — KretSystemDashboard

BUILD_INSTRUCTIONS — KretSystemDashboard

Katalog roboczy / working directory: folder tego pluginu (zawiera src/). kret = <SDK>\Compiler\kret.exe z SDK 1.0.0-rc.3+kret.local.3 (lub pinned Vendor Core rc.3+kc-base-test610). Wszystkie polecenia poniżej zostały wykonane w tej rundzie — wyniki: TEST_RESULTS.json.

#Krok / StepPolecenie / Command
1Utworzenie projektu / createKopia engine/Plugins/KretSystemDashboard/Source (Core 1.0.0-test.6.11-draft.1, gałąź feature/sdk-studio-final-integration). / Copy of the Core plugin source. Nowy projekt od zera / from scratch: kret new basic <katalog> --name KretSystemDashboard
2Kod / codesrc/plugin.kretl, src/Script/**.krs, src/Ui/*
3Sprawdzenie / checkkret check src --json
4Buildkret build src → src/Build/plugin.kbc, manifest.json
5Testy / testskret test src --json --policy examples/host-policy.json
5aUruchomienie lokalne / local runkret run src --policy examples/host-policy.json --data <nowy katalog> --invoke dashboard.readings --invoke dashboard.refresh=[41]
6Paczka / packkret publish pack src --channel dev --include-sources -o package → package/LOCAL-KPL-BASCDSH7-1.2.0-dev.kpkg
7Weryfikacja / verifykret publish verify package/LOCAL-KPL-BASCDSH7-1.2.0-dev.kpkg --report package/verify-report.json

Uwagi / notes:

  • --include-sources jest wymagane dla KPM Core: Core kompiluje plugin ze źródeł i odrzuca paczkę z samym bytecode (source_package_required, STUDIO-R02). / Required for Core KPM.
  • Kanał dev: paczka niepodpisana (signature: SKIPPED, nie PASS). Brak podpisu produkcyjnego — ceremonia C1 nie odbyła się. / Unsigned dev package; no production signature exists.
  • host-policy.json nigdy nie trafia do .kpkg (lista dozwolonych KretPublish). / Never packed.
Otwórz cały rozdział ze źródłem →
COMPATIBILITY — KretSystemDashboard

COMPATIBILITY — KretSystemDashboard

Składnik / ComponentWersja / VersionStan / State
KretLkretl-1.0, manifestVersion "1.0"FROZEN_1_0
Języki / languagesKretL, KretS (+ Kret.Hardware PROVISIONAL), KretUI, KretStyle, KThemezob. rejestr / see registry (KRET_AI_KNOWLEDGE_BASE → LANGUAGE_REGISTRY.json)
Kret SDK1.0.0-rc.3+kret.local.3 (kandydat lokalny, niepodpisany)testy tej rundy / tested this round
Kret SDK (Core pinned)1.0.0-rc.3+kc-base-test610zgodny (to samo źródło + SFI-B01/T01)
KretStudio0.3.0-beta.2 + patch SFI (kopia testowa)Pack/test/run przez SDK; oryginał KretStudio (lokalna instalacja / local install) 0.2.0 ma SDK rc.2
Kret Engine / KretCore1.0.0-test.6.11-draft.1LAB_DEVELOPER (sensory PROVISIONAL, Production BLOCKED_BY_KCS)
compatibility w manifeściecore min 0.5.0 (0.5.0), api min 1.6ABI pluginów SDK 1.6
BytecodeKBC format 2—
SystemWindows 11 x64Linux/macOS: NOT_RUN
Otwórz cały rozdział ze źródłem →
02 — KretSystemDashboard

02 — KretSystemDashboard

PoleWartość
IdentyfikatorLOCAL-KPL-BASCDSH7 (lokalny, rodzina KPL)
Wersja1.2.0
TechnologieKretL, KretS (+ Kret.Hardware PROVISIONAL), KretUI, KretStyle, KTheme
Stan przykładuRUNNABLE_LOCAL (sensory: DENIED/UNAVAILABLE w SDK)
Stan w Kret Engine (Core)LAB_DEVELOPER (sensory PROVISIONAL, Production BLOCKED_BY_KCS)
Paczkapackage/LOCAL-KPL-BASCDSH7-1.2.0-dev.kpkg (dev, niepodpisana, ze źródłami)
PochodzenieKopia engine/Plugins/KretSystemDashboard/Source (Core 1.0.0-test.6.11-draft.1, gałąź feature/sdk-studio-final-integration). / Copy of the Core plugin source.

Cel

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.

Struktura

ŚcieżkaZawartość
src/projekt SDK w oficjalnym układzie (plugin.kretl w katalogu głównym projektu, Script/, Ui/, Tests/) — osobny folder manifest/ nie istnieje, bo SDK wymaga manifestu w katalogu projektu
tests/opis testów i surowe logi kroków (tests/logs/)
docs/architektura (Mermaid), pochodzenie źródeł
examples/polityka hosta testowego SDK (tylko lokalnie)
package/.kpkg + raport weryfikacji + SHA-256
screenshots/prawdziwe klatki renderera KretUI (kretui-host --self-test)
BUILD_INSTRUCTIONS.md, INSTALL_INSTRUCTIONS.mdpełny cykl: projekt → kod → check → build → test → pack → verify → KPM → instalacja Developer → start → aktualizacja → usunięcie
SECURITY_PERMISSIONS.md, COMPATIBILITY.mduprawnienia i zgodność wersji
TEST_RESULTS.jsonwyniki tej rundy (SDK; KPM w Core — jeśli wykonano)

Szybki start

kret check src --json
kret run src --policy examples/host-policy.json --data <nowy katalog> --invoke dashboard.readings --invoke dashboard.refresh=[41]
Czytanie kodu linia po linii

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

  1. kret check src --jsonOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  2. kret run src --policy examples/host-policy.json --data <nowy katalog> --invoke dashboard.readings --invoke dashboard.refresh=[41]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.

Status języka nie nadaje uprawnień KCS ani prawa do Production.

Otwórz cały rozdział ze źródłem →
SECURITY_PERMISSIONS — KretSystemDashboard

SECURITY_PERMISSIONS — KretSystemDashboard

Zadeklarowane uprawnienia / declared permissions (src/plugin.kretl)

permissions {
  required { }
  optional { system.ram.read
   system.cpu.read
   gpu.usage.read
   gpu.memory.read
   gpu.temperature.read
   storage.temperature.read
   hardware.temperature.read
   hardware.fans.read
   hardware.sensors.read }
 }
Czytanie kodu linia po linii

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

  1. permissions {Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  2. required { }Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  3. optional { system.ram.readPoczątek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  4. system.cpu.readOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  5. gpu.usage.readOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  6. gpu.memory.readOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  7. gpu.temperature.readOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  8. storage.temperature.readOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  9. hardware.temperature.readOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  10. hardware.fans.readOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  11. hardware.sensors.read }Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  12. }Zamknięcie struktury otwartej we wcześniejszych liniach.

Zasady / rules

  • Deklaracja ≠ przyznanie (KCS-PERM-3). Dostęp daje polityka hosta i KCS przy każdym wywołaniu (Security Broker). / Declaration is not a grant.
  • examples/host-policy.json to polityka hosta testowego SDK (allowProvisionalRisk tylko dla testów). Nigdy nie importuj jej do Core ani do danych użytkownika. / Test-host policy only; never import into Core.
  • Logika działa w osobnym procesie pluginu (Job Object, token ograniczony / AppContainer). Interfejs KretUI nie nadaje uprawnień i nie przechowuje sekretów. / Logic runs in a separate restricted process.
  • Status w Core / Core status: LAB_DEVELOPER (sensory PROVISIONAL, Production BLOCKED_BY_KCS). D-KCS-01 pozostaje OPEN; uprawnienia PROVISIONAL nie są aktywowane w Production. / Not activated in Production.
  • Paczka: kanał dev, niepodpisana, z źródłami; nie zawiera kluczy, haseł ani polityki hosta (kontrola sekretów KretPublish). / Dev channel, unsigned, no keys or secrets.
Otwórz cały rozdział ze źródłem →
KretSystemDashboard — architektura / architecture

KretSystemDashboard — architektura / architecture

komendyHost: kret run / KretStudio / Kret EngineHost: kret run / KretStudio / Kret EngineSecurity Broker (KCS przy każdym wywołaniu)Security Broker (KCS przy każdym wywołaniu)Proces pluginu (Job Object, AppContainer)Proces pluginu (Job Object, AppContainer)Maszyna KBC 2 + weryfikatorMaszyna KBC 2 + weryfikatorKretLKretLKretS (+ Kret.Hardware PROVISIONAL)KretS (+ Kret.Hardware PROVISIONAL)KretUIKretUIKretStyleKretStyleKThemeKThemesrc/plugin.kretlsrc/plugin.kretlkretui-host (renderer, osobny proces)kretui-host (renderer, osobny proces)
Statyczna architektura ze źródeł. Przerywane połączenia zachowują oryginalne ograniczenia i adnotacje. Kod nie jest wykonywany.
Opis tekstowy i źródło
  • Host: kret run / KretStudio / Kret Engine → Security Broker (KCS przy każdym wywołaniu)
  • Security Broker (KCS przy każdym wywołaniu) → Proces pluginu (Job Object, AppContainer)
  • Proces pluginu (Job Object, AppContainer) → Maszyna KBC 2 + weryfikator
  • src/plugin.kretl → Security Broker (KCS przy każdym wywołaniu)
  • kretui-host (renderer, osobny proces) → Security Broker (KCS przy każdym wywołaniu) · komendy
flowchart LR
  Host["Host: kret run / KretStudio / Kret Engine"] --> Broker["Security Broker (KCS przy każdym wywołaniu)"]
  Broker --> Proc["Proces pluginu (Job Object, AppContainer)"]
  Proc --> VM["Maszyna KBC 2 + weryfikator"]
  L0["KretL"]
  L1["KretS (+ Kret.Hardware PROVISIONAL)"]
  L2["KretUI"]
  L3["KretStyle"]
  L4["KTheme"]
  Manifest["src/plugin.kretl"] --> Broker
  UI["kretui-host (renderer, osobny proces)"] -->|komendy| Broker

Pochodzenie / provenance: Kopia engine/Plugins/KretSystemDashboard/Source (Core 1.0.0-test.6.11-draft.1, gałąź feature/sdk-studio-final-integration). / Copy of the Core plugin source.

Otwórz cały rozdział ze źródłem →
Architecture diagram

Architecture diagram

komendyHost: kret run / KretStudio / Kret EngineHost: kret run / KretStudio / Kret EngineSecurity Broker (KCS przy każdym wywołaniu)Security Broker (KCS przy każdym wywołaniu)Proces pluginu (Job Object, AppContainer)Proces pluginu (Job Object, AppContainer)Maszyna KBC 2 + weryfikatorMaszyna KBC 2 + weryfikatorKretLKretLKretS (+ Kret.Hardware PROVISIONAL)KretS (+ Kret.Hardware PROVISIONAL)KretUIKretUIKretStyleKretStyleKThemeKThemesrc/plugin.kretlsrc/plugin.kretlkretui-host (renderer, osobny proces)kretui-host (renderer, osobny proces)
Statyczna architektura ze źródeł. Przerywane połączenia zachowują oryginalne ograniczenia i adnotacje. Kod nie jest wykonywany.
Opis tekstowy i źródło
  • Host: kret run / KretStudio / Kret Engine → Security Broker (KCS przy każdym wywołaniu)
  • Security Broker (KCS przy każdym wywołaniu) → Proces pluginu (Job Object, AppContainer)
  • Proces pluginu (Job Object, AppContainer) → Maszyna KBC 2 + weryfikator
  • src/plugin.kretl → Security Broker (KCS przy każdym wywołaniu)
  • kretui-host (renderer, osobny proces) → Security Broker (KCS przy każdym wywołaniu) · komendy
flowchart LR
  Host["Host: kret run / KretStudio / Kret Engine"] --> Broker["Security Broker (KCS przy każdym wywołaniu)"]
  Broker --> Proc["Proces pluginu (Job Object, AppContainer)"]
  Proc --> VM["Maszyna KBC 2 + weryfikator"]
  L0["KretL"]
  L1["KretS (+ Kret.Hardware PROVISIONAL)"]
  L2["KretUI"]
  L3["KretStyle"]
  L4["KTheme"]
  Manifest["src/plugin.kretl"] --> Broker
  UI["kretui-host (renderer, osobny proces)"] -->|komendy| Broker
Otwórz cały rozdział ze źródłem →
Pochodzenie / provenance

Pochodzenie / provenance

Kopia engine/Plugins/KretSystemDashboard/Source (Core 1.0.0-test.6.11-draft.1, gałąź feature/sdk-studio-final-integration). / Copy of the Core plugin source.

Dokumentacja wygenerowana przez eksport KretLanguageDocumentation (2026-11-01). Wszystkie polecenia z BUILD_INSTRUCTIONS.md zostały wykonane; wyniki w TEST_RESULTS.json.

Otwórz cały rozdział ze źródłem →
KretSystemDashboard — karta przykładowego pluginu

KretSystemDashboard — karta przykładowego pluginu

Status RUNNABLE_LOCAL oznacza uruchomienie lokalne przez SDK — to nie jest PRODUCTION_READY. Paczka .kpkg nie jest dostępna do publicznego pobrania.

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.

PoleWartość
NazwaKretSystemDashboard (KretUI System Dashboard)
IDLOCAL-KPL-BASCDSH7
Wersja1.2.0
Zastosowanie / uwagiZależny od uprawnień sensorów (opcjonalne, PROVISIONAL). Instalacja i start w profilu Developer bez przyznanych sensorów; w Production zablokowany przez KCS.
Technologie KretKretL, KretS, KretUI, KretStyle, KTheme
WymaganiaSDK 1.0.0-rc.3+kret.local.3; Kret Engine 1.0.0-test.6.11-draft.1 (profil Developer); Windows 11 x64; .NET 10
Uprawnienia wymaganebrak
Uprawnienia opcjonalnesystem.ram.read, system.cpu.read, gpu.usage.read, gpu.memory.read, gpu.temperature.read, storage.temperature.read, hardware.temperature.read, hardware.fans.read, hardware.sensors.read
Status w SDKRUNNABLE_LOCAL
Status w CoreLAB_DEVELOPER (sensory PROVISIONAL, Production BLOCKED_BY_KCS)
Kod źródłowysrc/
BudowanieBUILD_INSTRUCTIONS.md
Instalacjatylko profil Developer (instrukcja wewnętrzna)
Zrzutyscreenshots/ui-dark.png, screenshots/ui-default.png
Testyeksport 8/8 PASS; ponownie 2026-11-01: PASS
Publiczne pobieranie.kpkg: NIEDOSTĘPNE; źródła: kandydat po zgodzie właściciela
Otwórz cały rozdział ze źródłem →

Ćwiczenie i sprawdzenie wiedzy

Przygotuj listę dowodów i blokad przed testem Core lub publikacją.

Szkic nie jest wysyłany na serwer i znika po opuszczeniu lekcji. Przed wyjściem możesz go skopiować.
Podpowiedzi
  • Najpierw wskaż plik, potem deklarację i jej użycie; porównaj z referencją źródłową poniżej.
Omówienie rozwiązania

Odpowiedź oprzyj na pokazanym kodzie i rozdziale źródłowym. Odczytaj zgodność, wymagane uprawnienia i status produkcyjny z karty, zanim przygotujesz paczkę dev ze źródłami. Nie zmieniaj root of trust ani uprawnień hosta na potrzeby ćwiczenia. Publikacja pozostaje osobnym zatwierdzanym procesem.

Które podsumowanie jest zgodne z lekcją?

To quiz o opisanym kontrakcie. Nie kompiluje kodu, nie potwierdza wykonania programu i nie przyznaje nagród.

Podsumowanie i następny krok

Odczytaj zgodność, wymagane uprawnienia i status produkcyjny z karty, zanim przygotujesz paczkę dev ze źródłami. Nie zmieniaj root of trust ani uprawnień hosta na potrzeby ćwiczenia. Publikacja pozostaje osobnym zatwierdzanym procesem.

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