@gitpagedocs/cli 0.0.10 → 0.0.12

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.
@@ -1,9 +1,15 @@
1
1
  import { practicalPt } from "./practical-pt.mjs";
2
2
  import { operationsPt } from "./operations-pt.mjs";
3
+ import { overviewsPt } from "./overviews-pt.mjs";
4
+ import { CONTENT_BLOCKS_DOCS } from "./content-blocks.mjs";
5
+ import { PARENT_MENU_JSON } from "./configuration-examples.mjs";
6
+ import { THEME_BACKGROUND_DOCS } from "./theme-backgrounds.mjs";
3
7
 
4
8
  export const docsPt = {
5
9
  ...practicalPt,
6
10
  ...operationsPt,
11
+ ...overviewsPt,
12
+ contentBlocks: CONTENT_BLOCKS_DOCS.pt,
7
13
  pdf: `# Documentos PDF
8
14
 
9
15
  PDF é um tipo de conteúdo próprio, junto com Markdown, HTML, código-fonte, vídeo e áudio. A prévia usa o visualizador nativo de PDF do navegador. As ações de baixar e abrir em nova aba são configuráveis de forma independente.
@@ -33,11 +39,11 @@ Adicione este bloco dentro de \`site\` em \`gitpagedocs/config.json\`:
33
39
 
34
40
  A precedência das ações é \`rota.pdf.<flag>\` > \`site.pdf.<flag>\` > \`true\`. Um \`true\` explícito na rota habilita aquela ação mesmo quando o padrão do site é \`false\`; \`site.pdf.enabled: false\` continua desabilitando todos os PDFs. Sem caminho para o idioma selecionado, o PDF fica indisponível; não há fallback automático de idioma.
35
41
 
36
- As ações PDF usam ícones por padrão. Configure \`site.icons.PdfDownload\` (\`FiDownload\`) e \`site.icons.PdfOpenInNewTab\` (\`FiExternalLink\`) individualmente com \`reactIcon\`, \`tag\`, \`size\`, \`colorDark\` e \`colorLight\`. Por exemplo, \`"PdfDownload": { "reactIcon": false }\` exibe texto no download enquanto a nova aba continua com ícone. A aparência não altera as opções de habilitação acima.
42
+ As ações PDF usam ícones por padrão. Configure \`site.icons.PdfDownload\` (\`LuDownload\`) e \`site.icons.PdfOpenInNewTab\` (\`LuExternalLink\`) individualmente com \`reactIcon\`, \`tag\`, \`size\`, \`colorDark\` e \`colorLight\`. Por exemplo, \`"PdfDownload": { "reactIcon": false }\` exibe texto no download enquanto a nova aba continua com ícone. A aparência não altera as opções de habilitação acima.
37
43
 
38
44
  ## Exemplo de rota e menu
39
45
 
40
- Em \`gitpagedocs/docs/versions/0.0.10/config.json\`, mantenha as listas de rotas e menus no nível principal:
46
+ Em \`gitpagedocs/docs/versions/0.0.12/config.json\`, mantenha as listas de rotas e menus no nível principal:
41
47
 
42
48
  \`\`\`json
43
49
  {
@@ -46,9 +52,9 @@ Em \`gitpagedocs/docs/versions/0.0.10/config.json\`, mantenha as listas de rotas
46
52
  "title": { "en": "Project guide (English)", "pt": "Guia do projeto (inglês)", "es": "Guía del proyecto (inglés)" },
47
53
  "pdf": {
48
54
  "pathPdf": {
49
- "en": "gitpagedocs/docs/versions/0.0.10/en/gitpagedocs-project-guide.pdf",
50
- "pt": "gitpagedocs/docs/versions/0.0.10/en/gitpagedocs-project-guide.pdf",
51
- "es": "gitpagedocs/docs/versions/0.0.10/en/gitpagedocs-project-guide.pdf"
55
+ "en": "gitpagedocs/docs/versions/0.0.12/en/gitpagedocs-project-guide.pdf",
56
+ "pt": "gitpagedocs/docs/versions/0.0.12/en/gitpagedocs-project-guide.pdf",
57
+ "es": "gitpagedocs/docs/versions/0.0.12/en/gitpagedocs-project-guide.pdf"
52
58
  },
53
59
  "previewEnabled": true,
54
60
  "downloadEnabled": true,
@@ -86,15 +92,15 @@ O botão de nova aba abre o Blob PDF validado em vez de navegar para a URL raw d
86
92
  `,
87
93
  index: `# Git Page Docs
88
94
 
89
- Git Page Docs e um runtime de documentacao multi-idioma para repositorios que possuem a pasta \`gitpagedocs/\`.
95
+ Git Page Docs é um runtime de documentação multi-idioma para repositórios que possuem a pasta \`gitpagedocs/\`.
90
96
 
91
97
  ## O que este projeto entrega
92
98
 
93
- - Renderizacao markdown em varios idiomas (\`en\`, \`pt\`, \`es\`)
94
- - Roteamento por versao (\`/v/:versao\`)
99
+ - Renderização markdown em varios idiomas (\`en\`, \`pt\`, \`es\`)
100
+ - Roteamento por versão (\`/v/:versao\`)
95
101
  - Sistema de temas por templates JSON
96
- - Execucao local e em GitHub Pages
97
- - Busca de repositorio + renderizacao remota opcional
102
+ - Execução local e em GitHub Pages
103
+ - Busca de repositório + renderização remota opcional
98
104
 
99
105
  ## Contrato de pastas
100
106
 
@@ -107,14 +113,14 @@ O runtime espera esta estrutura:
107
113
  - \`gitpagelayouts/layoutsConfig.json\`
108
114
  - \`gitpagelayouts/templates/*.json\`
109
115
 
110
- ## Navegacao rapida
116
+ ## Navegação rápida
111
117
 
112
118
  - Abra **Primeiros passos** para setup local.
113
- - Abra **Configuracao** para detalhes completos do \`config.json\`.
114
- - Abra **Publicacao** para comportamento local/producao/GitHub Pages.
115
- - Abra **Arquitetura** para mapa de codigo e fluxo de dados.
119
+ - Abra **Configuração** para detalhes completos do \`config.json\`.
120
+ - Abra **Publicação** para comportamento local/produção/GitHub Pages.
121
+ - Abra **Arquitetura** para mapa de código e fluxo de dados.
116
122
  - Abra **Temas e layouts** para autoria de templates.
117
- - Abra **Rotas autorizadas** para configurar chave, papeis e autenticacao externa.
123
+ - Abra **Rotas autorizadas** para configurar chave, papeis e autenticação externa.
118
124
  - Abra **FAQ** para troubleshooting.
119
125
 
120
126
  ## Referências detalhadas
@@ -122,6 +128,7 @@ O runtime espera esta estrutura:
122
128
  - **Referência da CLI**: instalação, todos os comandos e flags de compatibilidade.
123
129
  - **Servidor MCP**: cliente, 20 tools, 7 resources e configuração de provedores.
124
130
  - **Navegação e submenus**: árvores recursivas, URLs e sobrescritas dos breadcrumbs.
131
+ - **Blocos de conteúdo ordenados**: repita e ordene Markdown, HTML, vídeo, áudio e PDF na mesma página; posicione títulos e descrições configurados independentemente.
125
132
  - **Modo foco**: copiar/baixar Markdown e navegar por seção/documento.
126
133
  - **Acessibilidade e narração**: vozes do navegador, controles e interação com mídias.
127
134
  - **Documentos PDF**: prévia nativa, download/nova aba e o guia incluído em inglês.
@@ -181,59 +188,59 @@ O repositório fixa o pnpm em \`packageManager\`. \`pnpm dev\` ativa a busca de
181
188
 
182
189
  Use Configuração para idiomas, ícones, navegação, foco e narração; Funcionalidades para CLI e MCP; Temas e layouts para tokens visuais; Perguntas frequentes para diagnóstico.
183
190
  `,
184
- projectOverview: `# Visao geral do projeto
191
+ projectOverview: `# Visão geral do projeto
185
192
 
186
- Git Page Docs e um monorepo pnpm + turborepo que transforma a pasta \`gitpagedocs/\` de um repositorio em um site de documentacao multilinguagem e versionado — com assistente de IA integrado e um servidor MCP (Model Context Protocol).
193
+ Git Page Docs é um monorepo pnpm + turborepo que transforma a pasta \`gitpagedocs/\` de um repositório em um site de documentação multilinguagem e versionado — com assistente de IA integrado e um servidor MCP (Model Context Protocol).
187
194
 
188
195
  ## Pacotes do monorepo
189
196
 
190
197
  - **frontend/** — visualizador Next.js 15 (App Router, React 19), exportado estaticamente para o GitHub Pages.
191
198
  - **cli/** — o pacote npm publicado \`@gitpagedocs/cli\` (\`npm install -g @gitpagedocs/cli\`): gera a estrutura de docs, documenta com IA, configura o Pages e roda o servidor MCP.
192
- - **tools/** — \`@gitpagedocs/tools\`, o nucleo de logica compartilhado: sistema de IA com 14 provedores, cofre de credenciais criptografado, loader de config, caches e logger.
199
+ - **tools/** — \`@gitpagedocs/tools\`, o núcleo de lógica compartilhado: sistema de IA com 14 provedores, cofre de credenciais criptografado, loader de config, caches e logger.
193
200
  - **mcp/** — \`@gitpagedocs/mcp\`, servidor Model Context Protocol (20 ferramentas + 7 recursos).
194
- - **gitpagedocs/** — o contrato do usuario: \`config.json\`, docs versionados e layouts.
201
+ - **gitpagedocs/** — o contrato do usuário: \`config.json\`, docs versionados e layouts.
195
202
 
196
203
  ## Stack
197
204
 
198
- - Next.js 15 (App Router) + React 19 + TypeScript; exportacao estatica para GitHub Pages
205
+ - Next.js 15 (App Router) + React 19 + TypeScript; exportação estática para GitHub Pages
199
206
  - gray-matter + marked para Markdown; react-icons
200
207
  - pnpm workspaces + turborepo; Vitest + Playwright; ESLint
201
208
 
202
209
  ## Destaques
203
210
 
204
- - Multilinguagem (\`en\`, \`pt\`, \`es\`) e rotas por versao (\`/v/:version\`)
211
+ - Multilinguagem (\`en\`, \`pt\`, \`es\`) e rotas por versão (\`/v/:version\`)
205
212
  - Sistema de IA com 14 provedores (OpenAI, Anthropic, Gemini, Ollama, Mistral, DeepSeek, Cohere, Groq, xAI e mais) com streaming
206
213
  - Chaves de IA **criptografadas em repouso** (AES-256-GCM) atras de uma senha local — nunca em texto puro
207
214
  - **Drawer de chat de IA** nos docs + um **console \`/ai\`** dedicado
208
- - Sistema de 64 temas (variantes escuras e claras); execucao local e no GitHub Pages
215
+ - Sistema de 64 temas (variantes escuras e claras); execução local e no GitHub Pages
209
216
  `,
210
217
  functionalities: `# Funcionalidades
211
218
 
212
- Referencia completa de opcoes da CLI, chaves de configuracao e recursos do runtime.
219
+ Referência completa de opções da CLI, chaves de configuração e recursos do runtime.
213
220
 
214
221
  ## Linha de comando
215
222
 
216
223
  Consulte **Referência da CLI** para comandos, flags, exemplos e compatibilidade. Consulte **Servidor MCP** para integração com editores.
217
224
 
218
- ## Tipos de conteudo
225
+ ## Tipos de conteúdo
219
226
 
220
- | Tipo | Chave config | Descricao |
227
+ | Tipo | Chave config | Descrição |
221
228
  |------|--------------|-----------|
222
229
  | Markdown | \`routes-md\` | Arquivos .md com \`path\` por idioma |
223
230
  | HTML | \`routes-html\` | \`path\` local ou \`url\` externa |
224
- | Video | \`routes-video\` | \`video.pathVideo\`, \`video.videoType\` |
225
- | Audio | \`routes-audio\` | \`audio.pathAudio\`, \`audio.audioType\` |
231
+ | Vídeo | \`routes-video\` | \`video.pathVideo\`, \`video.videoType\` |
232
+ | Áudio | \`routes-audio\` | \`audio.pathAudio\`, \`audio.audioType\` |
226
233
  | PDF | \`routes-pdf\` | \`pdf.pathPdf\` por idioma; prévia nativa e download |
227
234
 
228
- ## Visualizador de codigo fonte
235
+ ## Visualizador de código fonte
229
236
 
230
- O config da versao pode renderizar um container **Codigo fonte** via \`routes-source-viewer\` e \`menus-header-source-viewer\`. O viewer le a arvore do repositorio no GitHub em tempo de execucao e aplica o tema atual da documentacao.
237
+ O config da versão pode renderizar um container **Código fonte** via \`routes-source-viewer\` e \`menus-header-source-viewer\`. O viewer lê a árvore do repositório no GitHub em tempo de execução e aplica o tema atual da documentação.
231
238
 
232
- - Arvore do repositorio a partir de \`source-viewer-path\`; a branch padrao e \`main\`
233
- - Navegacao por pastas e filtro de arquivos
234
- - Listagem de diretorios no estilo GitHub
235
- - Renderizacao de codigo com numeros de linha
236
- - Alternancia preview/codigo para Markdown, incluindo \`README.md\`
239
+ - Árvore do repositório a partir de \`source-viewer-path\`; a branch padrão é \`main\`
240
+ - Navegação por pastas e filtro de arquivos
241
+ - Listagem de diretórios no estilo GitHub
242
+ - Renderização de código com números de linha
243
+ - Alternância preview/código para Markdown, incluindo \`README.md\`
237
244
  - Pastas recolhiveis na lateral
238
245
 
239
246
  ## Chaves de config (site)
@@ -243,108 +250,112 @@ O config da versao pode renderizar um container **Codigo fonte** via \`routes-so
243
250
  - \`ProjectLink\`, \`layoutsConfigPathOficial\`, \`layoutsConfigPath\`
244
251
  - Idiomas: \`site.languages\` (liga/desliga cada um); textos da UI: \`gitpagedocs/langs/<lang>.json\`
245
252
 
246
- ## Reproducao de midia (um som por vez)
253
+ ## Reprodução de midia (um som por vez)
247
254
 
248
- \`site.mediaExclusivePlayback\` (padrao \`true\`): dar play num video de rota pausa o radio e as trilhas de audio, e dar play no radio ou numa trilha de audio pausa o video. Funciona com YouTube e Vimeo (pelas APIs dos players), arquivos nativos (\`mp4\`, \`webm\`, …) e qualquer outro embed.
255
+ \`site.mediaExclusivePlayback\` (padrão \`true\`): dar play num vídeo de rota pausa o rádio e as trilhas de áudio, e dar play no rádio ou numa trilha de áudio pausa o vídeo. Funciona com YouTube e Vimeo (pelas APIs dos players), arquivos nativos (\`mp4\`, \`webm\`, …) e qualquer outro embed.
249
256
 
250
- Para mostrar um video sem som enquanto o radio ou uma trilha de audio o explica, use \`"muted": true\` no objeto \`video\` da rota: o video roda so a imagem e fica fora da regra. \`"mediaExclusivePlayback": false\` desliga a regra no site inteiro.
257
+ Para mostrar um vídeo sem som enquanto o rádio ou uma trilha de áudio o explica, use \`"muted": true\` no objeto \`video\` da rota: o vídeo roda só a imagem e fica fora da regra. \`"mediaExclusivePlayback": false\` desliga a regra no site inteiro.
251
258
 
252
- ## Variaveis de ambiente
259
+ ## Variáveis de ambiente
253
260
 
254
- - \`GITPAGEDOCS_REPOSITORY_SEARCH\` – busca de repositorio (local)
261
+ - \`GITPAGEDOCS_REPOSITORY_SEARCH\` – busca de repositório (local)
255
262
  - \`GITHUB_ACTIONS\` – modo build GitHub Pages
256
263
 
257
264
  ## Assistente de IA
258
265
 
259
- Os docs trazem um assistente de IA em duas superficies: um **chat drawer** dentro dos docs (botao de chat de IA na barra lateral, ativado por \`site.AiChatEnabled\`) e uma pagina **console \`/ai\`** dedicada.
266
+ Os docs trazem um assistente de IA em duas superfícies: um **chat drawer** dentro dos docs (botão de chat de IA na barra lateral, ativado por \`site.AiChatEnabled\`) e uma página **console \`/ai\`** dedicada.
260
267
 
261
- - **14 provedores** em um unico core compartilhado: OpenAI, Anthropic, Gemini, OpenRouter, Ollama, Azure OpenAI, Mistral, DeepSeek, Cohere, Groq, xAI, Together, Fireworks, Perplexity.
262
- - **Escolha de modelo** — a partir do catalogo de cada provedor (\`gitpagedocs models <provedor>\`); um id de modelo salvo que o provedor aposentou e trocado pelo padrao do provedor automaticamente.
268
+ - **14 provedores** em um único core compartilhado: OpenAI, Anthropic, Gemini, OpenRouter, Ollama, Azure OpenAI, Mistral, DeepSeek, Cohere, Groq, xAI, Together, Fireworks, Perplexity.
269
+ - **Escolha de modelo** — a partir do catálogo de cada provedor (\`gitpagedocs models <provedor>\`); um id de modelo salvo que o provedor aposentou é trocado pelo padrão do provedor automaticamente.
263
270
  - **Criptografia em repouso** — sua chave de API e selada com AES-256-GCM atras de uma **senha local** e nunca fica em texto puro nem em logs.
264
- - **Bloqueio por inatividade** — o chat drawer se bloqueia sozinho apos \`site.AiChatAutoLockSeconds\` segundos sem uso (padrao 30, \`0\` desativa): um modal centralizado com contagem regressiva, no seu idioma, permite cancelar ou bloquear agora, e desbloquear pede a senha de novo.
265
- - **Provedores resilientes** — erros transitorios do provedor sao repetidos (3 tentativas) e uma falha final vira uma mensagem simples terminando em "Tente novamente!".
266
- - **Geracao de documentacao com IA** — \`gitpagedocs ai\` varre os caminhos escolhidos e escreve markdown multilingue (pt/en/es); reutilizavel via \`.gitpagedocsconfig\`, cuja chave de API fica selada no cofre criptografado \`.gitpagedocsvault\` (a senha do cofre e pedida em toda execucao). \`gitpagedocs chat\` leva o mesmo assistente ao terminal.
271
+ - **Bloqueio por inatividade** — o chat drawer se bloqueia sozinho após \`site.AiChatAutoLockSeconds\` segundos sem uso (padrão 30, \`0\` desativa): um modal centralizado com contagem regressiva, no seu idioma, permite cancelar ou bloquear agora, e desbloquear pede a senha de novo.
272
+ - **Provedores resilientes** — erros transitórios do provedor são repetidos (3 tentativas) e uma falha final vira uma mensagem simples terminando em "Tente novamente!".
273
+ - **Geração de documentação com IA** — \`gitpagedocs ai\` varre os caminhos escolhidos e escreve markdown multilíngue (pt/en/es); reutilizável via \`.gitpagedocsconfig\`, cuja chave de API fica selada no cofre criptografado \`.gitpagedocsvault\` (a senha do cofre é pedida em toda execução). \`gitpagedocs chat\` leva o mesmo assistente ao terminal.
267
274
 
268
275
  ## Servidor MCP
269
276
 
270
- \`gitpagedocs mcp start\` sobe um servidor Model Context Protocol (stdio) expondo **20 tools** (sistema de arquivos, IA, geracao/analise de docs) e **7 resources** (\`project://structure|docs|config|repository|readme|ai/providers|ai/models\`) para editores e agentes de IA.
277
+ \`gitpagedocs mcp start\` sobe um servidor Model Context Protocol (stdio) expondo **20 tools** (sistema de arquivos, IA, geração/análise de docs) e **7 resources** (\`project://structure|docs|config|repository|readme|ai/providers|ai/models\`) para editores e agentes de IA.
271
278
  `,
272
- configuration: `# Configuracao
279
+ configuration: `# Configuração
273
280
 
274
- A configuracao de runtime fica em \`gitpagedocs/config.json\`. Os textos da UI ficam ao lado, um arquivo por idioma.
281
+ A configuração de runtime fica em \`gitpagedocs/config.json\`. Os textos da UI ficam ao lado, um arquivo por idioma.
275
282
 
276
283
  ## Idiomas (\`site.languages\` + \`langs/\`)
277
284
 
278
- - \`site.languages\` em \`gitpagedocs/config.json\` liga (\`true\`) ou desliga (\`false\`) cada idioma, na ordem do menu: \`{ "languages": { "en": true, "pt": true, "es": false } }\`. Um idioma em \`false\` some do seletor de idiomas e seus textos nao sao carregados, mesmo que os docs existam.
279
- - \`gitpagedocs/langs/<lang>.json\` guarda os textos daquele idioma: \`langmenu\` (cabecalho, busca, visualizador de codigo, player de audio, chat de IA e acesso aos docs) e \`translations\` (\`notFound\`, \`navigation\`, \`footer\`).
285
+ - \`site.languages\` em \`gitpagedocs/config.json\` liga (\`true\`) ou desliga (\`false\`) cada idioma, na ordem do menu: \`{ "languages": { "en": true, "pt": true, "es": false } }\`. Um idioma em \`false\` some do seletor de idiomas e seus textos não são carregados, mesmo que os docs existam.
286
+ - \`gitpagedocs/langs/<lang>.json\` guarda os textos daquele idioma: \`langmenu\` (cabeçalho, busca, visualizador de código, player de áudio, chat de IA e acesso aos docs) e \`translations\` (\`notFound\`, \`navigation\`, \`footer\`).
280
287
  - Para adicionar um idioma, crie \`langs/<lang>.json\` e inclua \`"<lang>": true\` em \`site.languages\`.
281
- - Arquivos \`config.json\` antigos que ainda trazem \`site.langmenu\` / \`translations\` inline continuam funcionando; quando os dois existem, os arquivos de \`langs/\` prevalecem e qualquer chave ausente e preenchida a partir da versao atual.
288
+ - Arquivos \`config.json\` antigos que ainda trazem \`site.langmenu\` / \`translations\` inline continuam funcionando; quando os dois existem, os arquivos de \`langs/\` prevalecem e qualquer chave ausente é preenchida a partir da versão atual.
282
289
 
283
- ## Secao \`site\`
290
+ ## Seção \`site\`
284
291
 
285
292
  Principais chaves:
286
293
 
287
- - \`name\`: titulo do projeto no UI
288
- - \`defaultLanguage\`: idioma padrao
294
+ - \`name\`: título do projeto no UI
295
+ - \`defaultLanguage\`: idioma padrão
289
296
  - \`HideThemeSelector\`: esconde/mostra seletor de tema
290
297
  - \`ThemeDefault\`: id do tema inicial
291
298
  - \`ThemeModeDefault\`: modo inicial (\`light\` ou \`dark\`)
292
- - \`ProjectLink\`: URL de repositorio para acoes no cabecalho
293
- - \`docsVersion\`: versao inicial selecionada
299
+ - \`ProjectLink\`: URL de repositório para acoes no cabeçalho
300
+ - \`docsVersion\`: versão inicial selecionada
294
301
  - \`ActiveNavigation\`: habilita a navegação rápida e o atalho Ctrl+K
295
302
  - \`FocusMode\`: habilita modo foco/leitura
296
- - \`icons\`: icones do cabecalho. \`icons.defaults\` guarda o que todos compartilham (\`reactIcon\`, \`colorDark\`, \`colorLight\`, \`size\`, \`imgDark\`, \`imgLight\`, \`imgWidth\`, \`imgHeight\`) e cada icone define seu \`tag\` e o que muda (\`null\` remove um campo). As chaves planas abaixo continuam valendo e vencem quando as duas formas existem.
297
- - \`IconImageMenuHeaderImgWidth\`, \`IconImageMenuHeaderImgHeight\`: tamanho do icone principal
298
- - \`IconImageMenuHeaderLightImg\`, \`IconImageMenuHeaderDarkImg\`: icone principal (light/dark)
299
- - \`IconProjectLinkImgWidth\`, \`IconProjectLinkImgHeight\`: tamanho do icone link do projeto
300
- - \`IconProjectLinkLightImg\`, \`IconProjectLinkDarkImg\`: icone link do projeto
301
- - \`IconVersionLinksImgWidth\`, \`IconVersionLinksImgHeight\`: tamanho do icone links de versao
302
- - \`IconVersionLinksLightImg\`, \`IconVersionLinksDarkImg\`: icone links de versao
303
- - \`IconInfoHeaderMenuImgWidth\`, \`IconInfoHeaderMenuImgHeight\`: tamanho do icone info
304
- - \`IconInfoHeaderMenuLightImg\`, \`IconInfoHeaderMenuDarkImg\`: icone info
305
- - \`IconPreviewProjectLinkImgWidth\`, \`IconPreviewProjectLinkImgHeight\`: tamanho do icone preview
306
- - \`IconPreviewProjectLinkLightImg\`, \`IconPreviewProjectLinkDarkImg\`: icone preview
303
+ - \`icons\`: ícones do cabeçalho. \`icons.defaults\` guarda o que todos compartilham (\`reactIcon\`, \`colorDark\`, \`colorLight\`, \`size\`, \`imgDark\`, \`imgLight\`, \`imgWidth\`, \`imgHeight\`) e cada ícone define seu \`tag\` e o que muda (\`null\` remove um campo). As chaves planas abaixo continuam valendo e vencem quando as duas formas existem.
304
+ - \`IconImageMenuHeaderImgWidth\`, \`IconImageMenuHeaderImgHeight\`: tamanho do ícone principal
305
+ - \`IconImageMenuHeaderLightImg\`, \`IconImageMenuHeaderDarkImg\`: ícone principal (light/dark)
306
+ - \`IconProjectLinkImgWidth\`, \`IconProjectLinkImgHeight\`: tamanho do ícone link do projeto
307
+ - \`IconProjectLinkLightImg\`, \`IconProjectLinkDarkImg\`: ícone link do projeto
308
+ - \`IconVersionLinksImgWidth\`, \`IconVersionLinksImgHeight\`: tamanho do ícone links de versão
309
+ - \`IconVersionLinksLightImg\`, \`IconVersionLinksDarkImg\`: ícone links de versão
310
+ - \`IconInfoHeaderMenuImgWidth\`, \`IconInfoHeaderMenuImgHeight\`: tamanho do ícone info
311
+ - \`IconInfoHeaderMenuLightImg\`, \`IconInfoHeaderMenuDarkImg\`: ícone info
312
+ - \`IconPreviewProjectLinkImgWidth\`, \`IconPreviewProjectLinkImgHeight\`: tamanho do ícone preview
313
+ - \`IconPreviewProjectLinkLightImg\`, \`IconPreviewProjectLinkDarkImg\`: ícone preview
307
314
  - \`layoutsConfigPath\`: fallback remoto para layouts
308
315
  - \`rendering\`: URL canonica publicada
309
316
 
310
317
  ## Controles de idioma, tema, foco, navegação rápida, PDF e documentos
311
318
 
312
- Em \`gitpagedocs/config.json\`, estas entradas de \`site.icons\` configuram idioma, tema, foco, navegação Ctrl+K, ações PDF e navegação no rodapé dos documentos. Os oito controles usam React Icons por padrão:
319
+ Em \`gitpagedocs/config.json\`, estas entradas de \`site.icons\` configuram idioma, tema, versão, foco, navegação Ctrl+K, ações PDF e navegação no rodapé dos documentos. Os nove controles usam React Icons por padrão:
313
320
 
314
321
  \`\`\`json
315
322
  {
316
323
  "site": {
317
324
  "icons": {
318
325
  "LanguageSelector": {
319
- "reactIcon": true, "tag": "FiGlobe", "size": "22px",
326
+ "reactIcon": true, "tag": "SiGoogletranslate", "size": "22px",
320
327
  "colorDark": "currentColor", "colorLight": "currentColor"
321
328
  },
322
329
  "ThemeSelector": {
323
- "reactIcon": true, "tag": "BsSunFill", "size": "22px",
330
+ "reactIcon": true, "tag": "LuPencil", "size": "22px",
324
331
  "colorDark": "currentColor", "colorLight": "currentColor"
325
332
  },
326
333
  "FocusMode": {
327
- "reactIcon": true, "tag": "MdFullscreen", "size": "22px",
334
+ "reactIcon": true, "tag": "LuBookOpen", "size": "22px",
335
+ "colorDark": "currentColor", "colorLight": "currentColor"
336
+ },
337
+ "VersionSelector": {
338
+ "reactIcon": true, "tag": "LuGitBranch", "size": "22px",
328
339
  "colorDark": "currentColor", "colorLight": "currentColor"
329
340
  },
330
341
  "QuickNavigation": {
331
- "reactIcon": true, "tag": "FiSearch", "size": "22px",
342
+ "reactIcon": true, "tag": "LuSearch", "size": "22px",
332
343
  "colorDark": "currentColor", "colorLight": "currentColor"
333
344
  },
334
345
  "PdfDownload": {
335
- "reactIcon": true, "tag": "FiDownload", "size": "22px",
346
+ "reactIcon": true, "tag": "LuDownload", "size": "22px",
336
347
  "colorDark": "currentColor", "colorLight": "currentColor"
337
348
  },
338
349
  "PdfOpenInNewTab": {
339
- "reactIcon": true, "tag": "FiExternalLink", "size": "22px",
350
+ "reactIcon": true, "tag": "LuExternalLink", "size": "22px",
340
351
  "colorDark": "currentColor", "colorLight": "currentColor"
341
352
  },
342
353
  "DocumentPrevious": {
343
- "reactIcon": true, "tag": "FiChevronLeft", "size": "22px",
354
+ "reactIcon": true, "tag": "LuChevronLeft", "size": "22px",
344
355
  "colorDark": "currentColor", "colorLight": "currentColor"
345
356
  },
346
357
  "DocumentNext": {
347
- "reactIcon": true, "tag": "FiChevronRight", "size": "22px",
358
+ "reactIcon": true, "tag": "LuChevronRight", "size": "22px",
348
359
  "colorDark": "currentColor", "colorLight": "currentColor"
349
360
  }
350
361
  }
@@ -356,66 +367,68 @@ Cada controle é independente: \`reactIcon: true\` mostra o ícone (padrão); \`
356
367
 
357
368
  Configs compactos podem mover valores comuns para \`site.icons.defaults\`; campos omitidos herdam esses defaults. Defina \`reactIcon: false\` em uma entrada específica para substituir o ícone padrão por texto.
358
369
 
359
- ## Secao \`VersionControl\`
370
+ ## Seção \`VersionControl\`
371
+
372
+ \`site.icons.VersionSelector\` usa \`LuGitBranch\` por padrão. Defina \`reactIcon: false\` para mostrar o texto da versão selecionada; \`true\` mostra o ícone. Personalize os mesmos campos \`tag\`, \`size\`, \`colorDark\` e \`colorLight\`. O seletor aparece somente quando há mais de uma versão de documentação, preserva o nome acessível localizado do seletor e mostra a versão selecionada no tooltip.
360
373
 
361
374
  \`VersionControl.versions\` define:
362
375
 
363
- - \`id\`: identificador da versao
364
- - \`path\`: caminho do config da versao
376
+ - \`id\`: identificador da versão
377
+ - \`path\`: caminho do config da versão
365
378
  - links opcionais (\`ProjectLink\`, \`branch\`, \`release\`, \`commit\`)
366
379
  - metadados opcionais do source viewer (\`source-viewer\`, \`source-viewer-path\`)
367
380
 
368
- ## Navegacao e rotas
381
+ ## Navegação e rotas
369
382
 
370
383
  - \`routes\`: caminhos markdown por idioma (legado)
371
384
  - \`menus-header\`: menu hierarquico
372
- - \`translations\`: labels de UI para not-found e navegacao
385
+ - \`translations\`: labels de UI para not-found e navegação
373
386
 
374
- ## Autorizacao (config de versao)
387
+ ## Autorização (config de versão)
375
388
 
376
- - \`auth\`: configuracoes globais de autorizacao para a versao
389
+ - \`auth\`: configurações globais de autorização para a versão
377
390
  - \`auth.accessKeys\`: mapa de chaves usado por \`authorization.accessKeyId\`
378
391
  - \`auth.rolesStorageKey\`: chave de localStorage para bootstrap de papeis
379
392
  - \`auth.providers\`: adaptadores de provedor (\`authjs\`, \`clerk\`, \`firebase\`, \`jwt\`)
380
393
 
381
- ## Tipos de conteudo (config de versao)
394
+ ## Tipos de conteúdo (config de versão)
382
395
 
383
- Configs de versao suportam multiplos tipos:
396
+ Configs de versão suportam múltiplos tipos:
384
397
 
385
398
  - \`routes-md\`: Rotas markdown com \`title\`, \`description\` (centralizados via \`titlePosition\`, \`descriptionPosition\`)
386
- - \`routes-source-viewer\`: Containers de codigo fonte com \`source-viewer: true\` e \`source-viewer-path\`
387
- - \`routes-html\`: Caminhos de paginas HTML por idioma
388
- - \`routes-video\`: Config de video com \`video.videoType\` (youtube, vimeo, mp4, etc.) e \`video.pathVideo\`
389
- - \`routes-audio\`: Config de audio com \`audio.audioType\` (youtube, mp3, etc.) e \`audio.pathAudio\`
399
+ - \`routes-source-viewer\`: Containers de código fonte com \`source-viewer: true\` e \`source-viewer-path\`
400
+ - \`routes-html\`: Caminhos de páginas HTML por idioma
401
+ - \`routes-video\`: Config de vídeo com \`video.videoType\` (youtube, vimeo, mp4, etc.) e \`video.pathVideo\`
402
+ - \`routes-audio\`: Config de áudio com \`audio.audioType\` (youtube, mp3, etc.) e \`audio.pathAudio\`
390
403
  - \`routes-pdf\`: PDF com \`pdf.pathPdf\` por idioma; consulte Documentos PDF.
391
- - \`authorization\` (md/html/video): guarda de acesso por chave, papeis e autenticacao externa
404
+ - \`authorization\` (md/html/vídeo): guarda de acesso por chave, papeis e autenticação externa
392
405
  - \`menus-header-md\`, \`menus-header-source-viewer\`, \`menus-header-html\`, \`menus-header-video\`, \`menus-header-audio\`, \`menus-header-pdf\`: menus por tipo
393
- - \`hierarchyPage\`: ordem dos containers na pagina \`{ md: 0, "source-viewer": 1, html: 2, video: 3, audio: 4, pdf: 5 }\`
394
- - \`hierarchyMenu\`: ordem das secoes do menu \`{ md: 0, "source-viewer": 1, html: 2, video: 3, audio: 4, pdf: 5 }\`
406
+ - \`hierarchyPage\`: ordem dos containers na página \`{ md: 0, "source-viewer": 1, html: 2, video: 3, audio: 4, pdf: 5 }\`
407
+ - \`hierarchyMenu\`: ordem das seções do menu \`{ md: 0, "source-viewer": 1, html: 2, video: 3, audio: 4, pdf: 5 }\`
395
408
 
396
409
  Cada rota pode incluir \`title\`, \`description\` (por idioma), \`titleCss\`, \`titlePosition: "center"\`, \`descriptionPosition: "center"\`, \`titleIsVisible\`, \`descriptionIsVisible\`.
397
410
 
398
- Configuracoes que todas as rotas compartilham ficam uma unica vez em \`routeDefaults\`, no topo do config da versao; cada rota guarda so os proprios valores, e um valor escrito na rota vence o \`routeDefaults\`.
411
+ Configurações que todas as rotas compartilham ficam uma única vez em \`routeDefaults\`, no topo do config da versão; cada rota guarda só os próprios valores, e um valor escrito na rota vence o \`routeDefaults\`.
399
412
 
400
- ## Variaveis por rota (blockLink, container, url, browseAll)
413
+ ## Variáveis por rota (blockLink, container, url, browseAll)
401
414
 
402
- Opcoes por rota em \`routes-md\`, \`routes-html\` e \`routes-video\`:
415
+ Opções por rota em \`routes-md\`, \`routes-html\` e \`routes-video\`:
403
416
 
404
- - **\`blockLink\`** (padrao: true) – Para HTML: se true, links abrem em nova aba (\`target="_blank"\`); se false, no proprio contexto.
405
- - **\`container\`** – \`"full"\` = altura automatica; numero (ex: \`500\`) = altura fixa em px com overflow auto. Aplica-se a md, html e video.
406
- - **\`url\`** – Apenas em \`routes-html\`: \`Record<LanguageCode, string>\` com URLs externas. Quando definido, o iframe usa \`src={url}\` em vez de HTML local via \`srcDoc\`. Rotas com \`url\` nao geram arquivos HTML locais.
407
- - **\`browseAll\`** (padrao: false) – Se true, o container mostra botoes Anterior/Proximo para navegar entre todos os itens daquele tipo.
417
+ - **\`blockLink\`** (padrão: true) – Para HTML: se true, links abrem em nova aba (\`target="_blank"\`); se false, no próprio contexto.
418
+ - **\`container\`** – \`"full"\` = altura automática; numero (ex: \`500\`) = altura fixa em px com overflow auto. Aplica-se a md, html e vídeo.
419
+ - **\`url\`** – Apenas em \`routes-html\`: \`Record<LanguageCode, string>\` com URLs externas. Quando definido, o iframe usa \`src={url}\` em vez de HTML local via \`srcDoc\`. Rotas com \`url\` não geram arquivos HTML locais.
420
+ - **\`browseAll\`** (padrão: false) – Se true, o container mostra botões Anterior/Próximo para navegar entre todos os itens daquele tipo.
408
421
 
409
- ## Tipos de conteudo: path vs url (HTML)
422
+ ## Tipos de conteúdo: path vs url (HTML)
410
423
 
411
424
  - **Markdown (\`routes-md\`)**: usa \`path\` apontando para arquivos \`.md\` locais.
412
- - **HTML (\`routes-html\`)**: usa \`path\` para arquivos HTML locais (sem extensao .html no config) ou \`url\` para URLs externas. Com \`url\`, o iframe carrega a pagina externa; nenhum arquivo local e gerado.
413
- - **Video (\`routes-video\`)**: usa \`video.pathVideo\` e \`video.videoType\` (youtube, vimeo, mp4, etc.).
425
+ - **HTML (\`routes-html\`)**: usa \`path\` para arquivos HTML locais (sem extensão .html no config) ou \`url\` para URLs externas. Com \`url\`, o iframe carrega a página externa; nenhum arquivo local é gerado.
426
+ - **Vídeo (\`routes-video\`)**: usa \`video.pathVideo\` e \`video.videoType\` (youtube, vimeo, mp4, etc.).
414
427
 
415
- ## Variaveis de ambiente
428
+ ## Variáveis de ambiente
416
429
 
417
430
  - \`GITPAGEDOCS_REPOSITORY_SEARCH\`: ativa/desativa busca remota localmente
418
- - \`GITHUB_ACTIONS\`: ativa comportamento especifico de GitHub Pages
431
+ - \`GITHUB_ACTIONS\`: ativa comportamento específico de GitHub Pages
419
432
 
420
433
  ## Comportamento do site e padrões
421
434
 
@@ -491,7 +504,7 @@ Em um checkout do runtime com dependências instaladas, \`node cli/index.mjs --h
491
504
 
492
505
  ## Releases npm para mantenedores
493
506
 
494
- O monorepo publica \`@gitpagedocs/tools\`, \`@gitpagedocs/mcp\` e \`@gitpagedocs/cli\`; raiz e frontend são privados. O \`npm-publish.yml\` atual roda em pushes para \`main\` e ignora uma versão da CLI já publicada. Usa o secret \`NPM_TOKEN\` do repositório e publica workspaces na ordem de dependência. Criar somente uma release no GitHub não é seu gatilho.
507
+ O monorepo pública \`@gitpagedocs/tools\`, \`@gitpagedocs/mcp\` e \`@gitpagedocs/cli\`; raiz e frontend são privados. O \`npm-publish.yml\` atual roda em pushes para \`main\` e ignora uma versão da CLI já publicada. Usa o secret \`NPM_TOKEN\` do repositório e pública workspaces na ordem de dependência. Criar somente uma release no GitHub não é seu gatilho.
495
508
 
496
509
  Sincronize versões e dependências internas, regenere docs/baselines, execute typecheck, lint, testes, smoke, build e Playwright e revise antes do push. Confirme as três versões no npm e o resultado do Pages. A CLI de configuração ignora \`prebuilt/\`; essa pasta não é exigida pelo workflow de publicação.
497
510
  `,
@@ -502,34 +515,34 @@ O projeto e organizado por fronteiras de feature e responsabilidades do runtime.
502
515
  ## Pacotes
503
516
 
504
517
  - **frontend/** — visualizador Next.js (Feature-Sliced: app / widgets / features / entities / shared); export estatico.
505
- - **cli/** — o bin publicado \`gitpagedocs\` (hexagonal) + \`cli/ai/\` (CLI de documentacao com IA).
518
+ - **cli/** — o bin publicado \`gitpagedocs\` (hexagonal) + \`cli/ai/\` (CLI de documentação com IA).
506
519
  - **tools/** — \`@gitpagedocs/tools\`: ai/ security/ crypto/ cache/ config/ logger/ errors/ filesystem/ documentation/ i18n/ ports/.
507
520
  - **mcp/** — \`@gitpagedocs/mcp\`: ferramentas + recursos MCP que delegam ao tools/.
508
521
 
509
522
  ## Modulos principais (frontend)
510
523
 
511
- - \`frontend/src/app/[[...repo]]/page.tsx\` — parser de rota, generateStaticParams, selecao de shell.
512
- - \`frontend/src/entities/docs/api/load-docs-data.ts\` — config local/remota, versao, parse markdown, layouts + temas.
513
- - \`frontend/src/widgets/docs-shell/docs-shell.tsx\` — UI, estado idioma/versao/tema, sync de URL, montagem do chat de IA.
524
+ - \`frontend/src/app/[[...repo]]/page.tsx\` — parser de rota, generateStaticParams, seleção de shell.
525
+ - \`frontend/src/entities/docs/api/load-docs-data.ts\` — config local/remota, versão, parse markdown, layouts + temas.
526
+ - \`frontend/src/widgets/docs-shell/docs-shell.tsx\` — UI, estado idioma/versão/tema, sync de URL, montagem do chat de IA.
514
527
 
515
- ## Seguranca: credenciais de IA criptografadas
528
+ ## Segurança: credenciais de IA criptografadas
516
529
 
517
- O console \`/ai\` e o chat drawer exigem uma senha local que deriva (PBKDF2) uma chave AES-256-GCM; as chaves ficam criptografadas no \`localStorage\` e so sao descriptografadas durante a sessao (\`@gitpagedocs/tools/security\`). O drawer se bloqueia sozinho apos \`site.AiChatAutoLockSeconds\` segundos sem uso (padrao 30; \`0\` desativa): um modal centralizado com contagem regressiva, no idioma selecionado, permite cancelar ou bloquear agora, e voltar exige a senha de novo. Na CLI, a chave de \`.gitpagedocsconfig\` fica selada no cofre criptografado \`.gitpagedocsvault\` e a senha do cofre e pedida em toda execucao.
530
+ O console \`/ai\` e o chat drawer exigem uma senha local que deriva (PBKDF2) uma chave AES-256-GCM; as chaves ficam criptografadas no \`localStorage\` e só são descriptografadas durante a sessão (\`@gitpagedocs/tools/security\`). O drawer se bloqueia sozinho após \`site.AiChatAutoLockSeconds\` segundos sem uso (padrão 30; \`0\` desativa): um modal centralizado com contagem regressiva, no idioma selecionado, permite cancelar ou bloquear agora, e voltar exige a senha de novo. Na CLI, a chave de \`.gitpagedocsconfig\` fica selada no cofre criptografado \`.gitpagedocsvault\` e a senha do cofre é pedida em toda execução.
518
531
 
519
532
  ## Fluxo de dados
520
533
 
521
534
  1. A rota chega (\`/owner/repo/v/x.y.z\` ou equivalente local)
522
535
  2. O config e resolvido (local ou remoto)
523
- 3. Config de versao sobrescreve rotas/menus base
536
+ 3. Config de versão sobrescreve rotas/menus base
524
537
  4. Markdown e carregado e convertido para HTML
525
538
  5. Template de layout e resolvido e aplicado em CSS vars
526
- 6. Shell renderiza conteudo e controles
539
+ 6. Shell renderiza conteúdo e controles
527
540
 
528
541
  ## Pontos de resiliencia
529
542
 
530
543
  - fallback de carga para layouts/templates
531
544
  - carregamento de markdown por idioma com fallback de erro
532
- - sincronizacao de linguagem/versao/tema via localStorage
545
+ - sincronização de linguagem/versão/tema via localStorage
533
546
  `,
534
547
  githubIssuesProjects: `# GitHub Issues e Projects
535
548
 
@@ -547,7 +560,7 @@ Conceitos basicos de Git para iniciantes.
547
560
 
548
561
  ## Comandos essenciais
549
562
 
550
- - \`git init\` - iniciar repositorio
563
+ - \`git init\` - iniciar repositório
551
564
  - \`git add\` - preparar alteracoes
552
565
  - \`git commit\` - registrar commit
553
566
  - \`git push\` - enviar para remoto
@@ -556,21 +569,21 @@ Conceitos basicos de Git para iniciantes.
556
569
 
557
570
  Proteja rotas por chave de acesso, papeis obrigatorios e provedores externos.
558
571
 
559
- ## Local do config de versao
572
+ ## Local do config de versão
560
573
 
561
574
  Configure em:
562
575
 
563
576
  - \`gitpagedocs/docs/versions/<versao>/config.json\`
564
577
 
565
- ## Secao global auth
578
+ ## Seção global auth
566
579
 
567
- Use \`auth\` no topo do config de versao:
580
+ Use \`auth\` no topo do config de versão:
568
581
 
569
582
  - \`accessKeys\`: mapa de ids de chave para segredo esperado
570
583
  - \`rolesStorageKey\`: chave de localStorage para bootstrap de papeis
571
584
  - \`providers\`: lista de provedores externos (\`authjs\`, \`clerk\`, \`firebase\`, \`jwt\`)
572
585
 
573
- ## Autorizacao por rota
586
+ ## Autorização por rota
574
587
 
575
588
  Dentro de cada rota (\`routes-md\`, \`routes-html\`, \`routes-video\`):
576
589
 
@@ -608,7 +621,7 @@ Adaptadores suportados:
608
621
  `,
609
622
  themes: `# Temas e layouts
610
623
 
611
- Temas sao templates JSON mapeados por \`layoutsConfig.json\`.
624
+ Temas são templates JSON mapeados por \`layoutsConfig.json\`.
612
625
 
613
626
  ## Arquivos
614
627
 
@@ -618,7 +631,7 @@ Temas sao templates JSON mapeados por \`layoutsConfig.json\`.
618
631
 
619
632
  ## Modelo de template
620
633
 
621
- Cada template normalmente contem:
634
+ Cada template normalmente contém:
622
635
 
623
636
  - \`id\`, \`name\`, \`author\`, \`version\`
624
637
  - \`mode\` e metadados de par dark/light
@@ -629,15 +642,15 @@ Cada template normalmente contem:
629
642
 
630
643
  ## Comportamento em runtime
631
644
 
632
- - tema ativo vem de config/usuario
633
- - toggle light/dark resolve o tema pareado por referencia
634
- - variaveis CSS sao geradas dos tokens do template
645
+ - tema ativo vem de config/usuário
646
+ - toggle light/dark resolve o tema pareado por referência
647
+ - variáveis CSS são geradas dos tokens do template
635
648
 
636
- ## Boas praticas
649
+ ## Boas práticas
637
650
 
638
- - mantenha contraste acessivel
639
- - padronize escala de espaco e borda
640
- - ofereca variantes dark e light quando possivel
651
+ - mantenha contraste acessível
652
+ - padronize escala de espaço e borda
653
+ - ofereça variantes dark e light quando possível
641
654
 
642
655
  ## Escolher e personalizar
643
656
 
@@ -646,6 +659,8 @@ Escolha um tema pelo seletor ou configure \`site.ThemeDefault\` com seu ID exato
646
659
  No seu repositório, execute a CLI com \`--layoutconfig\`, edite o template gerado e mantenha o ID coerente com \`layoutsConfig.json\`. O conteúdo da rota e \`site.icons\` são independentes do catálogo de temas. Use \`currentColor\` para ícones que herdam a cor do texto ou configure cores claras/escuras com contraste suficiente.
647
660
 
648
661
  Ao contribuir no Git Page Docs, a fonte autoral é \`gitpagelayouts/v2/base.json\` com \`gitpagelayouts/v2/layouts/<id>.json\`. Execute \`pnpm layouts:sync\` para gerar templates e documentação. Edições diretas nos templates gerados podem ser substituídas pela sincronização.
662
+
663
+ ${THEME_BACKGROUND_DOCS.pt}
649
664
  `,
650
665
  mcp: `# Servidor MCP
651
666
 
@@ -706,7 +721,7 @@ Selecione o provedor com \`configure_ai_provider\` ou pelo arquivo \`.gitpagedoc
706
721
  | \`fireworks\` | \`FIREWORKS_API_KEY\` |
707
722
  | \`perplexity\` | \`PERPLEXITY_API_KEY\` |
708
723
 
709
- Sem seleção válida, o provedor padrão é OpenAI. Ollama não exige chave de API; o serviço local e o modelo escolhido precisam estar disponíveis. \`OLLAMA_BASE_URL\` é opcional. A URL base do Azure é a URL completa da operação de chat, incluindo deployment e versão da API quando exigidos. A lista de modelos é um catálogo distribuído, não uma verificação de disponibilidade em tempo real.
724
+ Quando a seleção salva está ausente, ilegível ou contém JSON inválido, o provedor padrão é OpenAI. Um ID de provedor desconhecido em JSON legível gera erro explícito, sem selecionar outro provedor. Ollama não exige chave de API; o serviço local e o modelo escolhido precisam estar disponíveis. \`OLLAMA_BASE_URL\` é opcional. A URL base do Azure é a URL completa da operação de chat, incluindo deployment e versão da API quando exigidos. A lista de modelos é um catálogo distribuído, não uma verificação de disponibilidade em tempo real.
710
725
 
711
726
  ## Referência de tools
712
727
 
@@ -762,7 +777,7 @@ A etapa de geração envia o conteúdo selecionado do projeto ao provedor config
762
777
 
763
778
  - Leitura de arquivos: até 512.000 bytes. Listagem: até 2.000 entradas; árvores coletadas do projeto: 400 entradas.
764
779
  - Busca: até 5.000 entradas, 200 resultados e 240 caracteres por linha encontrada.
765
- - Coleta de documentação: primeiros 40 arquivos Markdown entre até 2.000 entradas; arquivos acima de 40.000 bytes são ignorados. O contexto do provedor é limitado a 24.000 caracteres.
780
+ - Coleta de documentação: primeiros 40 arquivos Markdown entre até 2.000 entradas; arquivos acima de 40.000 bytes são ignorados. O contexto coletado de arquivos e Markdown é limitado a 24.000 caracteres. Isso não é um limite global do prompt: árvore/pacote, documento existente e pergunta fornecida podem acrescentar conteúdo conforme a tool escolhida.
766
781
  - A listagem ignora pastas de dependências/build como \`node_modules\`, \`.git\`, \`.next\`, \`out\`, \`dist\`, \`prebuilt\`, \`.turbo\` e \`coverage\`. Não interpreta \`.gitignore\`; arquivos como \`.env\` não são excluídos automaticamente. Execute somente em projeto confiável e selecione o conteúdo que será exposto.
767
782
  - A verificação de caminhos é lexical; o processo não é um sandbox do sistema operacional nem garante isolamento de symlinks/junctions. Ler \`project://config\` pode importar configuração JavaScript/TypeScript.
768
783
  - Falhas de tools incluem \`isError: true\`. Resources ausentes retornam \`Unavailable: ...\`. Consulte stderr no cliente para falhas de inicialização; stdout é reservado para JSON-RPC.
@@ -772,47 +787,47 @@ A etapa de geração envia o conteúdo selecionado do projeto ao provedor config
772
787
 
773
788
  ## Comandos da CLI
774
789
 
775
- | Comando | Descricao |
790
+ | Comando | Descrição |
776
791
  |---------|------------|
777
792
  | \`npx @gitpagedocs/cli\` | Gera config e docs em \`gitpagedocs/\` |
778
- | \`npx @gitpagedocs/cli --layoutconfig\` | Tambem gera layouts/templates locais em \`gitpagelayouts/\` |
793
+ | \`npx @gitpagedocs/cli --layoutconfig\` | Também gera layouts/templates locais em \`gitpagelayouts/\` |
779
794
  | \`npx @gitpagedocs/cli --home\` | Distribuicao standalone (\`gitpagedocshome/\`) |
780
795
  | \`npx @gitpagedocs/cli --push --owner X --repo Y\` | Configura workflow, commit, push |
781
- | \`npx @gitpagedocs/cli --interactive\` / \`-i\` | Modo interativo com prompts (padrao em um terminal) |
782
- | \`npx @gitpagedocs/cli --no-interactive\` / \`--yes\` / \`-y\` | Nunca pergunta; usa flags e padroes |
783
- | \`gitpagedocs ai\` | Gerador interativo de documentacao com IA |
784
- | \`gitpagedocs chat [pergunta]\` | Chat de IA com streaming no terminal (REPL em TTY; resposta unica com pergunta ou stdin) |
785
- | \`gitpagedocs provider [id]\` / \`models [provider]\` | Lista provedores de IA / modelos do catalogo |
786
- | \`gitpagedocs document[:repo\\|:file\\|:folder]\` | Gera documentacao com IA |
796
+ | \`npx @gitpagedocs/cli --interactive\` / \`-i\` | Modo interativo com prompts (padrão em um terminal) |
797
+ | \`npx @gitpagedocs/cli --no-interactive\` / \`--yes\` / \`-y\` | Nunca pergunta; usa flags e padrões |
798
+ | \`gitpagedocs ai\` | Gerador interativo de documentação com IA |
799
+ | \`gitpagedocs chat [pergunta]\` | Chat de IA com streaming no terminal (REPL em TTY; resposta única com pergunta ou stdin) |
800
+ | \`gitpagedocs provider [id]\` / \`models [provider]\` | Lista provedores de IA / modelos do catálogo |
801
+ | \`gitpagedocs document[:repo\\|:file\\|:folder]\` | Gera documentação com IA |
787
802
  | \`gitpagedocs deploy\` / \`pages [actions\\|deploy]\` | Configura GitHub Pages via Actions + push |
788
803
  | \`gitpagedocs docs\` | Atualiza as regioes gerenciadas de README/CONTRIBUTING/SECURITY |
789
- | \`gitpagedocs password\` | Define a senha de acesso a documentacao (chave publica em \`site.docsAccess\`) |
804
+ | \`gitpagedocs password\` | Define a senha de acesso a documentação (chave pública em \`site.docsAccess\`) |
790
805
  | \`gitpagedocs config\` / \`config clear\` | Mostra a config resolvida / apaga a config salva e o cofre de chaves |
791
- | \`gitpagedocs doctor\` / \`version\` / \`update\` | Diagnostico / versao / verificacao de atualizacao no registro |
806
+ | \`gitpagedocs doctor\` / \`version\` / \`update\` | Diagnóstico / versão / verificação de atualização no registro |
792
807
  | \`gitpagedocs mcp start\` | Inicia o servidor MCP via stdio |
793
808
 
794
809
  Instale globalmente com \`npm install -g @gitpagedocs/cli\` ou rode sem instalar com \`npx @gitpagedocs/cli\`.
795
810
 
796
- ## Opcoes da CLI
811
+ ## Opções da CLI
797
812
 
798
- | Opcao | Descricao |
813
+ | Opção | Descrição |
799
814
  |-------|-----------|
800
815
  | \`--owner <user>\` | Owner do GitHub |
801
- | \`--repo <repo>\` | Repositorio GitHub |
816
+ | \`--repo <repo>\` | Repositório GitHub |
802
817
  | \`--path <subpath>\` | Subcaminho dos docs (ex: \`docs\`); sem ele, base path = nome do repo para CSS/JS em project sites |
803
- | \`--output <dir>\` | Diretorio de saida (padrao: \`gitpagedocs\`) |
804
- | \`--search <true-or-false>\` | Habilita/desabilita busca de repositorio (\`--home\`) |
818
+ | \`--output <dir>\` | Diretório de saída (padrão: \`gitpagedocs\`) |
819
+ | \`--search <true-or-false>\` | Habilita/desabilita busca de repositório (\`--home\`) |
805
820
  | \`--layoutconfig\` | Gera layouts locais em \`gitpagelayouts/\` |
806
- | \`--layouts-dir <dir>\` | Pasta dos layouts locais (padrao: \`gitpagelayouts\`) |
821
+ | \`--layouts-dir <dir>\` | Pasta dos layouts locais (padrão: \`gitpagelayouts\`) |
807
822
  | \`--push\` | Cria workflow, commit de artefatos, push |
808
823
  | \`--pages-actions\` | Apenas muda a fonte do GitHub Pages para GitHub Actions (igual a \`pages actions\`) |
809
824
  | \`--home\` | Gera \`gitpagedocshome/\` (estatico + .env + Dockerfile) |
810
825
 
811
- ## Saida gerada
826
+ ## Saída gerada
812
827
 
813
828
  - \`gitpagedocs/config.json\` – config raiz
814
- - \`gitpagedocs/icon.svg\` – icone padrao
815
- - \`gitpagedocs/docs/versions/<ver>/config.json\` – rotas por versao
829
+ - \`gitpagedocs/icon.svg\` – ícone padrão
830
+ - \`gitpagedocs/docs/versions/<ver>/config.json\` – rotas por versão
816
831
  - \`gitpagedocs/docs/versions/<ver>/{en,pt,es}/*.md\` – docs em markdown
817
832
  - \`gitpagelayouts/\` – apenas com \`--layoutconfig\` (pasta configuravel com \`--layouts-dir\`)
818
833
 
@@ -857,7 +872,7 @@ Rotas definem o conteúdo; menus definem como o leitor o encontra. Configure-os
857
872
 
858
873
  Cada entrada de \`menus-header-md\` tem \`id\` e objetos \`pt\`, \`en\`, \`es\` com \`title\` e \`path-click\` opcional. Adicione \`submenus\` com novas entradas para aninhar a árvore. O objeto de um idioma também aceita \`submenus\` localizados com título/caminho. Use uma forma de maneira consistente para não listar o mesmo filho duas vezes.
859
874
 
860
- Grupos sem \`path-click\` organizam os filhos. Para um destino Markdown, use seu caminho localizado real de \`routes-md[].path\`. O alias \`page:<id>\` é registrado por rotas source-viewer, vídeo, áudio e PDF; não o use em uma página somente Markdown. O exemplo usa a versão \`0.0.8\`: troque esse trecho pela versão editada e crie os três arquivos chapter.
875
+ Grupos sem \`path-click\` organizam os filhos. Para o destino de uma rota Markdown, use seu caminho localizado real de \`routes-md[].path\`. Rotas source-viewer, vídeo, áudio, PDF e composições explícitas em \`pages\` registram \`page:<id>\`; uma rota Markdown simples usa o caminho do arquivo. O exemplo usa a versão \`0.0.8\`: troque esse trecho pela versão editada e crie os três arquivos chapter.
861
876
 
862
877
  \`\`\`json
863
878
  {
@@ -925,6 +940,14 @@ Grupos sem \`path-click\` organizam os filhos. Para um destino Markdown, use seu
925
940
 
926
941
  ## Comportamento do aninhamento
927
942
 
943
+ Um pai pode ser documento e grupo ao mesmo tempo. Mantenha seu \`path-click\` localizado junto com \`submenus\`: o título abre a página Markdown e a seta separada expande ou recolhe os filhos. O scaffold inclui visões gerais úteis para os oito grupos pais. Os ancestrais dos breadcrumbs apontam para esses documentos; o destino atual continua marcado como atual. Um grupo sem caminho ainda organiza filhos, mas não possui destino para abrir.
944
+
945
+ O trecho abaixo usa as rotas Markdown 31, 32 e 13 já presentes no scaffold. Combine-o com \`menus-header-md\` e preserve as definições correspondentes em \`routes-md\` e seus arquivos:
946
+
947
+ \`\`\`json
948
+ ${PARENT_MENU_JSON}
949
+ \`\`\`
950
+
928
951
  \`site.nestedMenusEnabled: true\` exibe menus recursivos expansíveis. Você pode acrescentar \`submenus\` em qualquer nó: não há limite fixo de profundidade na aplicação. A configuração deve ser finita e adequada à memória do navegador e à usabilidade. Com \`false\`, os destinos aparecem em uma lista plana; as páginas aninhadas não são removidas.
929
952
 
930
953
  A árvore atende à navegação lateral, aos rótulos de busca, à expansão dos pais e à trilha de navegação. Mantenha IDs estáveis e sem ambiguidade; destinos protegidos seguem as regras de autorização da página. A mesma estrutura vale para \`menus-header-source-viewer\`, \`menus-header-html\`, \`menus-header-video\`, \`menus-header-audio\` e \`menus-header-pdf\`. \`hierarchyMenu\` ordena as seções por tipo; \`hierarchyPage\` ordena os containers que compartilham o ID da página.
@@ -939,7 +962,7 @@ A árvore atende à navegação lateral, aos rótulos de busca, à expansão dos
939
962
 
940
963
  URLs versionadas usam \`/v/<version>/\`; \`?lang=pt\` escolhe o idioma e \`?id=101\` escolhe a página. \`?name=chapter\` seleciona o slug do documento. Mantenha \`VersionControl.versions[].path\` apontando para o config da versão correspondente. \`site.ActiveNavigation\` ativa a navegação rápida e seu atalho Ctrl+K. Os controles anterior/próximo do rodapé seguem os destinos disponíveis no menu; a navegação entre documentos no modo foco possui opção própria. Consulte Modo foco para os controles de seção e documento.
941
964
 
942
- Os botões Voltar/Próximo do rodapé usam \`site.icons.DocumentPrevious\` (\`FiChevronLeft\`) e \`site.icons.DocumentNext\` (\`FiChevronRight\`) por padrão. Defina \`reactIcon: false\` em qualquer entrada para exibir seu texto traduzido; cada entrada também aceita \`tag\`, \`size\`, \`colorDark\` e \`colorLight\`. A aparência não muda a navegação: o rodapé aparece quando há mais de um destino disponível no menu, e a direção indisponível continua desabilitada nas extremidades.
965
+ Os botões Voltar/Próximo do rodapé usam \`site.icons.DocumentPrevious\` (\`LuChevronLeft\`) e \`site.icons.DocumentNext\` (\`LuChevronRight\`) por padrão. Defina \`reactIcon: false\` em qualquer entrada para exibir seu texto traduzido; cada entrada também aceita \`tag\`, \`size\`, \`colorDark\` e \`colorLight\`. A aparência não muda a navegação: o rodapé aparece quando há mais de um destino disponível no menu, e a direção indisponível continua desabilitada nas extremidades.
943
966
 
944
967
  Teste um menu novo pela lateral, por URL direta e em cada idioma habilitado; confirme que o destino existe e é permitido para o leitor atual.
945
968
  `,
@@ -978,6 +1001,8 @@ Cada opção tem padrão \`true\`; \`false\` oculta a ação ou o grupo de naveg
978
1001
 
979
1002
  ## Copiar e baixar
980
1003
 
1004
+ Em uma página composta, o foco lê os blocos Markdown autorizados em ordem, incluindo repetições. Copiar/baixar reúne essas fontes e usa \`page-<id>.md\`; as ações individuais dos blocos mantêm os nomes originais. Consulte Blocos de conteúdo ordenados para o contrato completo.
1005
+
981
1006
  Copiar e baixar usam o **Markdown original inteiro no idioma selecionado**, incluindo seções que não estão visíveis no momento. Não exportam o HTML renderizado nem apenas a seção atual.
982
1007
 
983
1008
  O download conserva o nome-base Markdown do \`path\` localizado da rota; quando indisponível, o nome do arquivo é \`document.md\`. A área de transferência segue as permissões e regras de contexto seguro do navegador. Se a cópia falhar, use o download e confira o erro exibido.
@@ -1049,37 +1074,37 @@ Consulte a [referência da Web Speech API](https://developer.mozilla.org/en-US/d
1049
1074
  `,
1050
1075
  faq: `# FAQ
1051
1076
 
1052
- ## Por que repositorios remotos nao abrem localmente?
1077
+ ## Por que repositórios remotos não abrem localmente?
1053
1078
 
1054
1079
  Verifique:
1055
1080
 
1056
1081
  - \`GITPAGEDOCS_REPOSITORY_SEARCH=true\` no \`.env\`
1057
- - repositorio alvo contem \`gitpagedocs/config.json\`
1058
- - paths markdown do repositorio batem com seu config de rotas
1082
+ - repositório alvo contem \`gitpagedocs/config.json\`
1083
+ - paths markdown do repositório batem com seu config de rotas
1059
1084
 
1060
- ## Por que rota de versao mostra conteudo errado?
1085
+ ## Por que rota de versão mostra conteúdo errado?
1061
1086
 
1062
1087
  Verifique:
1063
1088
 
1064
1089
  - \`VersionControl.versions[*].path\` em \`gitpagedocs/config.json\`
1065
- - config da versao possui \`routes\` e \`menus-header\` validos
1090
+ - config da versão possui \`routes\` e \`menus-header\` válidos
1066
1091
  - markdown existe para cada idioma
1067
1092
 
1068
- ## Por que tema nao aplica corretamente?
1093
+ ## Por que tema não aplica corretamente?
1069
1094
 
1070
1095
  Verifique:
1071
1096
 
1072
- - \`layoutsConfig.json\` referencia templates validos
1073
- - ids de template sao unicos
1097
+ - \`layoutsConfig.json\` referência templates válidos
1098
+ - ids de template são únicos
1074
1099
  - tema selecionado existe no mapa de temas carregados
1075
1100
 
1076
1101
  ## Por que GitHub Pages pode se comportar diferente do local?
1077
1102
 
1078
- Porque o build de GitHub Pages habilita pagina inicial de busca e comportamento especifico de exportacao.
1103
+ Porque o build de GitHub Pages habilita página inicial de busca e comportamento específico de exportação.
1079
1104
 
1080
1105
  ## Por que o ícone ainda mostra texto?
1081
1106
 
1082
- Defina \`site.icons.<Controle>.reactIcon\` como booleano \`true\`, com o nome exato exportado por React Icons em \`tag\`. LanguageSelector, ThemeSelector, FocusMode, QuickNavigation, PdfDownload, PdfOpenInNewTab, DocumentPrevious e DocumentNext usam ícones por padrão; altere qualquer entrada para \`false\` para exibir texto. Campos planos \`Icon*ReactIcones\` prevalecem se os dois formatos existirem. Confira se o próprio recurso está desabilitado por opções como \`HideThemeSelector\`, \`FocusMode\` ou as ações PDF.
1107
+ Defina \`site.icons.<Controle>.reactIcon\` como booleano \`true\`, com o nome exato exportado por React Icons em \`tag\`. LanguageSelector, ThemeSelector, VersionSelector, FocusMode, QuickNavigation, PdfDownload, PdfOpenInNewTab, DocumentPrevious e DocumentNext usam ícones por padrão; altere qualquer entrada para \`false\` para exibir texto. Campos planos \`Icon*ReactIcones\` prevalecem se os dois formatos existirem. Confira se o próprio recurso está desabilitado por opções como \`HideThemeSelector\`, \`FocusMode\` ou as ações PDF.
1083
1108
 
1084
1109
  ## Por que filhos de menus ou breadcrumbs aparecem diferentes?
1085
1110