Машинный перевод, не проверенный носителем языка. Эталоном служит английская версия.

API и интеграцииПравить на GitHubИсточник: docs/SURFACES.md

Где доступна каждая возможность

Каждая возможность доступна на тех поверхностях, где это имеет смысл; если поверхность не может нести возможность, в ячейке указано N/A и причина. За каждой поверхностью работает один и тот же движок: точки входа Python, WebAssembly и MCP для возможностей 0,35 — тонкие обёртки над kshana::surface, который вызывает код, выполняемый командной строкой.

Фрагмент, называющий сторонних ИИ-клиентов, здесь опущен; он есть в docs/SURFACES.md на GitHub.

Возможность CLI Rust Python WASM MCP Плагин JetBrains Блокнот Studio
Доверие к приёмнику судна, пакетный журнал (оценка 0–100, причины) receiver-trust receiver_trust::assess::assess_vessel_log receiver_trust, assess_vessel_log receiver_trust, assess_vessel_log assess_receiver_log, assess_vessel_log /kshana-assess-receiver, навык vessel-receiver-trust Assess Receiver Trust vessel-trust-and-training Страница морского доверия
Доверие к приёмнику на ограниченном фрагменте потока (оценки, состояния, причины; без шлюза) receiver-trust live receiver_trust::assess::assess_stream_excerpt receiver_trust_replay receiver_trust_replay assess_vessel_stream так же Assess Receiver Stream (сохранённый журнал) vessel-trust-and-training Страница морского доверия
Геометрия спутников и классы выводов (0,36: geometry good/degraded/unknown с причинами и DOP, label good/fair/poor, сообщаемый всегда, монитор geometry (ничего, пока геометрия не плоха, затем до 15 точек; перечисляется последним в monitors_run, если он принял решение, поэтому число мониторов в вердикте включает геометрию), class для каждого вывода, geometry_model, geometry_summary) receiver-trust, receiver-trust live (в JSON-результате и в каждой строке JSON; CSV, SVG, однострочный вердикт и $PKSHT несут вывод по геометрии, как любой другой, и в остальном не изменились) receiver_trust::geometry, в EpochTrust, Deduction и EpochReport receiver_trust, assess_vessel_log, receiver_trust_replay (в возвращаемых словарях) те же три (в возвращаемом JSON) assess_receiver_log, assess_vessel_log, assess_vessel_stream (в ответе; ответ по журналу судна сохраняет geometry_model и geometry_summary); trust_telemetry отображает его так же, навыки vessel-receiver-trust, trust-telemetry действия выше печатают вывод CLI, который его содержит vessel-trust-and-training (в загружаемом им результате) ожидается: страница морского доверия его пока не показывает (поля перечислены в docs/MARITIME-TRUST.md, пункт 6 представления Studio)
receiver-trust live как работающий процесс (stdin, отслеживаемый файл, TCP, UDP, --gate, --listen) receiver-trust live receiver_trust::live::LiveEngine N/A N/A N/A N/A N/A N/A Инструменты: карточка командной строки (команда для запуска; браузер не является процессом на пути данных)
Пакет доказательств: создание (подписанный, окно журнала; 0,38: необязательный lab-attestation, заявление оператора о лабораторной установке, записываемое в подписанный манифест и никогда не проверяемое) receiver-trust evidence (--lab-attestation <file.toml>) evidence::create_bundle, evidence::create_bundle_attested, surface::evidence_create, surface::evidence_create_attested evidence_create (lab_attestation) N/A (ключ подписи) create_evidence_pack (lab_attestation_toml) /kshana-evidence-pack, навык evidence-pack Create Evidence Pack (поля аттестации в диалоге в 0,38 нет: ожидается; командная строка принимает его) vessel-trust-and-training N/A (ключ подписи не место для страницы); Инструменты: карточка командной строки
Jammertest как арбитр (0,38): опубликованный каталог NPRA и план передач читаются как запланированная истина (import), журнал приёмника оценивается по нему для каждого испытания (score: задержка обнаружения, пропуски, ложные тревоги, время восстановления; MODELLED) jammertest import, jammertest score jammertest::plan, jammertest::score, surface::jammertest_import_json, surface::jammertest_score_json jammertest_import, jammertest_score jammertest_import, jammertest_score jammertest_import, jammertest_score /kshana-jammertest, навык jammertest N/A (нужны файлы плана и журнал на диске; запускайте из терминала) N/A (блокнота пока нет) ожидается: карточка Инструментов для командной строки (полоса и представления Studio относятся к WS-A)
Подписанный пакет оценки Jammertest (jammertest score --key: пакет доказательств доверия к приёмнику с оценочной карточкой и расписанием внутри config.json) jammertest score --key <keyfile> --out <dir> jammertest::score_pack N/A (ключ подписи) N/A (ключ подписи) N/A (ключ подписи: используйте create_evidence_pack для окна или командную строку) N/A N/A N/A N/A (ключ подписи не место для страницы); Инструменты: карточка командной строки
Самоотчёт приёмника (0,38): UBX-NAV-STATUS spoofDetState и UBX-SEC-SIG читаются в self_report на каждой эпохе, а сравнение receiver_self_report (оба / только приёмник / только Kshana / ни один) — в результате; не поднимает тревогу и не меняет оценку receiver-trust (в JSON-результате; jammertest score) receiver_trust::ReceiverSelfReport, monitors::SelfReportEpoch, monitors::SelfReportSummary receiver_trust, assess_receiver_log (в возвращаемых словарях) receiver_trust (в возвращаемом JSON) assess_receiver_log (в ответе) /kshana-assess-receiver действия выше печатают вывод CLI, который его содержит N/A ожидается: полоса на странице доверия (WS-A; поле — epochs[].self_report)
Формат журнала Septentrio SBF (0,38, только чтение: PVTGeodetic, MeasEpoch, RFStatus) receiver-trust с [log] format = "sbf" receiver_trust::ingest::read_sbf, LogFormat::Sbf receiver_trust, assess_receiver_log (format = "sbf", журнал как base64) так же assess_receiver_log (base64) /kshana-assess-receiver действия выше N/A N/A (загрузка двоичных журналов на странице доверия в 0,38 не предлагается)
receiver-trust live --serial <device> [--baud n]: последовательный или USB-канал NMEA, только чтение (устройство открывается для чтения, в приёмник ничего не записывается; --configure отклоняется) receiver-trust live --serial N/A (устройство и процесс) N/A N/A N/A N/A N/A N/A Инструменты: карточка командной строки (команда для запуска; браузер не является процессом на пути данных)
Пакет доказательств: создание (подписанный, окно журнала) receiver-trust evidence evidence::create_bundle, surface::evidence_create evidence_create N/A (ключ подписи) create_evidence_pack /kshana-evidence-pack, навык evidence-pack Create Evidence Pack vessel-trust-and-training N/A (ключ подписи не место для страницы); Инструменты: карточка командной строки
Лабораторный пакет кругового прогона (сценарий, условия испытания, журнал приёмника и оценка, связанные хешем) evidence round-trip evidence::build_round_trip_pack, surface::evidence_round_trip evidence_round_trip N/A (ключ подписи) create_round_trip_pack /kshana-evidence-pack N/A (действия JetBrains привязаны к одному выбранному файлу; пакету нужны сценарий, условия, журнал и ключ: запустите его из терминала IDE) N/A (ключ подписи не место для страницы); Инструменты: карточка командной строки
Пакет доказательств: проверка evidence verify evidence::verify_bundle evidence_verify evidence_verify verify_evidence_pack так же Проверить пакет доказательств (только закреплённый ключ) vessel-trust-and-training Инструменты: пакеты доказательств (проверка, прикрепление метки времени)
Телеметрия доверия (Prometheus, syslog CEF/LEEF, OTLP; 0,38: format = "mqtt", обнаружение Home Assistant и строки состояния; --mqtt-tcp публикует из командной строки) trust-telemetry telemetry trust_telemetry trust_telemetry (вывод текста; без сокета) trust_telemetry /kshana-trust-telemetry, навык trust-telemetry Сформировать телеметрию доверия (сохранённый результат) vessel-trust-and-training Инструменты: карточка телеметрии (вкладка «Командная строка»; только форматы, без сокетов)
Входные данные машин и датчиков (0,38): форматы receiver-trust — rtklib-pos, novatel, gnss-sdr, а также [log.imu] (csv, euroc) receiver-trust (сценарий [log] format) receiver_trust::machines receiver_trust, assess_receiver_log (встроенный текст) receiver_trust (встроенный текст) assess_receiver_log (встроенный текст или base64; path отклоняется) /kshana-assess-receiver Assess Receiver Trust vessel-trust-and-training N/A (страница доверия в Studio читает перечисленные в ней форматы; новые форматы появятся при её следующем переносе)
Журнал IMU в параметры гибридного датчика и датчика слияния (таблица [accel_classical] по стационарному журналу, аппроксимация по Аллану) imu-fit surface::imu_fit, receiver_trust::machines::imu_fit imu_fit imu_fit fit_imu_log /kshana-fit-imu N/A (действия IDE пока нет) N/A N/A (редактор сценариев Studio принимает вставленную таблицу)
узел ROS 2, ретранслятор UDP для GNSS-SDR, trust-telemetry --mqtt-tcp (integrations/ros2, integrations/gnss-sdr) процессы N/A N/A N/A N/A N/A N/A N/A N/A (долгоживущие процессы и сокеты; текстовые формы: trust_telemetry с mqtt)
Проверка Galileo OSNMA страниц I/NAV или потока UBX (docs/OSNMA.md) osnma verify osnma::cli::verify_report, surface::osnma_verify osnma_verify osnma_verify N/A (длинный необработанный поток приёмника подходит для командной строки и Python; инструмент для агента добавил бы обширную поверхность ввода без пользы) N/A (команды плагина выполняются через сервер MCP, у которого нет инструмента OSNMA по причине, указанной в ячейке MCP; выполните kshana osnma verify) N/A (результат ничего не значит без доверенного корня Меркла или открытого ключа, полученного из ICD другим путём, а для свежести — независимого эталонного времени; действию из контекстного меню некуда их взять, а непривязанное значение по умолчанию выглядело бы как проверка; выполните kshana osnma verify) N/A (на входе поток, на выходе отчёт JSON; ноутбука нет) Инструменты: OSNMA
Учебный NMEA с журналом инструктора nmea-scenario nmea_synth::generate_from_toml nmea_training nmea_training generate_training_nmea /kshana-training-scenario, навык training-nmea-scenario Сформировать учебный NMEA vessel-trust-and-training Страница разбора тренировки
Учебный NMEA, передаваемый потоком на адрес TCP или UDP nmea-scenario --tcp/--udp nmea_synth::stream N/A N/A N/A N/A N/A N/A Инструменты: карточка «Командная строка» (потоки на адрес)
Карта помех (ADS-B, AIS) interference-map adsb|ais interference_map::api interference_map interference_map build_interference_map /kshana-interference-map, навык interference-map-route-exposure Построить карту помех interference-map-route-exposure Страница карты помех
Область излучателя (ADS-B, AIS; MODELLED) interference-map locate interference_map::api::emitter_regions_from_adsb_csv, emitter_regions_from_readsb_traces, emitter_regions_from_ais_csv interference_emitter_regions interference_emitter_regions N/A (пока не поддерживается; покрывают поверхности Rust, Python и WASM) N/A N/A N/A (публикация областей излучателей в открытой обсерватории — отдельное решение владельца и отключена)
Подверженность маршрута route-exposure interference_map::api::route_exposure route_exposure route_exposure route_exposure так же Экспозиция маршрута interference-map-route-exposure Страница карты помех
Плагин Signal K и канал шлюза OpenCPN (docs/MARINE-INTEGRATIONS.md) integrations/, receiver-trust live --gate --listen N/A (процессы) N/A N/A N/A только инструкция: /kshana-marine-integrations, навык marine-integrations N/A N/A Инструменты: карточка «Командная строка» (инструкция; развёртывание)
Экспорт для испытательного стенда (CSV движения, NMEA, путевые точки и события для лабораторного симулятора) bench-export interop::testbench::export_with_notes, surface::bench_export bench_export bench_export export_test_bench /kshana-bench-export, навык test-bench-export Экспортировать файлы для испытательного стенда compliance-and-test-bench Инструменты: экспорт для испытательного стенда
Сопоставление compliance по прогонам (какие строки публичных рамочных документов подкрепляются доказательствами прогонов) compliance-report compliance::assess_texts, surface::compliance_report compliance_report compliance_report compliance_report /kshana-compliance-report, навык compliance-mapping Построить отчёт compliance compliance-and-test-bench Инструменты: сопоставление compliance
Таблицы сопоставления compliance и источники compliance-report --mapping, --sources compliance::mapping, surface::compliance_mapping compliance_mapping compliance_mapping compliance_mapping так же Показать сопоставление compliance N/A Инструменты: сопоставление compliance
Пакеты стандартов (оцениваемые наборы сценариев с порогами, заданными до прогона: тестовые профили DHS RPCF, IMO MSC.1/Circ.1575, ICAO Doc 9849, приложение F) standards-pack standards_pack, surface::standards_pack_list, surface::standards_pack_run standards_pack_list, standards_pack_run standards_pack_list, standards_pack_run list_standards_packs, run_standards_pack /kshana-standards-pack N/A (действия JetBrains привязаны к выбранному файлу; пакеты встроены и файла не требуют: выполните kshana standards-pack из терминала IDE) N/A (карточки Studio «Инструменты» для пакетов относятся к направлению работ Studio; вывод командной строки или любой другой поверхности подаётся в карточку сопоставления compliance)
Проверка заявки партнёра с данными (формат и метаданные заявки с измеренными данными, kshana.partner-submission/1; ничего не оценивает) partner check partner::check_file, partner::check N/A (проверка читает локальные файлы и их SHA-256; API Rust — поверхность библиотеки, а CLI — инструмент) N/A (в сборке для браузера нет файловой системы) N/A (MCP по замыслу отказывает файловым источникам (только встроенный текст)) N/A (слеш-команды вызывают инструменты MCP, а этой проверке нужны файлы на диске) N/A (действия JetBrains привязаны к одному выбранному файлу; заявка — это папка) N/A (блокнота пока нет) N/A (у Studio нет доступа к файловой системе; запустите команду)
LunaNet Augmented Forward Signal: коды, SB1/CRC/перемежитель и проверка по LSIS-AFS V1.0 (docs/LUNANET-AFS.md) lunanet-afs-check; сигналы lunanet-afs-i, lunanet-afs-q в iq scene/acquire/track/sweep iq::signals::lunanet, iq::lunanet_afs, surface::lunanet_afs_check_spec, lunanet_afs_check_symbols, lunanet_afs_generate lunanet_afs_check_spec, lunanet_afs_check_symbols, lunanet_afs_generate; iq_scene и т. д. с двумя именами сигналов lunanet_afs_check_spec, lunanet_afs_check_symbols, lunanet_afs_generate; iq_scene и т. д. через короткие прогоны в памяти lunanet_afs_check /kshana-lunanet-afs-check N/A (действия JetBrains привязаны к выбранному файлу; выполните kshana lunanet-afs-check из терминала IDE) N/A (карточка Studio относится к направлению работ Studio; командная строка и все остальные поверхности её обеспечивают)
Геометрия неба под линией горизонта: видимые и маскированные спутники, DOP, ковариация ENU, эллипс ошибок (docs/SKYLINE.md) sky geometry::sky_geometry, surface::sky_geometry sky_geometry sky_geometry sky_geometry /kshana-run (указывает на инструмент) N/A (интерактивный скайплот — это представление в браузере; числа даёт kshana sky) notebooks/geometry.ipynb — (представление «Геометрия» в Studio добавляется отдельно в 0,36)
Облако Монте-Карло по небу (ошибки наименьших квадратов с начальным значением, СКЗ, охват 95 %) sky --monte-carlo <n> --seed <s> geometry::sky_monte_carlo sky_monte_carlo sky_monte_carlo N/A (массовые выборки, которые агенту следует обобщать, а не переносить) N/A (нет инструмента MCP) N/A (как выше) N/A — (как выше)
Пресеты и профили линии горизонта (docs/SKYLINE.md) skyline --preset <name>, --presets, --profile <file> geometry::skyline_presets, geometry::skyline_profile skyline_presets, skyline_profile skyline_presets, skyline_profile sky_geometry (skyline_preset) так же N/A (как выше) N/A — (как выше)
Скайплот в формате SVG sky --svg geometry::skyplot_svg skyplot_svg skyplot_svg N/A (агент считывает числа из sky_geometry) N/A N/A (как выше) N/A — (как выше)
Раздел линии горизонта в сценарии ([skyline]: орбита и целостность с user_site, gnss-sim, jamming, leo-pvt, leo-pass, nmea-scenario) файл сценария skyline::SkylineCfg run, nmea_training run, nmea_training run_scenario, generate_training_nmea /kshana-run Запустить сценарий Kshana N/A —
Оптическая линия передачи времени через атмосферу: доступность по площадкам, разнесение площадок, методы улучшения, связь между перерывом и holdover (вид сценария optical-atmosphere; docs/OPTICAL-ATMOSPHERE.md; MODELLED, ILLUSTRATIVE площадки, консультативный характер) kshana scenarios/optical-atmosphere-network.toml, scenarios/optical-atmosphere-techniques.toml optical_atmosphere, optical_weather, optical_sitediv, optical_techniques, optical_outage_holdover run, run_typed run run_scenario /kshana-run Запустить сценарий Kshana optical-atmosphere ожидается: представления в Studio пока нет; сценарий запускается в средстве запуска сценариев Studio и на карточке «Командная строка» страницы «Инструменты»
Испытание holdover, оцениваемое по записи ошибки времени, предоставленной оператором: базовый уровень, GNSS, отключённый оператором, holdover, восстановление, измерение по маскам ITU-T (вид сценария holdover-test; docs/TIMING-HIL.md; MODELLED, консультативный характер; Kshana ничего не передаёт и ничем не управляет) kshana scenarios/holdover-test-example.toml, scenarios/holdover-test-ptp4l.toml holdover_test, telecom_timing run, run_typed run (встроенный samples или clock_log.text; ключи файлов отклоняются) run_scenario (только встроенный текст) /kshana-run Запустить сценарий Kshana N/A (в 0,38 ноутбука нет; примеры сценариев запускаются в любом ноутбуке через run) ожидается: представления в Studio пока нет; сценарий запускается в средстве запуска сценариев Studio и на карточке «Командная строка» страницы «Инструменты»
Бюджет ошибок навигации и времени цепочки фаз миссии от запуска до входа в атмосферу: восемь видов фаз, правила передачи, преобразования систем отсчёта и шкал времени, наложение наземной сети, запас относительно заданных требований и самое слабое звено (вид сценария mission-thread; docs/MISSION-THREAD.md; MODELLED, входные данные ILLUSTRATIVE, консультативного характера; только общедоступные источники, без одобрения) kshana scenarios/mission-thread-artemis-class.toml (из рабочей копии: читает закоммиченный фрагмент ядра Луны) mission_thread run, run_typed run (moon_kernel_path — ключ файла, и он отклоняется; без ядра Луна задаётся аналитическим рядом, и строка преобразования говорит об этом) run_scenario (только встроенный текст; ключ ядра отклоняется) /kshana-run Запустить сценарий Kshana N/A (ноутбука нет; пример запускается в любом ноутбуке через run из рабочей копии) ожидается: представления в Studio пока нет; сценарий запускается в средстве запуска сценариев Studio и на карточке «Командная строка» страницы «Инструменты»
GNSS за пределами орбитальной группировки: доступность сигналов GPS, GLONASS, Galileo, BDS, QZSS и NavIC для пользователя на оболочке или на траектории от LEO до лунного перелёта (буклет, параметрическая или измеренная диаграмма передачи, среда лимбового луча, конструкция приёмника слабого сигнала), бортовой EKF GNSS для аппаратов на высоких орбитах и при лунном перелёте, а также относительная навигация построения (вид сценария gnss-ssv; docs/SSV.md; MODELLED, консультативный характер; сопоставлено с буклетом ICG SSV по предварительной регистрации, xval/gnss-ssv/RESULTS.md) kshana scenarios/gnss-ssv-shell.toml, gnss-ssv-heo.toml, gnss-ssv-lunar-weak.toml, gnss-ssv-nav-lunar.toml, gnss-ssv-formation-heo.toml ssv run, run_typed run (встроенный текст; transmit.pattern_text несёт измеренную диаграмму во встроенном виде) run_scenario (только встроенный текст; transmit.pattern_csv отклоняется) /kshana-run Запустить сценарий Kshana N/A (в 0,38 ноутбука нет; сценарии запускаются в любом ноутбуке через run) ожидается: представления в Studio пока нет; сценарий запускается в средстве запуска сценариев Studio и на карточке «Командная строка» страницы «Инструменты»
Орбита и поверхность Луны как навигационная и геодезическая инфраструктура: согласованность определения орбиты, разрешение неоднозначностей фазы несущей, совместное оценивание системы отсчёта, чувствительность к привязке к космосу и к числам Лява (вид сценария lunar-infrastructure, study = ...; docs/LUNAR-INFRASTRUCTURE.md; MODELLED, ILLUSTRATIVE входные данные, консультативный характер) kshana scenarios/lunar-infrastructure-od-consistency.toml (и пять родственных примеров) lunar_infra run, run_typed run run_scenario /kshana-run Запустить сценарий Kshana N/A (ноутбука нет; примеры запускаются в любом ноутбуке через run) ожидается: представления в Studio пока нет; сценарии запускаются в средстве запуска сценариев Studio и на карточке «Командная строка» страницы «Инструменты»
Измеренные журналы часов, считываемые в ряд фазы: linuxptp ptp4l, phc2sys, ts2phc, chrony tracking и statistics, наряду с часами RINEX, TimeLab и TICC ([clock_log] / [series.clock_log]; docs/CLOCK-LOG-FORMATS.md; MODELLED, ни один оракул не сравнивает разбор с другим средством чтения) сценарий с [clock_log] clock_log::read_input run run (только встроенный text; в браузере файлы не читаются) run_scenario (только встроенный text; path отклоняется) /kshana-run Запустить сценарий Kshana N/A (ноутбука нет; журнал — это файл, который предоставляет пользователь) ожидается: представления в Studio нет; средство запуска сценариев Studio принимает текст сценария
Оптическая линия передачи времени через атмосферу: доступность по площадкам, разнесение площадок, методы улучшения, связь между перерывом и holdover (вид сценария optical-atmosphere; docs/OPTICAL-ATMOSPHERE.md; MODELLED, ILLUSTRATIVE площадки, консультативный характер) kshana scenarios/optical-atmosphere-network.toml, scenarios/optical-atmosphere-techniques.toml optical_atmosphere, optical_weather, optical_sitediv, optical_techniques, optical_outage_holdover run, run_typed run run_scenario /kshana-run Запустить сценарий Kshana optical-atmosphere представление «Оптический PNT» в Studio (/studio/optical/, 0,38) строит записанные результаты двух входящих в комплект сценариев, включая временной ряд с начальным значением; сценарий также запускается в средстве запуска сценариев Studio и на карточке «Командная строка» страницы «Инструменты»
Загрузка полигонов суши (interference-map fetch-land) --allow-network Код командной строки N/A N/A N/A N/A N/A N/A Инструменты: карточка «Командная строка» (нужен --allow-network)
Бенчмарк (kshana-bench v1: оценка присланного решения по файлу истины, страница таблицы лидеров; docs/BENCH.md, MODELLED, консультативный характер) bench score, bench leaderboard bench::score, bench::site::leaderboard_html, surface::bench_score, surface::bench_leaderboard bench_score, bench_leaderboard bench_score, bench_leaderboard score_benchmark, render_leaderboard N/A (его обеспечивают два инструмента MCP; слэш-команда над двумя файлами JSON ничего не добавляет) N/A (не действие IDE) N/A (учебные ноутбуки — отдельное направление работ) N/A (таблица лидеров — статическая страница bench/site/, перенесённая на сайт как есть; Studio ничего не вычисляет)
Инструменты данных бенчмарка и holdout (bench truth|cases|baseline|seal|reveal-check|manifest|verify-manifest|validate) так же bench::tasks, bench::seal N/A N/A N/A N/A N/A N/A N/A (командная строка читает каталоги наборов данных и файлы часов и, для seal, секретный файл начального значения; начальное значение не должно проходить через агента или страницу)
Ежедневный продукт обсерватории и исследование чувствительности (interference-map daily|sensitivity; docs/observatory/METHOD.md) interference-map daily, interference-map sensitivity interference_map::observatory N/A N/A N/A N/A N/A N/A N/A (команды читают архивный каталог из сотен тысяч файлов, записывают четыре файла, включая PNG, и обеспечивают задержку выпуска 24 ч по часам машины, которая публикует; карта CSV есть на каждой поверхности в строке выше)

Studio#

Kshana Studio — веб-приложение, построенное на сборке WebAssembly, поэтому представление Studio существует там, где в столбце WASM есть точка входа, а там, где её нет, ячейка указывает на карточку «Командная строка» (команду для запуска с её аргументами), но никогда не на результат, вычисленный в Studio. Страницы (kshana.dev/studio/, на стороне клиента): Морское доверие (trust/), Разбор тренировки (training/), Карта помех (interference/), Геометрия (geometry/: репрезентативный скайплот, линия горизонта, DOP, эллипс ошибок и облако Монте-Карло от движка; 0,36), Лунная станция (lunar/: смоделированное покрытие лунной опорной станции по виду lunar-station-coverage; 0,36) и страница «Инструменты», разделы которой — OSNMA (#osnma), пакеты доказательств (#evidence), экспорт для испытательного стенда (#bench), сопоставление compliance (#compliance), вкладка «Командная строка» (карточка телеметрии, IQ, морские интеграции: команды для запуска) и «Использование из вашего ИИ-ассистента» (#ai). Значок — в столбце Studio таблицы подкоманд означает команду, которая не входит в число возможностей 0,35, представленных в Studio.

Почему ячейки N/A — это N/A#

  • Signal K и OpenCPN. Они потребляют данные работающего живого процесса и его шлюза TCP, поэтому являются развёртываниями из командной строки; плагин содержит команду-инструкцию и навык, которые указывают на docs/MARINE-INTEGRATIONS.md и не вызывают ни одного инструмента.

  • Работающий процесс. receiver-trust live удерживает поток открытым, может отдавать поток через шлюз любому числу клиентов TCP и работает, пока его не остановят. Вызов Python, вызов из браузера, вызов инструмента MCP и действие IDE возвращают результат по завершении и не удерживают сокет открытым для других. Python, WASM и MCP вместо этого несут ограниченную форму: фрагмент, оцениваемый тем же движком, в живой схеме (строки JSON 1,3: position, заявление advisory и спутниковая geometry в каждую эпоху, class при каждом выводе), без сокета и без шлюза (шлюз помечает решение на живом потоке как недействительное, а это может сделать только процесс, находящийся на пути данных). Два поведения принадлежат процессу и в инструментах для фрагментов отсутствуют: поток, воспроизводимый быстрее реального времени через receiver-trust live без --replay, оценивается как недоверенный (его время расходится с часами хоста; фрагмент читается без часов хоста), а --udp <port> и --listen tcp:<port> привязываются к адресу обратной петли, если адрес не указан.

  • Телеметрия доверия. WASM несёт trust_telemetry(input, format, host, input_kind, options_json): те же кодировщики, возвращающие текст Prometheus, строки syslog CEF или LEEF либо полезную нагрузку OTLP JSON для потока или пакетного результата, без часов (строки syslog несут нулевую метку времени RFC 5424) и без отправки чего-либо. Python (trust_telemetry) и MCP (trust_telemetry, с командой плагина /kshana-trust-telemetry) также её несут. Остальная часть trust-telemetry отдаёт метрики Prometheus, отправляет syslog и экспортирует OpenTelemetry из работающего потока, поэтому по своей природе это процесс. Инструкция: направьте в неё живую команду по конвейеру или воспроизведите файл результата (kshana trust-telemetry --result session.result.json --print-metrics); см. TRUST-TELEMETRY.md. Агент или ноутбук, которым нужны оценки по эпохам, вызывают вместо этого функции для пакетов или фрагментов.

  • Создание пакета в браузере. Для подписи нужен закрытый ключ, который не должен проходить через веб-страницу; сборка для браузера проверяет пакеты (evidence_verify), а создают их другие поверхности. Инструмент MCP никогда не возвращает и не записывает в журнал начальное значение подписи, а без него подписывает одноразовым ключом (целостность, а не личность); для ключа, который имеет значение, используйте командную строку. То же верно для потоковой передачи учебного NMEA на адрес: Python, WASM и MCP возвращают сформированный текст, а отправляет его командная строка.

  • Наборы исследований. --study <suite.toml> запускает манифест, называющий родственные файлы сценариев на диске. Поверхности в памяти принимают текст сценария, а не папку с файлами, поэтому запускают каждый элемент как сценарий (run, run_scenario, run_all).

  • GNSS IQ в браузере и перезаписываемые записи. Запись — это гигабайты отсчётов, которые страница не может вместить, а протокол MCP не должен переносить, поэтому в WASM нет функций IQ, а инструменты MCP читают и пишут только в один рабочий каталог (KSHANA_MCP_IQ_DIR, с бюджетом отсчётов на вызов). iq extract, convert и decimate существуют для перезаписи записей на диске и остаются только в командной строке. iq labfit и iq conditions несут текст, поэтому MCP принимает их во встроенном виде (журнал, называющий файл, отклоняется).

  • Загрузка суши. Это единственная команда, которая открывает сетевое соединение; ей нужны системный curl и явный --allow-network, и она проверяет закреплённый SHA-256. В браузере нет curl, а ИИ-агент не должен получать данные от имени пользователя; остальные поверхности вместо этого принимают файл суши как текст (land_geojson).

  • Архивы трасс и каталоги. interference-map adsb над каталогом трасс readsb читает файлы с диска и работает только из командной строки; поверхности в памяти принимают текст CSV.

Каждая подкоманда командной строки и кто её обеспечивает#

Одна строка на подкоманду или режим kshana --help. yes называет точку входа; no — пробел с указанием причины; N/A — поверхность, которая не может её нести по причине, указанной выше или в последнем столбце. Действия JetBrains запускают командную строку, поэтому N/A там объясняет, почему действия IDE нет.

Подкоманда Python WASM MCP Плагин JetBrains Блокнот Studio Примечание
kshana <scenario.toml> (прогон, график, таблица) run, run_full, run_typed run, chart_svg, summary, table_csv, run_all run_scenario, report_scenario, export_table_csv /kshana-run Запустить сценарий Kshana quantum-vs-classical-gdop —
--validate <scenario.toml> validate_toml error_kind (прогон завершается исключением при некорректном сценарии) validate_scenario /kshana-run Проверить сценарий —
--study <suite.toml> N/A N/A N/A N/A N/A (называет родственные файлы на диске) — Набор называет родственные файлы сценариев на диске (N/A выше); запускайте каждый элемент как сценарий
--export-sp3/-omm/-oem export_sp3, export_omm, export_oem export_sp3, export_omm, export_oem export_sp3, export_omm, export_oem /kshana-run Экспортировать сценарий —
--export <czml,kml,geojson,stk,sigmf> export_scenario, export_formats export_scenario, export_formats export_interop, list_export_formats /kshana-run Экспортировать сценарий — Файлы возвращаются как текст (utf-8) или base64 (отсчёты SigMF)
--import-route import_route import_route import_route /kshana-import-route Импортировать маршрут —
--animate <svg,html,frames> animate_scenario animate_scenario animate_scenario /kshana-run Анимировать сценарий — Не более 120 кадров за вызов; более длинные последовательности — через командную строку
sky <request> (или флаги), --monte-carlo, --svg sky_geometry, sky_monte_carlo, skyplot_svg sky_geometry, sky_monte_carlo, skyplot_svg sky_geometry (без Монте-Карло, без SVG) /kshana-run N/A (см. строку возможностей) — Геометрия MODELLED; вывод JSON или SVG
skyline --preset, --presets, --profile skyline_presets, skyline_profile skyline_presets, skyline_profile sky_geometry (skyline_preset) /kshana-run N/A (см. строку возможностей) — REPRESENTATIVE пресеты с указанием происхождения
kinds [--json] scenario_kinds, list_kinds list_kinds list_scenario_kinds /kshana-run Показать виды сценариев —
example [<name>] list_examples, get_example list_examples, get_example list_example_scenarios, get_example_scenario /kshana-run Вставить пример сценария — Функции python и wasm компилируют текст примеров внутрь (около 0,7 МБ)
receiver-trust <scenario.toml> (пакетный режим) receiver_trust, assess_vessel_log receiver_trust, assess_vessel_log assess_receiver_log, assess_vessel_log /kshana-assess-receiver Assess Receiver Trust vessel-trust-and-training Страница морского доверия
receiver-trust live фрагмент: receiver_trust_replay фрагмент: receiver_trust_replay фрагмент: assess_vessel_stream фрагмент Оценить поток приёмника (сохранённый журнал, --file) Страница морского доверия (фрагмент); карточка «Командная строка» для процесса Работающий процесс; у фрагмента нет ни сокета, ни шлюза (N/A выше)
trust-telemetry trust_telemetry trust_telemetry trust_telemetry /kshana-trust-telemetry Сформировать телеметрию доверия (сохранённый результат) vessel-trust-and-training Инструменты: карточка телеметрии (вкладка «Командная строка»; только форматы, без сокетов) Только текст на каждой поверхности, без сокета; работающие экспортёры — это процесс (см. выше)
imu-fit <imu.csv> imu_fit imu_fit fit_imu_log /kshana-fit-imu N/A — Текст на входе, JSON на выходе; MODELLED
osnma verify <pages|vectors.csv|stream.ubx> osnma_verify osnma_verify N/A (см. выше) N/A (см. выше) N/A (см. выше) Инструменты: OSNMA Тот же JSON, что и при --json, с заявлением консультативного характера в поле advisory; чтение файла заменяется байтами в памяти. Только статус аутентификации: это не служба целостности навигации и не заявление об эффективности защиты от спуфинга
receiver-trust evidence (создать пакет) evidence_create N/A create_evidence_pack /kshana-evidence-pack Create Evidence Pack vessel-trust-and-training Инструменты: карточка «Командная строка» (ключа подписи на странице нет) В браузере нет ключа подписи
jammertest import, jammertest score jammertest_import, jammertest_score jammertest_import, jammertest_score jammertest_import, jammertest_score /kshana-jammertest N/A (терминал; нужны файлы) ожидается: Инструменты: карточка «Командная строка» План и каталог передаются как текст; подписанный пакет (--key) доступен только из командной строки (ключ подписи)
evidence round-trip evidence_round_trip N/A create_round_trip_pack /kshana-evidence-pack N/A (как выше) Инструменты: карточка «Командная строка» (ключа подписи на странице нет) В браузере нет ключа подписи; никакой сигнал не записывается и не воспроизводится
evidence verify evidence_verify evidence_verify verify_evidence_pack /kshana-evidence-pack Проверить пакет доказательств (только закреплённый ключ) vessel-trust-and-training Инструменты: пакеты доказательств (проверка, прикрепление метки времени)
evidence keygen evidence_keygen N/A N/A N/A N/A (закрытый ключ плагином никогда не создаётся и не читается) Инструменты: карточка «Командная строка» Python возвращает ключ в памяти с предупреждением; закрытый ключ не должен проходить через беседу или страницу
evidence attach-timestamp evidence_attach_timestamp evidence_attach_timestamp attach_evidence_timestamp /kshana-evidence-pack Прикрепить метку времени Инструменты: пакеты доказательств (проверка, прикрепление метки времени) Токен в виде байтов или base64, обновлённый пакет возвращается в памяти; подпись удостоверяющего центра не проверяется (openssl ts -verify)
nmea-scenario <scenario.toml> nmea_training nmea_training generate_training_nmea /kshana-training-scenario Сформировать учебный NMEA vessel-trust-and-training Страница разбора тренировки
nmea-scenario --tcp/--udp N/A N/A N/A N/A N/A (см. примечание) Инструменты: карточка «Командная строка» Отправляет на адрес (N/A выше)
interference-map adsb|ais (CSV) interference_map interference_map build_interference_map /kshana-interference-map Построить карту помех interference-map-route-exposure Страница карты помех
interference-map adsb (каталог трасс) N/A N/A N/A N/A N/A (см. примечание) Инструменты: карточка «Командная строка» Читает каталог (N/A выше)
interference-map locate (CSV) interference_emitter_regions interference_emitter_regions N/A (пока не поддерживается) N/A N/A — Оценочные области излучателей, MODELLED; каталоги трасс и --tdoa доступны только в командной строке
interference-map fetch-land N/A N/A N/A N/A N/A (см. примечание) Инструменты: карточка «Командная строка» Доступ к сети (N/A выше)
interference-map daily, sensitivity N/A N/A N/A N/A N/A (см. примечание) — Читает архивный каталог и записывает файлы; задержка выпуска обеспечивается на публикующей машине (N/A выше)
bench score bench_score bench_score score_benchmark N/A (его обеспечивает инструмент MCP) N/A — Текст на входе, текст на выходе; ничего не читается и не записывается
bench leaderboard bench_leaderboard bench_leaderboard render_leaderboard N/A (его обеспечивает инструмент MCP) N/A статическая страница bench/site/ Текст HTML
bench truth|cases|baseline|seal|reveal-check|manifest|verify-manifest|validate N/A N/A N/A N/A N/A — Файлы набора данных и секретное начальное значение (N/A выше)
route-exposure route_exposure route_exposure route_exposure /kshana-interference-map Экспозиция маршрута interference-map-route-exposure Страница карты помех
bench-export bench_export bench_export export_test_bench /kshana-bench-export Экспортировать файлы для испытательного стенда Инструменты: экспорт для испытательного стенда Возвращает текст, ничего не записывает; сигнала нет
compliance-report compliance_report compliance_report compliance_report /kshana-compliance-report Построить отчёт compliance Инструменты: сопоставление compliance
compliance-report --mapping, --sources compliance_mapping compliance_mapping compliance_mapping /kshana-compliance-report Показать сопоставление compliance —
iq scene iq_scene, iq_scene_broadcast N/A iq_scene /kshana-iq N/A (записи — это гигабайты файлов; см. примечание) — Отсчёты — это файлы. --format sdrx[:ci16_le] (или выходной путь, оканчивающийся на .sdrx) записывает метаданные ION GNSS SDR рядом с отсчётами: командная строка и MCP (format: "sdrx") их записывают; Python возвращает отсчёты в памяти и файл не записывает, поэтому у метаданных нет формы для Python (N/A)
standards-pack list, run, rows, tests standards_pack_list, standards_pack_run standards_pack_list, standards_pack_run list_standards_packs, run_standards_pack /kshana-standards-pack N/A (как выше) Инструменты: карточка «Командная строка» Сценарии встроены; файловой системы нет; rows и tests печатают зафиксированные таблицы документации и доступны только из командной строки
partner check <submission.toml> N/A N/A N/A N/A N/A — Читает файл заявки и её файл данных на диске и проверяет SHA-256; ни у одной из этих поверхностей нет папки. Только формат и метаданные, ничего не оценивается; см. docs/PARTNER-DATA.md
lunanet-afs-check spec, symbols, generate lunanet_afs_check_spec, lunanet_afs_check_symbols, lunanet_afs_generate lunanet_afs_check_spec, lunanet_afs_check_symbols, lunanet_afs_generate lunanet_afs_check /kshana-lunanet-afs-check N/A (как выше) — Потоки символов — это текст из 0 и 1, не более 4 МиБ (MCP) или 100 кадров, формируемых за вызов; LDPC и CRC-24Q подкадров 2–4 не проверяются; никакой сигнал не записывается
iq scene iq_scene, iq_scene_broadcast N/A iq_scene /kshana-iq N/A (записи — это гигабайты файлов; см. примечание) — Отсчёты — это файлы
iq acquire iq_acquire, iq_acq_surface N/A iq_acquire /kshana-iq N/A (записи — это гигабайты файлов; см. примечание) —
iq track iq_track, iq_loop_designs N/A iq_track /kshana-iq N/A (записи — это гигабайты файлов; см. примечание) —
iq sweep iq_sweep N/A iq_sweep /kshana-iq N/A (записи — это гигабайты файлов; см. примечание) —
iq labfit iq_labfit N/A iq_labfit (журналы во встроенном виде, без файлов) /kshana-iq N/A (записи — это гигабайты файлов; см. примечание) —
iq frontend iq_frontend N/A iq_frontend /kshana-iq N/A (записи — это гигабайты файлов; см. примечание) —
iq monitor iq_monitor N/A iq_monitor /kshana-iq N/A (записи — это гигабайты файлов; см. примечание) — --follow [--idle-timeout <s>] читает запись SigMF, которая ещё записывается, только на приём (iq::io::follow::open_sigmf_follow в Rust): N/A для Python и MCP, потому что вызов, ожидающий роста файла, не возвращается по завершении работы; по той же причине receiver-trust live тоже доступен только из командной строки; запись в её текущем объёме обрабатывается через iq_monitor
iq campaign, iq campaign report iq_campaign, iq_campaign_report N/A iq_campaign, iq_campaign_status /kshana-iq N/A (записи — это гигабайты файлов; см. примечание) —
iq conditions iq_test_conditions N/A iq_test_conditions (текст, встроенный) /kshana-iq N/A (записи — это гигабайты файлов; см. примечание) —
iq inventory, info iq_inventory, iq_info N/A iq_info /kshana-iq N/A (записи — это гигабайты файлов; см. примечание) — Опись папки доступна в Python и командной строке; сервер MCP читает один рабочий каталог
iq extract, convert, decimate N/A N/A N/A N/A N/A (см. примечание) — Они перезаписывают записи на диске (N/A выше)
список сигналов (iq --help) iq_signals N/A iq_signals /kshana-iq N/A (список; выполните kshana iq --help) —

Вспомогательные функции#

Небольшие точки входа, которые не являются строкой возможностей, и где каждая находится:

Функция Поверхность Что это
version Python (kshana.version(), kshana.__version__), WASM (version), командная строка (--version), MCP (сведения о сервере) Версия движка
iq_read_epochs Python Читает двоичный файл kshana.track-epoch/1, записанный kshana iq track --epochs. N/A в остальных местах: он читает файл с диска (в WASM нет файловой системы, MCP читает только один рабочий каталог через инструменты iq_*)
encode_permalink, decode_permalink WASM Кодек ссылки для обмена ?s= в песочнице браузера (TOML сценария в токен, безопасный для URL, и обратно). N/A в остальных местах: ссылка на веб-страницу не имеет смысла для командной строки, вызова Python или агента

Ограничения, различающиеся по поверхностям#

Поверхность Предел ввода Файлы
MCP 4 МиБ на текстовый ввод (2 МиБ и 20 000 эпох для фрагмента потока); ответы содержат не более 2000 строк NMEA, 200 строк нештатных эпох и 4 МиБ файлов GeoJSON или пакетов только встроенное содержимое: поле сценария, называющее файл, отклоняется; инструменты iq_* используют один рабочий каталог, включаемый по выбору, причём каждый путь ограничен им
MCP по HTTP (--http, самостоятельное размещение) как MCP, по умолчанию с телом запроса 5 МиБ, 120 с на запрос и 8 одновременными запросами нет: файловые инструменты iq_* отключены; любой другой инструмент принимает встроенное содержимое
Python, Rust 64 МиБ на текстовый ввод receiver_trust может указывать path, который процесс способен прочитать
WASM 64 МиБ на текстовый ввод, в пределах собственной памяти браузера нет: в браузере нет файловой системы, ничего не загружается

Уровни доказательств и оговорки на каждой поверхности#

  • Пакет доказательств — это техническая запись того, что движок вычислил по журналу при указанных настройках, со всеми хешами и подписью над ними. Это не юридическое заключение, не установление фактов о каком-либо событии и не одобрение. Успешная проверка означает, что запись не изменена; без доверенного открытого ключа она подтверждает лишь целостность относительно ключа, который сам называет пакет.
  • Мониторы доверия к приёмнику и оценка доверия имеют уровень MODELLED: пороговые значения являются заданными входными данными, и ничто не утверждает, как они работают при реальных помехах. Результат носит консультативный характер; Kshana — это не навигационное оборудование с утверждённым типом (IEC 61108, IEC 61162), и ответственность остаётся на операторе. Высокая оценка не доказывает, что решение подлинное.
  • Карта помех имеет уровень MODELLED (предварительно зарегистрированные пороги, не проверены по измерению эталонной истины). Ухудшенная ячейка не указывает на помехи как на причину; ненаблюдаемая ячейка не является свидетельством чистого маршрута; карта описывает прошлые сообщения и не является прогнозом. Данные только агрегированные: идентификатор не возвращается.
  • Учебный NMEA — это только текст: радиочастотный сигнал, IQ и форма волны не синтезируются, ничего не передаётся, и он никогда не предназначен для действующих навигационных систем судна.

Метка доказательств и выходные данные, которые её не несут#

Каждое значение и каждая таблица, которые записывает прогон, несёт свой уровень доказательств (VALIDATED, MODELLED или PARTNER, самый слабый из стоящих за ним строк реестра) и идентификаторы этих строк, на каждой поверхности, запускающей сценарий: результирующий JSON (ключ evidence), SVG-диаграмма (элемент метаданных и строка под графиком) и CSV-таблица (строки комментариев # evidence:). Та же метка есть в выходных данных доверия к приёмнику (CLI, MCP, Python), jammertest score --json, iq acquire, iq sweep, iq track --summary, iq monitor --json, в отчёте о маршруте карты помех и внутри config.json каждого пакета доказательств (подписанного; kshana evidence verify сообщает её). Идентификаторы строк стабильны (VM- и восемь шестнадцатеричных цифр, столбец ID в docs/VERIFICATION-MATRIX.md).

Эти выходные данные не несут метки, каждое по указанной причине (список — UNLABELLED_WRITERS в tests/evidence_labels_doc_sync.rs, где тест завершается ошибкой, если записывающий компонент не помечен и не указан в списке):

Вывод Почему метки нет
файлы результатов kshana-bench фиксированная схема, закреплённая обязательствами по отложенной выборке; каждый несёт собственное label (MODELLED или измерено)
ежедневные продукты обсерватории помех (GeoJSON, PNG, JSON инцидентов) замороженная опубликованная схема; оговорки примечания о методе сопровождают их
файлы ячеек, оценочных таблиц и отчётов кампании IQ закреплены по дайджесту; каждый указывает оценочную таблицу кампании, которую пересказывает
отсчёты IQ, метаданные SigMF и SDR, истинные данные сцены, потоки эпох и событий трека, журналы живых сеансов файлы, привязанные к формату, и потоки записей, которые читают другие инструменты
экспорты SP3, OMM, OEM, CZML, KML, GeoJSON, STK, движения стенда и NMEA; обучающий поток NMEA файлы, привязанные к формату, которые читают сторонние инструменты
форматы передачи телеметрии (Prometheus, OTLP, CEF, LEEF) определяются своими форматами передачи
генерируемые документы (сам реестр, закоммиченные таблицы исследований и данных) не выходные данные прогона