Kshana för JetBrains IDE:er
Install: Kshana — PNT simulator på JetBrains Marketplace — eller, i valfri JetBrains IDE, Settings → Plugins → Marketplace → sök efter "Kshana".
Ett inbyggt tillägg som kör PNT-resilienssimulatorn Kshana inifrån valfri JetBrains IDE (IntelliJ IDEA, CLion, RustRover, PyCharm, …). Högerklicka på ett scenario .toml → Run Kshana Scenario; kvalitetsmåtten och resultat-JSON strömmar in i verktygsfönstret Kshana.
Kompletterar MCP-servern (som ger JetBrains AI Assistant åtkomst till Kshana): det här tillägget är den mänskliga peka-och-klicka-vägen.
Vad den gör#
- Åtgärden Run Kshana Scenario på valfri
.toml(snabbmenyer i editor och projektvy) — körkshana <file>och visar utdata i verktygsfönstret Kshana. - Assess Receiver Trust på ett
receiver-trust-scenario.toml(kshana receiver-trust): förtroendetidslinjen, med en poäng på 0-100 och skäl för ett fartyg. Rådgivande programvara, inte typgodkänd navigationsutrustning (IEC 61108, IEC 61162): operatören är fortsatt ansvarig för fartygets navigering. - Generate Training NMEA på ett
nmea-scenario.toml(kshana nmea-scenario): syntetisk brygg-NMEA och en instruktörslogg, skrivna bredvid scenariot. Endast text; för utbildning, aldrig för ett fartygs levande navigationssystem. - Build Interference Map på en ADS-B- eller AIS-
.csv(projektvy; frågar vilken av de tillåtna datamängderna det är) och Route Exposure på en ruttfil (frågar efter mappen med kartor). En degraderad cell identifierar inte störning som orsak; inte en prognos. - Export Test-Bench Files på ett scenario
.toml(kshana bench-export): fordonsrörelse, NMEA och märkta händelser för en GNSS-simulator i laboratorium, skrivna bredvid scenariot. Den skriver ingen signal; kör en simulator bara där det är tillåtet. - Build Compliance Report på ett körningsresultat
.json(kshana compliance-report) och Tools → Show Compliance Mapping (kshana compliance-report --mapping): kopplingen till det offentliga ramverket, visad med motorns egen formulering ordagrant. - Verify Evidence Pack på en mapp med bevispaket (projektvy;
kshana evidence verify): frågar efter signerarens publika nyckel (64 hexadecimala siffror eller en.pub-fil; alltid fastlåst, tillägget godtar aldrig en signerare som inte är fastlåst) och eventuellt hela sessionsloggen. Bara ett verifierat resultat visas som verifierat; ett intakt paket med en signerare som inte är fastlåst visas som "NOT VERIFIED". - Render Trust Telemetry på ett
receiver-trust-resultat.json(kshana trust-telemetry --result): Prometheus-text, CEF/LEEF-syslog-händelser eller Home Assistant MQTT-rader som skrivs ut i Kshana-fönstret. Inget skickas eller serveras; de exportörer som körs finns kvar på kommandoraden. - Fit Sensor Parameters from IMU Log på en stillastående IMU
.csv(kshana imu-fit): accelerometerns och gyrots parametrar för scenariernahybridochfusionanpassade med Allan-deviation, utskrivna i Kshana-fönstret som en[accel_classical]-tabell. Inget skrivs; anpassningen är MODELLED. - Validate Scenario (
kshana --validate), List Scenario Kinds (menyn Tools;kshana kinds) och Assess Receiver Stream (en fartygssession.tomlplus en lagrad NMEA-logg som du väljer;kshana receiver-trust live --file, poängsatt en gång utan socket och utan spärr). - Insert Example Scenario (mapp i projektvyn eller menyn Tools;
kshana example): välj ett medföljande scenario så skrivs det som en ny.toml(aldrig över en fil). Export Scenario på en.toml(SP3, OMM, OEM, CZML, KML, GeoJSON, STK, SigMF; endast simulerade utdata), Animate Scenario (HTML eller SVG, öppnas i webbläsaren) och Import Route på en rutt.geojson(frågar vilket scenario). - Create Evidence Pack på en receiver-trust-session
.toml(kshana receiver-trust evidence): frågar efter fönstret, en signeringsnyckelfil som du redan har och utdatamappen. Tillägget skapar, läser eller lagrar aldrig en nyckel (kshana evidence keygenfinns kvar på kommandoraden). Attach Timestamp på en paketmapp (kshana evidence attach-timestamp): Kshana kontrollerar inte tidsstämplingsmyndighetens signatur; köropenssl ts -verifysjälv. - Finns fortfarande bara på kommandoraden: IQ-kommandona,
evidence keygenochreceiver-trust live. - Ett verktygsfönster Kshana längst ned som rymmer körkonsolen.
- Finns inte i tillägget:
kshana receiver-trust live(en långkörande strömprocess med en spärr och en valfri TCP-lyssnare) ochkshana trust-telemetryfinns kvar på kommandoraden, eftersom en IDE-åtgärd kör ett kommando till slut och visar dess utdata; sedocs/MARITIME-TRUST.md. - Settings → Tools → Kshana för att peka ut binärfilen
kshana(tomt → hittas viaPATH; installera medcargo install kshana).
Tillägget är rent plattformsbaserat (inga språkspecifika beroenden), så det laddas i varje JetBrains IDE med bygge 243 (2024,3) och nyare.
Bygg och kör#
Kräver JDK 17+ (bygget fäster JDK 21) och den medföljande Gradle-wrappern.
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 kontrollerar since-build, 2024,3, som standard. För att kontrollera andra versioner, lista dem som TYPE:VERSION (varje IDE är en nedladdning på cirka 1 GB):
KSHANA_VERIFY_IDES="IC:2024.3,IC:2025.2,IU:2026.2.3,IU:263.6259.32" ./gradlew verifyPlugin
Tillägget använder inget föråldrat plattforms-API eller något som är schemalagt för borttagning i någon av dem; behåll det så (en valdialog går via KshanaChooser, inte Messages.showChooseDialog).
Installera det byggda zip-arkivet via Settings → Plugins → ⚙ → Install Plugin from Disk….
Layout#
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
Isolering#
Liksom mcp/ och xval/ är det här ett fristående Gradle-projekt, undantaget från den publicerade craten kshana (/ide i paketets exclude); dess byggutdata ignoreras av git.
Licens: AGPL-3.0-only (eller en kommersiell licens från Ashforde OÜ — se förvarets LICENSING.md).