Machinevertaling, niet beoordeeld door een moedertaalspreker. Engels is de referentie.

API's en integratiesBewerken op GitHubBron: ide/jetbrains/README.md

Kshana voor JetBrains-IDE's

Install: Kshana — PNT simulator op de JetBrains Marketplace — of, in elke JetBrains-IDE, Settings → Plugins → Marketplace → search "Kshana".

Een native plug-in die de PNT-veerkrachtsimulator Kshana uitvoert vanuit elke JetBrains-IDE (IntelliJ IDEA, CLion, RustRover, PyCharm, …). Klik met de rechtermuisknop op een scenario .toml → Run Kshana Scenario; de kwaliteitsmaten en het resultaat-JSON stromen naar het toolvenster Kshana.

Vult de MCP-server aan (die JetBrains AI Assistant toegang tot Kshana geeft): deze plug-in is het menselijke pad met aanwijzen en klikken.

Wat het doet#

  • Actie Run Kshana Scenario op elke .toml (contextmenu's van editor en projectweergave) — voert kshana <file> uit en toont de uitvoer in het toolvenster Kshana.
  • Assess Receiver Trust op een scenario receiver-trust .toml (kshana receiver-trust): de vertrouwenstijdlijn, met een score van 0-100 en redenen voor een vaartuig. Adviserende software, geen typegoedgekeurde navigatieapparatuur (IEC 61108, IEC 61162): de gezagvoerder of exploitant blijft verantwoordelijk voor de navigatie van het vaartuig.
  • Generate Training NMEA op een nmea-scenario .toml (kshana nmea-scenario): synthetische brug-NMEA en een instructeurslog, naast het scenario geschreven. Alleen tekst; voor training, nooit voor de live navigatiesystemen van een vaartuig.
  • Build Interference Map op een ADS-B- of AIS-.csv (projectweergave; vraagt om welke toegestane dataset het gaat) en Route Exposure op een routebestand (vraagt om de map met kaarten). Een gedegradeerde cel geeft interferentie niet aan als oorzaak; geen voorspelling.
  • Export Test-Bench Files op een scenario .toml (kshana bench-export): voertuigbeweging, NMEA en gelabelde gebeurtenissen voor een GNSS-simulator in het laboratorium, naast het scenario geschreven. Het schrijft geen signaal; gebruik een simulator alleen waar dat is toegestaan.
  • Build Compliance Report op een runresultaat .json (kshana compliance-report) en Tools → Show Compliance Mapping (kshana compliance-report --mapping): de koppeling met het openbare kader, getoond met de eigen verklaring van de engine woord voor woord.
  • Verify Evidence Pack op een map met een bewijspakket (projectweergave; kshana evidence verify): vraagt om de publieke sleutel van de ondertekenaar (64 hexadecimale cijfers of een bestand .pub; altijd vastgepind, de plug-in accepteert nooit een niet-vastgepinde ondertekenaar) en optioneel om het volledige sessielogboek. Alleen een geverifieerd resultaat leest als geverifieerd; een intact pakket met een niet-vastgepinde ondertekenaar leest "NOT VERIFIED".
  • Render Trust Telemetry op een resultaat receiver-trust .json (kshana trust-telemetry --result): Prometheus-tekst, CEF/LEEF-syslog-gebeurtenissen of Home Assistant MQTT-regels, afgedrukt in het venster van Kshana. Er wordt niets verzonden of aangeboden; de draaiende exporters blijven op de opdrachtregel.
  • Fit Sensor Parameters from IMU Log op een stilstaande IMU .csv (kshana imu-fit): de accelerometer- en gyroparameters van de scenario's hybrid en fusion, gefit met Allan-deviatie, afgedrukt in het venster van Kshana als een tabel [accel_classical]. Er wordt niets geschreven; de fit is MODELLED.
  • Validate Scenario (kshana --validate), List Scenario Kinds (menu Tools; kshana kinds) en Assess Receiver Stream (een vaartuigsessie .toml plus een opgeslagen NMEA-log die u kiest; kshana receiver-trust live --file, eenmaal gescoord zonder socket en zonder gate).
  • Insert Example Scenario (map in de projectweergave of menu Tools; kshana example): kies een meegeleverd scenario en het wordt als nieuw .toml geschreven (nooit over een bestand heen). Export Scenario op een .toml (SP3, OMM, OEM, CZML, KML, GeoJSON, STK, SigMF; alleen gesimuleerde uitvoer), Animate Scenario (HTML of SVG, geopend in de browser) en Import Route op een route .geojson (vraagt om welk scenario).
  • Create Evidence Pack op een sessie .toml voor ontvangervertrouwen (kshana receiver-trust evidence): vraagt om het venster, een sleutelbestand voor ondertekening dat u al hebt, en de uitvoermap. De plug-in maakt, leest of bewaart nooit een sleutel (kshana evidence keygen blijft op de opdrachtregel). Attach Timestamp op een pakketmap (kshana evidence attach-timestamp): Kshana controleert de handtekening van de tijdstempelautoriteit niet; voer zelf openssl ts -verify uit.
  • Nog steeds alleen op de opdrachtregel: de IQ-opdrachten, evidence keygen en receiver-trust live.
  • Een toolvenster Kshana onderaan dat de runconsole bevat.
  • Niet in de plug-in: kshana receiver-trust live (een langlopend streamproces met een gate en een optionele TCP-listener) en kshana trust-telemetry blijven op de opdrachtregel, omdat een IDE-actie een opdracht tot het einde uitvoert en zijn uitvoer toont; zie docs/MARITIME-TRUST.md.
  • Settings → Tools → Kshana om naar het binaire bestand kshana te wijzen (leeg → opgelost via PATH; installeren met cargo install kshana).

De plug-in is puur platform (geen taalspecifieke afhankelijkheden), dus hij laadt in elke JetBrains-IDE op build 243 (2024,3) en nieuwer.

Bouwen en uitvoeren#

Vereist JDK 17+ (de build pint JDK 21) en de meegeleverde Gradle-wrapper.

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 controleert standaard de since-build, 2024,3. Om andere lijnen te controleren, noemt u ze als TYPE:VERSION (elke IDE is een download van ongeveer 1 GB):

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

De plug-in gebruikt op geen van die lijnen een verouderde of voor verwijdering geplande platform-API; houd dat zo (een keuzedialoog loopt via KshanaChooser, niet via Messages.showChooseDialog).

Installeer de gebouwde zip via Settings → Plugins → ⚙ → Install Plugin from Disk….

Indeling#

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

Isolatie#

Net als mcp/ en xval/ is dit een zelfstandig Gradle-project, uitgesloten van de gepubliceerde crate kshana (/ide in het pakket exclude); de buildoutput staat in gitignore.

Licentie: AGPL-3.0-only (of een commerciële licentie van Ashforde OÜ — zie LICENSING.md van de repository).