Tłumaczenie maszynowe, niezweryfikowane przez osobę, dla której polski jest językiem ojczystym. Wzorcem jest wersja angielska.

API i integracjeEdytuj na GitHubieŹródło: ide/jetbrains/README.md

Kshana dla IDE JetBrains

Install: Kshana — PNT simulator w JetBrains Marketplace lub, w dowolnym IDE JetBrains, Settings → Plugins → Marketplace → search "Kshana".

Natywna wtyczka uruchamiająca symulator odporności PNT Kshana z wnętrza dowolnego IDE JetBrains (IntelliJ IDEA, CLion, RustRover, PyCharm, …). Kliknij prawym przyciskiem scenariusz .toml → Run Kshana Scenario; wskaźniki jakości i wynikowy JSON są strumieniowane do okna narzędzi Kshana.

Uzupełnia serwer MCP (który daje AI Assistant JetBrains dostęp do Kshana): ta wtyczka to ścieżka dla człowieka, metodą wskaż i kliknij.

Co robi#

  • Akcja Run Kshana Scenario na dowolnym .toml (menu kontekstowe edytora i widoku projektu): uruchamia kshana <file> i pokazuje wynik w oknie narzędzi Kshana.
  • Assess Receiver Trust na scenariuszu receiver-trust .toml (kshana receiver-trust): oś czasu zaufania, z wynikiem 0-100 i powodami dla statku. Oprogramowanie wyłącznie doradcze, nie jest to sprzęt nawigacyjny z zatwierdzeniem typu (IEC 61108, IEC 61162): za nawigację statku odpowiada nadal operator.
  • Generate Training NMEA na nmea-scenario .toml (kshana nmea-scenario): syntetyczne NMEA mostka i dziennik instruktora, zapisane obok scenariusza. Tylko tekst; do szkolenia, nigdy do działających systemów nawigacyjnych statku.
  • Build Interference Map na ADS-B lub AIS .csv (widok projektu; pyta, który to zatwierdzony zbiór danych) oraz Route Exposure na pliku trasy (pyta o folder map). Komórka z pogorszeniem nie wskazuje zakłóceń jako przyczyny; to nie jest prognoza.
  • Export Test-Bench Files na scenariuszu .toml (kshana bench-export): ruch pojazdu, NMEA i opisane zdarzenia dla laboratoryjnego symulatora GNSS, zapisane obok scenariusza. Nie zapisuje żadnego sygnału; symulator uruchamiaj tylko tam, gdzie jest to dozwolone.
  • Build Compliance Report na wyniku przebiegu .json (kshana compliance-report) oraz Tools → Show Compliance Mapping (kshana compliance-report --mapping): odwzorowanie na publiczne ramy, pokazane ze stwierdzeniem silnika słowo w słowo.
  • Verify Evidence Pack na folderze pakietu dowodowego (widok projektu; kshana evidence verify): pyta o klucz publiczny podpisującego (64 cyfr szesnastkowych lub plik .pub; zawsze przypięty, wtyczka nigdy nie przyjmuje nieprzypiętego podpisującego) i opcjonalnie o pełny dziennik sesji. Tylko wynik zweryfikowany jest przedstawiany jako zweryfikowany; nienaruszony pakiet z nieprzypiętym podpisującym jest przedstawiany jako „NOT VERIFIED”.
  • Render Trust Telemetry na wyniku receiver-trust .json (kshana trust-telemetry --result): tekst Prometheus, zdarzenia syslog CEF/LEEF lub linie MQTT Home Assistant drukowane w oknie Kshana. Nic nie jest wysyłane ani udostępniane; działające eksportery pozostają w wierszu poleceń.
  • Fit Sensor Parameters from IMU Log na nieruchomym IMU .csv (kshana imu-fit): parametry akcelerometru i żyroskopu scenariuszy hybrid i fusion dopasowane odchyleniem Allana, drukowane w oknie Kshana jako tabela [accel_classical]. Nic nie jest zapisywane; dopasowanie ma status MODELLED.
  • Validate Scenario (kshana --validate), List Scenario Kinds (menu Tools; kshana kinds) i Assess Receiver Stream (sesja statku .toml plus wybrany zapisany log NMEA; kshana receiver-trust live --file, oceniane jednorazowo, bez gniazda i bez bramki).
  • Insert Example Scenario (folder widoku projektu lub menu Tools; kshana example): wybierz dołączony scenariusz, a zostanie zapisany jako nowy .toml (nigdy nad istniejącym plikiem). Export Scenario na .toml (SP3, OMM, OEM, CZML, KML, GeoJSON, STK, SigMF; tylko wynik symulowany), Animate Scenario (HTML lub SVG, otwierane w przeglądarce) i Import Route na trasie .geojson (pyta, który scenariusz).
  • Create Evidence Pack na sesji zaufania do odbiornika .toml (kshana receiver-trust evidence): pyta o okno, plik klucza podpisu, który już masz, i folder wyjściowy. Wtyczka nigdy nie tworzy, nie czyta ani nie przechowuje klucza (kshana evidence keygen pozostaje w wierszu poleceń). Attach Timestamp na folderze pakietu (kshana evidence attach-timestamp): Kshana nie sprawdza podpisu urzędu znacznika czasu; uruchom openssl ts -verify samodzielnie.
  • Nadal tylko w wierszu poleceń: polecenia IQ, evidence keygen i receiver-trust live.
  • Dolne okno narzędzi Kshana z konsolą przebiegów.
  • Nie ma ich we wtyczce: kshana receiver-trust live (długo działający proces strumieniowy z bramką i opcjonalnym nasłuchiwaczem TCP) i kshana trust-telemetry pozostają w wierszu poleceń, ponieważ akcja IDE uruchamia polecenie do końca i pokazuje jego wynik; zob. docs/MARITIME-TRUST.md.
  • Settings → Tools → Kshana, aby wskazać plik binarny kshana (puste: rozwiązywany z PATH; instalacja przez cargo install kshana).

Wtyczka jest czysto platformowa (bez zależności od konkretnych języków), więc ładuje się w każdym IDE JetBrains w wersji kompilacji 243 (2024,3) i nowszej.

Budowanie i uruchamianie#

Wymaga JDK 17+ (kompilacja przypina JDK 21) oraz dołączonego wrappera Gradle.

cd ide/jetbrains
./gradlew test          # unit tests (pure CLI helpers)
./gradlew buildPlugin    # assembles build/distributions/kshana-jetbrains-<version>.zip
./gradlew runIde         # launches a sandbox IDE with the plugin loaded
./gradlew verifyPlugin   # JetBrains plugin-verifier compatibility check (downloads IDEs)

verifyPlugin domyślnie sprawdza since-build, 2024,3. Aby sprawdzić inne linie, podaj je jako TYPE:VERSION (każde IDE to pobranie około 1 GB):

KSHANA_VERIFY_IDES="IC:2024.3,IC:2025.2,IU:2026.2.3,IU:263.6259.32" ./gradlew verifyPlugin

Wtyczka nie używa na żadnym z nich przestarzałego ani przeznaczonego do usunięcia API platformy; tak ma pozostać (okno wyboru przechodzi przez KshanaChooser, a nie przez Messages.showChooseDialog).

Zainstaluj zbudowany plik zip przez Settings → Plugins → ⚙ → Install Plugin from Disk….

Układ#

build.gradle.kts / settings.gradle.kts / gradle.properties   build config (IntelliJ Platform Gradle Plugin 2.x)
src/main/kotlin/dev/kshana/ide/
  KshanaCli.kt            pure binary-resolution + command helpers (unit-tested)
  KshanaSettings.kt       persisted binary-path setting (app service)
  KshanaConsole.kt        per-project output console (project service)
  KshanaToolWindowFactory.kt   the "Kshana" tool window
  RunScenarioAction.kt    the Run-scenario action
  KshanaRunner.kt         runs one command in the background into the tool window
  MarineActions.kt        receiver trust, training NMEA, interference map, route exposure
  KshanaConfigurable.kt   Settings → Tools → Kshana
src/main/resources/META-INF/plugin.xml   plugin descriptor
src/test/kotlin/.../KshanaCliTest.kt      unit tests

Izolacja#

Podobnie jak mcp/ i xval/, jest to samodzielny projekt Gradle, wyłączony z opublikowanego crate kshana (/ide w pakiecie exclude); jego wynik budowania jest ignorowany przez git.

Licencja: AGPL-3.0-only (lub licencja komercyjna od Ashforde OÜ; zob. LICENSING.md w repozytorium).