Katalog ten zawiera w pełni interaktywną, przeglądarkową aplikację demonstracyjną, która w graficzny sposób wizualizuje działanie silnika Intract!
- Edytor kodu live: Możesz na żywo edytować kod źródłowy (Python, JavaScript, HTML).
- Szybki podgląd formatów: Posiada zakładki z kodem źródłowym, płaskim plikiem manifestu
.toonoraz plikiemintract.toon.yaml. - Symulator Intract Engine: Analizuje kod na bieżąco i wyłapuje naruszenia (np. operacje wejścia/wyjścia mimo zakazu
forbid:write, wywołania sieciowe mimoforbid:network, brak elementów autoryzacyjnych na przyciskach DOM w HTML). - Interaktywna konsola logów: Wizualizuje statyczną analizę kodu i drzewa AST w czasie rzeczywistym.
- Statusy walidacji (PASS/VIOLATION): Pokazuje dokładnie gdzie i dlaczego kod narusza zasady intencji dewelopera.
Możesz w prosty sposób uruchomić serwer HTTP w tym katalogu, korzystając z Pythona:
# Uruchomienie lokalnego serwera na porcie 8086
python3 -m http.server 8086 --directory examples/showcasePo uruchomieniu serwera, otwórz przeglądarkę i wejdź na adres: 👉 http://localhost:8086
- Problem: Kontrakt
pure-additionzabrania zapisu na dysk (forbid:write), ale w kodzie kalkulatora funkcjaadd()próbuje pisać logi do pliku tekstowegolog.txt. - Jak naprawić? Usuń/zakomentuj linie 5 i 6 w edytorze kodu źródłowego kalkulatora i kliknij Uruchom Walidację. Status kontraktu natychmiast zmieni się na zielony PASS!
- Problem: Kontrakt
dom-button-checkwymaga, aby krytyczny przycisk dodawania środków (btn-add) posiadał atrybut lub klasę autoryzacji (auth). - Jak naprawić? Dodaj klasę
auth-requireddo przycisku dodawania środków w edytorze kodu (linia 7:<button id="btn-add" class="auth-required">) i kliknij Uruchom Walidację!
- Problem: Funkcja logowania
login()deklaruje kontraktforbid:network, ale w celach diagnostycznych wywołuje zapytanie HTTP za pomocą obiektuXMLHttpRequest. - Jak naprawić? Usuń wywołanie
XMLHttpRequestz kodu źródłowego i kliknij Uruchom Walidację!