@genne/genne-cli 0.1.33 → 0.1.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -3
- package/skills/genne-cli/SKILL.md +47 -132
- package/src/help.js +1 -1
- package/src/mcp-desktop-operations.js +1 -1
- package/src/mcp-logistics.js +1 -1
- package/src/mcp-operational.js +1 -1
- package/src/mcp-routes-tower.js +1 -1
- package/src/mcp.js +1 -1
- package/GR.md +0 -83
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@genne/genne-cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.34",
|
|
4
4
|
"description": "CLI de produto Genne",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -25,7 +25,6 @@
|
|
|
25
25
|
},
|
|
26
26
|
"files": [
|
|
27
27
|
"src",
|
|
28
|
-
"skills"
|
|
29
|
-
"GR.md"
|
|
28
|
+
"skills/genne-cli/SKILL.md"
|
|
30
29
|
]
|
|
31
30
|
}
|
|
@@ -1,152 +1,67 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: genne-cli
|
|
3
|
-
description: Consultar e operar o Genne pelo MCP remoto com OAuth
|
|
3
|
+
description: Consultar e operar o Genne pelo MCP remoto com OAuth ou pela CLI opcional, confirmando a identidade, o papel e a conta ativos antes de agir.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Genne
|
|
7
7
|
|
|
8
|
-
Escolha
|
|
9
|
-
Estar em um PC não comprova acesso ao terminal ou à CLI.
|
|
8
|
+
## Escolha da conexão
|
|
10
9
|
|
|
11
|
-
- Com terminal acessível e CLI
|
|
12
|
-
- Sem terminal,
|
|
10
|
+
- Com terminal acessível e CLI instalada, confira `genne env show` e `genne whoami`. Prefira a CLI somente se a sessão corresponder à identidade, ao papel e à conta pretendidos.
|
|
11
|
+
- Sem terminal, CLI instalada ou sessão CLI válida, use o MCP remoto da integração Genne com OAuth. Isso inclui o celular. Confira `genne_whoami` e descubra as ferramentas em `tools/list`; não exija instalação da CLI para usar o plugin.
|
|
13
12
|
|
|
14
|
-
As sessões CLI e MCP são independentes.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
das duas sessões. Para conectar ou reconectar o MCP, siga o OAuth da integração;
|
|
19
|
-
uma sessão CLI não autentica o MCP.
|
|
13
|
+
As sessões CLI e MCP são independentes. Se os dados das duas sessões divergirem,
|
|
14
|
+
peça ao usuário para escolher a sessão antes de operar. Não combine contas ou
|
|
15
|
+
permissões nem troque de transporte para contornar uma recusa ou uma aprovação
|
|
16
|
+
pendente. Para conectar o MCP, siga o OAuth da integração.
|
|
20
17
|
|
|
21
|
-
|
|
22
|
-
aguardando aprovação, rejeitada ou obsoleta. Toda escrita MCP remota exige
|
|
23
|
-
intenção e aprovação separada no Core antes da execução. O MCP local por
|
|
24
|
-
stdio oferece somente leituras. Se a operação faltar em `tools/list` e a CLI
|
|
25
|
-
não estiver disponível, informe a limitação. O catálogo CLI em `genne_help`
|
|
26
|
-
não comprova uma tool MCP equivalente. Não chame HTTP Core diretamente nem
|
|
27
|
-
prometa paridade entre os transportes.
|
|
18
|
+
## CLI opcional
|
|
28
19
|
|
|
29
|
-
|
|
30
|
-
plugin. Conexão, deploy, aceite no celular e publicação no diretório oficial
|
|
31
|
-
são evidências distintas; não afirme disponibilidade sem confirmação.
|
|
20
|
+
Requer Node.js 22 ou superior. Quando o usuário pedir instalação:
|
|
32
21
|
|
|
33
|
-
|
|
22
|
+
```sh
|
|
23
|
+
npm install --global @genne/genne-cli@latest
|
|
24
|
+
genne login
|
|
25
|
+
genne env show
|
|
26
|
+
genne whoami
|
|
27
|
+
genne help
|
|
28
|
+
```
|
|
34
29
|
|
|
35
|
-
|
|
30
|
+
`genne login` abre a autorização no navegador. Confirme a identidade, o papel
|
|
31
|
+
ativo e a conta selecionada depois de autenticar. A origem padrão é
|
|
32
|
+
`https://genne.ai`; `genne env show` mostra o destino efetivo.
|
|
33
|
+
Não peça acesso ao repositório ou credenciais no chat.
|
|
36
34
|
|
|
37
|
-
|
|
35
|
+
## Descoberta e execução
|
|
38
36
|
|
|
39
|
-
|
|
37
|
+
Na CLI, use `genne help CAMINHO` ou `genne CAMINHO --help` para consultar
|
|
38
|
+
sintaxe, parâmetros, papel elegível, entrada JSON e confirmação. O help funciona
|
|
39
|
+
sem sessão. Envie o JSON por stdin conforme indicado; nunca passe senhas,
|
|
40
|
+
códigos ou tokens nos argumentos nem imprima credenciais nas respostas.
|
|
40
41
|
|
|
41
|
-
|
|
42
|
+
No MCP, consulte `tools/list` para os schemas e descrições atuais.
|
|
43
|
+
`genne_help` mostra o catálogo CLI, que não garante uma ferramenta MCP equivalente.
|
|
44
|
+
Se uma operação não estiver disponível, informe a limitação. Não improvise
|
|
45
|
+
chamadas HTTP nem use outro papel ou conta para contorná-la.
|
|
46
|
+
O MCP local por stdio oferece somente leituras.
|
|
42
47
|
|
|
43
|
-
|
|
48
|
+
Antes de escrever, revise o alvo, a conta, os dados propostos e os efeitos
|
|
49
|
+
indicados pelo help ou pela ferramenta, incluindo substituições e exclusões.
|
|
50
|
+
Respeite a confirmação interativa da CLI. Nas escritas MCP remotas:
|
|
44
51
|
|
|
45
|
-
|
|
52
|
+
1. Envie os campos e uma `idempotency_key` estável conforme o schema.
|
|
53
|
+
2. Mostre o link retornado e aguarde a aprovação humana no Genne para a mesma identidade, papel e conta. Uma intenção pendente não significa alteração concluída.
|
|
54
|
+
3. Após aprovação e pedido para continuar, repita os mesmos dados e chave com o `intent_id` retornado. Confira o resultado e consulte o estado quando houver uma leitura disponível.
|
|
46
55
|
|
|
47
|
-
|
|
56
|
+
Nunca invente aprovação nem execute uma intenção rejeitada ou obsoleta.
|
|
57
|
+
Em 412, releia o estado e solicite outra intenção com nova chave; em 403,
|
|
58
|
+
reporte a recusa sem trocar de sessão. Não repita uma escrita automaticamente
|
|
59
|
+
após timeout ou resposta perdida; consulte seu resultado antes de decidir.
|
|
48
60
|
|
|
49
|
-
|
|
61
|
+
Respostas `202`, `queued` ou `processing` exigem acompanhamento pelo comando
|
|
62
|
+
ou ferramenta de consulta indicado; não representam conclusão. Use somente
|
|
63
|
+
IDs, estados e cursores realmente retornados. Preserve os filtros ao usar
|
|
64
|
+
`meta.next_cursor` e não invente dados, paginação ou acesso.
|
|
50
65
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
As escritas remotas desse grupo usam `genne_carrier_desktop_provider_activate`, `genne_carrier_desktop_flow_installation_create`, `genne_carrier_desktop_flow_installation_update`, `genne_carrier_desktop_flow_installation_run`, `genne_carrier_desktop_order_import_batch_create`, `genne_carrier_desktop_extraction_preview`, `genne_carrier_operations_config_update` e `genne_admin_operations_config_update`. Consulte o schema de cada tool em `tools/list`: criação recebe `installation`, atualização recebe `changes`, execução recebe `input`, importação recebe `batch` e extração recebe `extraction`. Admin informa `carrier_account_id` operacional; carrier usa a conta ativa.
|
|
54
|
-
|
|
55
|
-
Envie uma `idempotency_key` estável de 16 a 128 caracteres ASCII alfanuméricos ou `._:-`. A primeira chamada solicita a intenção; revise o efeito no link de aprovação em outra sessão de senha, com o mesmo papel e conta. Só depois repita os mesmos campos e chave com `intent_id`. O Core revalida ACL, snapshot e referências; `412` exige releitura e outra chave. Replay devolve o receipt sem repetir a mutação. Execução queued exige acompanhamento por `genne_carrier_desktop_execution`, e prévia de extração não cria pedidos. O stdio continua somente leitura. Código e testes dos três repositórios não comprovam deploy ou smoke autenticado.
|
|
56
|
-
|
|
57
|
-
Admin usa `admin financial payment-profiles create` com JSON por stdin.
|
|
58
|
-
`profile_mode` e `configuration` são obrigatórios; consulte os campos opcionais no help.
|
|
59
|
-
Para `shipper_owned`, `shipper_account_id` e `base_id` são operacionais, enquanto
|
|
60
|
-
`reference_carrier_id` é financeiro. O Core resolve payer e origem, publica a versão
|
|
61
|
-
e pode desativar o perfil ativo do mesmo contexto. A CLI confirma o UUID de base,
|
|
62
|
-
origem, owner ou client, nessa ordem, ou `payment-profiles` quando ausentes.
|
|
63
|
-
Use `data.origin.id` retornado em `admin financial carrier-margins ORIGIN_ID upsert`,
|
|
64
|
-
com `carrier_id` financeiro e `margin_percent` por stdin. Confirma `ORIGIN_ID` e
|
|
65
|
-
substitui a regra ativa do par carrier/origem, preservando histórico no Core.
|
|
66
|
-
`origin_id` opcional deve coincidir com o path; o body enviado usa o UUID do path.
|
|
67
|
-
Ambos retornam o envelope Core de forma síncrona e exigem `network_configuration.manage`.
|
|
68
|
-
A CLI preserva zero, null e strings decimais, sem calcular valores nem repetir escritas.
|
|
69
|
-
Configuração, faixa da margem e ACL pertencem ao Core. Esses dois comandos não têm
|
|
70
|
-
tools de mutação MCP. Contratos consultados em `genneco/genne-core@c045664b1a5d6e134cff861cb2ae0bd4b7cdc122`,
|
|
71
|
-
`contracts/financial/openapi.yaml` e controllers `admin/payment_profile_controller.ex`
|
|
72
|
-
e `financial/carrier_margin_controller.ex` sob `services/core/apps/genne_web/lib/genne_web_web/controllers/`.
|
|
73
|
-
|
|
74
|
-
O MCP também oferece as leituras Admin de suporte (`genne_admin_support_threads`, `genne_admin_support_thread_messages`), feedback (`genne_admin_feedbacks`, `genne_admin_feedback_show`, `genne_admin_feedback_comments`, `genne_admin_feedback_receipt`), CRM (`genne_admin_crm_assignees`, `genne_admin_crm_leads`, `genne_admin_crm_lead_show`), notificações (`genne_admin_notifications`, `genne_admin_notification_show`), conteúdo (`genne_admin_blog_posts`, `genne_admin_faqs`), privacidade (`genne_admin_privacy_requests`) e onboarding (`genne_admin_onboarding_users`). O driver consulta requisitos e contas de repasse mascaradas por `genne_driver_payout_requirements` e `genne_driver_payout_accounts`. Descubra filtros e UUIDs em `tools/list`; cada tool reutiliza o comando CLI e suas projeções. Esses GETs não autorizam mutações do mesmo domínio.
|
|
75
|
-
|
|
76
|
-
Trate `202` como trabalho aceito, não concluído. Quando a resposta trouxer receipt ou status pendente, consulte o comando de acompanhamento indicado no help antes de afirmar conclusão. Em retries, preserve a mesma chave de idempotência e o mesmo payload; não repita mutações sem verificar o resultado. Em `412 stale_version`, releia o objeto e solicite nova intenção com outra chave; a aprovação anterior não autoriza os dados alterados. O MCP remoto requer autorização OAuth e pode expor intenções de escrita com aprovação Core separada; consentimento OAuth não executa a escrita. Para `genne_user_me_update`, envie somente `changes` de nome, telefone, tipo de veículo ou preferência de navegação, mais chave estável. Para `genne_company_my_account_update`, envie somente `legal_name` ou `trading_name` da empresa da conta carrier/shipper ativa. Para `genne_gr_driver_training_update`, envie o ID público do perfil do motorista e `training_watched` booleano; admin e carrier precisam de `gr.manage`, e carrier só pode alterar um motorista com vínculo ativo. Para `genne_order_triage_address_update`, use IDs públicos do lote e pedido, endereço corrigido e coordenadas em par quando tiver confirmação manual; exige ACL Admin de triagem e invalida as rotas candidatas antigas. Para `genne_receiving_scan`, envie o barcode físico; admin informa também `carrier_account_id`, carrier usa a conta ativa. O Core valida alias, conta, base e ACL e o recibo de recebimento não cria rota. Para `genne_dispatch_route_create`, envie `driver_user_id`, barcodes recebidos e `route_name` opcional; Admin também informa `carrier_account_id`. Revise motorista e pedidos no link de aprovação antes de executar. O receipt contém o ID da rota; confira a cotação separadamente quando ela estiver habilitada. Para `genne_dispatch_route_add_orders`, envie `route_id`, a lista ordenada de `barcodes` recebidos e `reason` opcional; Admin também informa `carrier_account_id`, enquanto carrier usa a conta ativa. A operação só aceita rota manual de expedição ativa, inclusive se a execução já começou. Revise no link de aprovação a rota, o manifesto atual, os pedidos e o motivo antes de executar. O Core rejeita mudanças relevantes de rota, manifesto ou conteúdo dos pedidos desde a aprovação; em retries, preserve a mesma lista e chave. Depois repita o tool com `intent_id` e os mesmos campos. Para `genne_driver_route_start`, informe uma SavedRoute própria do motorista e revise seu estado antes de iniciar; o receipt registra o início e a cotação pode ficar indisponível. A pessoa revisa a intenção no link do Core com o mesmo papel e conta; depois repita o tool com `intent_id` e os mesmos dados.
|
|
77
|
-
|
|
78
|
-
Para `genne_receiving_rule_create`, envie `rule` completo com `code`, `name`, `postal_code_start` e `postal_code_end`; `shipper_id` e `base_id` nulos representam regra global, somente `shipper_id` representa regra do embarcador e `base_id` representa base canônica do embarcador. Admin também informa `carrier_account_id`; carrier usa a conta ativa. Para `genne_receiving_rule_update`, envie `rule_id` e `changes` parcial. Campos de escopo omitidos são preservados e `null` explícito é enviado ao Core para limpar o escopo. O Core exige `physical_receiving.manage`, valida a relação carrier/shipper/base e rejeita base owner carrier em regra por base. Revise before, change, after, CEP normalizado e escopo no link de aprovação; repita com `intent_id`, os mesmos dados e a mesma chave. Um `412 stale_version` exige nova leitura e nova intenção. O receipt devolve a regra pública e o replay não repete a escrita.
|
|
79
|
-
|
|
80
|
-
Para `admin support threads THREAD_ID close|reopen`, a CLI consulta mensagens como prévia, confirma o UUID e envia somente `status: closed|open` ao PATCH. O Core decide `messaging.manage`; cancelamento, UUID divergente, 403/404 e resposta com status inesperado não gravam. Para feedback, `admin feedbacks delete FEEDBACK_ID` faz hard-delete permanente, sem restore do feedback; `admin feedbacks comments FEEDBACK_ID COMMENT_ID delete|restore` oculta ou restaura somente o comentário. As três ações consultam detalhe como prévia, exigem confirmação e retornam 204.
|
|
81
|
-
|
|
82
|
-
O MCP local por stdio permanece read-only. No adaptador remoto, `genne_admin_support_thread_set_status` usa `admin.support_thread.set_status`, `genne_admin_feedback_delete` usa `admin.feedback.delete`, `genne_admin_feedback_comment_delete` usa `admin.feedback_comment.hide` e `genne_admin_feedback_comment_restore` usa `admin.feedback_comment.restore`. Cada schema exige IDs UUID e `idempotency_key` de 16 a 128 caracteres; `intent_id` é opcional no pedido e acompanha o replay com os mesmos dados e chave após aprovação. A aprovação usa senha em outra sessão Admin; um `412` exige releitura, nova intenção e nova chave. O código e os testes locais existem, mas handlers/contratos Core, runtime e smoke autenticado ainda precisam ser validados.
|
|
83
|
-
|
|
84
|
-
Para pedidos, descubra `orders` e `shippers` no help. O embarcador da transportadora usa vínculo gerido pelo carrier; o embarcador cliente usa a própria sessão. A importação cria um lote assíncrono: acompanhe `show` e `orders list`, corrija dados ou geocode pelos comandos do lote. `driver` não tem importação independente; seu fluxo de pedido é o da rota atribuída. Entrega e insucesso são registrados pela execução da rota no Core, sem comando de baixa direta de pedido.
|
|
85
|
-
|
|
86
|
-
Para importar paradas de rota avulsa, use `driver routes imports preview ARQUIVO` com o CSV, XLS, XLSX ou PDF original, inclusive sem cabeçalho. A prévia não cria rota. Em sucesso com `data.ai_inference.status: failed`, a prévia continua utilizável: revise as colunas e repita com `column_mapping=JSON` para o mapeamento manual. Não exija editar a planilha para compensar a inferência. Um 422 de processamento conhecido retorna `error.code`, orientação segura em `error.message` e causa/etapa em `error.data.reason`/`stage`; erros desconhecidos mantêm o fallback HTTP. A importação não é exposta como tool MCP de upload.
|
|
87
|
-
|
|
88
|
-
Para rota avulsa, o motorista cria `driver routes draft create` com origem pura e paradas. Resolva endereços por `driver places search` e `details`, salve os waypoints com coordenadas por `waypoints set` e rode `coordinates validate`. Antes de `optimize` ou `calculate`, guarde `updated_at` e IDs na ordem de `show`. Os comandos retornam IDs de jobs; consulte `driver optimization|calculation JOB_ID show`. Somente após `completed`, aplique a geometria com `optimize|calculate apply JOB_ID`, enviando `expected_updated_at` e `expected_waypoint_ids` do snapshot anterior. O Core compara o snapshot completo no momento da escrita; em 409, consulte a rota e recalcule. A otimização só reordena após esse comando explícito. Revise `show` e use `start` quando apropriado.
|
|
89
|
-
|
|
90
|
-
Para pedidos B2B, materialize a rota pelos comandos de dispatch/workbench da carrier ou shipper. O motorista dono consulta a SavedRoute e executa `failure-policy`, `waypoints WAYPOINT_ID status` ou `items ITEM_ID status` e `finish`; falha requer motivo/observação e pode exigir código de autorização. O MCP remoto expõe `genne_driver_waypoint_notes` com aprovação vinculada para substituir ou limpar a observação da parada própria. O tool remoto `genne_driver_waypoint_packages` altera volumes de uma parada própria sem manifesto importado, com aprovação e repetição segura; zero é válido. O tool remoto `genne_driver_waypoint_navigation_start` registra um evento aditivo aprovado; telemetria é opcional e não altera carga/status. Descubra no help `notes`, `packages`, `navigation start` e `items ITEM_ID enrich`. `navigation start` registra um evento; `packages` não substitui a quantidade controlada pelo manifesto importado. Não altere o manifesto canônico com `waypoints set`. O Core verifica posse, vínculo, estado, policy e ACL; 202 e job `processing` nunca significam rota otimizada ou entrega concluída.
|
|
91
|
-
|
|
92
|
-
Na torre, use `genne help <papel> tower` para descobrir cockpit, chat, consulta de documento e policy conforme o papel ativo. Uma validação de DANFE fornece `assist_token` de uso único para `driver tower assist`; `query_id` permite consultar o resultado. Chat e código de autorização são ações explícitas do operador; nunca envie mensagem nem gere código sem pedido do usuário.
|
|
93
|
-
|
|
94
|
-
Para `genne_tower_failure_policy_update`, envie `reason_codes` do catálogo da torre. Carrier e shipper usam a conta ativa; Admin informa `account_type` e `account_id`. Revise a política anterior e os códigos propostos no link antes de aprovar. A execução é recusada se a política mudar entre prévia e execução.
|
|
95
|
-
|
|
96
|
-
Para `genne_admin_internal_user_access_set`, envie o ID público do usuário interno Admin, `admin_access_level` (`staff` ou `super_admin`) e a lista completa `permission_keys`; para `super_admin`, use lista vazia. O Core exige papel ativo Admin e `access_governance.manage`; a transição de super_admin requer um ator super_admin. Revise usuário e ACL antes/depois no link, depois repita os mesmos campos e a chave com `intent_id`. Um 412 indica que o acesso mudou desde a prévia; consulte o estado atual e crie nova intenção. O receipt contém o nível e permissões efetivas após a escrita.
|
|
97
|
-
|
|
98
|
-
Para `genne_business_member_access_set`, envie `membership_id`, `membership_role` (`owner`, `operator`, `dispatcher` ou `finance`), a lista completa `permission_keys` e `idempotency_key`. Admin também informa `account_id` e precisa de `access_governance.manage`; carrier e shipper usam a conta ativa, omitem `account_id` e precisam de `workspace.permissions.manage`. A aprovação mostra empresa, membro e ACL antes/depois. Repita os mesmos campos e chave com `intent_id`. O Core rejeita permissões fora dos módulos ativos, alterações concorrentes com 412 e remoção do último owner com 409. O receipt mostra papel e permissões efetivas aplicadas.
|
|
99
|
-
|
|
100
|
-
Para `genne_business_member_status_set`, envie `membership_id`, `status` (`active` ou `inactive`) e `idempotency_key`; Admin também informa `account_id`, carrier e shipper usam a conta ativa. Exige `business_accounts_registry.manage` no Admin ou `workspace.members.manage` na conta. Revise empresa, membro e status anterior/proposto em outra sessão browser, depois repita os mesmos campos e chave com `intent_id`. Desativar revoga as sessões do vínculo; o Core rejeita estado concorrente com 412 e a desativação do último owner com 409.
|
|
101
|
-
|
|
102
|
-
Para `genne_business_member_invite`, envie `member` com `email`, `membership_role` e chave estável. Admin também informa `account_id` e `member.workspace_role` como `carrier` ou `shipper`; clientes omitem ambos e usam a conta e o papel ativos. Carrier pode convidar `operator`, `dispatcher` ou `finance`; shipper pode convidar `operator` ou `finance`; Admin também pode atribuir `owner`. Um vínculo existente conserva o acesso e não recebe outro envio. Para `genne_business_member_invitation_resend`, envie `membership_id`, a chave e, no Admin, `account_id`. Revise empresa, destinatário e papel na aprovação separada; depois repita os mesmos campos com `intent_id`. O receipt `delivery_status: pending` indica envio enfileirado. Acompanhe `invitation_delivery` em `genne_my_account_members` ou `genne_admin_account_members`; na CLI, use os comandos de membros do help. Cadastro já enviado não admite reenvio conforme a regra atual. Nunca afirme que o e-mail foi enviado somente pelo receipt MCP.
|
|
103
|
-
|
|
104
|
-
Para `genne_admin_carrier_base_create`, informe a transportadora e os campos obrigatórios da base (`code`, `name`, `origin_address`, `market_id`, `country_code`, `currency_code`, `timezone`). Exige sessão Admin com `network_configuration.manage`. Revise a conta e a base no link de aprovação e repita os mesmos dados e a chave de idempotência com `intent_id`; o receipt contém `base_id`.
|
|
105
|
-
|
|
106
|
-
Para `genne_admin_carrier_base_set_status`, informe `base_id`, `status` (`active` ou `inactive`) e `idempotency_key`. Exige Admin com `network_configuration.manage`; a aprovação mostra a base e a transição. Repita os mesmos dados com `intent_id`. O status altera a disponibilidade operacional da base, sem afirmar mudança da origem financeira. Em 412, consulte a base e crie nova intenção.
|
|
107
|
-
|
|
108
|
-
Para `genne_admin_shipper_base_update` e `genne_admin_carrier_base_update`, informe `account_id` operacional da conta proprietária, `base_id`, `changes` parcial e chave estável. Exigem Admin standalone e `network_configuration.manage`. Campos omitidos são preservados; `null`, mudança de mercado, `country_code`, moeda, ownership e status são recusados. Revise os valores atuais, a alteração e os valores resultantes no link de aprovação, depois repita com `intent_id` e os mesmos dados. A edição de base shipper sincroniza a origem financeira após o commit da alteração e do receipt. Para `genne_admin_shipper_base_set_status`, use os mesmos IDs com `status` (`active` ou `inactive`) em vez de `changes`. O Core revalida ownership, ACL e snapshot antes da escrita. Em 412, releia a base e solicite nova intenção com outra chave. Replay devolve o receipt original.
|
|
109
|
-
|
|
110
|
-
Para `genne_admin_company_update`, informe o `account_id` público da empresa B2B e apenas `legal_name` ou `trading_name` em `changes`, mais `idempotency_key`. Exige papel ativo Admin e `business_accounts_registry.manage`; carrier e shipper continuam usando `genne_company_my_account_update` para a própria conta. Revise UUID, nome e valores anteriores/propostos em outra sessão browser Admin. Repita os mesmos dados e a chave com `intent_id`; o Core recusa mudanças concorrentes e o replay devolve o mesmo receipt.
|
|
111
|
-
|
|
112
|
-
Para `admin companies onboarding-users list`, consulte as identidades ativas de todos os papéis canônicos com `search`, `limit` e `cursor` opcionais; o Core exige `business_accounts_registry.manage` e devolve somente `user_id`, nome, email e status. `account_type` não é filtro dessa coleção. Para `admin companies consult`, envie `cnpj` e `user_id` opcional (UUID) em JSON por stdin. O Core prioriza empresa persistida ou reaproveita a consulta Assertiva latest aprovada e confirmada para o mesmo CNPJ atual do alvo; Assertiva é somente fallback e uma nova consulta não é obrigatória. A resposta traz CNPJ, razão social, nome fantasia e endereço retornados pelo contrato. Para `admin companies onboard-existing-user`, envie `user_id`, `cnpj` e `send_email` opcional (padrão `false`) em JSON por stdin. A CLI confirma o usuário alvo, CNPJ e estado do e-mail antes do POST; o Core valida que a identidade ativa pode receber membership `owner` na conta carrier. O resultado inclui a empresa, o vínculo, os módulos ativos e `email_delivery.status` (`disabled`, `pending`, `sent` ou `failed`).
|
|
113
|
-
|
|
114
|
-
Para `genne_shipper_base_create`, envie `code` e `name` para a conta shipper ativa; endereço, coordenadas em par, timezone, regras de triagem e metadata são opcionais. Exige `route_operations.workbench`. Revise a base no link de aprovação e repita os mesmos dados e a chave de idempotência com `intent_id`. O receipt contém `base_id`; a sincronização financeira idempotente ocorre após o commit da base.
|
|
115
|
-
|
|
116
|
-
Para `genne_admin_shipper_base_create`, informe o embarcador e `code`, `name`, `origin_address`, `market_id`, `country_code`, `currency_code` e `timezone`. Exige sessão Admin autorizada pelo Core para criar bases de embarcadores. Revise a conta e a base em outra sessão e repita `account_id`, `base` e a chave com `intent_id`.
|
|
117
|
-
|
|
118
|
-
Para `genne_carrier_shipper_base_create`, informe `shipper_id` e uma base nova com `code` em maiúsculas e `name`; endereço, coordenadas em par, timezone, regras de triagem e metadata são opcionais. O Core exige a conta carrier ativa e sua ACL para o endpoint de bases do embarcador. A aprovação mostra ambas as contas e a base. Repita `shipper_id`, `base` e a mesma chave com `intent_id`; o receipt inclui base e vínculo carrier.
|
|
119
|
-
|
|
120
|
-
Para `genne_driver_route_finish`, informe a SavedRoute própria depois das baixas exigidas. Revise o estado da rota e a quantidade de paradas em outra sessão driver, depois repita `route_id` e a mesma chave com `intent_id`. O Core recusa versão obsoleta ou waypoint obrigatório pendente; o receipt registra a conclusão e a conciliação financeira existente ocorre após o commit.
|
|
121
|
-
|
|
122
|
-
Para `genne_driver_waypoint_deliver`, informe `route_id` e `waypoint_id` da parada pendente em rota própria. Revise rota, parada e estado no link de aprovação em outra sessão driver. Repita os mesmos IDs e `idempotency_key` com `intent_id`. O Core exige check-in quando aplicável, baixa somente os itens pendentes pelo serviço de execução e registra os eventos operacionais existentes; consulte a rota após o receipt para verificar o estado resultante.
|
|
123
|
-
|
|
124
|
-
Para `genne_driver_package_item_deliver`, informe `route_id`, `waypoint_id` e `item_id` de um item pendente do manifesto da rota própria. Revise o item específico no link de aprovação e repita os mesmos IDs, a chave e `intent_id`. O Core registra a baixa pelo fluxo canônico; o receipt mostra o item entregue e o status da parada, que pode continuar `pending` enquanto houver outros itens.
|
|
125
|
-
|
|
126
|
-
Para `genne_driver_waypoint_check_in`, informe `route_id`, `waypoint_id`, `lat`, `lng` e `accuracy_meters` opcional. O check-in é aditivo e pode ser registrado para qualquer estado da parada dentro da janela de edição; o Core calcula distância, limite e alerta. Revise as coordenadas no link de aprovação em outra sessão driver e repita os mesmos dados, a mesma chave e `intent_id`. O receipt retorna `distance_meters`, `within_threshold`, `alert` e `checked_in_at`; ele não baixa itens nem altera o status da parada.
|
|
127
|
-
|
|
128
|
-
Para `genne_driver_carrier_link`, informe apenas `driver_link_code` e uma `idempotency_key` estável. O Core resolve o código, mostra transportadora e vínculo anterior para aprovação em outra sessão browser do mesmo motorista e não grava o código na intenção ou no receipt. Depois da aprovação, repita o código e a chave com `intent_id`; o Core revalida o código e o estado do vínculo. Na CLI, `users driver carriers link` usa o endpoint direto existente e confirma a ação no terminal.
|
|
129
|
-
|
|
130
|
-
Para convidar um motorista registrado por CPF, use `users carrier drivers invitations create` com JSON por stdin e uma chave de idempotência estável. A CLI confirma sem mostrar o CPF; o Core decide ACL, limites e disponibilidade do destinatário. Consulte `users carrier drivers invitations list|show` e cancele com `invitations cancel`. O motorista consulta `users driver carriers invitations list|show` e responde com `invitations accept|decline`, após confirmação. Preserve a chave e os bytes do payload nos retries. Chaves ASCII sem perda usam header; os demais valores UTF-8 válidos usam JSON, sem trim ou normalização. O MCP expõe somente as leituras `genne_carrier_driver_invitations`, `genne_carrier_driver_invitation_show`, `genne_driver_carrier_invitations` e `genne_driver_carrier_invitation_show`. A disponibilidade depende do contrato Core implantado; convite pendente não confirma vínculo.
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
Para inspecionar atendimento e distribuição, descubra `genne_admin_shipper_base_zones`, `genne_admin_carrier_base_zones`, `genne_admin_shipper_base_carrier_shares` e `genne_carrier_base_reference_zones`. Na CLI, use `admin shippers|carriers OPERATIONAL_ACCOUNT_ID bases BASE_ID zone-overrides list`, `admin shippers OPERATIONAL_ACCOUNT_ID bases BASE_ID carrier-shares list` ou `carrier bases BASE_ID reference-zone-features list`. As leituras são síncronas, sem stdin ou confirmação, disponíveis por stdio e MCP remoto com escopo de leitura. Admin exige `network_configuration.view` ou `network_configuration.manage`; carrier usa a conta ativa e `route_operations.view`, `route_operations.workbench` ou `route_operations.publish`, revalidadas pelo Core. Driver e shipper não herdam acesso Admin/carrier; shipper conserva seus tools de shares e catálogo próprios.
|
|
134
|
-
|
|
135
|
-
Obtenha o ID operacional em `admin companies show BUSINESS_ACCOUNT_ID`, nos objetos `shipper_account.id` ou `carrier_account.id`, depois liste as bases dessa conta. Os tools Admin validam essa referência antes da consulta; isso não substitui a ACL Core. `zone-overrides` retorna zonas efetivas salvas, incluindo overrides, enquanto `reference-zone-features` é catálogo OSM para composição e não comprova cobertura operacional. Neste catálogo, `limit`, `cursor`, `search`, bbox (`min_lng`, `min_lat`, `max_lng`, `max_lat`) e `include_geometry` são opcionais; preserve `meta.next_cursor` para a próxima página. Shares configurados não comprovam alocação executada. Cutoff não tem GET dedicado. Escritas MCP de área, agrupamentos e shares aguardam handlers Core com snapshot de filhos/referências, locks compartilhados com writers HTTP e mutation/receipt atômicos; não execute o comando CLI mutável como substituto de aprovação MCP.
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
Para `genne_admin_shipper_base_cutoff_windows_set` e `genne_admin_carrier_base_cutoff_windows_set`, use `account_id` operacional proprietário, `base_id`, `windows` e chave estável de idempotência. Cada janela contém `weekday` 0..6 (domingo..sábado), `cutoff_time` HH:MM[:SS] no timezone da base e `auto_publish` booleano opcional (padrão true). A lista substitui todos os horários; `[]` remove todos. Exige Admin standalone com `network_configuration.manage`. Revise conta, base, timezone, filhos atuais e resultado proposto em outra sessão browser. Depois repita exatamente os dados e a chave com `intent_id`. O Core compara também os filhos e grava substituição e receipt na mesma transação, usando o lock dos writers HTTP. Em 412, releia e crie nova intenção com nova chave. Replay devolve o receipt original. As tools são remotas com escopo de escrita; stdio conserva somente leituras. Disponibilidade depende do deploy do handler Core correspondente, verificado separadamente.
|
|
139
|
-
|
|
140
|
-
Consultas adicionais são síncronas e não exigem confirmação: `genne_admin_gr_driver_profile` usa o perfil público e ACL GR Admin; `genne_import_source_preview` usa `role` admin/carrier/shipper e `batch_id` autorizado. `genne_shipper_route_candidates` e `genne_carrier_route_candidates` consultam candidatos de planejamento pelos comandos `shipper|carrier route-candidates list`, distintos das rotas operacionais e SavedRoutes. `genne_tower_failure_catalog` consulta o catálogo global pelos comandos `<papel> tower failure-reasons catalog-global`; não gera códigos nem consome autorização. Os filtros disponíveis estão no schema MCP e help CLI.
|
|
141
|
-
|
|
142
|
-
Para gerenciar GR pelo terminal, consulte `genne help admin gr` ou `genne help carrier gr`. `admin gr drivers` consulta o diretório global, incluindo motoristas sem vínculo, e aceita `carrier_account_id` opcional; o MCP usa `genne_admin_gr_driver_directory`, enquanto `genne_admin_gr_drivers` conserva o escopo carrier explícito. Driver e shipper não operam essas ferramentas. O motorista informa `training_watched` booleano em `driver profile draft|complete` e consulta o estado em `driver profile show`.
|
|
143
|
-
|
|
144
|
-
Para GR aprovado fora do sistema, use `carrier gr links LINK_ID manual-approval` ou `admin gr carriers CARRIER_ID links LINK_ID manual-approval`. Envie somente `{"approved":true}` ou `{"approved":false}` por JSON stdin e confirme o UUID público do vínculo após revisar a ação e a transportadora. Não use o ID do usuário/perfil. Carrier usa a conta da sessão; Admin informa a transportadora explicitamente. O Core exige `gr.manage` e vínculo ativo não bloqueado, registra autor/data e limita a decisão àquela transportadora. Revogar remove a aprovação manual, sem alterar evidências/status do provider nem treinamento. A resposta síncrona inclui `manual_approval`; não repita automaticamente após erro. Requer o endpoint Core de aprovação manual disponível no ambiente. Essa mutação é exclusiva da CLI, sem tool MCP equivalente ou chamada HTTP direta como fallback.
|
|
145
|
-
|
|
146
|
-
Reprocessamento documental usa `carrier gr drivers PROFILE_ID documents TYPE reprocess` ou `admin gr carriers CARRIER_ID drivers PROFILE_ID documents TYPE reprocess`, com JSON por stdin contendo `document_id`, `registration_request_id` e `requirements_revision` quando presentes na prévia. `requests REQUEST_ID retry` solicita nova execução; `verify` reconcilia; `confirm-recovery` recebe a revisão e operações exatas mostradas na prévia. A confirmação terminal mostra esses valores e o Core rejeita revisão obsoleta. `show`, `attempts`, `evidence` e `orchestration-events` acompanham o resultado; 202 não comprova conclusão. A matriz completa está em `GR.md`, distribuído no pacote.
|
|
147
|
-
|
|
148
|
-
GR: o Core resolve mapeamento ativo solicitado, primeiro mapeamento ativo ou fallback legado existente. `operation` altera apenas solicitações legadas antes da primeira escrita externa; novas solicitações usam o workflow atual. Não trate o fallback como uma operação ativa escolhida pelo cliente. Pedidos: upsert carrier/Admin mantém a semântica existente; não equivale a patch e não há upsert shipper. Prévia de origem não cria lote nem pedido.
|
|
149
|
-
|
|
150
|
-
O handler atual de candidatos shipper ignora `base_id`/`status` anunciados no contrato e retorna somente `data`; carrier também não retorna cursor. Não afirme que os candidatos foram filtrados nem invente paginação no cliente. TD-08 acompanha o alinhamento Core.
|
|
151
|
-
|
|
152
|
-
Cutoff shipper com dispatches vinculados (inclusive histórico) retorna `409 cutoff_dispatches_exist` e preserva horários/execuções. Se a referência surgir após aprovação, o snapshot fica obsoleto e exige nova intenção. Não há cancelamento ou reagendamento implícito.
|
|
66
|
+
Exiba somente os dados necessários ao pedido. Autenticação, abertura do
|
|
67
|
+
plugin e sucesso de uma operação são verificações distintas.
|
package/src/help.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var v=Object.defineProperty;var n=(e,r)=>v(e,"name",{value:r,configurable:!0});import{globalHelp as g}from"./global.js";const u=[],a=n((e,r)=>{for(const[o,t,s,i]of r)u.push({usage:`genne ${o}`,roles:e,description:t,...s?{input:s}:{},...i?{confirmation:"terminal interativo"}:{}})},"add");a(["public"],[["help [CAMINHO]","Lista comandos ou detalha um caminho, sem autentica\xE7\xE3o."],["login","Autoriza uma sess\xE3o CLI pelo navegador em Prod por padr\xE3o; herda o papel e a conta selecionados na sess\xE3o que aprova."],["env show","Mostra a origem API (Prod por padr\xE3o ou GENNE_API_URL) e a disponibilidade da sess\xE3o salva, sem expor credenciais."],["users driver register","Cadastra uma conta de motorista.","JSON: name, email, password, phone E.164, registration_market_code BR|US"],["auth membership-invitations accept","Aceita convite de v\xEDnculo B2B; identidade j\xE1 ativa pode enviar s\xF3 token.","JSON obrigat\xF3rio: token; para ativar identidade convidada, name, phone E.164, password, registration_market_code BR|US; cpf opcional"],["password forgot","Solicita recupera\xE7\xE3o de senha.","JSON: email"],["password reset","Redefine senha com o c\xF3digo recebido.","JSON: email, code, password"]]),a(["public"],g),a(["driver","admin","carrier","shipper"],[["whoami","Mostra identidade, papel ativo e, para cliente B2B, conta selecionada."],["users me","Consulta o resumo do pr\xF3prio usu\xE1rio."],["user me","Consulta o resumo do pr\xF3prio usu\xE1rio."],["user me update","Atualiza o pr\xF3prio perfil.","JSON: name, phone, vehicle_type, navigation_app_preference"],["user me photo","Envia a pr\xF3pria foto.","JSON: path para JPG, PNG, WebP, HEIC ou HEIF at\xE9 6 MiB"],["user me email-change request","Solicita troca do pr\xF3prio email.","JSON: current_password, new_email"],["user me email-change confirm","Confirma troca de email e encerra as sess\xF5es.","JSON: code",!0],["user me deletion-request","Solicita exclus\xE3o dos pr\xF3prios dados.","JSON: accepted_terms=true",!0],["password change","Altera a pr\xF3pria senha.","JSON: current_password, new_password"],["logout","Revoga a sess\xE3o CLI salva."],["session logout","Revoga a sess\xE3o atual."],["session logout-all","Revoga todas as sess\xF5es da identidade.",null,!0]]),a(["carrier"],[["user me driver-access enable","Habilita motorista para o pr\xF3prio owner carrier ativo. Preserva a empresa; altera\xE7\xE3o efetiva encerra suas sess\xF5es e exige genne login. Ap\xF3s timeout, fa\xE7a login e consulte user me antes de repetir.","JSON em stdin: current_password obrigat\xF3rio; confirma o UUID da pr\xF3pria identidade",!0]]),a(["driver"],[["users driver carriers invitations list [status=S] [limit=N] [cursor=X]","Lista convites do motorista; status=pending|accepted|declined|cancelled|expired, limit=1..100 (padr\xE3o 20), cursor opaco."],["users driver carriers invitations show INVITATION_ID","Consulta identidade da carrier, validade e estado can\xF4nico do pr\xF3prio convite."],["users driver carriers invitations accept INVITATION_ID","Aceita convite e cria v\xEDnculo atomicamente no Core. Retry com a mesma chave preserva resultado; decis\xE3o oposta gera conflito. N\xE3o altera prefer\xEAncia ou outras carriers.","JSON em stdin: idempotency_key (Unicode v\xE1lido sem U+0000, 1 a 128 codepoints), sem normaliza\xE7\xE3o; header Idempotency-Key para ASCII printable sem espa\xE7os nas bordas, body idempotency_key para os demais valores",!0],["users driver carriers invitations decline INVITATION_ID","Recusa convite sem criar v\xEDnculo; retry com a mesma chave preserva resultado. Consulte show ap\xF3s conflito.","JSON em stdin: idempotency_key (Unicode v\xE1lido sem U+0000, 1 a 128 codepoints), sem normaliza\xE7\xE3o; header Idempotency-Key para ASCII printable sem espa\xE7os nas bordas, body idempotency_key para os demais valores",!0],["users driver profile","Consulta o resumo do pr\xF3prio cadastro de motorista."],["users driver carriers list","Lista v\xEDnculos com transportadoras."],["users driver carriers link","Vincula-se por c\xF3digo da transportadora.","JSON: driver_link_code (5 caracteres)",!0],["users driver carriers unlink CARRIER_ID","Remove um v\xEDnculo com transportadora.",null,!0],["users driver carriers preference","Define prefer\xEAncia de rota.","JSON: preference=independent_driver|carrier_direct; carrier_account_id se carrier_direct",!0],["driver profile show","Consulta cadastro operacional, prontid\xE3o GR, treinamento e estado dos documentos pr\xF3prios."],["driver profile draft","Salva rascunho do cadastro; campos opcionais conforme etapa.","JSON: personal_document_type, personal_document_number, personal_document_value, issuing_country_code, cpf, cnpj, mei_cnpj, cnh_number, cnh_state, cnh_security_code, naturalness, whatsapp_phone, emergency_whatsapp, emergency_contact_relationship, has_antt, antt_status, ownership_pending, has_vehicle, vehicle_owner_is_driver, vehicle_profile, vehicle_plate_state, vehicle_plate_city, vehicle_fleet_number, vehicle_axle_count, vehicle_bodywork, transportadora_client, client, operation_base, magazine_base, operation_state, operation_city, operation_region, operation_notes, has_mei, no_mei, mei_absence_reason, referral_whatsapp, residential_street, residential_number, residential_complement, residential_neighborhood, residential_city, residential_state, residential_postal_code, training_watched (booleano); documents opcional com caminhos cnh, crlv, antt, ownership_document, selfie, address_proof (PDF/JPG/PNG at\xE9 12 MiB)"],["driver profile complete","Envia cadastro completo; o Core valida a completude.","JSON: mesmos campos e documents de driver profile draft; consulte genne help driver profile draft"],["driver profile revalidate BLOCK","Revalida cnh, cnpj_mei, vehicle, residential_address, operation_preferences ou antt."],["driver profile mei consult","Consulta o CNPJ MEI do titular.","JSON: cnpj (14 d\xEDgitos)"],["driver profile mei confirm","Confirma o CNPJ MEI do titular.","JSON: cnpj (14 d\xEDgitos)"],["driver payout requirements BR|US","Consulta contrato de dados banc\xE1rios por mercado."],["driver payout accounts BR|US","Consulta repasse mascarado e vers\xE3o de proje\xE7\xE3o."],["driver payout primary","Substitui conta prim\xE1ria de repasse com controle de vers\xE3o e idempot\xEAncia.","JSON obrigat\xF3rio: market_code BR|US, rail bank_transfer|ach, requirements_version, expected_projection_version, account_number, account_type, holder_name, idempotency_key; opcionais: institution_identifier, branch_identifier, routing_number, holder_type, holder_document_type/value, holder_phone",!0],["driver market-context set","Seleciona a base operacional ou o mercado independente do motorista.","JSON: scope_type=shipper_base|carrier_base e scope_id=UUID, ou scope_type=independent e market_id=UUID"]]),a(["driver"],[["driver places search CONSULTA","Busca endere\xE7os para obter place_id no mercado do motorista."],["driver places details PLACE_ID","Resolve o lugar escolhido em endere\xE7o e coordenadas; confira o resultado antes de salvar."],["driver routes list [limit=N] [cursor=X] [status=X] [is_favorite=X] [date_from=X] [date_to=X] [search=X]","Lista SavedRoutes do motorista; status=open|completed|closed, is_favorite=true|false e datas AAAA-MM-DD."],["driver routes plan create","Enfileira planejamento com endere\xE7os ou waypoints; optimize=true \xE9 opcional e 202 retorna plan_public_id sem criar SavedRoute.","JSON: locations ou waypoints (2 a 500 itens), cada item pode ser endere\xE7o ou objeto com address/lat/lng; optimize, optimize_start, optimize_end, return_to_start, current_location e vehicle_type opcionais",!0],["driver routes plan JOB_ID show","Consulta o job de planejamento at\xE9 status completed ou failed; use os waypoints e a geometria conclu\xEDdos para criar o draft."],["driver routes imports preview ARQUIVO [persist_order_id_choice=true|false] [column_mapping=JSON]","Pr\xE9via de CSV, XLS, XLSX ou PDF local at\xE9 50 MiB; n\xE3o cria rota. Envie o arquivo original, inclusive sem cabe\xE7alho. Se data.ai_inference.status for failed em resposta de sucesso, a pr\xE9via continua utiliz\xE1vel: revise as colunas e repita com column_mapping=JSON. Erros de processamento 422 conhecidos retornam error.code, error.message seguro e error.data.reason/stage."],["driver routes draft create","Cria draft manual_app. Informe origem pura e paradas; use places details para preencher coordenadas.","JSON: name e waypoints obrigat\xF3rios; waypoints com type, address e, quando resolvidos, lat/lng; return_to_start e driver_payment_profile_public_id opcionais",!0],["driver routes ROUTE_ID show","Consulta SavedRoute, waypoints, manifesto e estado de execu\xE7\xE3o."],["driver routes ROUTE_ID waypoints set","Salva a lista completa de waypoints execut\xE1veis; preserve IDs e manifesto da rota operacional.","JSON: waypoints (lista completa com type; id para pontos existentes, sequence, address, lat/lng, stop_kind, reference_kind e demais campos execut\xE1veis)",!0],["driver routes ROUTE_ID coordinates validate","Verifica localmente as coordenadas dos waypoints salvos; endere\xE7o sozinho n\xE3o basta para otimizar."],["driver routes ROUTE_ID optimize","Enfileira otimiza\xE7\xE3o de waypoints com coordenadas; 202 retorna optimize_public_id e n\xE3o altera a SavedRoute.",null,!0],["driver optimization JOB_ID show","Consulta job de otimiza\xE7\xE3o at\xE9 status completed ou failed."],["driver routes ROUTE_ID optimize apply JOB_ID","Aplica ordem e geometria de job completed; o Core rejeita a escrita se a rota mudar ap\xF3s a leitura.","JSON: expected_waypoint_ids e expected_updated_at exibidos em routes ROUTE_ID show antes de otimizar",!0],["driver routes ROUTE_ID calculate","Enfileira c\xE1lculo sem otimizar; 202 retorna calculate_public_id e n\xE3o altera a SavedRoute.",null,!0],["driver calculation JOB_ID show","Consulta job de c\xE1lculo at\xE9 status completed ou failed."],["driver routes ROUTE_ID calculate apply JOB_ID","Aplica geometria de c\xE1lculo completed sem mudar a sequ\xEAncia; o Core rejeita snapshot alterado.","JSON: expected_waypoint_ids e expected_updated_at exibidos em routes ROUTE_ID show antes de calcular",!0],["driver routes ROUTE_ID start","Inicia execu\xE7\xE3o da SavedRoute pr\xF3pria ap\xF3s revisar rota e cota\xE7\xE3o aplic\xE1vel.",null,!0],["driver routes ROUTE_ID reactivate","Reabre uma rota manual antiga para o dia civil atual; rota operacional exige o fluxo B2B.",null,!0],["driver routes ROUTE_ID clone","Clona a SavedRoute pr\xF3pria em um novo draft, preservando waypoints e reiniciando execu\xE7\xE3o.",null,!0],["driver routes ROUTE_ID waypoints WAYPOINT_ID failure-policy","Consulta motivos de insucesso e exig\xEAncia de autoriza\xE7\xE3o do waypoint."],["driver routes ROUTE_ID waypoints WAYPOINT_ID notes","Atualiza a observa\xE7\xE3o da parada pr\xF3pria; string vazia limpa a observa\xE7\xE3o.","JSON: notes (string)",!0],["driver routes ROUTE_ID waypoints WAYPOINT_ID packages","Atualiza a quantidade de pacotes da parada; o Core recusa manifesto gerido por importa\xE7\xE3o.","JSON: packages_count (inteiro n\xE3o negativo)",!0],["driver routes ROUTE_ID waypoints WAYPOINT_ID navigation start","Registra o evento de in\xEDcio de navega\xE7\xE3o; n\xE3o abre um navegador ou aplicativo de mapas.","JSON: {} ou navigation_provider, nav_sdk_version, boot_duration_ms, waypoint_index e packages_count opcionais",!0],["driver routes ROUTE_ID waypoints WAYPOINT_ID items ITEM_ID enrich","Consulta os dados do item a partir da DANFE importada, com o cache existente do Core.",null,!0],["driver routes ROUTE_ID waypoints WAYPOINT_ID check-in","Registra a posi\xE7\xE3o informada para o check-in da parada; o Core calcula dist\xE2ncia e alerta.","JSON obrigat\xF3rio: lat e lng num\xE9ricos; accuracy_meters opcional",!0],["driver routes ROUTE_ID waypoints WAYPOINT_ID status","Registra baixa de waypoint pela Route.Execution; failed exige motivo e observa\xE7\xE3o.","JSON: status=pending|delivered|failed; para failed, failure_reason_code, failure_observation e failure_authorization_code se exigido",!0],["driver routes ROUTE_ID waypoints WAYPOINT_ID items ITEM_ID status","Registra baixa de item do manifesto pela Route.Execution.","JSON: status=pending|delivered|failed; para failed, failure_reason_code, failure_observation e failure_authorization_code se exigido",!0],["driver routes ROUTE_ID finish","Conclui rota pr\xF3pria depois que os waypoints exigidos tiverem baixa.",null,!0]]),a(["admin"],[["users admin list [limit=N] [cursor=X] [role=R] [search=X]","Lista usu\xE1rios vis\xEDveis \xE0 ACL interna."],["users admin show USER_ID","Consulta um usu\xE1rio."],["users admin driver-profile DRIVER_ID show","Consulta perfil operacional autorizado de um motorista."],["users admin driver-profile DRIVER_ID update","Corrige campos operacionais do motorista.","JSON: reason e profile com operation_base, operation_state, operation_city, operation_region, operation_notes, work_status, work_status_active, has_vehicle, vehicle_profile, vehicle_plate_state, vehicle_plate_city, vehicle_fleet_number, vehicle_axle_count, vehicle_bodywork",!0],["users drivers list [limit=N] [cursor=X] [search=X] [status=S] [carrier_account_id=UUID] [shipper_account_id=UUID]","Lista o diret\xF3rio de motoristas."],["admin users create","Cria usu\xE1rio; admin comum nasce staff sem grants.","JSON: name, email, password, phone E.164, registration_market_code BR|US, is_internal opcional",!0],["admin users USER_ID update","Atualiza usu\xE1rio.","JSON: um ou mais de name, email, phone, is_internal",!0],["admin users USER_ID block|unblock","Bloqueia ou desbloqueia usu\xE1rio.",null,!0],["admin users USER_ID roles","Altera pap\xE9is da identidade.","JSON: roles, reason",!0],["admin users USER_ID driver-access enable","Habilita motorista para um owner carrier ativo. Exige users.internal_admin.manage e access_governance.manage; encerra as sess\xF5es do alvo e preserva a sess\xE3o do executor. J\xE1 habilitado retorna changed=false.","JSON em stdin: reason obrigat\xF3rio; confirma o UUID da identidade alvo",!0],["admin users USER_ID password","Redefine senha de usu\xE1rio.","JSON: password, reason",!0],["admin users USER_ID delete","Exclui usu\xE1rio ap\xF3s pr\xE9via; depend\xEAncias bloqueiam a exclus\xE3o.","JSON: email do usu\xE1rio",!0],["admin privacy preview","Consulta pr\xE9via de exclus\xE3o sem expor a inten\xE7\xE3o.","JSON: user_id ou email"],["admin privacy requests","Lista pedidos de exclus\xE3o."],["admin privacy requests status REQUEST_ID","Marca status de pedido; excluido n\xE3o prova apagamento.","JSON: new_status=solicitado|excluido|nao_ha_dados",!0],["access catalog","Consulta cat\xE1logo de permiss\xF5es internas."],["access accounts list [account_type=carrier|shipper] [limit=N] [cursor=X] [search=X]","Lista contas no escopo da ACL interna."],["access members list [status=X] [membership_role=X] [carrier_account_id=UUID] [shipper_account_id=UUID] [limit=N] [cursor=X] [search=X]","Lista v\xEDnculos B2B vis\xEDveis."],["access internal list","Lista acesso de usu\xE1rios internos."],["access internal show USER_ID","Consulta grants internos de um usu\xE1rio."],["access internal set USER_ID","Altera ACL interna conforme grants do ator.","JSON: access com admin_access_level ou permission_keys",!0],["access account ACCOUNT_ID members","Lista membros da conta."],["access account ACCOUNT_ID members create","Convida membro para a conta.","JSON: member com email, membership_role, workspace_role",!0],["access account ACCOUNT_ID members MEMBERSHIP_ID update","Atualiza v\xEDnculo do membro.","JSON: member com status, membership_role, workspace_role ou metadata",!0],["access account ACCOUNT_ID members MEMBERSHIP_ID resend-invitation","Reenvia convite pendente.",null,!0],["access account ACCOUNT_ID entitlements","Consulta m\xF3dulos da conta."],["access account ACCOUNT_ID entitlements set","Altera m\xF3dulos da conta.","JSON: access.module_keys",!0],["access account ACCOUNT_ID member-access MEMBERSHIP_ID","Consulta permiss\xF5es do membro."],["access account ACCOUNT_ID member-access MEMBERSHIP_ID set","Altera permiss\xF5es do membro.","JSON: access.permission_keys",!0],["access account ACCOUNT_ID member-bases MEMBERSHIP_ID","Consulta bases do membro."],["access account ACCOUNT_ID member-bases MEMBERSHIP_ID set","Altera bases do membro.","JSON: access.base_ids",!0]]),a(["carrier","shipper"],[["company my-account show","Consulta a empresa da sess\xE3o."],["company my-account update","Atualiza dados permitidos da empresa da sess\xE3o.","JSON: um ou mais de legal_name, trading_name, document, issuing_country_code, legal_identifier, contact_points, addresses",!0],["access my-account catalog","Consulta cat\xE1logo de permiss\xF5es B2B."],["access my-account members","Lista membros da conta da sess\xE3o."],["access my-account members create","Convida membro para a conta da sess\xE3o.","JSON: member com email e membership_role",!0],["access my-account members MEMBERSHIP_ID update","Atualiza v\xEDnculo de membro.","JSON: member com status, membership_role ou metadata",!0],["access my-account members MEMBERSHIP_ID resend-invitation","Reenvia convite pendente.",null,!0],["access my-account entitlements","Consulta m\xF3dulos da conta da sess\xE3o."],["access my-account entitlements set","Altera m\xF3dulos conforme a ACL B2B.","JSON: access.module_keys",!0],["access my-account member-access MEMBERSHIP_ID","Consulta permiss\xF5es do membro."],["access my-account member-access MEMBERSHIP_ID set","Altera permiss\xF5es do membro.","JSON: access.permission_keys",!0]]),a(["carrier"],[["users carrier drivers invitations create","Envia convite por CPF para motorista registrado. Exige m\xF3dulo carrier_driver_invitations ativo e permiss\xE3o manage no Core; nenhum grant \xE9 autom\xE1tico. Retorna convite pending, n\xE3o v\xEDnculo. Retry deve reutilizar chave e CPF.","JSON em stdin: cpf (string), idempotency_key (Unicode v\xE1lido sem U+0000, 1 a 128 codepoints), sem normaliza\xE7\xE3o; header Idempotency-Key para ASCII printable sem espa\xE7os nas bordas, body idempotency_key para os demais valores; CPF n\xE3o \xE9 argumento de shell",!0],["users carrier drivers invitations list [status=S] [limit=N] [cursor=X]","Lista convites da conta ativa com CPF mascarado; Core exige m\xF3dulo ativo e view OU manage. status=pending|accepted|declined|cancelled|expired, limit=1..100 (padr\xE3o 20), cursor opaco."],["users carrier drivers invitations show INVITATION_ID","Consulta convite da conta ativa com CPF mascarado; Core exige m\xF3dulo ativo e view OU manage."],["users carrier drivers invitations cancel INVITATION_ID","Cancela convite pendente da conta ativa; Core exige m\xF3dulo ativo e manage. Retry reutiliza a chave; consulte show ap\xF3s conflito.","JSON em stdin: idempotency_key (Unicode v\xE1lido sem U+0000, 1 a 128 codepoints), sem normaliza\xE7\xE3o; header Idempotency-Key para ASCII printable sem espa\xE7os nas bordas, body idempotency_key para os demais valores",!0],["users carrier drivers list [base_id=UUID] [limit=N] [cursor=X] [search=X]","Lista motoristas da transportadora."],["users carrier drivers link DRIVER_USER_ID","Consulta v\xEDnculo com motorista."],["users carrier drivers link DRIVER_USER_ID set-bases","Altera bases do v\xEDnculo.","JSON: base_ids",!0]]),a(["admin"],[["admin support threads list [status=open|closed] [limit=N] [cursor=X]","Lista conversas de suporte."],["admin support threads THREAD_ID messages [limit=N] [cursor=X]","Consulta mensagens da conversa."],["admin support threads THREAD_ID reply","Mostra at\xE9 100 mensagens antes da resposta; pagine o hist\xF3rico se houver mais.","JSON: body (1 a 4000 caracteres)",!0],["admin support threads THREAD_ID close","Fecha a conversa ap\xF3s pr\xE9via e confirma\xE7\xE3o pelo UUID. Exige messaging.manage no Core; resultado s\xEDncrono.","Sem JSON de entrada",!0],["admin support threads THREAD_ID reopen","Reabre a conversa ap\xF3s pr\xE9via e confirma\xE7\xE3o pelo UUID. Exige messaging.manage no Core; resultado s\xEDncrono.","Sem JSON de entrada",!0],["admin feedbacks list [status=S] [user_id=UUID] [order=recent|votes|oldest] [limit=N] [cursor=X]","Lista feedbacks."],["admin feedbacks show FEEDBACK_ID","Consulta feedback."],["admin feedbacks comments FEEDBACK_ID [limit=N] [cursor=X]","Lista coment\xE1rios."],["admin feedbacks delete FEEDBACK_ID","Exclui permanentemente o feedback ap\xF3s pr\xE9via e confirma\xE7\xE3o pelo UUID. O Core exige feedbacks.manage; HTTP 204 confirma conclus\xE3o.","Sem JSON de entrada; n\xE3o h\xE1 restore de feedback",!0],["admin feedbacks comments FEEDBACK_ID COMMENT_ID delete","Oculta o coment\xE1rio do feedback ap\xF3s pr\xE9via e confirma\xE7\xE3o pelo UUID do coment\xE1rio. O Core verifica v\xEDnculo e feedbacks.manage; HTTP 204 confirma conclus\xE3o.","Sem JSON de entrada",!0],["admin feedbacks comments FEEDBACK_ID COMMENT_ID restore","Restaura um coment\xE1rio oculto do feedback ap\xF3s pr\xE9via e confirma\xE7\xE3o pelo UUID do coment\xE1rio. O Core verifica v\xEDnculo e feedbacks.manage; HTTP 204 confirma conclus\xE3o.","Sem JSON de entrada",!0],["admin feedbacks comment FEEDBACK_ID key=CHAVE","Comenta com chave idempotente de 16 a 255 caracteres.","JSON: content, image_url opcional",!0],["admin feedbacks status FEEDBACK_ID key=CHAVE","Solicita mudan\xE7a de status; 202 pending exige consulta do receipt. Reuse chave e payload no retry.","JSON: new_status=pending|in_progress|prioritized|resolved|canceled|duplicate; closing_comment_id e reason opcionais",!0],["admin feedbacks receipt FEEDBACK_ID RECEIPT_ID","Consulta o resultado de uma mudan\xE7a terminal."],["admin crm assignees","Lista respons\xE1veis eleg\xEDveis por leads."],["admin crm leads list [status=S] [search=X] [limit=N] [cursor=X]","Lista leads."],["admin crm leads show LEAD_ID","Consulta lead e eventos."],["admin crm leads LEAD_ID status","Altera status do lead.","JSON: new_status=novo|em_contato|qualificado|perdido|convertido",!0],["admin crm leads LEAD_ID note","Adiciona nota ao lead.","JSON: note",!0],["admin crm leads LEAD_ID assign","Atribui respons\xE1vel eleg\xEDvel.","JSON: admin_id",!0],["admin notifications list [limit=N] [cursor=X]","Lista notifica\xE7\xF5es."],["admin notifications show MESSAGE_GROUP_ID","Consulta processamento e destinat\xE1rios autorizados."],["admin notifications send","Enfileira notifica\xE7\xE3o individual; 202 n\xE3o prova entrega.","JSON: user_id, title, body; action_url e action_label opcionais",!0],["admin blog posts list [locale=pt-BR|en|es] [translation_group_id=UUID]","Lista posts, inclusive rascunhos."],["admin blog posts create key=CHAVE","Cria post com idempot\xEAncia; chave est\xE1vel de 16 a 255 caracteres.","JSON obrigat\xF3rio: slug, title, description, author, category, content_markdown, content_html; opcionais: locale, tags, cover_image_url, published",!0],["--non-interactive admin blog posts create key=CHAVE","Exce\xE7\xE3o exclusiva do Growth para criar post sem confirma\xE7\xE3o no terminal; n\xE3o libera outras muta\xE7\xF5es.","JSON: mesmo contrato de admin blog posts create"],["admin blog posts POST_ID update","Atualiza post com If-Match.","JSON: version e campos alterados",!0],["admin blog posts POST_ID publish|unpublish version=N","Altera publica\xE7\xE3o com vers\xE3o esperada.",null,!0],["admin blog posts POST_ID delete","Exclui post.",null,!0],["admin blog images upload ARQUIVO","Envia imagem PNG, JPEG, WebP ou GIF at\xE9 8 MiB.",null,!0],["admin faqs list [path=X] [route_key=X] [locale=pt-BR|en|es] [category=X] [featured=true|false] [q=X]","Lista FAQs, inclusive rascunhos."],["admin faqs create key=CHAVE","Cria FAQ com idempot\xEAncia; chave est\xE1vel de 16 a 255 caracteres.","JSON obrigat\xF3rio: question, answer, category, paths ou route_keys; opcionais: locale, tags, featured_on_home, position, published",!0],["admin faqs FAQ_ID update","Atualiza FAQ com If-Match.","JSON: version e campos alterados",!0],["admin faqs FAQ_ID publish|unpublish version=N","Altera publica\xE7\xE3o com vers\xE3o esperada.",null,!0],["admin faqs FAQ_ID delete","Exclui FAQ.",null,!0],["admin companies list [account_type=carrier|shipper] [search=X] [limit=N] [cursor=X]","Lista empresas B2B."],["admin companies show BUSINESS_ACCOUNT_ID","Consulta empresa pelo ID jur\xEDdico; IDs operacionais de shipper/carrier s\xE3o distintos."],["admin companies consult","Consulta primeiro empresa persistida ou reaproveita a consulta Assertiva latest aprovada e confirmada para o mesmo CNPJ atual do alvo; usa Assertiva somente como fallback e n\xE3o exige nova consulta. Retorna CNPJ, nomes e endere\xE7o vindos do Core, sem confirma\xE7\xE3o.","JSON em stdin: cnpj (string) e user_id opcional (UUID); o reaproveitamento dos dados e o fallback, al\xE9m da valida\xE7\xE3o empresarial, pertencem ao Core"],["admin companies onboard-existing-user","Registra usu\xE1rio ativo existente como owner da conta carrier; o Core valida empresa, membership e ACL. Retorna empresa, v\xEDnculo, m\xF3dulos ativos e email_delivery.status=disabled|pending|sent|failed.","JSON em stdin: user_id (UUID), cnpj (string), send_email (booleano opcional; padr\xE3o false)",!0],["admin companies onboarding-users list [search=X] [limit=N] [cursor=X]","Lista identidades ativas de pap\xE9is can\xF4nicos para onboarding; exige business_accounts_registry.manage no Core e retorna somente user_id, nome, email e status."],["admin companies create","Cria empresa B2B.","JSON obrigat\xF3rio: legal_name e document ou issuing_country_code+legal_identifier; opcionais: trading_name, status, account_type, account_types, contact_points, addresses",!0],["admin companies BUSINESS_ACCOUNT_ID update","Atualiza empresa B2B.","JSON: um ou mais de legal_name, trading_name, document, issuing_country_code, legal_identifier, status, account_type, account_types, contact_points, addresses",!0],["admin shippers OPERATIONAL_ACCOUNT_ID bases list","Lista bases do embarcador."],["admin shippers OPERATIONAL_ACCOUNT_ID bases create","Cria base do embarcador.","JSON: market_id, country_code, currency_code, timezone, code, name e endere\xE7o",!0],["admin shippers OPERATIONAL_ACCOUNT_ID bases BASE_ID update|deactivate|reactivate","Altera ou ativa/desativa base do embarcador; update recebe JSON.","JSON para update: code, name, origin_address, origin_lat, origin_lng, postal_code, place_id, street, street_number, neighborhood, city, state, state_code, country, geocode_provider, timezone, triage_rules, balancing_policy, metadata",!0],["admin shippers|carriers OPERATIONAL_ACCOUNT_ID bases BASE_ID cutoff-windows set","Substitui todos os hor\xE1rios de corte no timezone da base; windows=[] limpa. Resultado s\xEDncrono; a CLI confirma no terminal, MCP remoto exige aprova\xE7\xE3o Core. Base shipper com execu\xE7\xF5es vinculadas \xE9 recusada com 409 cutoff_dispatches_exist.","JSON: windows (lista de weekday 0..6, cutoff_time HH:MM[:SS], auto_publish opcional)",!0],["admin shippers|carriers OPERATIONAL_ACCOUNT_ID bases BASE_ID service-area set|clear","Substitui ou remove a cobertura regional da base.","JSON para set: reference_zone_public_ids (lista de UUIDs)",!0],["admin shippers|carriers OPERATIONAL_ACCOUNT_ID bases BASE_ID region-groups create","Cria agrupamento nomeado de regi\xF5es para a base.","JSON: name, reference_zone_public_ids (lista de UUIDs)",!0],["admin shippers|carriers OPERATIONAL_ACCOUNT_ID bases BASE_ID zone-overrides list","Consulta zonas efetivas salvas da base; verifica a refer\xEAncia \xE0 conta operacional; exige network_configuration.view ou manage no Core. Resultado s\xEDncrono, sem JSON ou confirma\xE7\xE3o."],["admin shippers OPERATIONAL_ACCOUNT_ID bases BASE_ID carrier-shares list","Consulta distribui\xE7\xE3o configurada de carriers da base shipper; verifica a refer\xEAncia \xE0 conta operacional; exige network_configuration.view ou manage no Core. Resultado s\xEDncrono, sem JSON ou confirma\xE7\xE3o."],["admin carriers OPERATIONAL_ACCOUNT_ID bases list","Lista bases da transportadora."],["admin carriers OPERATIONAL_ACCOUNT_ID bases create","Cria base da transportadora.","JSON: market_id, country_code, currency_code, timezone, code, name e endere\xE7o",!0],["admin carriers OPERATIONAL_ACCOUNT_ID bases BASE_ID update|deactivate|reactivate","Altera ou ativa/desativa base da transportadora; update recebe JSON.","JSON para update: code, name, origin_address, origin_lat, origin_lng, postal_code, place_id, street, street_number, neighborhood, city, state, state_code, country, geocode_provider, timezone, triage_rules",!0]]),a(["carrier"],[["carrier bases BASE_ID reference-zone-features list [limit=N] [cursor=X] [search=X] [min_lng=X] [min_lat=X] [max_lng=X] [max_lat=X] [include_geometry=true|false]","Consulta cat\xE1logo OSM de refer\xEAncia para base pr\xF3pria da conta carrier ativa, com membership e route_operations.view, workbench ou publish no Core; n\xE3o \xE9 cobertura operacional salva. Resultado s\xEDncrono com meta de pagina\xE7\xE3o, sem JSON ou confirma\xE7\xE3o."]]),a(["shipper"],[["shipper bases list","Lista as bases da conta embarcadora ativa."],["shipper bases create","Cria uma base na conta embarcadora ativa.","JSON obrigat\xF3rio: code, name; opcionais: origin_address, origin_lat, origin_lng, timezone, triage_rules, metadata",!0],["shipper bases BASE_ID carrier-shares list","Lista a distribui\xE7\xE3o de carriers configurada na base."],["shipper bases BASE_ID carrier-shares create","Adiciona share de carrier \xE0 base.","JSON: carrier_account_id, target_share_percent; quality_weight, priority_order e allocation_enabled opcionais",!0],["shipper bases BASE_ID carrier-shares replace","Substitui a distribui\xE7\xE3o de carriers da base.","JSON: carriers (lista de carrier_account_id, target_share_percent e campos opcionais)",!0],["shipper bases BASE_ID reference-zone-features list [limit=N] [cursor=X] [search=X] [min_lng=X] [min_lat=X] [max_lng=X] [max_lat=X] [include_geometry=true|false]","Lista fei\xE7\xF5es de refer\xEAncia para compor a cobertura da base."],["shipper bases BASE_ID reference-zone-features merge","Mescla fei\xE7\xF5es de refer\xEAncia em uma zona da base.","JSON: reference_zone_public_ids (lista de UUIDs); code e name opcionais",!0]]);for(const e of["admin","carrier"])a([e],[[`${e} gr provider-definitions list`,"Lista providers GR dispon\xEDveis no papel ativo."],[`${e} gr providers list [${e==="admin"?"carrier_account_id=UUID] [":""}provider_key=X] [status=X] [limit=N] [cursor=X]${e==="carrier"?" [search=X]":""}`,"Lista contas de providers GR no papel ativo."],[`${e} gr providers create`,"Cria conta de provider GR; credenciais s\xE3o aceitas somente via stdin.",`JSON: provider_key=m3risk|angellira, provider_label, mode=crawler|api|ftp|browser|api_jwt; status, config e credentials opcionais${e==="admin"?"; carrier_account_id ou carrier_account_public_id obrigat\xF3rio":""}`,!0],[`${e} gr providers PROVIDER_ID update`,"Atualiza conta de provider GR no escopo da sess\xE3o.","JSON: provider_label, mode, status, config e/ou credentials",!0],[`${e} gr providers PROVIDER_ID test`,"Testa a configura\xE7\xE3o da conta GR e retorna o healthcheck.",null,!0],[`${e} gr providers PROVIDER_ID operations`,"Descobre opera\xE7\xF5es expostas pela conta GR."],[`${e} gr providers PROVIDER_ID mappings list [active=true|false]`,"Lista mapeamentos de opera\xE7\xE3o da conta GR."],[`${e} gr providers PROVIDER_ID mappings upsert`,"Cria ou atualiza mapeamento de opera\xE7\xE3o GR.","JSON: operation_key, provider_client_id; provider_client_label, metadata e active opcionais",!0],[`${e} gr requests list [provider_key=X] [status=X] [phase=X] [operation_key=X] [search=X] [limit=N] [cursor=X]${e==="admin"?" [carrier_account_id=UUID]":""}`,"Lista solicita\xE7\xF5es GR no escopo da sess\xE3o."],[`${e} gr requests create`,"Enfileira solicita\xE7\xE3o GR; 202 n\xE3o prova conclus\xE3o.","JSON: driver_profile_id, provider_account_id, operation_key; priority opcional",!0],[`${e} gr requests REQUEST_ID show`,"Consulta solicita\xE7\xE3o GR."],[`${e} gr requests REQUEST_ID attempts|evidence|orchestration-events [limit=N] [cursor=X]`,"Consulta hist\xF3rico da solicita\xE7\xE3o GR."],[`${e} gr requests REQUEST_ID retry|verify|cancel`,"Altera solicita\xE7\xE3o GR conforme ACL e estado do Core.",null,!0],[`${e} gr requests REQUEST_ID confirm-recovery`,"Confirma a revis\xE3o exata de opera\xE7\xF5es de escrita ap\xF3s a pr\xE9via read-only.","JSON: recovery_revision, operations",!0],[`${e} gr requests REQUEST_ID operation`,"Seleciona opera\xE7\xE3o ativa para solicita\xE7\xE3o legada antes de qualquer escrita externa.","JSON: operation_key (UUID da base operacional)",!0],[`${e} gr requests REQUEST_ID personal-declarations`,"Atualiza declara\xE7\xF5es pessoais criptografadas e agenda reconcilia\xE7\xE3o.","JSON: sex=male|female|other e/ou marital_status=single|married|divorced|widowed|other",!0]]);a(["admin"],[["admin gr provider-definitions PROVIDER_ID update","Atualiza defini\xE7\xE3o global do provider GR; infraestrutura global continua restrita ao Admin.","JSON: provider_label, mode, status e/ou config com base_url, runner_url, runner_command",!0]]),a(["admin"],[["admin gr carriers CARRIER_ID dashboard","Consulta resumo GR da transportadora."],["admin gr drivers [carrier_account_id=UUID] [limit=N] [cursor=X] [provider_account_id=UUID] [search=X] [document=X] [status=X] [training_pending=true|false]","Consulta diret\xF3rio GR global, incluindo motoristas sem v\xEDnculo; o Core exige gr.view ou gr.manage."],["admin gr carriers CARRIER_ID drivers [limit=N] [cursor=X] [provider_account_id=UUID] [search=X] [document=X] [status=X] [training_pending=true|false]","Consulta motoristas GR da transportadora."],["admin gr carriers CARRIER_ID blacklist list [limit=N] [cursor=X] [search=X]","Lista v\xEDnculos de motoristas bloqueados na transportadora."],["admin gr carriers CARRIER_ID links LINK_ID blacklist|unblock","Bloqueia ou desbloqueia v\xEDnculo; bloquear cancela solicita\xE7\xF5es GR abertas.",null,!0],["admin gr carriers CARRIER_ID links LINK_ID manual-approval","Aprova ou revoga GR externo somente nesse v\xEDnculo e transportadora; exige gr.manage no Core e confirma\xE7\xE3o do LINK_ID. Retorna manual_approval com autor e data.",'JSON obrigat\xF3rio: {"approved":true} para aprovar ou {"approved":false} para revogar; CARRIER_ID e LINK_ID s\xE3o UUIDs p\xFAblicos',!0],["admin gr carriers CARRIER_ID drivers PROFILE_ID export","Consulta o perfil e a prontid\xE3o GR do motorista vinculado."],["admin gr carriers CARRIER_ID drivers PROFILE_ID documents TYPE reprocess","Reprocessa documento j\xE1 armazenado; 202 n\xE3o prova conclus\xE3o.","TYPE=cnh|crlv|address_proof|antt|ownership_document; JSON: {} ou document_id, registration_request_id e/ou requirements_revision",!0],["admin gr driver-profiles PROFILE_ID show","Consulta detalhe GR do motorista no escopo Admin."],["admin gr driver-profiles PROFILE_ID training","Registra se o treinamento GR foi assistido.","JSON obrigat\xF3rio: training_watched=true|false",!0]]),a(["carrier"],[["carrier gr dashboard","Consulta resumo GR da pr\xF3pria transportadora."],["carrier gr drivers [limit=N] [cursor=X] [provider_account_id=UUID] [search=X] [document=X] [status=X] [training_pending=true|false]","Consulta motoristas GR da pr\xF3pria transportadora."],["carrier gr blacklist list [limit=N] [cursor=X] [search=X]","Lista v\xEDnculos de motoristas bloqueados na pr\xF3pria transportadora."],["carrier gr links LINK_ID blacklist|unblock","Bloqueia ou desbloqueia v\xEDnculo pr\xF3prio; bloquear cancela solicita\xE7\xF5es GR abertas.",null,!0],["carrier gr links LINK_ID manual-approval","Aprova ou revoga GR externo no v\xEDnculo da transportadora da sess\xE3o; exige gr.manage no Core e confirma\xE7\xE3o do LINK_ID. Retorna manual_approval com autor e data.",'JSON obrigat\xF3rio: {"approved":true} para aprovar ou {"approved":false} para revogar; LINK_ID \xE9 o UUID p\xFAblico do v\xEDnculo',!0],["carrier gr drivers PROFILE_ID export","Consulta o perfil e a prontid\xE3o GR do motorista vinculado."],["carrier gr drivers PROFILE_ID documents TYPE reprocess","Reprocessa documento j\xE1 armazenado; 202 n\xE3o prova conclus\xE3o.","TYPE=cnh|crlv|address_proof|antt|ownership_document; JSON: {} ou document_id, registration_request_id e/ou requirements_revision",!0],["carrier gr driver-profiles PROFILE_ID training","Registra se o treinamento GR foi assistido para motorista vinculado.","JSON obrigat\xF3rio: training_watched=true|false",!0]]);for(const[e,r]of[["carrier","carrier"],["admin","admin operations CARRIER_ID"]])a([e],[[`${r} orders lookup BARCODE`,"Consulta pedido por c\xF3digo."],[`${r} orders upsert`,"Cria ou atualiza pedido.","JSON obrigat\xF3rio: source_type=upload|proceda, external_id, postal_code, destination_address; opcionais: shipper_id, base_id, primary_barcode, aliases, destination_lat, destination_lng, destination_complement, geocode, recipient_name, recipient_doc, recipient_phone, packages_count, raw_payload, metadata",!0],[`${r} receiving scan`,"Registra recebimento ap\xF3s consultar o pedido.","JSON obrigat\xF3rio: barcode; opcionais: shipper_id, base_id, metadata",!0],[`${r} receiving rules list`,"Lista regras de recebimento."],[`${r} receiving rules create`,"Cria regra de recebimento global, por embarcador ou por base.","JSON obrigat\xF3rio: code, name, postal_code_start, postal_code_end; opcionais: shipper_id, base_id, priority_order, status, metadata. IDs s\xE3o UUIDs p\xFAblicos; sem shipper_id/base_id, a regra \xE9 global",!0],[`${r} receiving rules RULE_ID update`,"Atualiza parcialmente uma regra de recebimento.","JSON: um ou mais de shipper_id, base_id, code, name, postal_code_start, postal_code_end, priority_order, status, metadata. Campos omitidos s\xE3o preservados. base_id:null remove a base; shipper_id:null e base_id:null tornam a regra global",!0],[`${r} dispatch create`,"Expede pedidos ao motorista.","JSON: driver_user_id, barcodes; route_name/metadata opcionais",!0],[`${r} dispatch ROUTE_ID add-orders`,"Adiciona pedidos \xE0 rota manual ativa; a rota pode j\xE1 ter iniciado.","JSON obrigat\xF3rio: barcodes; reason opcional",!0]]);a(["carrier"],[["carrier desktop providers list","Lista providers publicados para ativa\xE7\xE3o; exige carrier_integrations.view ou manage no Core."],["carrier desktop providers PROVIDER_ID activate","Ativa a integra\xE7\xE3o Desktop ap\xF3s confirmar o UUID do provider; n\xE3o habilita automaticamente a entrada de pedidos. Exige carrier_integrations.manage.",null,!0],["carrier desktop grants GRANT_ID flow-installations list","Consulta fluxos dispon\xEDveis e instala\xE7\xF5es do grant autorizado pelo Core."],["carrier desktop grants GRANT_ID flow-installations create","Instala um fluxo no grant; exige carrier_integrations.manage e confirma\xE7\xE3o do grant.","JSON obrigat\xF3rio: flow_id; opcionais: connection_id, base_id, trigger, trigger_key, schedule, timezone, enabled, policies. O Core valida os gatilhos e agendamentos",!0],["carrier desktop flow-installations INSTALLATION_ID update","Altera uma instala\xE7\xE3o ap\xF3s confirmar seu UUID; o Core valida escopo, pol\xEDticas e concorr\xEAncia de vers\xE3o.","JSON parcial: enabled, schedule, timezone, policies, flow_version_id, expected_current_version_id. Para trocar vers\xE3o, informe a vers\xE3o atual esperada",!0],["carrier desktop flow-installations INSTALLATION_ID run","Enfileira um fluxo autorizado. 201 com execu\xE7\xE3o queued n\xE3o comprova conclus\xE3o; acompanhe por carrier desktop executions EXECUTION_ID show.","JSON obrigat\xF3rio: idempotency_key (16 a 128 caracteres) e input (objeto). Preserve os mesmos dados e a chave nos retries",!0],["carrier desktop grants GRANT_ID order-import-batches create","Importa um lote da execu\xE7\xE3o e dispositivo autorizados; exige order_intake.import. Confirma o grant e preserva o receipt de idempot\xEAncia.","JSON obrigat\xF3rio: idempotency_key, execution_id, device_id, records (at\xE9 100 itens com external_id, order_requested_at, destination_address e packages_count); next_cursor e checkpoint opcionais. A chave \xE9 enviada em Idempotency-Key",!0],["carrier desktop grants GRANT_ID extractions preview","Obt\xE9m pr\xE9via estruturada de uma p\xE1gina autorizada; exige order_intake.import. Confirma o grant, sem persistir pedidos.","JSON obrigat\xF3rio: run_id, base_id, flow_version=1, page_url, instruction, fields e snapshot. N\xE3o passe o conte\xFAdo da p\xE1gina em argumentos de shell",!0],["carrier desktop grants list","Lista integra\xE7\xF5es Desktop autorizadas para a transportadora."],["carrier desktop orders list [shipper_id=UUID] [base_id=UUID] [query=X] [cursor=X] [status_sync=true]","Lista pedidos can\xF4nicos da integra\xE7\xE3o Desktop dentro das bases autorizadas."],["carrier desktop orders ORDER_ID show","Consulta um pedido can\xF4nico da integra\xE7\xE3o Desktop."],["carrier desktop orders refresh","Enfileira atualiza\xE7\xE3o de pedidos selecionados no provedor; 202 \xE9 aceita\xE7\xE3o, n\xE3o conclus\xE3o.","JSON obrigat\xF3rio: order_ids (1 a 100 UUIDs) e idempotency_key (16 a 128 caracteres)",!0],["carrier desktop orders resync","Enfileira ressincroniza\xE7\xE3o dos pedidos selecionados; 202 \xE9 aceita\xE7\xE3o, n\xE3o conclus\xE3o.","JSON obrigat\xF3rio: order_ids (1 a 100 UUIDs) e idempotency_key (16 a 128 caracteres)",!0],["carrier desktop sync-runs list [shipper_id=UUID] [base_id=UUID] [connection_id=UUID] [device_id=X] [order_id=UUID] [status=X] [cursor=X]","Lista execu\xE7\xF5es de sincroniza\xE7\xE3o Desktop."],["carrier desktop sync-runs RUN_ID show","Consulta uma execu\xE7\xE3o de sincroniza\xE7\xE3o Desktop."],["carrier desktop sync-runs RUN_ID cancel","Cancela uma execu\xE7\xE3o ativa de sincroniza\xE7\xE3o Desktop.",null,!0],["carrier desktop executions EXECUTION_ID show","Consulta uma execu\xE7\xE3o Desktop pelo identificador."],["carrier desktop executions EXECUTION_ID candidates list [device_id=X] [cursor=X]","Lista candidatos de sincroniza\xE7\xE3o ap\xF3s a execu\xE7\xE3o assumir o dispositivo."],["carrier desktop executions EXECUTION_ID known-ids","Consulta no Core quais pedidos externos j\xE1 s\xE3o conhecidos.","JSON obrigat\xF3rio: device_id e external_orders; cada item usa external_id e external_base_code"],["carrier desktop executions EXECUTION_ID receipt device_id=X batch_key=CHAVE","Consulta o receipt conclu\xEDdo de um lote de importa\xE7\xE3o Desktop."],["carrier desktop operation-routes list","Lista rotas publicadas de recebimento Desktop no escopo da transportadora."],["carrier desktop operation-routes publish","Publica uma nova revis\xE3o da opera\xE7\xE3o Desktop na base.","JSON: base_id, shipper_id, operation_kind e target=core|flow; para flow, bindings com installation_id e requirement=required|optional; handler_key conforme a opera\xE7\xE3o Core",!0],["carrier desktop operation-contexts open","Abre contexto de recebimento e retorna context_token para as leituras.","JSON: base_id, shipper_id, operation_kind=sack_receipt|package_receipt, mode=fast|standard, device_id"],["carrier desktop operation-contexts SESSION_ID close","Encerra contexto de recebimento Desktop.",null,!0],["carrier desktop operation-scans batch","Aceita lote idempotente de leituras f\xEDsicas; cada resultado informa accepted, duplicate ou erro.","JSON: context_token e scans (1 a 100 itens com scan_id, barcode, occurred_at; association opcional)",!0],["carrier desktop operation-runs list [base_id=UUID] [shipper_id=UUID] [operation_kind=X] [device_id=X] [monitor=true|false] [cursor=X] [limit=N]","Lista resultados de recebimento do pr\xF3prio dispositivo ou o monitor da transportadora; device_id \xE9 obrigat\xF3rio sem monitor=true."],["carrier desktop operation-runs FLOW_RUN_ID retry","Reenfileira um fluxo de recebimento terminal usando a vers\xE3o publicada atual.",null,!0],["carrier desktop operation-runs retry-batch","Reenfileira de 1 a 100 fluxos de recebimento terminais.","JSON obrigat\xF3rio: flow_run_ids (UUIDs)",!0],["carrier desktop flow-actions ACTION_KEY run","Enfileira uma a\xE7\xE3o Desktop nomeada para uma base; 202 \xE9 aceita\xE7\xE3o, n\xE3o conclus\xE3o.","JSON obrigat\xF3rio: shipper_id, base_id, input (objeto) e idempotency_key",!0]]),a(["admin"],[["admin financial payment-profiles create","Cria perfil e publica a vers\xE3o de forma s\xEDncrona; pode desativar o perfil ativo do mesmo contexto/base/carrier. Exige network_configuration.manage no Core. Confirma o UUID de base, origem, owner ou client, ou payment-profiles quando ausentes; retorna o envelope Core.","JSON stdin obrigat\xF3rio: profile_mode=shipper_owned|carrier_managed|driver_self_managed e configuration (objeto opaco validado pelo Core). Opcionais: shipper_account_id, base_id (operacionais), client_id, origin_id, reference_shipper_id, reference_carrier_id (financeiros), owner_user_id, origin_name, origin_address, name, period_type, start_day, end_day, invoice_day, payment_day (inteiros ou null), active, is_default (booleanos), reference_payer_label, currency. Zeros, null e strings decimais da configuration s\xE3o preservados",!0],["admin financial carrier-margins ORIGIN_ID upsert","Substitui a regra ativa do par carrier/origem financeira, preservando hist\xF3rico no Core. S\xEDncrono; exige network_configuration.manage, confirma ORIGIN_ID e retorna o envelope Core. ORIGIN_ID vem de data.origin.id do perfil, n\xE3o do base_id operacional.","JSON stdin obrigat\xF3rio: carrier_id (UUID financeiro), margin_percent (n\xFAmero ou string decimal, sem convers\xE3o; faixa validada pelo Core). origin_id opcional deve corresponder ao path; o body enviado usa ORIGIN_ID. Zero \xE9 v\xE1lido",!0]]);for(const e of["carrier","admin"]){const r=e==="carrier"?"carrier operations":"admin operations CARRIER_ID";a([e],[[`${r} config show`,"Consulta configura\xE7\xE3o operacional; o Core verifica ACL e retorna erro se ela ainda n\xE3o existir."],[`${r} config update`,"Atualiza parcialmente a configura\xE7\xE3o ap\xF3s confirmar a conta; exige carrier_clients.manage ou physical_receiving.manage no Core. Campos omitidos s\xE3o preservados.","JSON: um ou mais de integration_type=upload|proceda, order_entry_mode=upload|proceda, status_query_mode=disabled, receiving_enabled, dispatch_enabled, routing_enabled, quotation_enabled (booleanos), status=active|inactive, metadata (objeto). O Core deriva os modos quando aplic\xE1vel",!0]])}for(const[e,r]of[["carrier","carrier"],["admin","admin operations CARRIER_ID"]])a([e],[[`${r} shippers list`,"Lista embarcadores geridos pela transportadora."],[`${r} shippers create`,"Cria ou reutiliza embarcador vinculado \xE0 transportadora.","JSON: legal_name e document ou issuing_country_code + legal_identifier; trading_name opcional",!0],[`${r} shippers SHIPPER_ID bases list`,"Lista bases do embarcador vinculado."],[`${r} shippers SHIPPER_ID bases create`,"Cria ou reutiliza base do embarcador vinculado.","JSON: code, name; market_id, endere\xE7o, timezone, triage_rules, balancing_policy e metadata opcionais",!0],[`${r} status-outbox [sink_type=X] [shipper_id=UUID] [adapter_type=X]`,"Consulta eventos de status enviados ou pendentes da transportadora."]]);for(const e of["admin","carrier","shipper"])a([e],[[`${e} orders imports preview ARQUIVO [shipper_id=UUID] [base_id=UUID]`,"Pr\xE9via de CSV, XLS, XLSX ou PDF local antes da importa\xE7\xE3o."],[`${e} orders imports create ARQUIVO`,"Cria lote de importa\xE7\xE3o; a resposta \xE9 enfileiramento, consulte o lote para o resultado.",`JSON: base_id${e==="shipper"?"":", shipper_id"} obrigat\xF3rios; column_mapping e import_context opcionais`,!0],[`${e} orders imports BATCH_ID show [include_orders=true|false]`,"Consulta estado e resultado do lote."],[`${e} orders imports BATCH_ID source-preview`,"Consulta pr\xE9via da origem do lote."],[`${e} orders imports BATCH_ID orders list [limit=N] [cursor=X] [search=X] [geocode_status=X] [only_errors=true|false]`,"Lista pedidos do lote."],[`${e} orders imports BATCH_ID orders ORDER_ID update`,"Corrige endere\xE7o ou destinat\xE1rio de um pedido do lote.","JSON: um ou mais de destination_address, destination_street, destination_number, destination_neighborhood, destination_city, destination_state, destination_postal_code, destination_complement, recipient_name, recipient_phone, nfe_key",!0],[`${e} orders imports BATCH_ID remap`,"Cria novo lote com mapeamento corrigido; consulte o lote retornado.","JSON: column_mapping ou import_context como objeto",!0],[`${e} orders imports BATCH_ID requeue-geocode`,"Reenfileira geocode do lote; 202 n\xE3o prova conclus\xE3o.",null,!0],[`${e} orders ORDER_ID retry-geocode`,"Reexecuta geocode de um pedido vis\xEDvel ao papel ativo.","JSON: raw_address com pelo menos 3 caracteres",!0]]);a(["admin"],[["admin triage batches list [limit=N] [cursor=X] [search=X]","Lista lotes de importa\xE7\xE3o para triagem; search cobre ID, status, origem, arquivo, embarcador e base."],["admin triage batches BATCH_ID show","Consulta o lote, relat\xF3rio, runtime e candidatos de rota."],["admin triage batches BATCH_ID run","Enfileira a triagem do lote; 202 \xE9 aceita\xE7\xE3o, n\xE3o conclus\xE3o.",null,!0],["admin triage batches BATCH_ID orders ORDER_ID update","Corrige endere\xE7o de um pedido com falha de triagem e invalida candidatos antigos.","JSON obrigat\xF3rio: destination_address; destination_lat e destination_lng opcionais",!0]]);for(const e of["admin","carrier","shipper"])a([e],[[`${e} routes list [limit=N] [cursor=X] [status=X] [search=X]${e==="admin"?" [source_type=X] [operation_mode=X]":e==="carrier"?" [shipper_id=UUID] [base_id=UUID]":" [base_id=UUID]"}`,"Lista rotas operacionais vis\xEDveis ao papel ativo."],...e==="shipper"?[["shipper route-candidates list [base_id=UUID] [status=X]","Lista candidatos de planejamento da conta shipper; consulta s\xEDncrona, sem confirma\xE7\xE3o. O handler atual ignora base_id/status e n\xE3o retorna cursor."]]:e==="carrier"?[["carrier route-candidates list","Lista candidatos de planejamento atribu\xEDdos \xE0 conta carrier; consulta s\xEDncrona, sem confirma\xE7\xE3o."]]:[],[`${e} routes ROUTE_ID show`,"Consulta rota operacional vis\xEDvel."],...e==="carrier"?[[`${e} routes ROUTE_ID assign-driver`,"Atribui motorista eleg\xEDvel \xE0 rota candidata da transportadora.","JSON obrigat\xF3rio: driver_user_id",!0]]:[],[`${e} route-candidates CANDIDATE_ID publish`,"Publica candidato como SavedRoute operacional; o Core valida readiness, blockers e ACL.","JSON opcional: override booleano e reason obrigat\xF3rio quando override=true",!0],...["admin","shipper"].includes(e)?[[`${e} route-candidates CANDIDATE_ID reassign-stop`,"Move um ponto para outro candidato antes da publica\xE7\xE3o.","JSON obrigat\xF3rio: stop_id e target_route_candidate_id; reason opcional",!0],[`${e} route-candidates CANDIDATE_ID ai-assist`,"Solicita ou consulta assist\xEAncia de rearranjo do candidato; 202 significa processamento.",`${e==="admin"?"JSON obrigat\xF3rio":"JSON opcional"}: objective`,!0]]:[],...e==="admin"?[[`${e} route-candidates CANDIDATE_ID assign-driver`,"Atribui motorista vinculado \xE0 transportadora do candidato.","JSON obrigat\xF3rio: carrier_account_id e driver_user_id",!0]]:[],[`${e} workbench scopes`,"Lista escopos do workbench."],[`${e} workbench show batch_id=UUID`,"Consulta workbench pelo lote."],[`${e} workbench show shipper_account_id=UUID base_id=UUID`,"Consulta workbench pela base."],[`${e} workbench run`,"Executa workbench; 202 \xE9 aceita\xE7\xE3o, n\xE3o conclus\xE3o.","JSON: shipper_account_id, base_id",!0],[`${e} workbench refresh-quotation`,"Atualiza a cota\xE7\xE3o da workbench; 202 \xE9 aceita\xE7\xE3o, n\xE3o conclus\xE3o.","JSON: shipper_account_id, base_id",!0],[`${e} tower cockpit batch_id=UUID`,"Consulta cockpit pelo lote."],[`${e} tower cockpit shipper_account_id=UUID base_id=UUID`,"Consulta cockpit pela base."]]);a(["shipper"],[["shipper route show PUBLIC_ID","Consulta uma rota operacional do embarcador."]]),a(["admin"],[["admin routes ROUTE_ID assign-driver","Atribui motorista \xE0 rota conforme ACL e estado do Core.","JSON obrigat\xF3rio: driver_user_id; reason opcional",!0],["admin routes ROUTE_ID pause|cancel|reopen","Altera estado da rota conforme ACL do Core.","JSON: reason, notes e occurrence_type opcionais",!0],["admin routes ROUTE_ID occurrence","Registra ocorr\xEAncia na rota.","JSON obrigat\xF3rio: notes; reason e occurrence_type opcionais",!0],["admin tower overview","Consulta vis\xE3o geral da torre."],["admin tower failure-reasons catalog","Consulta cat\xE1logo de motivos de insucesso."]]),a(["driver"],[["driver tower validate","Valida DANFE e recebe assist_token de uso \xFAnico.","JSON: nf_key obrigat\xF3rio; reason opcional",!0],["driver tower assist","Consulta enriquecimento com token de validate; retorna query_id.","JSON: assist_token obrigat\xF3rio; reason e force_refresh opcionais",!0],["driver tower fallback","Consulta enriquecimento por documento informado; retorna query_id.","JSON: document obrigat\xF3rio; reason e force_refresh opcionais",!0],["driver tower queries QUERY_ID show","Consulta resultado de enriquecimento pr\xF3prio."]]);for(const e of["driver","carrier"])a([e],[[`${e} tower chat open`,"Abre ou retoma thread de rota e parada autorizadas.","JSON: route_id e waypoint_id obrigat\xF3rios; driver_user_id opcional",!0],[`${e} tower chat thread THREAD_ID messages`,"Consulta mensagens da thread autorizada."],[`${e} tower chat thread THREAD_ID send`,"Envia mensagem \xE0 thread autorizada.","JSON: body obrigat\xF3rio; message_type e metadata opcionais",!0]]);for(const e of["carrier","shipper"])a([e],[[`${e} tower failure-reasons policy show`,"Consulta policy de insucesso efetiva da pr\xF3pria conta."],[`${e} tower failure-reasons policy set`,"Altera policy de insucesso da pr\xF3pria conta.","JSON: reason_codes (lista de c\xF3digos)",!0]]);a(["carrier"],[["carrier tower chat thread THREAD_ID authorize","Gera c\xF3digo de uso \xFAnico para insucesso autorizado.",null,!0]]),a(["admin"],[["admin tower chat threads","Lista threads operacionais vis\xEDveis \xE0 ACL."],["admin tower chat thread THREAD_ID messages","Consulta mensagens da thread."],["admin tower chat thread THREAD_ID send","Envia mensagem \xE0 thread.","JSON: body obrigat\xF3rio; message_type e metadata opcionais",!0],["admin tower chat thread THREAD_ID authorize","Gera c\xF3digo de autoriza\xE7\xE3o de insucesso.",null,!0],["admin tower failure-reasons shippers SHIPPER_ID show","Consulta policy de insucesso do embarcador."],["admin tower failure-reasons shippers SHIPPER_ID set","Altera policy de insucesso do embarcador.","JSON: reason_codes (lista de c\xF3digos)",!0],["admin tower failure-reasons carriers CARRIER_ID show","Consulta policy de insucesso da transportadora."],["admin tower failure-reasons carriers CARRIER_ID set","Altera policy de insucesso da transportadora.","JSON: reason_codes (lista de c\xF3digos)",!0]]);for(const e of["driver","admin","carrier","shipper"])a([e],[[`${e} tower failure-reasons catalog-global [search=X]`,"Consulta s\xEDncrona do cat\xE1logo global de motivos; sem confirma\xE7\xE3o, gera\xE7\xE3o ou consumo de autoriza\xE7\xE3o."]]);function b(e,r){const o=e.startsWith("[")?e.slice(1,-1):e;return o.split("|").includes(r)?0:/^[A-Z][A-Z0-9_]*$/.test(o)||o.includes("=")&&o.split("=")[0]===r.split("=")[0]&&/^[A-Z][A-Z0-9_]*$/.test(o.split("=")[1])?1:1/0}n(b,"matchToken");function f(e=[]){const r=e.filter(Boolean),o=u.map(i=>{const{usage:p}=i,d=p.slice(6).split(" "),l=r.reduce((m,_,c)=>m+(d[c]?b(d[c],_):1/0),0);return{command:i,score:l}}),t=Math.min(...o.map(({score:i})=>i));if(!Number.isFinite(t))return null;const s=o.filter(({score:i})=>i===t).map(({command:i})=>i);return s.length?{data:{query:r.join(" "),authorization:"Papel ativo da sess\xE3o; o Core aplica grants internos, membership, m\xF3dulos, bases e ACL a cada chamada.",input:"Objetos JSON de muta\xE7\xE3o s\xE3o enviados por stdin. Confirma\xE7\xF5es exigem terminal interativo; n\xE3o passe secrets em argumentos.",commands:s}}:null}n(f,"commandHelp");export{f as commandHelp};
|
|
1
|
+
var v=Object.defineProperty;var n=(e,r)=>v(e,"name",{value:r,configurable:!0});import{globalHelp as g}from"./global.js";const u=[],a=n((e,r)=>{for(const[o,t,s,i]of r)u.push({usage:`genne ${o}`,roles:e,description:t,...s?{input:s}:{},...i?{confirmation:"terminal interativo"}:{}})},"add");a(["public"],[["help [CAMINHO]","Lista comandos ou detalha um caminho, sem autentica\xE7\xE3o."],["login","Autoriza uma sess\xE3o CLI pelo navegador em Prod por padr\xE3o; herda o papel e a conta selecionados na sess\xE3o que aprova."],["env show","Mostra a origem API (Prod por padr\xE3o ou GENNE_API_URL) e a disponibilidade da sess\xE3o salva, sem expor credenciais."],["users driver register","Cadastra uma conta de motorista.","JSON: name, email, password, phone E.164, registration_market_code BR|US"],["auth membership-invitations accept","Aceita convite de v\xEDnculo B2B; identidade j\xE1 ativa pode enviar s\xF3 token.","JSON obrigat\xF3rio: token; para ativar identidade convidada, name, phone E.164, password, registration_market_code BR|US; cpf opcional"],["password forgot","Solicita recupera\xE7\xE3o de senha.","JSON: email"],["password reset","Redefine senha com o c\xF3digo recebido.","JSON: email, code, password"]]),a(["public"],g),a(["driver","admin","carrier","shipper"],[["whoami","Mostra identidade, papel ativo e, para cliente B2B, conta selecionada."],["users me","Consulta o resumo do pr\xF3prio usu\xE1rio."],["user me","Consulta o resumo do pr\xF3prio usu\xE1rio."],["user me update","Atualiza o pr\xF3prio perfil.","JSON: name, phone, vehicle_type, navigation_app_preference"],["user me photo","Envia a pr\xF3pria foto.","JSON: path para JPG, PNG, WebP, HEIC ou HEIF at\xE9 6 MiB"],["user me email-change request","Solicita troca do pr\xF3prio email.","JSON: current_password, new_email"],["user me email-change confirm","Confirma troca de email e encerra as sess\xF5es.","JSON: code",!0],["user me deletion-request","Solicita exclus\xE3o dos pr\xF3prios dados.","JSON: accepted_terms=true",!0],["password change","Altera a pr\xF3pria senha.","JSON: current_password, new_password"],["logout","Revoga a sess\xE3o CLI salva."],["session logout","Revoga a sess\xE3o atual."],["session logout-all","Revoga todas as sess\xF5es da identidade.",null,!0]]),a(["carrier"],[["user me driver-access enable","Habilita motorista para o pr\xF3prio owner carrier ativo. Preserva a empresa; altera\xE7\xE3o efetiva encerra suas sess\xF5es e exige genne login. Ap\xF3s timeout, fa\xE7a login e consulte user me antes de repetir.","JSON em stdin: current_password obrigat\xF3rio; confirma o UUID da pr\xF3pria identidade",!0]]),a(["driver"],[["users driver carriers invitations list [status=S] [limit=N] [cursor=X]","Lista convites do motorista; status=pending|accepted|declined|cancelled|expired, limit=1..100 (padr\xE3o 20), cursor opaco."],["users driver carriers invitations show INVITATION_ID","Consulta identidade da carrier, validade e estado can\xF4nico do pr\xF3prio convite."],["users driver carriers invitations accept INVITATION_ID","Aceita convite e cria v\xEDnculo com a transportadora. Retry com a mesma chave preserva resultado; decis\xE3o oposta gera conflito. N\xE3o altera prefer\xEAncia ou outras carriers.","JSON em stdin: idempotency_key (Unicode v\xE1lido sem U+0000, 1 a 128 codepoints), sem normaliza\xE7\xE3o; header Idempotency-Key para ASCII printable sem espa\xE7os nas bordas, body idempotency_key para os demais valores",!0],["users driver carriers invitations decline INVITATION_ID","Recusa convite sem criar v\xEDnculo; retry com a mesma chave preserva resultado. Consulte show ap\xF3s conflito.","JSON em stdin: idempotency_key (Unicode v\xE1lido sem U+0000, 1 a 128 codepoints), sem normaliza\xE7\xE3o; header Idempotency-Key para ASCII printable sem espa\xE7os nas bordas, body idempotency_key para os demais valores",!0],["users driver profile","Consulta o resumo do pr\xF3prio cadastro de motorista."],["users driver carriers list","Lista v\xEDnculos com transportadoras."],["users driver carriers link","Vincula-se por c\xF3digo da transportadora.","JSON: driver_link_code (5 caracteres)",!0],["users driver carriers unlink CARRIER_ID","Remove um v\xEDnculo com transportadora.",null,!0],["users driver carriers preference","Define prefer\xEAncia de rota.","JSON: preference=independent_driver|carrier_direct; carrier_account_id se carrier_direct",!0],["driver profile show","Consulta cadastro operacional, prontid\xE3o GR, treinamento e estado dos documentos pr\xF3prios."],["driver profile draft","Salva rascunho do cadastro; campos opcionais conforme etapa.","JSON: personal_document_type, personal_document_number, personal_document_value, issuing_country_code, cpf, cnpj, mei_cnpj, cnh_number, cnh_state, cnh_security_code, naturalness, whatsapp_phone, emergency_whatsapp, emergency_contact_relationship, has_antt, antt_status, ownership_pending, has_vehicle, vehicle_owner_is_driver, vehicle_profile, vehicle_plate_state, vehicle_plate_city, vehicle_fleet_number, vehicle_axle_count, vehicle_bodywork, transportadora_client, client, operation_base, magazine_base, operation_state, operation_city, operation_region, operation_notes, has_mei, no_mei, mei_absence_reason, referral_whatsapp, residential_street, residential_number, residential_complement, residential_neighborhood, residential_city, residential_state, residential_postal_code, training_watched (booleano); documents opcional com caminhos cnh, crlv, antt, ownership_document, selfie, address_proof (PDF/JPG/PNG at\xE9 12 MiB)"],["driver profile complete","Envia cadastro completo; o Core valida a completude.","JSON: mesmos campos e documents de driver profile draft; consulte genne help driver profile draft"],["driver profile revalidate BLOCK","Revalida cnh, cnpj_mei, vehicle, residential_address, operation_preferences ou antt."],["driver profile mei consult","Consulta o CNPJ MEI do titular.","JSON: cnpj (14 d\xEDgitos)"],["driver profile mei confirm","Confirma o CNPJ MEI do titular.","JSON: cnpj (14 d\xEDgitos)"],["driver payout requirements BR|US","Consulta contrato de dados banc\xE1rios por mercado."],["driver payout accounts BR|US","Consulta repasse mascarado e vers\xE3o de proje\xE7\xE3o."],["driver payout primary","Substitui conta prim\xE1ria de repasse com controle de vers\xE3o e idempot\xEAncia.","JSON obrigat\xF3rio: market_code BR|US, rail bank_transfer|ach, requirements_version, expected_projection_version, account_number, account_type, holder_name, idempotency_key; opcionais: institution_identifier, branch_identifier, routing_number, holder_type, holder_document_type/value, holder_phone",!0],["driver market-context set","Seleciona a base operacional ou o mercado independente do motorista.","JSON: scope_type=shipper_base|carrier_base e scope_id=UUID, ou scope_type=independent e market_id=UUID"]]),a(["driver"],[["driver places search CONSULTA","Busca endere\xE7os para obter place_id no mercado do motorista."],["driver places details PLACE_ID","Resolve o lugar escolhido em endere\xE7o e coordenadas; confira o resultado antes de salvar."],["driver routes list [limit=N] [cursor=X] [status=X] [is_favorite=X] [date_from=X] [date_to=X] [search=X]","Lista SavedRoutes do motorista; status=open|completed|closed, is_favorite=true|false e datas AAAA-MM-DD."],["driver routes plan create","Enfileira planejamento com endere\xE7os ou waypoints; optimize=true \xE9 opcional e 202 retorna plan_public_id sem criar SavedRoute.","JSON: locations ou waypoints (2 a 500 itens), cada item pode ser endere\xE7o ou objeto com address/lat/lng; optimize, optimize_start, optimize_end, return_to_start, current_location e vehicle_type opcionais",!0],["driver routes plan JOB_ID show","Consulta o job de planejamento at\xE9 status completed ou failed; use os waypoints e a geometria conclu\xEDdos para criar o draft."],["driver routes imports preview ARQUIVO [persist_order_id_choice=true|false] [column_mapping=JSON]","Pr\xE9via de CSV, XLS, XLSX ou PDF local at\xE9 50 MiB; n\xE3o cria rota. Envie o arquivo original, inclusive sem cabe\xE7alho. Se data.ai_inference.status for failed em resposta de sucesso, a pr\xE9via continua utiliz\xE1vel: revise as colunas e repita com column_mapping=JSON. Erros de processamento 422 conhecidos retornam error.code, error.message seguro e error.data.reason/stage."],["driver routes draft create","Cria draft manual_app. Informe origem pura e paradas; use places details para preencher coordenadas.","JSON: name e waypoints obrigat\xF3rios; waypoints com type, address e, quando resolvidos, lat/lng; return_to_start e driver_payment_profile_public_id opcionais",!0],["driver routes ROUTE_ID show","Consulta SavedRoute, waypoints, manifesto e estado de execu\xE7\xE3o."],["driver routes ROUTE_ID waypoints set","Salva a lista completa de waypoints execut\xE1veis; preserve IDs e manifesto da rota operacional.","JSON: waypoints (lista completa com type; id para pontos existentes, sequence, address, lat/lng, stop_kind, reference_kind e demais campos execut\xE1veis)",!0],["driver routes ROUTE_ID coordinates validate","Verifica localmente as coordenadas dos waypoints salvos; endere\xE7o sozinho n\xE3o basta para otimizar."],["driver routes ROUTE_ID optimize","Enfileira otimiza\xE7\xE3o de waypoints com coordenadas; 202 retorna optimize_public_id e n\xE3o altera a SavedRoute.",null,!0],["driver optimization JOB_ID show","Consulta job de otimiza\xE7\xE3o at\xE9 status completed ou failed."],["driver routes ROUTE_ID optimize apply JOB_ID","Aplica ordem e geometria de job completed; o Core rejeita a escrita se a rota mudar ap\xF3s a leitura.","JSON: expected_waypoint_ids e expected_updated_at exibidos em routes ROUTE_ID show antes de otimizar",!0],["driver routes ROUTE_ID calculate","Enfileira c\xE1lculo sem otimizar; 202 retorna calculate_public_id e n\xE3o altera a SavedRoute.",null,!0],["driver calculation JOB_ID show","Consulta job de c\xE1lculo at\xE9 status completed ou failed."],["driver routes ROUTE_ID calculate apply JOB_ID","Aplica geometria de c\xE1lculo completed sem mudar a sequ\xEAncia; o Core rejeita snapshot alterado.","JSON: expected_waypoint_ids e expected_updated_at exibidos em routes ROUTE_ID show antes de calcular",!0],["driver routes ROUTE_ID start","Inicia execu\xE7\xE3o da SavedRoute pr\xF3pria ap\xF3s revisar rota e cota\xE7\xE3o aplic\xE1vel.",null,!0],["driver routes ROUTE_ID reactivate","Reabre uma rota manual antiga para o dia civil atual; rota operacional exige o fluxo B2B.",null,!0],["driver routes ROUTE_ID clone","Clona a SavedRoute pr\xF3pria em um novo draft, preservando waypoints e reiniciando execu\xE7\xE3o.",null,!0],["driver routes ROUTE_ID waypoints WAYPOINT_ID failure-policy","Consulta motivos de insucesso e exig\xEAncia de autoriza\xE7\xE3o do waypoint."],["driver routes ROUTE_ID waypoints WAYPOINT_ID notes","Atualiza a observa\xE7\xE3o da parada pr\xF3pria; string vazia limpa a observa\xE7\xE3o.","JSON: notes (string)",!0],["driver routes ROUTE_ID waypoints WAYPOINT_ID packages","Atualiza a quantidade de pacotes da parada; o Core recusa manifesto gerido por importa\xE7\xE3o.","JSON: packages_count (inteiro n\xE3o negativo)",!0],["driver routes ROUTE_ID waypoints WAYPOINT_ID navigation start","Registra o evento de in\xEDcio de navega\xE7\xE3o; n\xE3o abre um navegador ou aplicativo de mapas.","JSON: {} ou navigation_provider, nav_sdk_version, boot_duration_ms, waypoint_index e packages_count opcionais",!0],["driver routes ROUTE_ID waypoints WAYPOINT_ID items ITEM_ID enrich","Consulta os dados do item a partir da DANFE importada.",null,!0],["driver routes ROUTE_ID waypoints WAYPOINT_ID check-in","Registra a posi\xE7\xE3o informada para o check-in da parada; o Core calcula dist\xE2ncia e alerta.","JSON obrigat\xF3rio: lat e lng num\xE9ricos; accuracy_meters opcional",!0],["driver routes ROUTE_ID waypoints WAYPOINT_ID status","Registra baixa de waypoint; failed exige motivo e observa\xE7\xE3o.","JSON: status=pending|delivered|failed; para failed, failure_reason_code, failure_observation e failure_authorization_code se exigido",!0],["driver routes ROUTE_ID waypoints WAYPOINT_ID items ITEM_ID status","Registra baixa de item do manifesto.","JSON: status=pending|delivered|failed; para failed, failure_reason_code, failure_observation e failure_authorization_code se exigido",!0],["driver routes ROUTE_ID finish","Conclui rota pr\xF3pria depois que os waypoints exigidos tiverem baixa.",null,!0]]),a(["admin"],[["users admin list [limit=N] [cursor=X] [role=R] [search=X]","Lista usu\xE1rios vis\xEDveis \xE0 ACL interna."],["users admin show USER_ID","Consulta um usu\xE1rio."],["users admin driver-profile DRIVER_ID show","Consulta perfil operacional autorizado de um motorista."],["users admin driver-profile DRIVER_ID update","Corrige campos operacionais do motorista.","JSON: reason e profile com operation_base, operation_state, operation_city, operation_region, operation_notes, work_status, work_status_active, has_vehicle, vehicle_profile, vehicle_plate_state, vehicle_plate_city, vehicle_fleet_number, vehicle_axle_count, vehicle_bodywork",!0],["users drivers list [limit=N] [cursor=X] [search=X] [status=S] [carrier_account_id=UUID] [shipper_account_id=UUID]","Lista o diret\xF3rio de motoristas."],["admin users create","Cria usu\xE1rio; admin comum nasce staff sem grants.","JSON: name, email, password, phone E.164, registration_market_code BR|US, is_internal opcional",!0],["admin users USER_ID update","Atualiza usu\xE1rio.","JSON: um ou mais de name, email, phone, is_internal",!0],["admin users USER_ID block|unblock","Bloqueia ou desbloqueia usu\xE1rio.",null,!0],["admin users USER_ID roles","Altera pap\xE9is da identidade.","JSON: roles, reason",!0],["admin users USER_ID driver-access enable","Habilita motorista para um owner carrier ativo. Exige autoriza\xE7\xE3o de suporte; encerra as sess\xF5es do alvo e preserva a sess\xE3o do executor. J\xE1 habilitado retorna changed=false.","JSON em stdin: reason obrigat\xF3rio; confirma o UUID da identidade alvo",!0],["admin users USER_ID password","Redefine senha de usu\xE1rio.","JSON: password, reason",!0],["admin users USER_ID delete","Exclui usu\xE1rio ap\xF3s pr\xE9via; depend\xEAncias bloqueiam a exclus\xE3o.","JSON: email do usu\xE1rio",!0],["admin privacy preview","Consulta pr\xE9via de exclus\xE3o sem expor a inten\xE7\xE3o.","JSON: user_id ou email"],["admin privacy requests","Lista pedidos de exclus\xE3o."],["admin privacy requests status REQUEST_ID","Marca status de pedido; excluido n\xE3o prova apagamento.","JSON: new_status=solicitado|excluido|nao_ha_dados",!0],["access catalog","Consulta cat\xE1logo de permiss\xF5es internas."],["access accounts list [account_type=carrier|shipper] [limit=N] [cursor=X] [search=X]","Lista contas no escopo da ACL interna."],["access members list [status=X] [membership_role=X] [carrier_account_id=UUID] [shipper_account_id=UUID] [limit=N] [cursor=X] [search=X]","Lista v\xEDnculos B2B vis\xEDveis."],["access internal list","Lista acesso de usu\xE1rios internos."],["access internal show USER_ID","Consulta grants internos de um usu\xE1rio."],["access internal set USER_ID","Altera ACL interna conforme grants do ator.","JSON: access com admin_access_level ou permission_keys",!0],["access account ACCOUNT_ID members","Lista membros da conta."],["access account ACCOUNT_ID members create","Convida membro para a conta.","JSON: member com email, membership_role, workspace_role",!0],["access account ACCOUNT_ID members MEMBERSHIP_ID update","Atualiza v\xEDnculo do membro.","JSON: member com status, membership_role, workspace_role ou metadata",!0],["access account ACCOUNT_ID members MEMBERSHIP_ID resend-invitation","Reenvia convite pendente.",null,!0],["access account ACCOUNT_ID entitlements","Consulta m\xF3dulos da conta."],["access account ACCOUNT_ID entitlements set","Altera m\xF3dulos da conta.","JSON: access.module_keys",!0],["access account ACCOUNT_ID member-access MEMBERSHIP_ID","Consulta permiss\xF5es do membro."],["access account ACCOUNT_ID member-access MEMBERSHIP_ID set","Altera permiss\xF5es do membro.","JSON: access.permission_keys",!0],["access account ACCOUNT_ID member-bases MEMBERSHIP_ID","Consulta bases do membro."],["access account ACCOUNT_ID member-bases MEMBERSHIP_ID set","Altera bases do membro.","JSON: access.base_ids",!0]]),a(["carrier","shipper"],[["company my-account show","Consulta a empresa da sess\xE3o."],["company my-account update","Atualiza dados permitidos da empresa da sess\xE3o.","JSON: um ou mais de legal_name, trading_name, document, issuing_country_code, legal_identifier, contact_points, addresses",!0],["access my-account catalog","Consulta cat\xE1logo de permiss\xF5es B2B."],["access my-account members","Lista membros da conta da sess\xE3o."],["access my-account members create","Convida membro para a conta da sess\xE3o.","JSON: member com email e membership_role",!0],["access my-account members MEMBERSHIP_ID update","Atualiza v\xEDnculo de membro.","JSON: member com status, membership_role ou metadata",!0],["access my-account members MEMBERSHIP_ID resend-invitation","Reenvia convite pendente.",null,!0],["access my-account entitlements","Consulta m\xF3dulos da conta da sess\xE3o."],["access my-account entitlements set","Altera m\xF3dulos conforme a ACL B2B.","JSON: access.module_keys",!0],["access my-account member-access MEMBERSHIP_ID","Consulta permiss\xF5es do membro."],["access my-account member-access MEMBERSHIP_ID set","Altera permiss\xF5es do membro.","JSON: access.permission_keys",!0]]),a(["carrier"],[["users carrier drivers invitations create","Envia convite por CPF para motorista registrado. Exige m\xF3dulo carrier_driver_invitations ativo e permiss\xE3o manage no Core; nenhum grant \xE9 autom\xE1tico. Retorna convite pending, n\xE3o v\xEDnculo. Retry deve reutilizar chave e CPF.","JSON em stdin: cpf (string), idempotency_key (Unicode v\xE1lido sem U+0000, 1 a 128 codepoints), sem normaliza\xE7\xE3o; header Idempotency-Key para ASCII printable sem espa\xE7os nas bordas, body idempotency_key para os demais valores; CPF n\xE3o \xE9 argumento de shell",!0],["users carrier drivers invitations list [status=S] [limit=N] [cursor=X]","Lista convites da conta ativa com CPF mascarado; Core exige m\xF3dulo ativo e view OU manage. status=pending|accepted|declined|cancelled|expired, limit=1..100 (padr\xE3o 20), cursor opaco."],["users carrier drivers invitations show INVITATION_ID","Consulta convite da conta ativa com CPF mascarado; Core exige m\xF3dulo ativo e view OU manage."],["users carrier drivers invitations cancel INVITATION_ID","Cancela convite pendente da conta ativa; Core exige m\xF3dulo ativo e manage. Retry reutiliza a chave; consulte show ap\xF3s conflito.","JSON em stdin: idempotency_key (Unicode v\xE1lido sem U+0000, 1 a 128 codepoints), sem normaliza\xE7\xE3o; header Idempotency-Key para ASCII printable sem espa\xE7os nas bordas, body idempotency_key para os demais valores",!0],["users carrier drivers list [base_id=UUID] [limit=N] [cursor=X] [search=X]","Lista motoristas da transportadora."],["users carrier drivers link DRIVER_USER_ID","Consulta v\xEDnculo com motorista."],["users carrier drivers link DRIVER_USER_ID set-bases","Altera bases do v\xEDnculo.","JSON: base_ids",!0]]),a(["admin"],[["admin support threads list [status=open|closed] [limit=N] [cursor=X]","Lista conversas de suporte."],["admin support threads THREAD_ID messages [limit=N] [cursor=X]","Consulta mensagens da conversa."],["admin support threads THREAD_ID reply","Mostra at\xE9 100 mensagens antes da resposta; pagine o hist\xF3rico se houver mais.","JSON: body (1 a 4000 caracteres)",!0],["admin support threads THREAD_ID close","Fecha a conversa ap\xF3s pr\xE9via e confirma\xE7\xE3o pelo UUID. Exige messaging.manage no Core; resultado s\xEDncrono.","Sem JSON de entrada",!0],["admin support threads THREAD_ID reopen","Reabre a conversa ap\xF3s pr\xE9via e confirma\xE7\xE3o pelo UUID. Exige messaging.manage no Core; resultado s\xEDncrono.","Sem JSON de entrada",!0],["admin feedbacks list [status=S] [user_id=UUID] [order=recent|votes|oldest] [limit=N] [cursor=X]","Lista feedbacks."],["admin feedbacks show FEEDBACK_ID","Consulta feedback."],["admin feedbacks comments FEEDBACK_ID [limit=N] [cursor=X]","Lista coment\xE1rios."],["admin feedbacks delete FEEDBACK_ID","Exclui permanentemente o feedback ap\xF3s pr\xE9via e confirma\xE7\xE3o pelo UUID. O Core exige feedbacks.manage; HTTP 204 confirma conclus\xE3o.","Sem JSON de entrada; n\xE3o h\xE1 restore de feedback",!0],["admin feedbacks comments FEEDBACK_ID COMMENT_ID delete","Oculta o coment\xE1rio do feedback ap\xF3s pr\xE9via e confirma\xE7\xE3o pelo UUID do coment\xE1rio. O Core verifica v\xEDnculo e feedbacks.manage; HTTP 204 confirma conclus\xE3o.","Sem JSON de entrada",!0],["admin feedbacks comments FEEDBACK_ID COMMENT_ID restore","Restaura um coment\xE1rio oculto do feedback ap\xF3s pr\xE9via e confirma\xE7\xE3o pelo UUID do coment\xE1rio. O Core verifica v\xEDnculo e feedbacks.manage; HTTP 204 confirma conclus\xE3o.","Sem JSON de entrada",!0],["admin feedbacks comment FEEDBACK_ID key=CHAVE","Comenta com chave idempotente de 16 a 255 caracteres.","JSON: content, image_url opcional",!0],["admin feedbacks status FEEDBACK_ID key=CHAVE","Solicita mudan\xE7a de status; 202 pending exige consulta do receipt. Reuse chave e payload no retry.","JSON: new_status=pending|in_progress|prioritized|resolved|canceled|duplicate; closing_comment_id e reason opcionais",!0],["admin feedbacks receipt FEEDBACK_ID RECEIPT_ID","Consulta o resultado de uma mudan\xE7a terminal."],["admin crm assignees","Lista respons\xE1veis eleg\xEDveis por leads."],["admin crm leads list [status=S] [search=X] [limit=N] [cursor=X]","Lista leads."],["admin crm leads show LEAD_ID","Consulta lead e eventos."],["admin crm leads LEAD_ID status","Altera status do lead.","JSON: new_status=novo|em_contato|qualificado|perdido|convertido",!0],["admin crm leads LEAD_ID note","Adiciona nota ao lead.","JSON: note",!0],["admin crm leads LEAD_ID assign","Atribui respons\xE1vel eleg\xEDvel.","JSON: admin_id",!0],["admin notifications list [limit=N] [cursor=X]","Lista notifica\xE7\xF5es."],["admin notifications show MESSAGE_GROUP_ID","Consulta processamento e destinat\xE1rios autorizados."],["admin notifications send","Enfileira notifica\xE7\xE3o individual; 202 n\xE3o prova entrega.","JSON: user_id, title, body; action_url e action_label opcionais",!0],["admin blog posts list [locale=pt-BR|en|es] [translation_group_id=UUID]","Lista posts, inclusive rascunhos."],["admin blog posts create key=CHAVE","Cria post com idempot\xEAncia; chave est\xE1vel de 16 a 255 caracteres.","JSON obrigat\xF3rio: slug, title, description, author, category, content_markdown, content_html; opcionais: locale, tags, cover_image_url, published",!0],["--non-interactive admin blog posts create key=CHAVE","Exce\xE7\xE3o exclusiva do Growth para criar post sem confirma\xE7\xE3o no terminal; n\xE3o libera outras muta\xE7\xF5es.","JSON: mesmo contrato de admin blog posts create"],["admin blog posts POST_ID update","Atualiza post com If-Match.","JSON: version e campos alterados",!0],["admin blog posts POST_ID publish|unpublish version=N","Altera publica\xE7\xE3o com vers\xE3o esperada.",null,!0],["admin blog posts POST_ID delete","Exclui post.",null,!0],["admin blog images upload ARQUIVO","Envia imagem PNG, JPEG, WebP ou GIF at\xE9 8 MiB.",null,!0],["admin faqs list [path=X] [route_key=X] [locale=pt-BR|en|es] [category=X] [featured=true|false] [q=X]","Lista FAQs, inclusive rascunhos."],["admin faqs create key=CHAVE","Cria FAQ com idempot\xEAncia; chave est\xE1vel de 16 a 255 caracteres.","JSON obrigat\xF3rio: question, answer, category, paths ou route_keys; opcionais: locale, tags, featured_on_home, position, published",!0],["admin faqs FAQ_ID update","Atualiza FAQ com If-Match.","JSON: version e campos alterados",!0],["admin faqs FAQ_ID publish|unpublish version=N","Altera publica\xE7\xE3o com vers\xE3o esperada.",null,!0],["admin faqs FAQ_ID delete","Exclui FAQ.",null,!0],["admin companies list [account_type=carrier|shipper] [search=X] [limit=N] [cursor=X]","Lista empresas B2B."],["admin companies show BUSINESS_ACCOUNT_ID","Consulta empresa pelo ID jur\xEDdico; IDs operacionais de shipper/carrier s\xE3o distintos."],["admin companies consult","Consulta dados cadastrais de uma empresa pelo CNPJ. Retorna CNPJ, nomes e endere\xE7o, sem confirma\xE7\xE3o.","JSON em stdin: cnpj (string) e user_id opcional (UUID)"],["admin companies onboard-existing-user","Registra usu\xE1rio ativo existente como owner da conta carrier; o Core valida empresa, membership e ACL. Retorna empresa, v\xEDnculo, m\xF3dulos ativos e email_delivery.status=disabled|pending|sent|failed.","JSON em stdin: user_id (UUID), cnpj (string), send_email (booleano opcional; padr\xE3o false)",!0],["admin companies onboarding-users list [search=X] [limit=N] [cursor=X]","Lista identidades ativas de pap\xE9is can\xF4nicos para onboarding; exige business_accounts_registry.manage no Core e retorna somente user_id, nome, email e status."],["admin companies create","Cria empresa B2B.","JSON obrigat\xF3rio: legal_name e document ou issuing_country_code+legal_identifier; opcionais: trading_name, status, account_type, account_types, contact_points, addresses",!0],["admin companies BUSINESS_ACCOUNT_ID update","Atualiza empresa B2B.","JSON: um ou mais de legal_name, trading_name, document, issuing_country_code, legal_identifier, status, account_type, account_types, contact_points, addresses",!0],["admin shippers OPERATIONAL_ACCOUNT_ID bases list","Lista bases do embarcador."],["admin shippers OPERATIONAL_ACCOUNT_ID bases create","Cria base do embarcador.","JSON: market_id, country_code, currency_code, timezone, code, name e endere\xE7o",!0],["admin shippers OPERATIONAL_ACCOUNT_ID bases BASE_ID update|deactivate|reactivate","Altera ou ativa/desativa base do embarcador; update recebe JSON.","JSON para update: code, name, origin_address, origin_lat, origin_lng, postal_code, place_id, street, street_number, neighborhood, city, state, state_code, country, geocode_provider, timezone, triage_rules, balancing_policy, metadata",!0],["admin shippers|carriers OPERATIONAL_ACCOUNT_ID bases BASE_ID cutoff-windows set","Substitui todos os hor\xE1rios de corte no timezone da base; windows=[] limpa. Resultado s\xEDncrono; a CLI confirma no terminal, MCP remoto exige aprova\xE7\xE3o Core. Base shipper com execu\xE7\xF5es vinculadas \xE9 recusada com 409 cutoff_dispatches_exist.","JSON: windows (lista de weekday 0..6, cutoff_time HH:MM[:SS], auto_publish opcional)",!0],["admin shippers|carriers OPERATIONAL_ACCOUNT_ID bases BASE_ID service-area set|clear","Substitui ou remove a cobertura regional da base.","JSON para set: reference_zone_public_ids (lista de UUIDs)",!0],["admin shippers|carriers OPERATIONAL_ACCOUNT_ID bases BASE_ID region-groups create","Cria agrupamento nomeado de regi\xF5es para a base.","JSON: name, reference_zone_public_ids (lista de UUIDs)",!0],["admin shippers|carriers OPERATIONAL_ACCOUNT_ID bases BASE_ID zone-overrides list","Consulta zonas efetivas salvas da base; verifica a refer\xEAncia \xE0 conta operacional; depende das permiss\xF5es da sess\xE3o. Resultado s\xEDncrono, sem JSON ou confirma\xE7\xE3o."],["admin shippers OPERATIONAL_ACCOUNT_ID bases BASE_ID carrier-shares list","Consulta distribui\xE7\xE3o configurada de carriers da base shipper; verifica a refer\xEAncia \xE0 conta operacional; depende das permiss\xF5es da sess\xE3o. Resultado s\xEDncrono, sem JSON ou confirma\xE7\xE3o."],["admin carriers OPERATIONAL_ACCOUNT_ID bases list","Lista bases da transportadora."],["admin carriers OPERATIONAL_ACCOUNT_ID bases create","Cria base da transportadora.","JSON: market_id, country_code, currency_code, timezone, code, name e endere\xE7o",!0],["admin carriers OPERATIONAL_ACCOUNT_ID bases BASE_ID update|deactivate|reactivate","Altera ou ativa/desativa base da transportadora; update recebe JSON.","JSON para update: code, name, origin_address, origin_lat, origin_lng, postal_code, place_id, street, street_number, neighborhood, city, state, state_code, country, geocode_provider, timezone, triage_rules",!0]]),a(["carrier"],[["carrier bases BASE_ID reference-zone-features list [limit=N] [cursor=X] [search=X] [min_lng=X] [min_lat=X] [max_lng=X] [max_lat=X] [include_geometry=true|false]","Consulta cat\xE1logo OSM de refer\xEAncia para base pr\xF3pria da conta carrier ativa, conforme as permiss\xF5es da sess\xE3o; n\xE3o \xE9 cobertura operacional salva. Resultado s\xEDncrono com meta de pagina\xE7\xE3o, sem JSON ou confirma\xE7\xE3o."]]),a(["shipper"],[["shipper bases list","Lista as bases da conta embarcadora ativa."],["shipper bases create","Cria uma base na conta embarcadora ativa.","JSON obrigat\xF3rio: code, name; opcionais: origin_address, origin_lat, origin_lng, timezone, triage_rules, metadata",!0],["shipper bases BASE_ID carrier-shares list","Lista a distribui\xE7\xE3o de carriers configurada na base."],["shipper bases BASE_ID carrier-shares create","Adiciona share de carrier \xE0 base.","JSON: carrier_account_id, target_share_percent; quality_weight, priority_order e allocation_enabled opcionais",!0],["shipper bases BASE_ID carrier-shares replace","Substitui a distribui\xE7\xE3o de carriers da base.","JSON: carriers (lista de carrier_account_id, target_share_percent e campos opcionais)",!0],["shipper bases BASE_ID reference-zone-features list [limit=N] [cursor=X] [search=X] [min_lng=X] [min_lat=X] [max_lng=X] [max_lat=X] [include_geometry=true|false]","Lista fei\xE7\xF5es de refer\xEAncia para compor a cobertura da base."],["shipper bases BASE_ID reference-zone-features merge","Mescla fei\xE7\xF5es de refer\xEAncia em uma zona da base.","JSON: reference_zone_public_ids (lista de UUIDs); code e name opcionais",!0]]);for(const e of["admin","carrier"])a([e],[[`${e} gr provider-definitions list`,"Lista providers GR dispon\xEDveis no papel ativo."],[`${e} gr providers list [${e==="admin"?"carrier_account_id=UUID] [":""}provider_key=X] [status=X] [limit=N] [cursor=X]${e==="carrier"?" [search=X]":""}`,"Lista contas de providers GR no papel ativo."],[`${e} gr providers create`,"Cria conta de provider GR; credenciais s\xE3o aceitas somente via stdin.",`JSON: provider_key=m3risk|angellira, provider_label, mode=crawler|api|ftp|browser|api_jwt; status, config e credentials opcionais${e==="admin"?"; carrier_account_id ou carrier_account_public_id obrigat\xF3rio":""}`,!0],[`${e} gr providers PROVIDER_ID update`,"Atualiza conta de provider GR no escopo da sess\xE3o.","JSON: provider_label, mode, status, config e/ou credentials",!0],[`${e} gr providers PROVIDER_ID test`,"Testa a configura\xE7\xE3o da conta GR e retorna o healthcheck.",null,!0],[`${e} gr providers PROVIDER_ID operations`,"Descobre opera\xE7\xF5es expostas pela conta GR."],[`${e} gr providers PROVIDER_ID mappings list [active=true|false]`,"Lista mapeamentos de opera\xE7\xE3o da conta GR."],[`${e} gr providers PROVIDER_ID mappings upsert`,"Cria ou atualiza mapeamento de opera\xE7\xE3o GR.","JSON: operation_key, provider_client_id; provider_client_label, metadata e active opcionais",!0],[`${e} gr requests list [provider_key=X] [status=X] [phase=X] [operation_key=X] [search=X] [limit=N] [cursor=X]${e==="admin"?" [carrier_account_id=UUID]":""}`,"Lista solicita\xE7\xF5es GR no escopo da sess\xE3o."],[`${e} gr requests create`,"Enfileira solicita\xE7\xE3o GR; 202 n\xE3o prova conclus\xE3o.","JSON: driver_profile_id, provider_account_id, operation_key; priority opcional",!0],[`${e} gr requests REQUEST_ID show`,"Consulta solicita\xE7\xE3o GR."],[`${e} gr requests REQUEST_ID attempts|evidence|orchestration-events [limit=N] [cursor=X]`,"Consulta hist\xF3rico da solicita\xE7\xE3o GR."],[`${e} gr requests REQUEST_ID retry|verify|cancel`,"Altera solicita\xE7\xE3o GR conforme ACL e estado do Core.",null,!0],[`${e} gr requests REQUEST_ID confirm-recovery`,"Confirma a revis\xE3o exata de opera\xE7\xF5es de escrita ap\xF3s a pr\xE9via read-only.","JSON: recovery_revision, operations",!0],[`${e} gr requests REQUEST_ID operation`,"Seleciona opera\xE7\xE3o ativa para solicita\xE7\xE3o legada antes de qualquer escrita externa.","JSON: operation_key (UUID da base operacional)",!0],[`${e} gr requests REQUEST_ID personal-declarations`,"Atualiza declara\xE7\xF5es pessoais criptografadas e agenda reconcilia\xE7\xE3o.","JSON: sex=male|female|other e/ou marital_status=single|married|divorced|widowed|other",!0]]);a(["admin"],[["admin gr provider-definitions PROVIDER_ID update","Atualiza defini\xE7\xE3o global do provider GR; infraestrutura global continua restrita ao Admin.","JSON: provider_label, mode, status e/ou config com base_url, runner_url, runner_command",!0]]),a(["admin"],[["admin gr carriers CARRIER_ID dashboard","Consulta resumo GR da transportadora."],["admin gr drivers [carrier_account_id=UUID] [limit=N] [cursor=X] [provider_account_id=UUID] [search=X] [document=X] [status=X] [training_pending=true|false]","Consulta diret\xF3rio GR global, incluindo motoristas sem v\xEDnculo; depende das permiss\xF5es da sess\xE3o."],["admin gr carriers CARRIER_ID drivers [limit=N] [cursor=X] [provider_account_id=UUID] [search=X] [document=X] [status=X] [training_pending=true|false]","Consulta motoristas GR da transportadora."],["admin gr carriers CARRIER_ID blacklist list [limit=N] [cursor=X] [search=X]","Lista v\xEDnculos de motoristas bloqueados na transportadora."],["admin gr carriers CARRIER_ID links LINK_ID blacklist|unblock","Bloqueia ou desbloqueia v\xEDnculo; bloquear cancela solicita\xE7\xF5es GR abertas.",null,!0],["admin gr carriers CARRIER_ID links LINK_ID manual-approval","Aprova ou revoga GR externo somente nesse v\xEDnculo e transportadora; exige autoriza\xE7\xE3o e confirma\xE7\xE3o do LINK_ID. Retorna manual_approval com autor e data.",'JSON obrigat\xF3rio: {"approved":true} para aprovar ou {"approved":false} para revogar; CARRIER_ID e LINK_ID s\xE3o UUIDs p\xFAblicos',!0],["admin gr carriers CARRIER_ID drivers PROFILE_ID export","Consulta o perfil e a prontid\xE3o GR do motorista vinculado."],["admin gr carriers CARRIER_ID drivers PROFILE_ID documents TYPE reprocess","Reprocessa documento j\xE1 armazenado; 202 n\xE3o prova conclus\xE3o.","TYPE=cnh|crlv|address_proof|antt|ownership_document; JSON: {} ou document_id, registration_request_id e/ou requirements_revision",!0],["admin gr driver-profiles PROFILE_ID show","Consulta detalhe GR do motorista no escopo Admin."],["admin gr driver-profiles PROFILE_ID training","Registra se o treinamento GR foi assistido.","JSON obrigat\xF3rio: training_watched=true|false",!0]]),a(["carrier"],[["carrier gr dashboard","Consulta resumo GR da pr\xF3pria transportadora."],["carrier gr drivers [limit=N] [cursor=X] [provider_account_id=UUID] [search=X] [document=X] [status=X] [training_pending=true|false]","Consulta motoristas GR da pr\xF3pria transportadora."],["carrier gr blacklist list [limit=N] [cursor=X] [search=X]","Lista v\xEDnculos de motoristas bloqueados na pr\xF3pria transportadora."],["carrier gr links LINK_ID blacklist|unblock","Bloqueia ou desbloqueia v\xEDnculo pr\xF3prio; bloquear cancela solicita\xE7\xF5es GR abertas.",null,!0],["carrier gr links LINK_ID manual-approval","Aprova ou revoga GR externo no v\xEDnculo da transportadora da sess\xE3o; exige autoriza\xE7\xE3o e confirma\xE7\xE3o do LINK_ID. Retorna manual_approval com autor e data.",'JSON obrigat\xF3rio: {"approved":true} para aprovar ou {"approved":false} para revogar; LINK_ID \xE9 o UUID p\xFAblico do v\xEDnculo',!0],["carrier gr drivers PROFILE_ID export","Consulta o perfil e a prontid\xE3o GR do motorista vinculado."],["carrier gr drivers PROFILE_ID documents TYPE reprocess","Reprocessa documento j\xE1 armazenado; 202 n\xE3o prova conclus\xE3o.","TYPE=cnh|crlv|address_proof|antt|ownership_document; JSON: {} ou document_id, registration_request_id e/ou requirements_revision",!0],["carrier gr driver-profiles PROFILE_ID training","Registra se o treinamento GR foi assistido para motorista vinculado.","JSON obrigat\xF3rio: training_watched=true|false",!0]]);for(const[e,r]of[["carrier","carrier"],["admin","admin operations CARRIER_ID"]])a([e],[[`${r} orders lookup BARCODE`,"Consulta pedido por c\xF3digo."],[`${r} orders upsert`,"Cria ou atualiza pedido.","JSON obrigat\xF3rio: source_type=upload|proceda, external_id, postal_code, destination_address; opcionais: shipper_id, base_id, primary_barcode, aliases, destination_lat, destination_lng, destination_complement, geocode, recipient_name, recipient_doc, recipient_phone, packages_count, raw_payload, metadata",!0],[`${r} receiving scan`,"Registra recebimento ap\xF3s consultar o pedido.","JSON obrigat\xF3rio: barcode; opcionais: shipper_id, base_id, metadata",!0],[`${r} receiving rules list`,"Lista regras de recebimento."],[`${r} receiving rules create`,"Cria regra de recebimento global, por embarcador ou por base.","JSON obrigat\xF3rio: code, name, postal_code_start, postal_code_end; opcionais: shipper_id, base_id, priority_order, status, metadata. IDs s\xE3o UUIDs p\xFAblicos; sem shipper_id/base_id, a regra \xE9 global",!0],[`${r} receiving rules RULE_ID update`,"Atualiza parcialmente uma regra de recebimento.","JSON: um ou mais de shipper_id, base_id, code, name, postal_code_start, postal_code_end, priority_order, status, metadata. Campos omitidos s\xE3o preservados. base_id:null remove a base; shipper_id:null e base_id:null tornam a regra global",!0],[`${r} dispatch create`,"Expede pedidos ao motorista.","JSON: driver_user_id, barcodes; route_name/metadata opcionais",!0],[`${r} dispatch ROUTE_ID add-orders`,"Adiciona pedidos \xE0 rota manual ativa; a rota pode j\xE1 ter iniciado.","JSON obrigat\xF3rio: barcodes; reason opcional",!0]]);a(["carrier"],[["carrier desktop providers list","Lista providers publicados para ativa\xE7\xE3o; depende das permiss\xF5es da sess\xE3o."],["carrier desktop providers PROVIDER_ID activate","Ativa a integra\xE7\xE3o Desktop ap\xF3s confirmar o UUID do provider; n\xE3o habilita automaticamente a entrada de pedidos. Exige autoriza\xE7\xE3o da conta.",null,!0],["carrier desktop grants GRANT_ID flow-installations list","Consulta fluxos dispon\xEDveis e instala\xE7\xF5es do grant autorizado pelo Core."],["carrier desktop grants GRANT_ID flow-installations create","Instala um fluxo no grant; exige autoriza\xE7\xE3o e confirma\xE7\xE3o do grant.","JSON obrigat\xF3rio: flow_id; opcionais: connection_id, base_id, trigger, trigger_key, schedule, timezone, enabled, policies. O Core valida os gatilhos e agendamentos",!0],["carrier desktop flow-installations INSTALLATION_ID update","Altera uma instala\xE7\xE3o ap\xF3s confirmar seu UUID; o Core valida escopo, pol\xEDticas e concorr\xEAncia de vers\xE3o.","JSON parcial: enabled, schedule, timezone, policies, flow_version_id, expected_current_version_id. Para trocar vers\xE3o, informe a vers\xE3o atual esperada",!0],["carrier desktop flow-installations INSTALLATION_ID run","Enfileira um fluxo autorizado. 201 com execu\xE7\xE3o queued n\xE3o comprova conclus\xE3o; acompanhe por carrier desktop executions EXECUTION_ID show.","JSON obrigat\xF3rio: idempotency_key (16 a 128 caracteres) e input (objeto). Preserve os mesmos dados e a chave nos retries",!0],["carrier desktop grants GRANT_ID order-import-batches create","Importa um lote da execu\xE7\xE3o e dispositivo autorizados. Confirma o grant e preserva o receipt de idempot\xEAncia.","JSON obrigat\xF3rio: idempotency_key, execution_id, device_id, records (at\xE9 100 itens com external_id, order_requested_at, destination_address e packages_count); next_cursor e checkpoint opcionais. A chave \xE9 enviada em Idempotency-Key",!0],["carrier desktop grants GRANT_ID extractions preview","Obt\xE9m pr\xE9via estruturada de uma p\xE1gina autorizada. Confirma o grant, sem persistir pedidos.","JSON obrigat\xF3rio: run_id, base_id, flow_version=1, page_url, instruction, fields e snapshot. N\xE3o passe o conte\xFAdo da p\xE1gina em argumentos de shell",!0],["carrier desktop grants list","Lista integra\xE7\xF5es Desktop autorizadas para a transportadora."],["carrier desktop orders list [shipper_id=UUID] [base_id=UUID] [query=X] [cursor=X] [status_sync=true]","Lista pedidos can\xF4nicos da integra\xE7\xE3o Desktop dentro das bases autorizadas."],["carrier desktop orders ORDER_ID show","Consulta um pedido can\xF4nico da integra\xE7\xE3o Desktop."],["carrier desktop orders refresh","Enfileira atualiza\xE7\xE3o de pedidos selecionados no provedor; 202 \xE9 aceita\xE7\xE3o, n\xE3o conclus\xE3o.","JSON obrigat\xF3rio: order_ids (1 a 100 UUIDs) e idempotency_key (16 a 128 caracteres)",!0],["carrier desktop orders resync","Enfileira ressincroniza\xE7\xE3o dos pedidos selecionados; 202 \xE9 aceita\xE7\xE3o, n\xE3o conclus\xE3o.","JSON obrigat\xF3rio: order_ids (1 a 100 UUIDs) e idempotency_key (16 a 128 caracteres)",!0],["carrier desktop sync-runs list [shipper_id=UUID] [base_id=UUID] [connection_id=UUID] [device_id=X] [order_id=UUID] [status=X] [cursor=X]","Lista execu\xE7\xF5es de sincroniza\xE7\xE3o Desktop."],["carrier desktop sync-runs RUN_ID show","Consulta uma execu\xE7\xE3o de sincroniza\xE7\xE3o Desktop."],["carrier desktop sync-runs RUN_ID cancel","Cancela uma execu\xE7\xE3o ativa de sincroniza\xE7\xE3o Desktop.",null,!0],["carrier desktop executions EXECUTION_ID show","Consulta uma execu\xE7\xE3o Desktop pelo identificador."],["carrier desktop executions EXECUTION_ID candidates list [device_id=X] [cursor=X]","Lista candidatos de sincroniza\xE7\xE3o ap\xF3s a execu\xE7\xE3o assumir o dispositivo."],["carrier desktop executions EXECUTION_ID known-ids","Consulta no Core quais pedidos externos j\xE1 s\xE3o conhecidos.","JSON obrigat\xF3rio: device_id e external_orders; cada item usa external_id e external_base_code"],["carrier desktop executions EXECUTION_ID receipt device_id=X batch_key=CHAVE","Consulta o receipt conclu\xEDdo de um lote de importa\xE7\xE3o Desktop."],["carrier desktop operation-routes list","Lista rotas publicadas de recebimento Desktop no escopo da transportadora."],["carrier desktop operation-routes publish","Publica uma nova revis\xE3o da opera\xE7\xE3o Desktop na base.","JSON: base_id, shipper_id, operation_kind e target=core|flow; para flow, bindings com installation_id e requirement=required|optional; handler_key conforme a opera\xE7\xE3o Core",!0],["carrier desktop operation-contexts open","Abre contexto de recebimento e retorna context_token para as leituras.","JSON: base_id, shipper_id, operation_kind=sack_receipt|package_receipt, mode=fast|standard, device_id"],["carrier desktop operation-contexts SESSION_ID close","Encerra contexto de recebimento Desktop.",null,!0],["carrier desktop operation-scans batch","Aceita lote idempotente de leituras f\xEDsicas; cada resultado informa accepted, duplicate ou erro.","JSON: context_token e scans (1 a 100 itens com scan_id, barcode, occurred_at; association opcional)",!0],["carrier desktop operation-runs list [base_id=UUID] [shipper_id=UUID] [operation_kind=X] [device_id=X] [monitor=true|false] [cursor=X] [limit=N]","Lista resultados de recebimento do pr\xF3prio dispositivo ou o monitor da transportadora; device_id \xE9 obrigat\xF3rio sem monitor=true."],["carrier desktop operation-runs FLOW_RUN_ID retry","Reenfileira um fluxo de recebimento terminal usando a vers\xE3o publicada atual.",null,!0],["carrier desktop operation-runs retry-batch","Reenfileira de 1 a 100 fluxos de recebimento terminais.","JSON obrigat\xF3rio: flow_run_ids (UUIDs)",!0],["carrier desktop flow-actions ACTION_KEY run","Enfileira uma a\xE7\xE3o Desktop nomeada para uma base; 202 \xE9 aceita\xE7\xE3o, n\xE3o conclus\xE3o.","JSON obrigat\xF3rio: shipper_id, base_id, input (objeto) e idempotency_key",!0]]),a(["admin"],[["admin financial payment-profiles create","Cria perfil e publica a vers\xE3o de forma s\xEDncrona; pode desativar o perfil ativo do mesmo contexto/base/carrier. Exige autoriza\xE7\xE3o da sess\xE3o. Confirma o UUID de base, origem, owner ou client, ou payment-profiles quando ausentes; retorna o envelope Core.","JSON stdin obrigat\xF3rio: profile_mode=shipper_owned|carrier_managed|driver_self_managed e configuration (objeto opaco validado pelo Core). Opcionais: shipper_account_id, base_id (operacionais), client_id, origin_id, reference_shipper_id, reference_carrier_id (financeiros), owner_user_id, origin_name, origin_address, name, period_type, start_day, end_day, invoice_day, payment_day (inteiros ou null), active, is_default (booleanos), reference_payer_label, currency. Zeros, null e strings decimais da configuration s\xE3o preservados",!0],["admin financial carrier-margins ORIGIN_ID upsert","Substitui a regra ativa do par carrier/origem financeira, preservando hist\xF3rico no Core. S\xEDncrono; exige autoriza\xE7\xE3o, confirma ORIGIN_ID e retorna o envelope Core. ORIGIN_ID vem de data.origin.id do perfil, n\xE3o do base_id operacional.","JSON stdin obrigat\xF3rio: carrier_id (UUID financeiro), margin_percent (n\xFAmero ou string decimal, sem convers\xE3o; faixa validada pelo Core). origin_id opcional deve corresponder ao path; o body enviado usa ORIGIN_ID. Zero \xE9 v\xE1lido",!0]]);for(const e of["carrier","admin"]){const r=e==="carrier"?"carrier operations":"admin operations CARRIER_ID";a([e],[[`${r} config show`,"Consulta configura\xE7\xE3o operacional; o Core verifica ACL e retorna erro se ela ainda n\xE3o existir."],[`${r} config update`,"Atualiza parcialmente a configura\xE7\xE3o ap\xF3s confirmar a conta; exige carrier_clients.manage ou physical_receiving.manage no Core. Campos omitidos s\xE3o preservados.","JSON: um ou mais de integration_type=upload|proceda, order_entry_mode=upload|proceda, status_query_mode=disabled, receiving_enabled, dispatch_enabled, routing_enabled, quotation_enabled (booleanos), status=active|inactive, metadata (objeto). O Core deriva os modos quando aplic\xE1vel",!0]])}for(const[e,r]of[["carrier","carrier"],["admin","admin operations CARRIER_ID"]])a([e],[[`${r} shippers list`,"Lista embarcadores geridos pela transportadora."],[`${r} shippers create`,"Cria ou reutiliza embarcador vinculado \xE0 transportadora.","JSON: legal_name e document ou issuing_country_code + legal_identifier; trading_name opcional",!0],[`${r} shippers SHIPPER_ID bases list`,"Lista bases do embarcador vinculado."],[`${r} shippers SHIPPER_ID bases create`,"Cria ou reutiliza base do embarcador vinculado.","JSON: code, name; market_id, endere\xE7o, timezone, triage_rules, balancing_policy e metadata opcionais",!0],[`${r} status-outbox [sink_type=X] [shipper_id=UUID] [adapter_type=X]`,"Consulta eventos de status enviados ou pendentes da transportadora."]]);for(const e of["admin","carrier","shipper"])a([e],[[`${e} orders imports preview ARQUIVO [shipper_id=UUID] [base_id=UUID]`,"Pr\xE9via de CSV, XLS, XLSX ou PDF local antes da importa\xE7\xE3o."],[`${e} orders imports create ARQUIVO`,"Cria lote de importa\xE7\xE3o; a resposta \xE9 enfileiramento, consulte o lote para o resultado.",`JSON: base_id${e==="shipper"?"":", shipper_id"} obrigat\xF3rios; column_mapping e import_context opcionais`,!0],[`${e} orders imports BATCH_ID show [include_orders=true|false]`,"Consulta estado e resultado do lote."],[`${e} orders imports BATCH_ID source-preview`,"Consulta pr\xE9via da origem do lote."],[`${e} orders imports BATCH_ID orders list [limit=N] [cursor=X] [search=X] [geocode_status=X] [only_errors=true|false]`,"Lista pedidos do lote."],[`${e} orders imports BATCH_ID orders ORDER_ID update`,"Corrige endere\xE7o ou destinat\xE1rio de um pedido do lote.","JSON: um ou mais de destination_address, destination_street, destination_number, destination_neighborhood, destination_city, destination_state, destination_postal_code, destination_complement, recipient_name, recipient_phone, nfe_key",!0],[`${e} orders imports BATCH_ID remap`,"Cria novo lote com mapeamento corrigido; consulte o lote retornado.","JSON: column_mapping ou import_context como objeto",!0],[`${e} orders imports BATCH_ID requeue-geocode`,"Reenfileira geocode do lote; 202 n\xE3o prova conclus\xE3o.",null,!0],[`${e} orders ORDER_ID retry-geocode`,"Reexecuta geocode de um pedido vis\xEDvel ao papel ativo.","JSON: raw_address com pelo menos 3 caracteres",!0]]);a(["admin"],[["admin triage batches list [limit=N] [cursor=X] [search=X]","Lista lotes de importa\xE7\xE3o para triagem; search cobre ID, status, origem, arquivo, embarcador e base."],["admin triage batches BATCH_ID show","Consulta o lote, relat\xF3rio, runtime e candidatos de rota."],["admin triage batches BATCH_ID run","Enfileira a triagem do lote; 202 \xE9 aceita\xE7\xE3o, n\xE3o conclus\xE3o.",null,!0],["admin triage batches BATCH_ID orders ORDER_ID update","Corrige endere\xE7o de um pedido com falha de triagem e invalida candidatos antigos.","JSON obrigat\xF3rio: destination_address; destination_lat e destination_lng opcionais",!0]]);for(const e of["admin","carrier","shipper"])a([e],[[`${e} routes list [limit=N] [cursor=X] [status=X] [search=X]${e==="admin"?" [source_type=X] [operation_mode=X]":e==="carrier"?" [shipper_id=UUID] [base_id=UUID]":" [base_id=UUID]"}`,"Lista rotas operacionais vis\xEDveis ao papel ativo."],...e==="shipper"?[["shipper route-candidates list [base_id=UUID] [status=X]","Lista candidatos de planejamento da conta shipper; consulta s\xEDncrona, sem confirma\xE7\xE3o. Os par\xE2metros base_id/status n\xE3o filtram os resultados nesta vers\xE3o; n\xE3o h\xE1 pagina\xE7\xE3o por cursor."]]:e==="carrier"?[["carrier route-candidates list","Lista candidatos de planejamento atribu\xEDdos \xE0 conta carrier; consulta s\xEDncrona, sem confirma\xE7\xE3o."]]:[],[`${e} routes ROUTE_ID show`,"Consulta rota operacional vis\xEDvel."],...e==="carrier"?[[`${e} routes ROUTE_ID assign-driver`,"Atribui motorista eleg\xEDvel \xE0 rota candidata da transportadora.","JSON obrigat\xF3rio: driver_user_id",!0]]:[],[`${e} route-candidates CANDIDATE_ID publish`,"Publica candidato como SavedRoute operacional; o Core valida readiness, blockers e ACL.","JSON opcional: override booleano e reason obrigat\xF3rio quando override=true",!0],...["admin","shipper"].includes(e)?[[`${e} route-candidates CANDIDATE_ID reassign-stop`,"Move um ponto para outro candidato antes da publica\xE7\xE3o.","JSON obrigat\xF3rio: stop_id e target_route_candidate_id; reason opcional",!0],[`${e} route-candidates CANDIDATE_ID ai-assist`,"Solicita ou consulta assist\xEAncia de rearranjo do candidato; 202 significa processamento.",`${e==="admin"?"JSON obrigat\xF3rio":"JSON opcional"}: objective`,!0]]:[],...e==="admin"?[[`${e} route-candidates CANDIDATE_ID assign-driver`,"Atribui motorista vinculado \xE0 transportadora do candidato.","JSON obrigat\xF3rio: carrier_account_id e driver_user_id",!0]]:[],[`${e} workbench scopes`,"Lista escopos do workbench."],[`${e} workbench show batch_id=UUID`,"Consulta workbench pelo lote."],[`${e} workbench show shipper_account_id=UUID base_id=UUID`,"Consulta workbench pela base."],[`${e} workbench run`,"Executa workbench; 202 \xE9 aceita\xE7\xE3o, n\xE3o conclus\xE3o.","JSON: shipper_account_id, base_id",!0],[`${e} workbench refresh-quotation`,"Atualiza a cota\xE7\xE3o da workbench; 202 \xE9 aceita\xE7\xE3o, n\xE3o conclus\xE3o.","JSON: shipper_account_id, base_id",!0],[`${e} tower cockpit batch_id=UUID`,"Consulta cockpit pelo lote."],[`${e} tower cockpit shipper_account_id=UUID base_id=UUID`,"Consulta cockpit pela base."]]);a(["shipper"],[["shipper route show PUBLIC_ID","Consulta uma rota operacional do embarcador."]]),a(["admin"],[["admin routes ROUTE_ID assign-driver","Atribui motorista \xE0 rota conforme ACL e estado do Core.","JSON obrigat\xF3rio: driver_user_id; reason opcional",!0],["admin routes ROUTE_ID pause|cancel|reopen","Altera estado da rota conforme ACL do Core.","JSON: reason, notes e occurrence_type opcionais",!0],["admin routes ROUTE_ID occurrence","Registra ocorr\xEAncia na rota.","JSON obrigat\xF3rio: notes; reason e occurrence_type opcionais",!0],["admin tower overview","Consulta vis\xE3o geral da torre."],["admin tower failure-reasons catalog","Consulta cat\xE1logo de motivos de insucesso."]]),a(["driver"],[["driver tower validate","Valida DANFE e recebe assist_token de uso \xFAnico.","JSON: nf_key obrigat\xF3rio; reason opcional",!0],["driver tower assist","Consulta enriquecimento com token de validate; retorna query_id.","JSON: assist_token obrigat\xF3rio; reason e force_refresh opcionais",!0],["driver tower fallback","Consulta enriquecimento por documento informado; retorna query_id.","JSON: document obrigat\xF3rio; reason e force_refresh opcionais",!0],["driver tower queries QUERY_ID show","Consulta resultado de enriquecimento pr\xF3prio."]]);for(const e of["driver","carrier"])a([e],[[`${e} tower chat open`,"Abre ou retoma thread de rota e parada autorizadas.","JSON: route_id e waypoint_id obrigat\xF3rios; driver_user_id opcional",!0],[`${e} tower chat thread THREAD_ID messages`,"Consulta mensagens da thread autorizada."],[`${e} tower chat thread THREAD_ID send`,"Envia mensagem \xE0 thread autorizada.","JSON: body obrigat\xF3rio; message_type e metadata opcionais",!0]]);for(const e of["carrier","shipper"])a([e],[[`${e} tower failure-reasons policy show`,"Consulta policy de insucesso efetiva da pr\xF3pria conta."],[`${e} tower failure-reasons policy set`,"Altera policy de insucesso da pr\xF3pria conta.","JSON: reason_codes (lista de c\xF3digos)",!0]]);a(["carrier"],[["carrier tower chat thread THREAD_ID authorize","Gera c\xF3digo de uso \xFAnico para insucesso autorizado.",null,!0]]),a(["admin"],[["admin tower chat threads","Lista threads operacionais vis\xEDveis \xE0 ACL."],["admin tower chat thread THREAD_ID messages","Consulta mensagens da thread."],["admin tower chat thread THREAD_ID send","Envia mensagem \xE0 thread.","JSON: body obrigat\xF3rio; message_type e metadata opcionais",!0],["admin tower chat thread THREAD_ID authorize","Gera c\xF3digo de autoriza\xE7\xE3o de insucesso.",null,!0],["admin tower failure-reasons shippers SHIPPER_ID show","Consulta policy de insucesso do embarcador."],["admin tower failure-reasons shippers SHIPPER_ID set","Altera policy de insucesso do embarcador.","JSON: reason_codes (lista de c\xF3digos)",!0],["admin tower failure-reasons carriers CARRIER_ID show","Consulta policy de insucesso da transportadora."],["admin tower failure-reasons carriers CARRIER_ID set","Altera policy de insucesso da transportadora.","JSON: reason_codes (lista de c\xF3digos)",!0]]);for(const e of["driver","admin","carrier","shipper"])a([e],[[`${e} tower failure-reasons catalog-global [search=X]`,"Consulta s\xEDncrona do cat\xE1logo global de motivos; sem confirma\xE7\xE3o, gera\xE7\xE3o ou consumo de autoriza\xE7\xE3o."]]);function b(e,r){const o=e.startsWith("[")?e.slice(1,-1):e;return o.split("|").includes(r)?0:/^[A-Z][A-Z0-9_]*$/.test(o)||o.includes("=")&&o.split("=")[0]===r.split("=")[0]&&/^[A-Z][A-Z0-9_]*$/.test(o.split("=")[1])?1:1/0}n(b,"matchToken");function D(e=[]){const r=e.filter(Boolean),o=u.map(i=>{const{usage:p}=i,d=p.slice(6).split(" "),l=r.reduce((m,_,c)=>m+(d[c]?b(d[c],_):1/0),0);return{command:i,score:l}}),t=Math.min(...o.map(({score:i})=>i));if(!Number.isFinite(t))return null;const s=o.filter(({score:i})=>i===t).map(({command:i})=>i);return s.length?{data:{query:r.join(" "),authorization:"Papel ativo da sess\xE3o; o Core aplica grants internos, membership, m\xF3dulos, bases e ACL a cada chamada.",input:"Objetos JSON de muta\xE7\xE3o s\xE3o enviados por stdin. Confirma\xE7\xF5es exigem terminal interativo; n\xE3o passe secrets em argumentos.",commands:s}}:null}n(D,"commandHelp");export{D as commandHelp};
|