Tradução automática, não revista por um falante nativo. O inglês é a referência.

APIs e integraçõesEditar no GitHubFonte: docs/AGENTS.md

Uso do Kshana a partir de um agente de IA

Para um agente (ou a pessoa que o dirige): qual ferramenta chamar para qual pergunta, o que as ferramentas farão e não farão, e o que manter com cada resposta. Superfícies e as células que não estão disponíveis em uma dada superfície: SURFACES.md.

Conectar#

npx -y kshana-mcp@0.37.0            # or: uvx kshana-mcp==0.37.0, brew, scoop, winget, cargo, docker

Um trecho que nomeia clientes de IA de terceiros foi omitido aqui; ele está em docs/AGENTS.md no GitHub.

A regra para toda resposta#

Execute o motor; não adivinhe os números. Informe o que uma ferramenta retornou com sua unidade e seu nível de evidência (VALIDATED contra uma referência independente externa, ou MODELLED), o cenário, a semente e a versão do motor, para que a execução possa ser repetida. Mantenha as ressalvas próprias de cada resultado junto dele.

Qual ferramenta para qual pergunta#

A pergunta Ferramenta (MCP) Comando de barra
Executar ou explicar um cenário PNT (órbitas, GNSS, temporização, fusão, lunar, enlaces ópticos, ...) list_scenario_kinds, list_example_scenarios, get_example_scenario, validate_scenario, run_scenario, report_scenario, animate_scenario, export_sp3, export_omm, export_oem, export_interop, list_export_formats, export_table_csv /kshana-run
Este log de receptor, ou o NMEA desta embarcação, era confiável, e quando deixou de ser? assess_receiver_log (qualquer formato de log), assess_vessel_log (NMEA de embarcação, em lote), assess_vessel_stream (trecho limitado) /kshana-assess-receiver
Preciso de NMEA sintético com um evento de jamming, arrasto de posição, falsificação de tempo ou replay para treinamento generate_training_nmea /kshana-training-scenario
Mostrar a pontuação de confiança de uma embarcação em formatos de monitoramento ou SIEM (Prometheus, CEF, LEEF, OTLP) trust_telemetry /kshana-trust-telemetry
Pontuar um log de receptor contra o cronograma publicado do Jammertest (latência de detecção, alarmes perdidos, alarmes falsos, tempo de recuperação), ou transformar esse plano em eventos jammertest_score, jammertest_import /kshana-jammertest
Criar um registro com evidência de adulteração do que o motor informou sobre uma janela do log de uma embarcação, ou verificar um create_evidence_pack, verify_evidence_pack, attach_evidence_timestamp /kshana-evidence-pack
Dados de navegação de quais satélites Galileo este fluxo de receptor autentica (OSNMA)? nenhuma: não está no MCP. Use kshana osnma verify (CLI), kshana.osnma_verify (Python) ou osnma_verify (WASM, o cartão OSNMA do Studio) não é um comando de barra
Preciso do movimento do veículo e dos horários de eventos de um cenário para reproduzir em um simulador GNSS de laboratório export_test_bench /kshana-bench-export
Para quais linhas de requisitos de referenciais públicos estas execuções fornecem evidências em apoio, e qual é a lacuna? compliance_report (a partir do texto de resultado), compliance_mapping (as tabelas, sem execuções) /kshana-compliance-report
Executar um pacote de normas pontuado (perfis de teste do DHS RPCF, IMO MSC.1/Circ.1575, ICAO Doc 9849 Apêndice F) contra limiares declarados antes da execução? list_standards_packs, run_standards_pack (passe o relatório a compliance_report para obter as linhas)
Verificar o LunaNet Augmented Forward Signal (códigos, SB1, formato de quadro) contra o LNIS V5 / LSIS-AFS V1.0, ou verificar um fluxo de símbolos? lunanet_afs_check (mode spec, symbols ou generate); o LDPC e o CRC-24Q dos subquadros 2 a 4 não são verificados
Vincular uma execução de laboratório (cenário, condições de teste declaradas, log de receptor, pontuação) em um único pacote assinado? create_round_trip_pack após export_test_bench (docs/spec/TEST-CONDITIONS.md)
Pontuar uma submissão de detecção ou de holdover contra um arquivo de verdade do kshana-bench, ou renderizar arquivos de resultado como a página do leaderboard? score_benchmark, render_leaderboard —
Preciso de um cenário que percorra uma rota GeoJSON (terrain-nav, terrain-slam, gravity-map, combined-altpnt) import_route /kshana-import-route
Quais satélites um usuário em uma rua, um porto, um fiorde ou um terminal de contêineres enxerga, e quais são o DOP e a elipse de erro? sky_geometry (uma requisição, ou um skyline_preset); a seção [skyline] de um cenário por meio de run_scenario (orbit e integrity precisam de user_site) /kshana-run
Onde o GNSS apareceu degradado, e quanto desta rota está nessa condição? build_interference_map, depois route_exposure /kshana-interference-map
Gravações IQ GNSS (cena, aquisição, rastreamento, front-end, campanhas) iq_signals primeiro, depois as ferramentas iq_* /kshana-iq

As skills vessel-receiver-trust, training-nmea-scenario, trust-telemetry, compliance-mapping, test-bench-export, gnss-iq e interference-map-route-exposure trazem as regras abaixo para agentes que carregam skills.

O que cada ferramenta não fará#

  • Ler ou gravar arquivos. O conteúdo é embutido: as entradas são texto na requisição, limitado a 4 MiB, e um campo de cenário que nomeia um arquivo é recusado. Apenas as ferramentas iq_* tocam uma pasta, e somente a nomeada por KSHANA_MCP_IQ_DIR, com todo caminho confinado a ela.
  • Verificar o OSNMA. Não há ferramenta MCP: a entrada é um fluxo bruto longo de receptor (páginas I/NAV ou uma captura UBX), que convém à CLI e ao Python, e uma ferramenta que a recebesse acrescentaria uma grande superfície de entrada sem benefício. Encaminhe o usuário a kshana osnma verify <file> --public-key ... --json (ou ao osnma_verify do Python). Seja qual for a saída, mantenha o aviso consultivo literalmente: apenas estado de autenticação, não um serviço de integridade de navegação, não um equipamento de navegação homologado, e sem nenhuma afirmação de desempenho antispoofing; um resultado só tem significado com uma raiz de Merkle ou chave pública que o usuário obteve por outra via.
  • Executar um processo. receiver-trust live como fluxo em execução (com um portão e --listen), os exportadores de telemetria (trust-telemetry: Prometheus, syslog, OTLP) e o envio em fluxo de NMEA de treinamento a um endereço existem apenas na linha de comando. assess_vessel_stream pontua um trecho com o mesmo motor e não grava em nenhuma porta. As ferramentas de trecho retornam o esquema JSON-lines live 1,3 (uma declaração advisory e a geometry de satélites em cada época, uma class em cada dedução); o CSV de uma execução de embarcação começa com uma linha de comentário # que traz a mesma declaração, de modo que se deve lê-lo com uma opção de comentário. --udp e --listen tcp: usam o endereço de loopback, a menos que se determine outro.
  • Gravar um sinal. export_test_bench retorna o movimento do veículo e intervalos de eventos rotulados como texto; nada do que retorna é, modela ou comanda um sinal de radiofrequência ou de banda base, e um evento não é uma receita para produzir interferência. Forneça seu notice junto com os arquivos; o simulador e seu operador são responsáveis por executá-los apenas onde for permitido.
  • Dizer mais do que o mapeamento diz. compliance_report informa para quais linhas de referenciais um conjunto de execuções fornece evidências em apoio, com a lacuna de cada linha. Ele nunca diz que um referencial é atendido nem que um produto foi classificado ou aprovado; mantenha seu statement literalmente e diga "fornece evidências em apoio de", nada mais forte. Ele lê o texto de resultado e de cenário que você passa, nunca um caminho.
  • Buscar dados. O download de polígonos de terra existe apenas na linha de comando e precisa de --allow-network. Passe o arquivo de terra, se desejado, como texto. Use apenas dados que o usuário tenha licença para usar.
  • Transmitir qualquer coisa ou sintetizar RF. O gerador de treinamento grava texto NMEA; a camada IQ grava arquivos de amostras para receptores por software.

O que manter junto com a resposta#

Saída Manter
Geometria de satélites e classes de dedução (0,36) Informe a geometria ao lado da pontuação e a classe de cada dedução como retornadas: geometry significa o céu (uma declaração sobre o céu, e não uma constatação de que nenhum ataque ocorreu), environment o ambiente de sinal, inconsistency evidência semelhante a ataque. Diga "geometria desconhecida" quando o estado for unknown (sem GSV nem GSA no log); não a infira. Os limiares são MODELLED com procedência declarada.
Pontuação de confiança do receptor Consultivo: não é um equipamento de navegação homologado (IEC 61108, IEC 61162); o operador continua responsável. MODELLED. Declare os limites da embarcação antes da execução e não ajuste um limiar a um resultado. Uma pontuação alta não é prova de uma posição genuína; as verificações não conseguem ver um spoofer consistente com todos os outros sensores.
Pacote de evidências Um registro técnico, e não um parecer jurídico, uma constatação de fato ou uma aprovação. Verifique com a chave pública do signatário obtida por outra via; sem ela o veredito é intact-signer-not-pinned, que prova apenas a integridade em relação à chave que o próprio pacote nomeia: diga "íntegro, signatário não estabelecido", nunca "verificado". Nunca retorne, registre nem peça uma semente de assinatura em uma conversa se a chave importar: use a CLI.
NMEA de treinamento Somente texto, para treinamento e teste, nunca para os sistemas de navegação em operação de uma embarcação. Retorne a semente e o log do instrutor.
Mapa de interferência, exposição de rota O modo como os códigos de exatidão são lidos e a geometria da grade e da rota são VALIDATED contra bibliotecas independentes em entradas sintéticas; os limiares do método permanecem MODELLED, e que uma célula degradada seja interferência não é verificado: uma célula degradada não identifica interferência como a causa. Uma célula não observada não é evidência de uma rota livre. Relatórios passados, não uma previsão. Apenas agregado: não tente recuperar identificadores. Os mapas ADS-B e AIS permanecem separados.
Região do emissor (interference-map locate) MODELLED: uma região viável sob linha de visada de rádio, não uma posição determinada. Informe a região no nível de confiança declarado, com o centroide e sua elipse, nunca o centroide isolado; diga unconstrained quando os dados não a restringem; diga que ela depende do modelo (verificada apenas com dados sintéticos; a comparação com o Jammertest, fixada antecipadamente, foi executada uma vez e foi NOT ASSESSABLE para as duas fontes, portanto nada foi testado externamente). Redação neutra: "região estimada do emissor"; nunca nomeie nem insinue quem ou o que está por trás de uma fonte, um Estado, uma força ou uma intenção. Apenas agregados; não tente recuperar identificadores. A publicação de regiões de emissores no observatório público está desativada.
Geometria do céu, horizonte Geometria MODELLED sob um modelo de erro declarado, apenas linha de visada: sem difração, multipercurso nem recepção sem linha de visada. As predefinições são REPRESENTATIVE, e não levantamentos; mantenha a procedência da predefinição. As constelações predefinidas são um céu representativo, não o céu de uma data. A elipse escala um UERE declarado: não é uma exatidão medida nem um limite de integridade. Mantenha o advisory.
Disponibilidade de enlace óptico (optical-atmosphere, 0,37) MODELLED, consultivo. Os climas de nuvens são entradas declaradas, não um conjunto de dados, e nenhum registro de disponibilidade medida foi comparado: diga "sob estas premissas", nunca "a disponibilidade naquele local". Mantenha o teto do local (availability_ceiling_pct: o que nenhuma margem eleva) ao lado de sua disponibilidade, e diga quais ganhos de técnica são entradas (o Kshana não modela uma malha de óptica adaptativa). A numérica é conferida contra um programa independente, o que confere a implementação das fórmulas e não a atmosfera.
Teste de holdover (holdover-test, 0,38) MODELLED, consultivo. Diga "medido contra a máscara", nunca que um relógio ou sistema atende a uma Recomendação ou é aprovado em relação a ela. Os dois horários (GNSS removido, GNSS restaurado) são a declaração do operador: o Kshana não removeu nem restaurou nada e não pode verificá-los, portanto cite-os como declarados. Uma máscara para a qual o registro é curto demais é INCOMPLETE, nunca um sucesso. Um log de servo (linuxptp, chrony) é o erro sob controle de servo, e não uma medição independente contra o UTC; diga de qual registro vêm as figuras. Veja docs/TIMING-HIL.md.
Qualquer resultado de cenário O figure_tiers ou o label que ele declara, e a linha de procedência.

Limites#

Use dados sintéticos ou os próprios dados do usuário. Não nomeie pessoas, embarcações nem organizações em saídas que não estavam na entrada do usuário. O Kshana é uma ferramenta de análise e treinamento, e não um produto de voo ou de navegação.