各项能力在何处可用
每项能力都在有意义的界面上提供;某个界面无法承载某项能力时,对应单元格写明N/A及原因。同一个引擎在每个界面背后运行:0.35各项能力的Python、WebAssembly和MCP入口,都是对kshana::surface的薄封装,而它调用的是命令行所运行的代码。
此处略去了一段提及第三方AI客户端的文字;它在GitHub上的docs/SURFACES.md中。
| 能力 | 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 |
评估接收机信任度 | vessel-trust-and-training |
船舶信任度页面 |
| 对有界流片段的接收机信任度(评分、状态、原因;无门禁) | receiver-trust live |
receiver_trust::assess::assess_stream_excerpt |
receiver_trust_replay |
receiver_trust_replay |
assess_vessel_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,Studio视图条目6) |
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 |
创建证据包(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(尚无notebook) | 待办:命令行的工具卡片(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 |
创建证据包 | 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从CLI发布) |
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 |
评估接收机信任度 | vessel-trust-and-training |
N/A(Studio的信任度页面读取其列出的格式;新格式随其下一次移植加入) |
由IMU日志得到混合/融合传感器参数(来自静止日志的[accel_classical]表,Allan拟合) |
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节点、GNSS-SDR UDP中继、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) |
对I/NAV页面或UBX数据流进行Galileo OSNMA验证(docs/OSNMA.md) |
osnma verify |
osnma::cli::verify_report, surface::osnma_verify |
osnma_verify |
osnma_verify |
N/A(较长的原始接收机数据流适合CLI和Python;代理工具会增加大输入面而无益处) | N/A(插件命令经MCP服务器运行,而MCP服务器没有OSNMA工具,原因见MCP单元格;请运行kshana osnma verify) |
N/A(如果没有通过其他途径从ICD获得的可信默克尔根或公钥,并且就新鲜度而言没有独立的参考时间,结果就没有意义;右键操作无处获取这些内容,而未固定的默认值会被当作验证;请运行kshana osnma verify) |
N/A(数据流输入,JSON报告输出;无notebook) | 工具: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 |
训练复盘页面 |
| 流式发送到TCP或UDP地址的训练NMEA | 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 |
不适用(尚未提供;Rust、Python和WASM界面已涵盖) | 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 | 工具:命令行卡片(操作指南;属于部署) |
| Test-bench导出(供实验室模拟器使用的运动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 |
导出Test-bench文件 | compliance-and-test-bench |
工具: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操作绑定到选定的文件;标准包是内嵌的,不需要文件:请在IDE终端中运行kshana standards-pack) |
N/A(针对标准包的Studio工具卡片属于Studio工作流;CLI或任何界面的输出都可输入compliance映射卡片) | |
数据合作方提交检查(对实测数据提交的格式和元数据检查,kshana.partner-submission/1;不做任何评分) |
partner check |
partner::check_file, partner::check |
不适用(该检查读取本地文件及其SHA-256;Rust API是库界面,CLI是工具) | 不适用(浏览器构建没有文件系统) | 不适用(MCP按设计拒绝文件来源(仅限内联文本)) | 不适用(斜杠命令调用MCP工具,而此检查需要磁盘上的文件) | 不适用(JetBrains操作绑定到一个选中的文件;一次提交是一个文件夹) | N/A(尚无notebook) | 不适用(Studio没有文件系统访问权限;请运行命令) |
LunaNet增强前向信号:码、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操作绑定到选定的文件;请在IDE终端中运行kshana lunanet-afs-check) |
N/A(Studio卡片属于Studio工作流的条目;CLI和其他所有界面均提供该功能) | |
天际线下的天空几何:可见与被遮蔽的卫星、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中另行添加) |
| 天空蒙特卡罗点云(带随机种子的最小二乘误差、RMS、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、守时、恢复,按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中无notebook;示例场景可在任何notebook中通过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场景 | 不适用(没有笔记本;该示例从检出的源码出发,可通过run在任何笔记本中运行) |
待办:尚无Studio视图;该场景在Studio场景运行器和工具的命令行卡片中运行 |
星座之外的GNSS:GPS、GLONASS、Galileo、BDS、QZSS和NavIC信号对位于壳层或LEO至月球转移轨迹上的用户的可用性(手册、参数化或实测的发射方向图、临边射线介质、弱信号接收机设计)、面向高轨和月球转移航天器的星载GNSS EKF,以及编队相对导航(场景类型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中无notebook;这些场景可在任何notebook中通过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(无notebook;这些示例可在任何notebook中通过run运行) |
待办:尚无Studio视图;这些场景在Studio场景运行器和工具的命令行卡片中运行 |
读入相位序列的实测时钟日志:linuxptp的ptp4l、phc2sys、ts2phc,chrony的tracking和statistics,以及RINEX钟差、TimeLab和TICC([clock_log] / [series.clock_log];docs/CLOCK-LOG-FORMATS.md;MODELLED,没有参考基准(oracle)将一次解析与另一个读取器作比较) |
带有[clock_log]的场景 |
clock_log::read_input |
run |
run(text仅限内联;浏览器中不读取文件) |
run_scenario(text仅限内联;path会被拒绝) |
/kshana-run |
运行Kshana场景 | N/A(无notebook;日志是用户提供的文件) | 待办:尚无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 |
Studio的光学PNT视图(/studio/optical/,0.38)绘制两个内置场景的已记录结果,包括带随机种子的时间序列;该场景也在Studio场景运行器和工具的命令行卡片中运行 |
陆地多边形下载(interference-map fetch-land) |
--allow-network |
CLI代码 | 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(教学notebook属于单独的工作流) | N/A(排行榜是静态页面bench/site/,原样移植到网站;Studio不做任何计算) |
基准测试数据与保留集工具(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(CLI读取数据集目录和时钟文件,对于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构建的网页应用,因此凡WASM列有入口之处就存在Studio视图,没有入口之处,该单元格指向命令行卡片(要运行的命令及其参数),绝不指向Studio计算出的结果。页面(kshana.dev/studio/,客户端运行):海事信任度(trust/)、训练复盘(training/)、干扰地图(interference/)、几何(geometry/:来自引擎的代表性天空图、天际线、DOP、误差椭圆和蒙特卡罗点云;0.36)、月球站(lunar/:根据lunar-station-coverage类型得到的月球参考站建模覆盖;0.36)以及工具页面,其各部分为OSNMA(#osnma)、证据包(#evidence)、Test-bench导出(#bench)、compliance映射(#compliance)、命令行标签页(遥测卡片、IQ、船舶集成:要运行的命令)和在你的AI助手中使用(#ai)。子命令表Studio列中的—表示该命令不属于Studio所呈现的0.35项能力。
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),没有套接字,也没有门控(门控在实时流上将定位解标记为无效,这只有位于数据通路中的进程才能做到)。有两种行为属于该进程,不在摘录工具中:未使用--replay而通过receiver-trust live以快于实时的速度回放的数据流,会被评为不可信(其时间与主机时钟不符;读取摘录时没有主机时钟),而--udp <port>和--listen tcp:<port>在未给出地址时绑定回环地址。信任度遥测。WASM提供
trust_telemetry(input, format, host, input_kind, options_json):同样的编码器,针对数据流或批量结果返回Prometheus文本、CEF或LEEF syslog行,或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。需要逐历元评分的代理或notebook应改为调用批量或摘录函数。在浏览器中创建证据包。签名需要私钥,而私钥不应经过网页;浏览器版本验证证据包(
evidence_verify),其他界面创建证据包。MCP工具从不返回或记录签名种子,没有种子时使用一次性密钥签名(保证完整性,而非身份);对于重要的密钥,请使用CLI。将训练NMEA流式发送到某个地址同样如此:Python、WASM和MCP返回生成的文本,由CLI负责发送。研究套件。
--study <suite.toml>运行一份指明磁盘上同级场景文件的清单。内存内界面接受场景文本,而不是文件夹,因此改为将每个成员作为场景运行(run、run_scenario、run_all)。浏览器中的GNSS IQ,以及被改写的记录。一份记录有数GB的采样,网页无法容纳,MCP协议也不得承载,因此WASM没有IQ函数,MCP工具只读写一个工作目录(
KSHANA_MCP_IQ_DIR,每次调用有采样预算)。iq extract、convert和decimate用于改写磁盘上的记录,仍仅限命令行。iq labfit和iq conditions承载文本,因此MCP以内联方式接受它们(指明某个文件的日志会被拒绝)。陆地下载。它是唯一会打开网络连接的命令,需要系统的
curl和显式的--allow-network,并核对固定的SHA-256。浏览器没有curl,AI代理也不应代用户获取数据;其他界面改为以文本形式接受陆地文件(land_geojson)。轨迹归档与目录。 对readsb轨迹目录执行
interference-map adsb会从磁盘读取文件,仅限命令行;内存内界面接受CSV文本。
每个命令行子命令及其覆盖情况#
kshana --help的每个子命令或模式占一行。是表示给出了入口;否是有原因说明的缺口;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帧;更长的序列请使用CLI | |
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 MB) |
|
receiver-trust <scenario.toml>(批量) |
receiver_trust, assess_vessel_log |
receiver_trust, assess_vessel_log |
assess_receiver_log, assess_vessel_log |
/kshana-assess-receiver |
评估接收机信任度 | 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 |
创建证据包 | 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 | — | 估计的发射源区域,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 |
导出Test-bench文件 | 工具:Test-bench导出 | 返回文本,不写入任何内容;无信号 | |
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(记录是数GB的文件;见注) | — | 采样是文件。--format sdrx[:ci16_le](或以.sdrx结尾的输出路径)在采样旁写出ION GNSS SDR元数据:CLI和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打印已提交的文档表格,仅限CLI |
|
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 MiB(MCP)或生成100帧;不验证子帧2至4的LDPC和CRC-24Q;不写出任何信号 | |
iq scene |
iq_scene, iq_scene_broadcast |
N/A | iq_scene |
/kshana-iq |
N/A(记录是数GB的文件;见注) | — | 采样是文件 | |
iq acquire |
iq_acquire, iq_acq_surface |
N/A | iq_acquire |
/kshana-iq |
N/A(记录是数GB的文件;见注) | — | ||
iq track |
iq_track, iq_loop_designs |
N/A | iq_track |
/kshana-iq |
N/A(记录是数GB的文件;见注) | — | ||
iq sweep |
iq_sweep |
N/A | iq_sweep |
/kshana-iq |
N/A(记录是数GB的文件;见注) | — | ||
iq labfit |
iq_labfit |
N/A | iq_labfit(日志内联,无文件) |
/kshana-iq |
N/A(记录是数GB的文件;见注) | — | ||
iq frontend |
iq_frontend |
N/A | iq_frontend |
/kshana-iq |
N/A(记录是数GB的文件;见注) | — | ||
iq monitor |
iq_monitor |
N/A | iq_monitor |
/kshana-iq |
N/A(记录是数GB的文件;见注) | — | --follow [--idle-timeout <s>]读取仍在写入的SigMF记录,仅接收(Rust中为iq::io::follow::open_sigmf_follow):对Python和MCP为N/A,因为等待文件增长的调用在工作完成时并不返回,这也是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(记录是数GB的文件;见注) | — | ||
iq conditions |
iq_test_conditions |
N/A | iq_test_conditions(文本,内联) |
/kshana-iq |
N/A(记录是数GB的文件;见注) | — | ||
iq inventory, info |
iq_inventory, iq_info |
N/A | iq_info |
/kshana-iq |
N/A(记录是数GB的文件;见注) | — | 文件夹清单由Python和CLI提供;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)、CLI(--version)、MCP(服务器信息) |
引擎版本 |
iq_read_epochs |
Python | 读取由kshana iq track --epochs写出的kshana.track-epoch/1二进制文件。其他界面为N/A:它从磁盘读取文件(WASM没有文件系统,MCP仅通过iq_*工具读取一个工作目录) |
encode_permalink, decode_permalink |
WASM | 浏览器演示环境的?s=分享链接编解码器(场景TOML与URL安全令牌互相转换)。其他界面为N/A:指向网页的链接对命令行、Python调用或代理没有意义 |
因界面而异的限制#
| 界面 | 输入限制 | 文件 |
|---|---|---|
| MCP | 每个文本输入4 MiB(数据流摘录为2 MiB和20,000个历元);回复最多携带2000行NMEA、200行非标称历元行,以及4 MiB的GeoJSON或证据包文件 | 仅限内联内容:指明文件的场景字段会被拒绝;iq_*工具使用一个需主动启用的工作目录,所有路径都限制在其中 |
基于HTTP的MCP(--http,自行托管) |
与MCP相同,默认请求体为5 MiB,每个请求120秒,同时处理8个请求 | 无:iq_*文件工具已关闭;其他所有工具都接受内联内容 |
| Python、Rust | 每个文本输入64 MiB | receiver_trust可以指明进程可读取的path |
| WASM | 每个文本输入64 MiB,在浏览器自身的内存之内 | 无:浏览器没有文件系统,不上传任何内容 |
每个界面上的证据等级与注意事项#
- 证据包是引擎在所述设置下根据日志计算内容的技术记录,附有每个哈希以及对这些哈希的签名。它不是法律意见,不是对任何事件的事实认定,也不是批准。验证通过表示记录未被改动;没有可信公钥时,它只能证明相对于证据包自己指明的密钥而言的完整性。
- 接收机信任度监测器和信任度评分为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、干扰地图路由报告中,以及每个证据包(已签名;kshana evidence verify会报告它)的config.json内。行编号是稳定的(VM-加八位十六进制数字,即docs/VERIFICATION-MATRIX.md的ID列)。
这些输出不带标签,每项各有所述理由(清单为tests/evidence_labels_doc_sync.rs中的UNLABELLED_WRITERS,若有写入器既没有标签又不在清单中,该测试就会失败):
| 输出 | 为何不带标签 |
|---|---|
| kshana-bench结果文件 | 固定的模式,由封存数据的承诺固定;每个文件自带label(MODELLED或实测) |
| 干扰观测站的每日产品(GeoJSON、PNG、事件JSON) | 已冻结并发布的模式;方法说明中的注意事项随之附带 |
| IQ测评活动的单元、评分卡和报告文件 | 以摘要值固定;每个文件都说明它所复述的测评活动评分卡 |
| IQ采样、SigMF和SDR元数据、场景真值、跟踪历元和事件流、实时会话日志 | 受格式约束的文件和记录流,由其他工具读取 |
| SP3、OMM、OEM、CZML、KML、GeoJSON、STK、试验台运动和NMEA导出文件;NMEA训练流 | 受格式约束的文件,由第三方工具读取 |
| 遥测线路格式(Prometheus、OTLP、CEF、LEEF) | 由其线路格式规定 |
| 生成的文档(台账本身、已提交的研究和数据表) | 不是一次运行的输出 |