Kshana for JetBrains IDE-er
Install: Kshana — PNT simulator på JetBrains Marketplace, eller, i en hvilken som helst JetBrains IDE, Settings → Plugins → Marketplace → søk etter «Kshana».
Et native programtillegg som kjører Kshana-simulatoren for PNT-robusthet fra innsiden av en hvilken som helst JetBrains IDE (IntelliJ IDEA, CLion, RustRover, PyCharm, …). Høyreklikk et scenario .toml → Run Kshana Scenario; kvalitetsmålene og resultat-JSON strømmer inn i verktøyvinduet Kshana.
Utfyller MCP-serveren (som gir JetBrains AI Assistant tilgang til Kshana): dette programtillegget er den menneskelige pek-og-klikk-veien.
Hva den gjør#
- Handlingen Run Kshana Scenario på en hvilken som helst
.toml(kontekstmenyene i editor og prosjektvisning): kjørerkshana <file>og viser utdataene i verktøyvinduet Kshana. - Assess Receiver Trust på et
receiver-trust-scenario.toml(kshana receiver-trust): tillitstidslinjen, med en score fra 0 til 100 og begrunnelser for et fartøy. Veiledende programvare, ikke typegodkjent navigasjonsutstyr (IEC 61108, IEC 61162): operatøren er fortsatt ansvarlig for fartøyets navigasjon. - Generate Training NMEA på et
nmea-scenario.toml(kshana nmea-scenario): syntetisk bro-NMEA og en instruktørlogg, skrevet ved siden av scenarioet. Bare tekst; til trening, aldri for et fartøys live navigasjonssystemer. - Build Interference Map på en ADS-B- eller AIS-
.csv(prosjektvisning; spør hvilket klarert datasett det er) og Route Exposure på en rutefil (spør etter mappen med kart). En degradert celle identifiserer ikke interferens som årsak; ikke en prognose. - Export Test-Bench Files på et scenario
.toml(kshana bench-export): kjøretøybevegelse, NMEA og merkede hendelser for en GNSS-simulator i laboratorium, skrevet ved siden av scenarioet. Den skriver intet signal; kjør en simulator bare der det er tillatt. - Build Compliance Report på et kjøringsresultat
.json(kshana compliance-report) og Tools → Show Compliance Mapping (kshana compliance-report --mapping): kartleggingen mot offentlige rammeverk, vist med motorens egen erklæring ord for ord. - Verify Evidence Pack på en mappe med bevispakke (prosjektvisning;
kshana evidence verify): spør etter signerens offentlige nøkkel (64 heksadesimale sifre eller en.pub-fil; alltid festet, programtillegget godtar aldri en signer som ikke er festet) og eventuelt hele øktloggen. Bare et verifisert resultat leses som verifisert; en intakt pakke med en signer som ikke er festet leses «NOT VERIFIED». - Render Trust Telemetry på et
receiver-trust-resultat.json(kshana trust-telemetry --result): Prometheus-tekst, CEF/LEEF-syslog-hendelser eller Home Assistant MQTT-linjer skrevet ut i Kshana-vinduet. Ingenting sendes eller serveres; de kjørende eksportørene blir på kommandolinjen. - Fit Sensor Parameters from IMU Log på en stasjonær IMU-
.csv(kshana imu-fit): akselerometer- og gyroparametrene i scenarioenehybridogfusiontilpasset med Allan-deviasjon, skrevet ut i Kshana-vinduet som en[accel_classical]-tabell. Ingenting skrives; tilpasningen er MODELLED. - Validate Scenario (
kshana --validate), List Scenario Kinds (Tools-menyen;kshana kinds) og Assess Receiver Stream (en fartøyøkt.tomlpluss en lagret NMEA-logg du velger;kshana receiver-trust live --file, poengsatt én gang uten socket og uten gate). - Insert Example Scenario (mappe i prosjektvisning eller Tools-menyen;
kshana example): velg et medfølgende scenario, så skrives det som en ny.toml(aldri over en eksisterende fil). Export Scenario på en.toml(SP3, OMM, OEM, CZML, KML, GeoJSON, STK, SigMF; bare simulerte utdata), Animate Scenario (HTML eller SVG, åpnet i nettleseren) og Import Route på en rute-.geojson(spør hvilket scenario). - Create Evidence Pack på en økt for mottakertillit
.toml(kshana receiver-trust evidence): spør etter vinduet, en signeringsnøkkelfil du allerede har, og utdatamappen. Programtillegget lager, leser eller lagrer aldri en nøkkel (kshana evidence keygenblir på kommandolinjen). Attach Timestamp på en pakkemappe (kshana evidence attach-timestamp): Kshana kontrollerer ikke signaturen til tidsstempelautoriteten; kjøropenssl ts -verifyselv. - Fortsatt bare på kommandolinjen: IQ-kommandoene,
evidence keygenogreceiver-trust live. - Et Kshana-verktøyvindu nederst som rommer kjørekonsollen.
- Ikke i programtillegget:
kshana receiver-trust live(en langvarig strømprosess med en gate og en valgfri TCP-lytter) ogkshana trust-telemetryblir på kommandolinjen, fordi en IDE-handling kjører en kommando til den er ferdig og viser utdataene; sedocs/MARITIME-TRUST.md. - Settings → Tools → Kshana for å peke på binærfilen
kshana(tom → løses fraPATH; installer medcargo install kshana).
Programtillegget er rent plattformbasert (ingen språkspesifikke avhengigheter), så det lastes i alle JetBrains IDE-er fra build 243 (2024,3) og nyere.
Bygg og kjør#
Krever JDK 17+ (bygget fester JDK 21) og den medfølgende Gradle-wrapperen.
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 kontrollerer som standard since-build, 2024,3. For å kontrollere andre linjer, list dem som TYPE:VERSION (hver IDE er en nedlasting på omtrent 1 GB):
KSHANA_VERIFY_IDES="IC:2024.3,IC:2025.2,IU:2026.2.3,IU:263.6259.32" ./gradlew verifyPlugin
Programtillegget bruker ingen utfasede plattform-API-er, eller API-er som er planlagt fjernet, på noen av disse; hold det slik (en valgdialog går gjennom KshanaChooser, ikke Messages.showChooseDialog).
Installer den bygde zip-filen via Settings → Plugins → ⚙ → Install Plugin from Disk….
Oppbygning#
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
Isolasjon#
Som mcp/ og xval/ er dette et selvstendig Gradle-prosjekt, utelatt fra den publiserte kshana-cratet (/ide i pakken exclude); byggeutdataene er gitignorert.
Lisens: AGPL-3.0-only (eller en kommersiell lisens fra Ashforde OÜ, se repositoriets LICENSING.md).