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 — KretMultiLanguage

BUILD_INSTRUCTIONS — KretMultiLanguage

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 / createSzablony SDK core-plugin (KretL+KretM+KretS+KretDB) i library (KretLib) połączone w eksporcie + widok KretUI. / SDK templates core-plugin and library combined + a KretUI view. Nowy projekt od zera / from scratch: kret new basic <katalog> --name KretMultiLanguage
2Kod / codesrc/plugin.kretl, src/Script/**.krs, src/Disk/Schema.kdb, src/Ui/*
3Sprawdzenie / checkkret check src --json
3aBiblioteki / librarieskret lib restore src
4Buildkret build src → src/Build/plugin.kbc, manifest.json
5Testy / tests— (brak modułów Tests/ / no Tests/ modules)
5aUruchomienie lokalne / local runkret run src --policy examples/host-policy.json --data <nowy katalog> --invoke orders.summary
6Paczka / packkret publish pack src --channel dev --include-sources -o package → package/LOCAL-KPL-MLTLNG27-1.0.0-dev.kpkg
7Weryfikacja / verifykret publish verify package/LOCAL-KPL-MLTLNG27-1.0.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 — KretMultiLanguage

COMPATIBILITY — KretMultiLanguage

Składnik / ComponentWersja / VersionStan / State
KretLkretl-1.0, manifestVersion "1.0"FROZEN_1_0
Języki / languagesKretL, KretM, KretS, KretDB, KretLib, KretUIzob. 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.1BLOCKED_KCS_D_KCS_01 (logs.own.write, kretdb.*)
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 →
07 — KretMultiLanguage

07 — KretMultiLanguage

PoleWartość
IdentyfikatorLOCAL-KPL-MLTLNG27 (lokalny, rodzina KPL)
Wersja1.0.0
TechnologieKretL, KretM, KretS, KretDB, KretLib, KretUI
Stan przykładuRUNNABLE_LOCAL
Stan w Kret Engine (Core)**BLOCKED_KCS_D_KCS_01 (logs.own.write, kretdb.*)**
Paczkapackage/LOCAL-KPL-MLTLNG27-1.0.0-dev.kpkg (dev, niepodpisana, ze źródłami)
PochodzenieSzablony SDK core-plugin (KretL+KretM+KretS+KretDB) i library (KretLib) połączone w eksporcie + widok KretUI. / SDK templates core-plugin and library combined + a KretUI view.

Cel

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.

Struktura

ŚcieżkaZawartość
src/projekt SDK w oficjalnym układzie (plugin.kretl w katalogu głównym projektu, Script/, Disk/, Ui/, ) — 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 orders.summary
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 orders.summaryOdczytaj 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 — KretMultiLanguage

SECURITY_PERMISSIONS — KretMultiLanguage

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

permissions {
        required {
            logs.own.write
            kretdb.open
            kretdb.read
            kretdb.write
        }
    }
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. logs.own.writeOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  4. kretdb.openOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  5. kretdb.readOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  6. kretdb.writeOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  7. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  8. }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: **BLOCKED_KCS_D_KCS_01 (logs.own.write, kretdb.*)**. 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.

Znane ograniczenie / known limitation (EXP-F02)

kretui-host --self-test (SDK 1.0.0-rc.3+kret.local.3) kompiluje projekt bez bibliotek KretLib z Libs/ i zgłasza KCS-KRS-1003: nieznana nazwa MathX. kret check/build/run/pack dołączają biblioteki poprawnie. Podgląd Ui/Summary.kretui dla projektu z KretLib jest więc NOT_RUN do poprawki SDK. / kretui-host compiles without KretLib libraries; UI preview of KretLib projects is NOT_RUN until an SDK fix.

Otwórz cały rozdział ze źródłem →
KretMultiLanguage — architektura / architecture

KretMultiLanguage — 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 + weryfikatorKretLKretLKretMKretMKretSKretSKretDBKretDBKretLibKretLibKretUIKretUIsrc/plugin.kretlsrc/plugin.kretlkretui-host (renderer, osobny proces)kretui-host (renderer, osobny proces)KretDB: baza pluginu należy do brokeraKretDB: baza pluginu należy do brokera
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
  • Security Broker (KCS przy każdym wywołaniu) → KretDB: baza pluginu należy do brokera
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["KretM"]
  L2["KretS"]
  L3["KretDB"]
  L4["KretLib"]
  L5["KretUI"]
  Manifest["src/plugin.kretl"] --> Broker
  UI["kretui-host (renderer, osobny proces)"] -->|komendy| Broker
  Broker --> DB[("KretDB: baza pluginu należy do brokera")]

Pochodzenie / provenance: Szablony SDK core-plugin (KretL+KretM+KretS+KretDB) i library (KretLib) połączone w eksporcie + widok KretUI. / SDK templates core-plugin and library combined + a KretUI view.

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 + weryfikatorKretLKretLKretMKretMKretSKretSKretDBKretDBKretLibKretLibKretUIKretUIsrc/plugin.kretlsrc/plugin.kretlkretui-host (renderer, osobny proces)kretui-host (renderer, osobny proces)KretDB: baza pluginu należy do brokeraKretDB: baza pluginu należy do brokera
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
  • Security Broker (KCS przy każdym wywołaniu) → KretDB: baza pluginu należy do brokera
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["KretM"]
  L2["KretS"]
  L3["KretDB"]
  L4["KretLib"]
  L5["KretUI"]
  Manifest["src/plugin.kretl"] --> Broker
  UI["kretui-host (renderer, osobny proces)"] -->|komendy| Broker
  Broker --> DB[("KretDB: baza pluginu należy do brokera")]
Otwórz cały rozdział ze źródłem →
Pochodzenie / provenance

Pochodzenie / provenance

Szablony SDK core-plugin (KretL+KretM+KretS+KretDB) i library (KretLib) połączone w eksporcie + widok KretUI. / SDK templates core-plugin and library combined + a KretUI view.

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 →
KretMultiLanguage — karta przykładowego pluginu

KretMultiLanguage — 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.

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.

PoleWartość
NazwaKretMultiLanguage (KretMultiLanguage)
IDLOCAL-KPL-MLTLNG27
Wersja1.0.0
Zastosowanie / uwagiŁączy KretL, KretM, KretS, KretDB, KretLib i KretUI; w Core zablokowany przez D-KCS-01 (logs.own.write, kretdb.*). Znane ograniczenia SDK: EXP-F01, EXP-F02.
Technologie KretKretL, KretM, KretS, KretDB, KretLib, KretUI
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 wymaganelogs.own.write, kretdb.open, kretdb.read, kretdb.write
Uprawnienia opcjonalnebrak
Status w SDKRUNNABLE_LOCAL
Status w CoreBLOCKED_KCS_D_KCS_01 (logs.own.write, kretdb.*)
Kod źródłowysrc/
BudowanieBUILD_INSTRUCTIONS.md
Instalacjatylko profil Developer (instrukcja wewnętrzna)
Zrzutybrak
Testyeksport 7/7 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