Kshana pro IDE JetBrains
Install: Kshana — PNT simulator na JetBrains Marketplace — nebo v kterémkoli IDE JetBrains Settings → Plugins → Marketplace → vyhledejte „Kshana“.
Nativní zásuvný modul, který spouští simulátor odolnosti PNT Kshana uvnitř kteréhokoli IDE JetBrains (IntelliJ IDEA, CLion, RustRover, PyCharm, …). Klikněte pravým tlačítkem na scénář .toml → Run Kshana Scenario; ukazatele kvality a výsledek JSON se průběžně zobrazují v okně nástroje Kshana.
Doplňuje server MCP (který dává AI Assistant od JetBrains přístup ke Kshaně): tento zásuvný modul je cesta pro člověka, klikáním.
Co dělá#
- Akce Run Kshana Scenario na libovolném
.toml(kontextové nabídky editoru a zobrazení projektu) — spustíkshana <file>a zobrazí výstup v okně nástroje Kshana. - Assess Receiver Trust na scénáři
receiver-trust.toml(kshana receiver-trust): časová osa důvěry se skóre 0–100 a důvody pro plavidlo. Software pouze poradního charakteru, nikoli typově schválené navigační zařízení (IEC 61108, IEC 61162): za navigaci plavidla zůstává odpovědný provozovatel. - Generate Training NMEA na
nmea-scenario.toml(kshana nmea-scenario): syntetické mostové NMEA a záznam instruktora, zapsané vedle scénáře. Pouze text; pro výcvik, nikdy pro živé navigační systémy plavidla. - Build Interference Map na ADS-B nebo AIS
.csv(zobrazení projektu; zeptá se, o který schválený dataset jde) a Route Exposure na souboru trasy (zeptá se na složku s mapami). Zhoršená buňka neidentifikuje interferenci jako příčinu; není to předpověď. - Export Test-Bench Files na scénáři
.toml(kshana bench-export): pohyb vozidla, NMEA a označené události pro laboratorní simulátor GNSS, zapsané vedle scénáře. Nezapisuje žádný signál; simulátor provozujte jen tam, kde je to povoleno. - Build Compliance Report na výsledku běhu
.json(kshana compliance-report) a Tools → Show Compliance Mapping (kshana compliance-report --mapping): mapování na veřejný rámec, zobrazené s vlastním prohlášením enginu doslova. - Verify Evidence Pack na složce balíčku důkazů (zobrazení projektu;
kshana evidence verify): zeptá se na veřejný klíč podepisujícího (64 hexadecimálních číslic nebo soubor.pub; vždy zafixovaný, zásuvný modul nikdy nepřijme nezafixovaného podepisujícího) a volitelně na úplný záznam relace. Jako ověřený se zobrazí jen ověřený výsledek; neporušený balíček s nezafixovaným podepisujícím se zobrazí jako „NOT VERIFIED“. - Render Trust Telemetry na výsledku
receiver-trust.json(kshana trust-telemetry --result): text pro Prometheus, události syslog CEF/LEEF nebo řádky MQTT pro Home Assistant vypsané do okna Kshana. Nic se neodesílá ani neposkytuje; běžící exportéry zůstávají na příkazovém řádku. - Fit Sensor Parameters from IMU Log na stacionárním IMU
.csv(kshana imu-fit): parametry akcelerometru a gyroskopu scénářůhybridafusionprokládané podle Allanovy odchylky, vypsané do okna Kshana jako tabulka[accel_classical]. Nic se nezapisuje; proložení je MODELLED. - Validate Scenario (
kshana --validate), List Scenario Kinds (nabídka Tools;kshana kinds) a Assess Receiver Stream (relace plavidla.tomlplus uložený záznam NMEA, který zvolíte;kshana receiver-trust live --file, hodnoceno jednou bez soketu a bez brány). - Insert Example Scenario (složka v zobrazení projektu nebo nabídka Tools;
kshana example): vyberte přibalený scénář a zapíše se jako nový.toml(nikdy přes existující soubor). Export Scenario na.toml(SP3, OMM, OEM, CZML, KML, GeoJSON, STK, SigMF; pouze simulovaný výstup), Animate Scenario (HTML nebo SVG, otevřené v prohlížeči) a Import Route na trase.geojson(zeptá se, do kterého scénáře). - Create Evidence Pack na relaci důvěry v přijímač
.toml(kshana receiver-trust evidence): zeptá se na okno, soubor podpisového klíče, který už máte, a výstupní složku. Zásuvný modul klíč nikdy nevytváří, nečte ani neukládá (kshana evidence keygenzůstává na příkazovém řádku). Attach Timestamp na složce balíčku (kshana evidence attach-timestamp): Kshana nekontroluje podpis autority časových razítek; spusťte siopenssl ts -verifysami. - Stále jen na příkazovém řádku: příkazy IQ,
evidence keygenareceiver-trust live. - Spodní okno nástroje Kshana hostující konzoli běhu.
- Není v zásuvném modulu:
kshana receiver-trust live(dlouho běžící proces proudu s bránou a volitelným posluchačem TCP) akshana trust-telemetryzůstávají na příkazovém řádku, protože akce IDE spustí příkaz do konce a zobrazí jeho výstup; vizdocs/MARITIME-TRUST.md. - Settings → Tools → Kshana pro nasměrování na binárku
kshana(prázdné → najde se vPATH; instalace pomocícargo install kshana).
Zásuvný modul je čistě platformní (bez závislostí na konkrétním jazyku), takže se načte v každém IDE JetBrains od sestavení 243 (2024,3) výše.
Sestavení a spuštění#
Vyžaduje JDK 17+ (sestavení zafixuje JDK 21) a přibalený wrapper 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 ve výchozím nastavení kontroluje since-build 2024,3. Chcete-li zkontrolovat další řady, uveďte je jako TYPE:VERSION (každé IDE je stažení o velikosti asi 1 GB):
KSHANA_VERIFY_IDES="IC:2024.3,IC:2025.2,IU:2026.2.3,IU:263.6259.32" ./gradlew verifyPlugin
Zásuvný modul na žádném z nich nepoužívá zastaralé API platformy ani API určené k odstranění; ať to tak zůstane (dialog volby jde přes KshanaChooser, ne přes Messages.showChooseDialog).
Sestavený zip nainstalujte přes Settings → Plugins → ⚙ → Install Plugin from Disk….
Rozvržení#
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
Izolace#
Stejně jako mcp/ a xval/ jde o samostatný projekt Gradle, vyloučený z publikovaného balíčku kshana (/ide v exclude balíčku); jeho výstup sestavení je v gitignore.
Licence: AGPL-3.0-only (nebo komerční licence od Ashforde OÜ — viz LICENSING.md v repozitáři).