Kshana JetBrains-IDE-ympäristöille
Install: Kshana — PNT simulator JetBrains Marketplacessa — tai missä tahansa JetBrains-IDE:ssä Settings → Plugins → Marketplace → search "Kshana".
Natiivi liitännäinen, joka ajaa Kshana-PNT-kestävyyssimulaattoria minkä tahansa JetBrains-IDE:n (IntelliJ IDEA, CLion, RustRover, PyCharm, …) sisältä. Napsauta skenaariota .toml hiiren kakkospainikkeella → Run Kshana Scenario; laatumittarit ja tulos-JSON virtaavat Kshana-työkaluikkunaan.
Täydentää MCP-palvelinta (joka antaa JetBrains AI Assistantille pääsyn Kshanaan): tämä liitännäinen on ihmisen osoita ja napsauta -reitti.
Mitä se tekee#
- Toiminto Run Kshana Scenario millä tahansa kohteella
.toml(editorin ja projektinäkymän kontekstivalikot) — ajaa komennonkshana <file>ja näyttää tulosteen Kshana-työkaluikkunassa. - Assess Receiver Trust skenaariolla
receiver-trust.toml(kshana receiver-trust): luottamusaikajana, jossa on 0–100 pistemäärä ja syyt aluksesta. Ohjeellinen ohjelmisto, ei tyyppihyväksytty navigointilaite (IEC 61108, IEC 61162): käyttäjä vastaa edelleen aluksen navigoinnista. - Generate Training NMEA kohteella
nmea-scenario.toml(kshana nmea-scenario): synteettinen siltaympäristön NMEA ja ohjaajan loki kirjoitettuna skenaarion viereen. Vain tekstiä; harjoitukseen, ei koskaan aluksen todellisiin navigointijärjestelmiin. - Build Interference Map ADS-B- tai AIS-tiedostolla
.csv(projektinäkymä; kysyy, mikä hyväksytty aineisto se on) ja Route Exposure reittitiedostolla (kysyy karttojen kansion). Heikentynyt solu ei tunnista häiriötä syyksi; ei ole ennuste. - Export Test-Bench Files skenaariolla
.toml(kshana bench-export): ajoneuvon liike, NMEA ja nimetyt tapahtumat laboratorion GNSS-simulaattoria varten, kirjoitettuna skenaarion viereen. Se ei kirjoita signaalia; aja simulaattoria vain siellä, missä se on sallittu. - Build Compliance Report ajotuloksella
.json(kshana compliance-report) ja Tools → Show Compliance Mapping (kshana compliance-report --mapping): julkisen viitekehyksen vastaavuuskuvaus, näytettynä moottorin oman lausuman kanssa sanasta sanaan. - Verify Evidence Pack todistepaketin kansiolla (projektinäkymä;
kshana evidence verify): kysyy allekirjoittajan julkisen avaimen (64 heksadesimaalinumeroa tai tiedosto.pub; aina kiinnitetty, liitännäinen ei koskaan hyväksy kiinnittämätöntä allekirjoittajaa) ja valinnaisesti koko istuntolokin. Vain varmennettu tulos luetaan varmennetuksi; ehjä paketti kiinnittämättömällä allekirjoittajalla luetaan ”NOT VERIFIED”. - Render Trust Telemetry tuloksella
receiver-trust.json(kshana trust-telemetry --result): Prometheus-teksti, CEF/LEEF-syslog-tapahtumat tai Home Assistant MQTT -rivit tulostettuna Kshana-ikkunaan. Mitään ei lähetetä eikä tarjoilla; käynnissä olevat viejät pysyvät komentorivillä. - Fit Sensor Parameters from IMU Log paikallaan olevalla IMU-tiedostolla
.csv(kshana imu-fit): skenaarioidenhybridjafusionkiihtyvyysmittarin ja gyron parametrit sovitettuna Allanin poikkeamalla, tulostettuna Kshana-ikkunaan taulukkona[accel_classical]. Mitään ei kirjoiteta; sovitus on MODELLED. - Validate Scenario (
kshana --validate), List Scenario Kinds (Tools-valikko;kshana kinds) ja Assess Receiver Stream (alusistunto.tomlsekä valitsemasi tallennettu NMEA-loki;kshana receiver-trust live --file, pisteytetty kerran ilman pistoketta ja ilman porttia). - Insert Example Scenario (projektinäkymän kansio tai Tools-valikko;
kshana example): valitse mukana toimitettu skenaario, ja se kirjoitetaan uutena tiedostona.toml(ei koskaan tiedoston päälle). Export Scenario tiedostolla.toml(SP3, OMM, OEM, CZML, KML, GeoJSON, STK, SigMF; vain simuloitu tuloste), Animate Scenario (HTML tai SVG, avataan selaimessa) ja Import Route reittitiedostolla.geojson(kysyy, mikä skenaario). - Create Evidence Pack vastaanottimen luottamuksen istunnolla
.toml(kshana receiver-trust evidence): kysyy ikkunan, jo olemassa olevan allekirjoitusavaintiedoston ja tulostekansion. Liitännäinen ei koskaan luo, lue eikä tallenna avainta (kshana evidence keygenpysyy komentorivillä). Attach Timestamp pakettikansiolla (kshana evidence attach-timestamp): Kshana ei tarkista aikaleimapalvelun allekirjoitusta; ajaopenssl ts -verifyitse. - Edelleen vain komentorivillä: IQ-komennot,
evidence keygenjareceiver-trust live. - Alareunan Kshana-työkaluikkuna, joka isännöi ajokonsolia.
- Ei liitännäisessä:
kshana receiver-trust live(pitkään käynnissä oleva virtaprosessi, jossa on portti ja valinnainen TCP-kuuntelija) jakshana trust-telemetrypysyvät komentorivillä, koska IDE-toiminto ajaa komennon loppuun ja näyttää sen tulosteen; katsodocs/MARITIME-TRUST.md. - Settings → Tools → Kshana osoittamaan binäärin
kshana(tyhjä → ratkaistaan muuttujastaPATH; asenna komennollacargo install kshana).
Liitännäinen on puhtaasti alustapohjainen (ei kielikohtaisia riippuvuuksia), joten se latautuu jokaiseen JetBrains-IDE:hen, jonka koonti on 243 (2024,3) tai uudempi.
Rakenna ja aja#
Vaatii JDK 17+ (koonti kiinnittää JDK-version 21) ja mukana toimitetun Gradle-wrapperin.
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 tarkistaa oletuksena since-buildin 2024,3. Muiden linjojen tarkistamiseksi luettele ne muodossa TYPE:VERSION (jokainen IDE on noin 1 GB:n lataus):
KSHANA_VERIFY_IDES="IC:2024.3,IC:2025.2,IU:2026.2.3,IU:263.6259.32" ./gradlew verifyPlugin
Liitännäinen ei käytä yhdelläkään näistä vanhentunutta eikä poistettavaksi merkittyä alustan rajapintaa; pidä se sellaisena (valintaikkuna kulkee kohteen KshanaChooser kautta, ei kohteen Messages.showChooseDialog).
Asenna rakennettu zip valinnalla Settings → Plugins → ⚙ → Install Plugin from Disk….
Rakenne#
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
Eristys#
Kuten mcp/ ja xval/, tämä on erillinen Gradle-projekti, joka on jätetty pois julkaistusta crate-paketista kshana (/ide paketin kohdassa exclude); sen koontituloste on git ohittaa sen (gitignore).
Lisenssi: AGPL-3.0-only (tai kaupallinen lisenssi Ashforde OÜ:ltä — katso repositorion LICENSING.md).