@gitpagedocs/cli 1.1.62 → 1.1.63

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.
Files changed (59) hide show
  1. package/README.md +193 -193
  2. package/ai/application/ai-command.ts +24 -24
  3. package/ai/application/ai-provider-factory.ts +22 -22
  4. package/ai/application/docs-pattern.ts +68 -68
  5. package/ai/application/run-ai-cli-command.ts +167 -167
  6. package/ai/config.ts +50 -50
  7. package/ai/core/models/ai-cli-config.ts +33 -33
  8. package/ai/core/models/parse-ai-cli-config.ts +78 -78
  9. package/ai/core/ports/illm-provider.ts +32 -32
  10. package/ai/infrastructure/ai-config-file.ts +101 -101
  11. package/ai/infrastructure/file-system-adapter.ts +85 -85
  12. package/ai/infrastructure/llm/tools-llm-provider.ts +54 -54
  13. package/ai/infrastructure/version-docs-writer.ts +143 -143
  14. package/ai/presentation/ai-prompts.ts +239 -239
  15. package/application/ports/cli-runtime-ports.ts +91 -91
  16. package/application/report/config-only-reporter.mjs +64 -64
  17. package/application/use-cases/dispatch-mode.ts +18 -18
  18. package/builders/config-orchestrator.mjs +34 -34
  19. package/builders/project-links.mjs +50 -50
  20. package/builders/root-config-builder.mjs +61 -61
  21. package/builders/route-builders.mjs +136 -136
  22. package/builders/theme-template.mjs +76 -76
  23. package/builders/version-config-builder.mjs +186 -186
  24. package/content/docs-en.mjs +549 -549
  25. package/content/docs-es.mjs +462 -462
  26. package/content/docs-pt.mjs +462 -462
  27. package/contracts/doc-versions.mjs +3 -3
  28. package/data/default-site-config.mjs +321 -321
  29. package/data/i18n-langmenu.mjs +347 -347
  30. package/data/layouts.mjs +436 -436
  31. package/data/path-mappings.mjs +26 -26
  32. package/data/route-metas.mjs +93 -93
  33. package/data/theme-colors.mjs +443 -443
  34. package/data/urls.mjs +12 -12
  35. package/domain/models/cli-options.ts +33 -33
  36. package/home/constants.mjs +4 -4
  37. package/index.mjs +37 -37
  38. package/infrastructure/gitpagedocs-config-file.ts +47 -47
  39. package/infrastructure/home/runtime.mjs +37 -37
  40. package/package.json +3 -3
  41. package/presentation/commands/ai-info.ts +57 -57
  42. package/presentation/commands/config-clear.ts +23 -23
  43. package/presentation/commands/config-info.ts +24 -24
  44. package/presentation/commands/diagnostics.ts +164 -164
  45. package/presentation/commands/docs.ts +37 -37
  46. package/presentation/commands/mcp.ts +20 -20
  47. package/presentation/commands/pages.ts +101 -101
  48. package/presentation/commands/password.ts +62 -62
  49. package/presentation/commands/run-command.ts +70 -70
  50. package/presentation/index.ts +124 -124
  51. package/presentation/options/parser.ts +119 -119
  52. package/presentation/options/resolver.ts +46 -46
  53. package/presentation/ui/clack.ts +91 -91
  54. package/presentation/ui/prompts.ts +146 -146
  55. package/runtime/git-ops.mjs +110 -110
  56. package/runtime/output.mjs +159 -159
  57. package/runtime/workflow.mjs +129 -129
  58. package/start.mjs +12 -12
  59. package/ui/logger.mjs +9 -9
@@ -1,462 +1,462 @@
1
- export const docsPt = {
2
- index: `# Git Page Docs
3
-
4
- Git Page Docs e um runtime de documentacao multi-idioma para repositorios que possuem a pasta \`gitpagedocs/\`.
5
-
6
- ## O que este projeto entrega
7
-
8
- - Renderizacao markdown em varios idiomas (\`en\`, \`pt\`, \`es\`)
9
- - Roteamento por versao (\`/v/:versao\`)
10
- - Sistema de temas por templates JSON
11
- - Execucao local e em GitHub Pages
12
- - Busca de repositorio + renderizacao remota opcional
13
-
14
- ## Contrato de pastas
15
-
16
- O runtime espera esta estrutura:
17
-
18
- - \`gitpagedocs/config.json\`
19
- - \`gitpagedocs/docs/<lang>/*.md\`
20
- - \`gitpagedocs/docs/versions/<versao>/config.json\`
21
- - \`gitpagedocs/docs/versions/<versao>/<lang>/*.md\`
22
- - \`gitpagelayouts/layoutsConfig.json\`
23
- - \`gitpagelayouts/templates/*.json\`
24
-
25
- ## Navegacao rapida
26
-
27
- - Abra **Primeiros passos** para setup local.
28
- - Abra **Configuracao** para detalhes completos do \`config.json\`.
29
- - Abra **Publicacao** para comportamento local/producao/GitHub Pages.
30
- - Abra **Arquitetura** para mapa de codigo e fluxo de dados.
31
- - Abra **Temas e layouts** para autoria de templates.
32
- - Abra **Rotas autorizadas** para configurar chave, papeis e autenticacao externa.
33
- - Abra **FAQ** para troubleshooting.
34
- `,
35
- gettingStarted: `# Primeiros passos
36
-
37
- Este guia leva o projeto do zero ate docs rodando.
38
-
39
- ## Pre-requisitos
40
-
41
- - Node.js 20+
42
- - npm 10+ (ou pnpm)
43
-
44
- ## Setup local
45
-
46
- 1. Instale dependencias:
47
- - \`npm install\`
48
- 2. Gere/atualize os artefatos de docs:
49
- - \`npm run gitpagedocs\`
50
- 3. Inicie o desenvolvimento:
51
- - \`npm run dev\`
52
- 4. Build e execucao local de producao:
53
- - \`npm run build\`
54
- - \`npm start\`
55
-
56
- ## Comportamento da CLI
57
-
58
- \`npx @gitpagedocs/cli\` (ou \`npm run gitpagedocs\`) gera os artefatos na pasta oficial \`gitpagedocs/\`.
59
-
60
- - Gera somente markdown/json
61
- - Nao gera \`index.html\`
62
- - Nao gera \`index.js\`
63
- - Nao executa comandos de instalacao
64
-
65
- ## Modo de busca por repositorio
66
-
67
- No ambiente local, o controle e por variavel:
68
-
69
- - \`GITPAGEDOCS_REPOSITORY_SEARCH=true\`
70
- - \`GITPAGEDOCS_REPOSITORY_SEARCH=false\`
71
-
72
- Em build de GitHub Pages (\`GITHUB_ACTIONS=true\`), a busca de repositorio fica sempre ativa.
73
- `,
74
- projectOverview: `# Visao geral do projeto
75
-
76
- 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).
77
-
78
- ## Pacotes do monorepo
79
-
80
- - **frontend/** — visualizador Next.js 15 (App Router, React 19), exportado estaticamente para o GitHub Pages.
81
- - **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.
82
- - **tools/** — \`@gitpagedocs/tools\`, o nucleo de logica compartilhado: sistema de IA com 14 provedores, cofre de credenciais criptografado, loader de config, caches e logger.
83
- - **mcp/** — \`@gitpagedocs/mcp\`, servidor Model Context Protocol (20 ferramentas + 7 recursos).
84
- - **gitpagedocs/** — o contrato do usuario: \`config.json\`, docs versionados e layouts.
85
-
86
- ## Stack
87
-
88
- - Next.js 15 (App Router) + React 19 + TypeScript; exportacao estatica para GitHub Pages
89
- - gray-matter + marked para Markdown; react-icons
90
- - pnpm workspaces + turborepo; Vitest + Playwright; ESLint
91
-
92
- ## Destaques
93
-
94
- - Multilinguagem (\`en\`, \`pt\`, \`es\`) e rotas por versao (\`/v/:version\`)
95
- - Sistema de IA com 14 provedores (OpenAI, Anthropic, Gemini, Ollama, Mistral, DeepSeek, Cohere, Groq, xAI e mais) com streaming
96
- - Chaves de IA **criptografadas em repouso** (AES-256-GCM) atras de uma senha local — nunca em texto puro
97
- - **Drawer de chat de IA** nos docs + um **console \`/ai\`** dedicado
98
- - Sistema de 36 temas; execucao local e no GitHub Pages
99
- `,
100
- functionalities: `# Funcionalidades
101
-
102
- Referencia completa de opcoes da CLI, chaves de configuracao e recursos do runtime.
103
-
104
- ## Comandos da CLI
105
-
106
- | Comando | Descricao |
107
- |---------|------------|
108
- | \`npx @gitpagedocs/cli\` | Gera config e docs em \`gitpagedocs/\` |
109
- | \`npx @gitpagedocs/cli --layoutconfig\` | Tambem gera layouts/templates locais em \`gitpagelayouts/\` |
110
- | \`npx @gitpagedocs/cli --home\` | Distribuicao standalone (\`gitpagedocshome/\`) |
111
- | \`npx @gitpagedocs/cli --push --owner X --repo Y\` | Configura workflow, commit, push |
112
- | \`npx @gitpagedocs/cli --interactive\` / \`-i\` | Modo interativo com prompts (padrao em um terminal) |
113
- | \`npx @gitpagedocs/cli --no-interactive\` / \`-y\` | Nunca pergunta; usa flags e padroes |
114
-
115
- ## Opcoes da CLI
116
-
117
- | Opcao | Descricao |
118
- |-------|-----------|
119
- | \`--owner <user>\` | Owner do GitHub |
120
- | \`--repo <repo>\` | Repositorio GitHub |
121
- | \`--path <subpath>\` | Subcaminho dos docs (ex: \`docs\`); sem ele, base path = nome do repo para CSS/JS em project sites |
122
- | \`--output <dir>\` | Diretorio de saida (padrao: \`gitpagedocs\`) |
123
- | \`--search true|false\` | Habilita/desabilita busca de repositorio (\`--home\`) |
124
- | \`--layoutconfig\` | Gera layouts locais em \`gitpagelayouts/\` |
125
- | \`--layouts-dir <dir>\` | Pasta dos layouts locais (padrao: \`gitpagelayouts\`) |
126
- | \`--push\` | Cria workflow, commit de artefatos, push |
127
- | \`--home\` | Gera \`gitpagedocshome/\` (estatico + .env + Dockerfile) |
128
-
129
- ## Saida gerada
130
-
131
- - \`gitpagedocs/config.json\` – config raiz
132
- - \`gitpagedocs/icon.svg\` – icone padrao
133
- - \`gitpagedocs/docs/versions/<ver>/config.json\` – rotas por versao
134
- - \`gitpagedocs/docs/versions/<ver>/{en,pt,es}/*.md\` – docs em markdown
135
- - \`gitpagelayouts/\` – apenas com \`--layoutconfig\` (pasta configuravel com \`--layouts-dir\`)
136
-
137
- ## Tipos de conteudo
138
-
139
- | Tipo | Chave config | Descricao |
140
- |------|--------------|-----------|
141
- | Markdown | \`routes-md\` | Arquivos .md com \`path\` por idioma |
142
- | HTML | \`routes-html\` | \`path\` local ou \`url\` externa |
143
- | Video | \`routes-video\` | \`video.pathVideo\`, \`video.videoType\` |
144
- | Audio | \`routes-audio\` | \`audio.pathAudio\`, \`audio.audioType\` |
145
-
146
- ## Visualizador de codigo fonte
147
-
148
- 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.
149
-
150
- - Arvore do repositorio a partir de \`source-viewer-path\`; a branch padrao e \`main\`
151
- - Navegacao por pastas e filtro de arquivos
152
- - Listagem de diretorios no estilo GitHub
153
- - Renderizacao de codigo com numeros de linha
154
- - Alternancia preview/codigo para Markdown, incluindo \`README.md\`
155
- - Pastas recolhiveis na lateral
156
-
157
- ## Chaves de config (site)
158
-
159
- - \`name\`, \`defaultLanguage\`, \`supportedLanguages\`
160
- - \`docsVersion\`, \`rendering\`, \`ThemeDefault\`, \`ThemeModeDefault\`
161
- - \`ProjectLink\`, \`layoutsConfigPathOficial\`, \`layoutsConfigPath\`
162
-
163
- ## Variaveis de ambiente
164
-
165
- - \`GITPAGEDOCS_REPOSITORY_SEARCH\` – busca de repositorio (local)
166
- - \`GITHUB_ACTIONS\` – modo build GitHub Pages
167
- `,
168
- configuration: `# Configuracao
169
-
170
- A configuracao de runtime fica em \`gitpagedocs/config.json\`.
171
-
172
- ## Secao \`site\`
173
-
174
- Principais chaves:
175
-
176
- - \`name\`: titulo do projeto no UI
177
- - \`defaultLanguage\`: idioma padrao
178
- - \`supportedLanguages\`: lista de idiomas disponiveis
179
- - \`HideThemeSelector\`: esconde/mostra seletor de tema
180
- - \`ThemeDefault\`: id do tema inicial
181
- - \`ThemeModeDefault\`: modo inicial (\`light\` ou \`dark\`)
182
- - \`ProjectLink\`: URL de repositorio para acoes no cabecalho
183
- - \`docsVersion\`: versao inicial selecionada
184
- - \`ActiveNavigation\`: habilita comportamento de anterior/proximo
185
- - \`FocusMode\`: habilita modo foco/leitura
186
- - \`IconImageMenuHeaderImgWidth\`, \`IconImageMenuHeaderImgHeight\`: tamanho do icone principal
187
- - \`IconImageMenuHeaderLightImg\`, \`IconImageMenuHeaderDarkImg\`: icone principal (light/dark)
188
- - \`IconProjectLinkImgWidth\`, \`IconProjectLinkImgHeight\`: tamanho do icone link do projeto
189
- - \`IconProjectLinkLightImg\`, \`IconProjectLinkDarkImg\`: icone link do projeto
190
- - \`IconVersionLinksImgWidth\`, \`IconVersionLinksImgHeight\`: tamanho do icone links de versao
191
- - \`IconVersionLinksLightImg\`, \`IconVersionLinksDarkImg\`: icone links de versao
192
- - \`IconInfoHeaderMenuImgWidth\`, \`IconInfoHeaderMenuImgHeight\`: tamanho do icone info
193
- - \`IconInfoHeaderMenuLightImg\`, \`IconInfoHeaderMenuDarkImg\`: icone info
194
- - \`IconPreviewProjectLinkImgWidth\`, \`IconPreviewProjectLinkImgHeight\`: tamanho do icone preview
195
- - \`IconPreviewProjectLinkLightImg\`, \`IconPreviewProjectLinkDarkImg\`: icone preview
196
- - \`layoutsConfigPath\`: fallback remoto para layouts
197
- - \`rendering\`: URL canonica publicada
198
-
199
- ## Secao \`VersionControl\`
200
-
201
- \`VersionControl.versions\` define:
202
-
203
- - \`id\`: identificador da versao
204
- - \`path\`: caminho do config da versao
205
- - links opcionais (\`ProjectLink\`, \`branch\`, \`release\`, \`commit\`)
206
- - metadados opcionais do source viewer (\`source-viewer\`, \`source-viewer-path\`)
207
-
208
- ## Navegacao e rotas
209
-
210
- - \`routes\`: caminhos markdown por idioma (legado)
211
- - \`menus-header\`: menu hierarquico
212
- - \`translations\`: labels de UI para not-found e navegacao
213
-
214
- ## Autorizacao (config de versao)
215
-
216
- - \`auth\`: configuracoes globais de autorizacao para a versao
217
- - \`auth.accessKeys\`: mapa de chaves usado por \`authorization.accessKeyId\`
218
- - \`auth.rolesStorageKey\`: chave de localStorage para bootstrap de papeis
219
- - \`auth.providers\`: adaptadores de provedor (\`authjs\`, \`clerk\`, \`firebase\`, \`jwt\`)
220
-
221
- ## Tipos de conteudo (config de versao)
222
-
223
- Configs de versao suportam multiplos tipos:
224
-
225
- - \`routes-md\`: Rotas markdown com \`title\`, \`description\` (centralizados via \`titlePosition\`, \`descriptionPosition\`)
226
- - \`routes-source-viewer\`: Containers de codigo fonte com \`source-viewer: true\` e \`source-viewer-path\`
227
- - \`routes-html\`: Caminhos de paginas HTML por idioma
228
- - \`routes-video\`: Config de video com \`video.videoType\` (youtube, vimeo, mp4, etc.) e \`video.pathVideo\`
229
- - \`routes-audio\`: Config de audio com \`audio.audioType\` (youtube, mp3, etc.) e \`audio.pathAudio\`
230
- - \`authorization\` (md/html/video): guarda de acesso por chave, papeis e autenticacao externa
231
- - \`menus-header-md\`, \`menus-header-source-viewer\`, \`menus-header-html\`, \`menus-header-video\`, \`menus-header-audio\`: menus por tipo
232
- - \`hierarchyPage\`: ordem dos containers na pagina \`{ md: 0, "source-viewer": 1, html: 2, video: 3, audio: 4 }\`
233
- - \`hierarchyMenu\`: ordem das secoes do menu \`{ md: 0, "source-viewer": 1, html: 2, video: 3, audio: 4 }\`
234
-
235
- Cada rota pode incluir \`title\`, \`description\` (por idioma), \`titleCss\`, \`titlePosition: "center"\`, \`descriptionPosition: "center"\`, \`titleIsVisible\`, \`descriptionIsVisible\`.
236
-
237
- ## Variaveis por rota (blockLink, container, url, browseAll)
238
-
239
- Opcoes por rota em \`routes-md\`, \`routes-html\` e \`routes-video\`:
240
-
241
- - **\`blockLink\`** (padrao: true) – Para HTML: se true, links abrem em nova aba (\`target="_blank"\`); se false, no proprio contexto.
242
- - **\`container\`** – \`"full"\` = altura automatica; numero (ex: \`500\`) = altura fixa em px com overflow auto. Aplica-se a md, html e video.
243
- - **\`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.
244
- - **\`browseAll\`** (padrao: false) – Se true, o container mostra botoes Anterior/Proximo para navegar entre todos os itens daquele tipo.
245
-
246
- ## Tipos de conteudo: path vs url (HTML)
247
-
248
- - **Markdown (\`routes-md\`)**: usa \`path\` apontando para arquivos \`.md\` locais.
249
- - **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.
250
- - **Video (\`routes-video\`)**: usa \`video.pathVideo\` e \`video.videoType\` (youtube, vimeo, mp4, etc.).
251
-
252
- ## Variaveis de ambiente
253
-
254
- - \`GITPAGEDOCS_REPOSITORY_SEARCH\`: ativa/desativa busca remota localmente
255
- - \`GITHUB_ACTIONS\`: ativa comportamento especifico de GitHub Pages
256
- `,
257
- deployment: `# Publicacao
258
-
259
- Git Page Docs roda como app Next.js com dois alvos: servidor local e GitHub Pages.
260
-
261
- ## Publicacao local
262
-
263
- Use:
264
-
265
- 1. \`npm run build\`
266
- 2. \`npm start\`
267
-
268
- Isso sobe runtime Node + Next.js usando a pasta local \`gitpagedocs/\`.
269
-
270
- ## Publicacao em GitHub Pages
271
-
272
- Em build de GitHub Actions:
273
-
274
- - \`GITHUB_ACTIONS=true\`
275
- - comportamento de export estatico e habilitado pela configuracao
276
- - pagina inicial de busca de repositorio fica ativa
277
-
278
- ## Fluxo de publish do pacote
279
-
280
- Para publicar no npm:
281
-
282
- - atualize versao no \`package.json\`
283
- - execute \`npm publish --access public\`
284
- - valide autenticacao com \`npm whoami\`
285
-
286
- Se \`build:prebuilt\` for pulado no Windows, use CI para gerar artefatos prebuilt.
287
- `,
288
- architecture: `# Arquitetura
289
-
290
- O projeto e organizado por fronteiras de feature e responsabilidades do runtime.
291
-
292
- ## Pacotes
293
-
294
- - **frontend/** — visualizador Next.js (Feature-Sliced: app / widgets / features / entities / shared); export estatico.
295
- - **cli/** — o bin publicado \`gitpagedocs\` (hexagonal) + \`cli/ai/\` (CLI de documentacao com IA).
296
- - **tools/** — \`@gitpagedocs/tools\`: ai/ security/ crypto/ cache/ config/ logger/ errors/ filesystem/ documentation/ ports/.
297
- - **mcp/** — \`@gitpagedocs/mcp\`: ferramentas + recursos MCP que delegam ao tools/.
298
-
299
- ## Modulos principais (frontend)
300
-
301
- - \`frontend/src/app/[[...repo]]/page.tsx\` — parser de rota, generateStaticParams, selecao de shell.
302
- - \`frontend/src/entities/docs/api/load-docs-data.ts\` — config local/remota, versao, parse markdown, layouts + temas.
303
- - \`frontend/src/widgets/docs-shell/docs-shell.tsx\` — UI, estado idioma/versao/tema, sync de URL, montagem do chat de IA.
304
-
305
- ## Seguranca: credenciais de IA criptografadas
306
-
307
- 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\`).
308
-
309
- ## Fluxo de dados
310
-
311
- 1. A rota chega (\`/owner/repo/v/x.y.z\` ou equivalente local)
312
- 2. O config e resolvido (local ou remoto)
313
- 3. Config de versao sobrescreve rotas/menus base
314
- 4. Markdown e carregado e convertido para HTML
315
- 5. Template de layout e resolvido e aplicado em CSS vars
316
- 6. Shell renderiza conteudo e controles
317
-
318
- ## Pontos de resiliencia
319
-
320
- - fallback de carga para layouts/templates
321
- - carregamento de markdown por idioma com fallback de erro
322
- - sincronizacao de linguagem/versao/tema via localStorage
323
- `,
324
- githubIssuesProjects: `# GitHub Issues e Projects
325
-
326
- Aprenda a usar GitHub Issues e Projects para gerenciar seu trabalho.
327
-
328
- ## Conceitos
329
-
330
- - Issues para rastrear tarefas e bugs
331
- - Projects para visualizar e organizar o trabalho
332
- - Workflows recomendados para equipes
333
- `,
334
- gitIntroduction: `# Introducao ao Git
335
-
336
- Conceitos basicos de Git para iniciantes.
337
-
338
- ## Comandos essenciais
339
-
340
- - \`git init\` - iniciar repositorio
341
- - \`git add\` - preparar alteracoes
342
- - \`git commit\` - registrar commit
343
- - \`git push\` - enviar para remoto
344
- `,
345
- authorizedRoutes: `# Rotas autorizadas
346
-
347
- Proteja rotas por chave de acesso, papeis obrigatorios e provedores externos.
348
-
349
- ## Local do config de versao
350
-
351
- Configure em:
352
-
353
- - \`gitpagedocs/docs/versions/<versao>/config.json\`
354
-
355
- ## Secao global auth
356
-
357
- Use \`auth\` no topo do config de versao:
358
-
359
- - \`accessKeys\`: mapa de ids de chave para segredo esperado
360
- - \`rolesStorageKey\`: chave de localStorage para bootstrap de papeis
361
- - \`providers\`: lista de provedores externos (\`authjs\`, \`clerk\`, \`firebase\`, \`jwt\`)
362
-
363
- ## Autorizacao por rota
364
-
365
- Dentro de cada rota (\`routes-md\`, \`routes-html\`, \`routes-video\`):
366
-
367
- - \`authorization.accessKeyId\`
368
- - \`authorization.requiredRoles\`
369
- - \`authorization.requireExternalAuth\`
370
- - \`authorization.allowedProviders\`
371
-
372
- ## Fases
373
-
374
- ### Fase A - Chave de acesso
375
-
376
- Defina \`authorization.accessKeyId\` e a chave correspondente em \`auth.accessKeys\`.
377
-
378
- ### Fase B - Papeis
379
-
380
- Defina \`authorization.requiredRoles\` com um ou mais papeis.
381
-
382
- Os papeis podem vir de:
383
-
384
- - query param \`?authRoles=admin,maintainer\`
385
- - localStorage (\`rolesStorageKey\`)
386
- - claims de provedores externos
387
-
388
- ### Fase C - Provedores externos
389
-
390
- Defina \`authorization.requireExternalAuth=true\` e opcionalmente \`allowedProviders\`.
391
-
392
- Adaptadores suportados:
393
-
394
- - Auth.js (\`type: "authjs"\`)
395
- - Clerk (\`type: "clerk"\`)
396
- - Firebase Auth (\`type: "firebase"\`)
397
- - JWT custom (\`type: "jwt"\`)
398
- `,
399
- themes: `# Temas e layouts
400
-
401
- Temas sao templates JSON mapeados por \`layoutsConfig.json\`.
402
-
403
- ## Arquivos
404
-
405
- - \`gitpagelayouts/layoutsConfig.json\`
406
- - \`gitpagelayouts/layoutsFallbackConfig.json\`
407
- - \`gitpagelayouts/templates/*.json\`
408
-
409
- ## Modelo de template
410
-
411
- Cada template normalmente contem:
412
-
413
- - \`id\`, \`name\`, \`author\`, \`version\`
414
- - \`mode\` e metadados de par dark/light
415
- - \`colors\`
416
- - \`typography\`
417
- - tokens de \`components\`
418
- - \`animations\`
419
-
420
- ## Comportamento em runtime
421
-
422
- - tema ativo vem de config/usuario
423
- - toggle light/dark resolve o tema pareado por referencia
424
- - variaveis CSS sao geradas dos tokens do template
425
-
426
- ## Boas praticas
427
-
428
- - mantenha contraste acessivel
429
- - padronize escala de espaco e borda
430
- - ofereca variantes dark e light quando possivel
431
- `,
432
- faq: `# FAQ
433
-
434
- ## Por que repositorios remotos nao abrem localmente?
435
-
436
- Verifique:
437
-
438
- - \`GITPAGEDOCS_REPOSITORY_SEARCH=true\` no \`.env\`
439
- - repositorio alvo contem \`gitpagedocs/config.json\`
440
- - paths markdown do repositorio batem com seu config de rotas
441
-
442
- ## Por que rota de versao mostra conteudo errado?
443
-
444
- Verifique:
445
-
446
- - \`VersionControl.versions[*].path\` em \`gitpagedocs/config.json\`
447
- - config da versao possui \`routes\` e \`menus-header\` validos
448
- - markdown existe para cada idioma
449
-
450
- ## Por que tema nao aplica corretamente?
451
-
452
- Verifique:
453
-
454
- - \`layoutsConfig.json\` referencia templates validos
455
- - ids de template sao unicos
456
- - tema selecionado existe no mapa de temas carregados
457
-
458
- ## Por que GitHub Pages pode se comportar diferente do local?
459
-
460
- Porque o build de GitHub Pages habilita pagina inicial de busca e comportamento especifico de exportacao.
461
- `,
462
- };
1
+ export const docsPt = {
2
+ index: `# Git Page Docs
3
+
4
+ Git Page Docs e um runtime de documentacao multi-idioma para repositorios que possuem a pasta \`gitpagedocs/\`.
5
+
6
+ ## O que este projeto entrega
7
+
8
+ - Renderizacao markdown em varios idiomas (\`en\`, \`pt\`, \`es\`)
9
+ - Roteamento por versao (\`/v/:versao\`)
10
+ - Sistema de temas por templates JSON
11
+ - Execucao local e em GitHub Pages
12
+ - Busca de repositorio + renderizacao remota opcional
13
+
14
+ ## Contrato de pastas
15
+
16
+ O runtime espera esta estrutura:
17
+
18
+ - \`gitpagedocs/config.json\`
19
+ - \`gitpagedocs/docs/<lang>/*.md\`
20
+ - \`gitpagedocs/docs/versions/<versao>/config.json\`
21
+ - \`gitpagedocs/docs/versions/<versao>/<lang>/*.md\`
22
+ - \`gitpagelayouts/layoutsConfig.json\`
23
+ - \`gitpagelayouts/templates/*.json\`
24
+
25
+ ## Navegacao rapida
26
+
27
+ - Abra **Primeiros passos** para setup local.
28
+ - Abra **Configuracao** para detalhes completos do \`config.json\`.
29
+ - Abra **Publicacao** para comportamento local/producao/GitHub Pages.
30
+ - Abra **Arquitetura** para mapa de codigo e fluxo de dados.
31
+ - Abra **Temas e layouts** para autoria de templates.
32
+ - Abra **Rotas autorizadas** para configurar chave, papeis e autenticacao externa.
33
+ - Abra **FAQ** para troubleshooting.
34
+ `,
35
+ gettingStarted: `# Primeiros passos
36
+
37
+ Este guia leva o projeto do zero ate docs rodando.
38
+
39
+ ## Pre-requisitos
40
+
41
+ - Node.js 20+
42
+ - npm 10+ (ou pnpm)
43
+
44
+ ## Setup local
45
+
46
+ 1. Instale dependencias:
47
+ - \`npm install\`
48
+ 2. Gere/atualize os artefatos de docs:
49
+ - \`npm run gitpagedocs\`
50
+ 3. Inicie o desenvolvimento:
51
+ - \`npm run dev\`
52
+ 4. Build e execucao local de producao:
53
+ - \`npm run build\`
54
+ - \`npm start\`
55
+
56
+ ## Comportamento da CLI
57
+
58
+ \`npx @gitpagedocs/cli\` (ou \`npm run gitpagedocs\`) gera os artefatos na pasta oficial \`gitpagedocs/\`.
59
+
60
+ - Gera somente markdown/json
61
+ - Nao gera \`index.html\`
62
+ - Nao gera \`index.js\`
63
+ - Nao executa comandos de instalacao
64
+
65
+ ## Modo de busca por repositorio
66
+
67
+ No ambiente local, o controle e por variavel:
68
+
69
+ - \`GITPAGEDOCS_REPOSITORY_SEARCH=true\`
70
+ - \`GITPAGEDOCS_REPOSITORY_SEARCH=false\`
71
+
72
+ Em build de GitHub Pages (\`GITHUB_ACTIONS=true\`), a busca de repositorio fica sempre ativa.
73
+ `,
74
+ projectOverview: `# Visao geral do projeto
75
+
76
+ 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).
77
+
78
+ ## Pacotes do monorepo
79
+
80
+ - **frontend/** — visualizador Next.js 15 (App Router, React 19), exportado estaticamente para o GitHub Pages.
81
+ - **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.
82
+ - **tools/** — \`@gitpagedocs/tools\`, o nucleo de logica compartilhado: sistema de IA com 14 provedores, cofre de credenciais criptografado, loader de config, caches e logger.
83
+ - **mcp/** — \`@gitpagedocs/mcp\`, servidor Model Context Protocol (20 ferramentas + 7 recursos).
84
+ - **gitpagedocs/** — o contrato do usuario: \`config.json\`, docs versionados e layouts.
85
+
86
+ ## Stack
87
+
88
+ - Next.js 15 (App Router) + React 19 + TypeScript; exportacao estatica para GitHub Pages
89
+ - gray-matter + marked para Markdown; react-icons
90
+ - pnpm workspaces + turborepo; Vitest + Playwright; ESLint
91
+
92
+ ## Destaques
93
+
94
+ - Multilinguagem (\`en\`, \`pt\`, \`es\`) e rotas por versao (\`/v/:version\`)
95
+ - Sistema de IA com 14 provedores (OpenAI, Anthropic, Gemini, Ollama, Mistral, DeepSeek, Cohere, Groq, xAI e mais) com streaming
96
+ - Chaves de IA **criptografadas em repouso** (AES-256-GCM) atras de uma senha local — nunca em texto puro
97
+ - **Drawer de chat de IA** nos docs + um **console \`/ai\`** dedicado
98
+ - Sistema de 36 temas; execucao local e no GitHub Pages
99
+ `,
100
+ functionalities: `# Funcionalidades
101
+
102
+ Referencia completa de opcoes da CLI, chaves de configuracao e recursos do runtime.
103
+
104
+ ## Comandos da CLI
105
+
106
+ | Comando | Descricao |
107
+ |---------|------------|
108
+ | \`npx @gitpagedocs/cli\` | Gera config e docs em \`gitpagedocs/\` |
109
+ | \`npx @gitpagedocs/cli --layoutconfig\` | Tambem gera layouts/templates locais em \`gitpagelayouts/\` |
110
+ | \`npx @gitpagedocs/cli --home\` | Distribuicao standalone (\`gitpagedocshome/\`) |
111
+ | \`npx @gitpagedocs/cli --push --owner X --repo Y\` | Configura workflow, commit, push |
112
+ | \`npx @gitpagedocs/cli --interactive\` / \`-i\` | Modo interativo com prompts (padrao em um terminal) |
113
+ | \`npx @gitpagedocs/cli --no-interactive\` / \`-y\` | Nunca pergunta; usa flags e padroes |
114
+
115
+ ## Opcoes da CLI
116
+
117
+ | Opcao | Descricao |
118
+ |-------|-----------|
119
+ | \`--owner <user>\` | Owner do GitHub |
120
+ | \`--repo <repo>\` | Repositorio GitHub |
121
+ | \`--path <subpath>\` | Subcaminho dos docs (ex: \`docs\`); sem ele, base path = nome do repo para CSS/JS em project sites |
122
+ | \`--output <dir>\` | Diretorio de saida (padrao: \`gitpagedocs\`) |
123
+ | \`--search true|false\` | Habilita/desabilita busca de repositorio (\`--home\`) |
124
+ | \`--layoutconfig\` | Gera layouts locais em \`gitpagelayouts/\` |
125
+ | \`--layouts-dir <dir>\` | Pasta dos layouts locais (padrao: \`gitpagelayouts\`) |
126
+ | \`--push\` | Cria workflow, commit de artefatos, push |
127
+ | \`--home\` | Gera \`gitpagedocshome/\` (estatico + .env + Dockerfile) |
128
+
129
+ ## Saida gerada
130
+
131
+ - \`gitpagedocs/config.json\` – config raiz
132
+ - \`gitpagedocs/icon.svg\` – icone padrao
133
+ - \`gitpagedocs/docs/versions/<ver>/config.json\` – rotas por versao
134
+ - \`gitpagedocs/docs/versions/<ver>/{en,pt,es}/*.md\` – docs em markdown
135
+ - \`gitpagelayouts/\` – apenas com \`--layoutconfig\` (pasta configuravel com \`--layouts-dir\`)
136
+
137
+ ## Tipos de conteudo
138
+
139
+ | Tipo | Chave config | Descricao |
140
+ |------|--------------|-----------|
141
+ | Markdown | \`routes-md\` | Arquivos .md com \`path\` por idioma |
142
+ | HTML | \`routes-html\` | \`path\` local ou \`url\` externa |
143
+ | Video | \`routes-video\` | \`video.pathVideo\`, \`video.videoType\` |
144
+ | Audio | \`routes-audio\` | \`audio.pathAudio\`, \`audio.audioType\` |
145
+
146
+ ## Visualizador de codigo fonte
147
+
148
+ 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.
149
+
150
+ - Arvore do repositorio a partir de \`source-viewer-path\`; a branch padrao e \`main\`
151
+ - Navegacao por pastas e filtro de arquivos
152
+ - Listagem de diretorios no estilo GitHub
153
+ - Renderizacao de codigo com numeros de linha
154
+ - Alternancia preview/codigo para Markdown, incluindo \`README.md\`
155
+ - Pastas recolhiveis na lateral
156
+
157
+ ## Chaves de config (site)
158
+
159
+ - \`name\`, \`defaultLanguage\`, \`supportedLanguages\`
160
+ - \`docsVersion\`, \`rendering\`, \`ThemeDefault\`, \`ThemeModeDefault\`
161
+ - \`ProjectLink\`, \`layoutsConfigPathOficial\`, \`layoutsConfigPath\`
162
+
163
+ ## Variaveis de ambiente
164
+
165
+ - \`GITPAGEDOCS_REPOSITORY_SEARCH\` – busca de repositorio (local)
166
+ - \`GITHUB_ACTIONS\` – modo build GitHub Pages
167
+ `,
168
+ configuration: `# Configuracao
169
+
170
+ A configuracao de runtime fica em \`gitpagedocs/config.json\`.
171
+
172
+ ## Secao \`site\`
173
+
174
+ Principais chaves:
175
+
176
+ - \`name\`: titulo do projeto no UI
177
+ - \`defaultLanguage\`: idioma padrao
178
+ - \`supportedLanguages\`: lista de idiomas disponiveis
179
+ - \`HideThemeSelector\`: esconde/mostra seletor de tema
180
+ - \`ThemeDefault\`: id do tema inicial
181
+ - \`ThemeModeDefault\`: modo inicial (\`light\` ou \`dark\`)
182
+ - \`ProjectLink\`: URL de repositorio para acoes no cabecalho
183
+ - \`docsVersion\`: versao inicial selecionada
184
+ - \`ActiveNavigation\`: habilita comportamento de anterior/proximo
185
+ - \`FocusMode\`: habilita modo foco/leitura
186
+ - \`IconImageMenuHeaderImgWidth\`, \`IconImageMenuHeaderImgHeight\`: tamanho do icone principal
187
+ - \`IconImageMenuHeaderLightImg\`, \`IconImageMenuHeaderDarkImg\`: icone principal (light/dark)
188
+ - \`IconProjectLinkImgWidth\`, \`IconProjectLinkImgHeight\`: tamanho do icone link do projeto
189
+ - \`IconProjectLinkLightImg\`, \`IconProjectLinkDarkImg\`: icone link do projeto
190
+ - \`IconVersionLinksImgWidth\`, \`IconVersionLinksImgHeight\`: tamanho do icone links de versao
191
+ - \`IconVersionLinksLightImg\`, \`IconVersionLinksDarkImg\`: icone links de versao
192
+ - \`IconInfoHeaderMenuImgWidth\`, \`IconInfoHeaderMenuImgHeight\`: tamanho do icone info
193
+ - \`IconInfoHeaderMenuLightImg\`, \`IconInfoHeaderMenuDarkImg\`: icone info
194
+ - \`IconPreviewProjectLinkImgWidth\`, \`IconPreviewProjectLinkImgHeight\`: tamanho do icone preview
195
+ - \`IconPreviewProjectLinkLightImg\`, \`IconPreviewProjectLinkDarkImg\`: icone preview
196
+ - \`layoutsConfigPath\`: fallback remoto para layouts
197
+ - \`rendering\`: URL canonica publicada
198
+
199
+ ## Secao \`VersionControl\`
200
+
201
+ \`VersionControl.versions\` define:
202
+
203
+ - \`id\`: identificador da versao
204
+ - \`path\`: caminho do config da versao
205
+ - links opcionais (\`ProjectLink\`, \`branch\`, \`release\`, \`commit\`)
206
+ - metadados opcionais do source viewer (\`source-viewer\`, \`source-viewer-path\`)
207
+
208
+ ## Navegacao e rotas
209
+
210
+ - \`routes\`: caminhos markdown por idioma (legado)
211
+ - \`menus-header\`: menu hierarquico
212
+ - \`translations\`: labels de UI para not-found e navegacao
213
+
214
+ ## Autorizacao (config de versao)
215
+
216
+ - \`auth\`: configuracoes globais de autorizacao para a versao
217
+ - \`auth.accessKeys\`: mapa de chaves usado por \`authorization.accessKeyId\`
218
+ - \`auth.rolesStorageKey\`: chave de localStorage para bootstrap de papeis
219
+ - \`auth.providers\`: adaptadores de provedor (\`authjs\`, \`clerk\`, \`firebase\`, \`jwt\`)
220
+
221
+ ## Tipos de conteudo (config de versao)
222
+
223
+ Configs de versao suportam multiplos tipos:
224
+
225
+ - \`routes-md\`: Rotas markdown com \`title\`, \`description\` (centralizados via \`titlePosition\`, \`descriptionPosition\`)
226
+ - \`routes-source-viewer\`: Containers de codigo fonte com \`source-viewer: true\` e \`source-viewer-path\`
227
+ - \`routes-html\`: Caminhos de paginas HTML por idioma
228
+ - \`routes-video\`: Config de video com \`video.videoType\` (youtube, vimeo, mp4, etc.) e \`video.pathVideo\`
229
+ - \`routes-audio\`: Config de audio com \`audio.audioType\` (youtube, mp3, etc.) e \`audio.pathAudio\`
230
+ - \`authorization\` (md/html/video): guarda de acesso por chave, papeis e autenticacao externa
231
+ - \`menus-header-md\`, \`menus-header-source-viewer\`, \`menus-header-html\`, \`menus-header-video\`, \`menus-header-audio\`: menus por tipo
232
+ - \`hierarchyPage\`: ordem dos containers na pagina \`{ md: 0, "source-viewer": 1, html: 2, video: 3, audio: 4 }\`
233
+ - \`hierarchyMenu\`: ordem das secoes do menu \`{ md: 0, "source-viewer": 1, html: 2, video: 3, audio: 4 }\`
234
+
235
+ Cada rota pode incluir \`title\`, \`description\` (por idioma), \`titleCss\`, \`titlePosition: "center"\`, \`descriptionPosition: "center"\`, \`titleIsVisible\`, \`descriptionIsVisible\`.
236
+
237
+ ## Variaveis por rota (blockLink, container, url, browseAll)
238
+
239
+ Opcoes por rota em \`routes-md\`, \`routes-html\` e \`routes-video\`:
240
+
241
+ - **\`blockLink\`** (padrao: true) – Para HTML: se true, links abrem em nova aba (\`target="_blank"\`); se false, no proprio contexto.
242
+ - **\`container\`** – \`"full"\` = altura automatica; numero (ex: \`500\`) = altura fixa em px com overflow auto. Aplica-se a md, html e video.
243
+ - **\`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.
244
+ - **\`browseAll\`** (padrao: false) – Se true, o container mostra botoes Anterior/Proximo para navegar entre todos os itens daquele tipo.
245
+
246
+ ## Tipos de conteudo: path vs url (HTML)
247
+
248
+ - **Markdown (\`routes-md\`)**: usa \`path\` apontando para arquivos \`.md\` locais.
249
+ - **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.
250
+ - **Video (\`routes-video\`)**: usa \`video.pathVideo\` e \`video.videoType\` (youtube, vimeo, mp4, etc.).
251
+
252
+ ## Variaveis de ambiente
253
+
254
+ - \`GITPAGEDOCS_REPOSITORY_SEARCH\`: ativa/desativa busca remota localmente
255
+ - \`GITHUB_ACTIONS\`: ativa comportamento especifico de GitHub Pages
256
+ `,
257
+ deployment: `# Publicacao
258
+
259
+ Git Page Docs roda como app Next.js com dois alvos: servidor local e GitHub Pages.
260
+
261
+ ## Publicacao local
262
+
263
+ Use:
264
+
265
+ 1. \`npm run build\`
266
+ 2. \`npm start\`
267
+
268
+ Isso sobe runtime Node + Next.js usando a pasta local \`gitpagedocs/\`.
269
+
270
+ ## Publicacao em GitHub Pages
271
+
272
+ Em build de GitHub Actions:
273
+
274
+ - \`GITHUB_ACTIONS=true\`
275
+ - comportamento de export estatico e habilitado pela configuracao
276
+ - pagina inicial de busca de repositorio fica ativa
277
+
278
+ ## Fluxo de publish do pacote
279
+
280
+ Para publicar no npm:
281
+
282
+ - atualize versao no \`package.json\`
283
+ - execute \`npm publish --access public\`
284
+ - valide autenticacao com \`npm whoami\`
285
+
286
+ Se \`build:prebuilt\` for pulado no Windows, use CI para gerar artefatos prebuilt.
287
+ `,
288
+ architecture: `# Arquitetura
289
+
290
+ O projeto e organizado por fronteiras de feature e responsabilidades do runtime.
291
+
292
+ ## Pacotes
293
+
294
+ - **frontend/** — visualizador Next.js (Feature-Sliced: app / widgets / features / entities / shared); export estatico.
295
+ - **cli/** — o bin publicado \`gitpagedocs\` (hexagonal) + \`cli/ai/\` (CLI de documentacao com IA).
296
+ - **tools/** — \`@gitpagedocs/tools\`: ai/ security/ crypto/ cache/ config/ logger/ errors/ filesystem/ documentation/ ports/.
297
+ - **mcp/** — \`@gitpagedocs/mcp\`: ferramentas + recursos MCP que delegam ao tools/.
298
+
299
+ ## Modulos principais (frontend)
300
+
301
+ - \`frontend/src/app/[[...repo]]/page.tsx\` — parser de rota, generateStaticParams, selecao de shell.
302
+ - \`frontend/src/entities/docs/api/load-docs-data.ts\` — config local/remota, versao, parse markdown, layouts + temas.
303
+ - \`frontend/src/widgets/docs-shell/docs-shell.tsx\` — UI, estado idioma/versao/tema, sync de URL, montagem do chat de IA.
304
+
305
+ ## Seguranca: credenciais de IA criptografadas
306
+
307
+ 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\`).
308
+
309
+ ## Fluxo de dados
310
+
311
+ 1. A rota chega (\`/owner/repo/v/x.y.z\` ou equivalente local)
312
+ 2. O config e resolvido (local ou remoto)
313
+ 3. Config de versao sobrescreve rotas/menus base
314
+ 4. Markdown e carregado e convertido para HTML
315
+ 5. Template de layout e resolvido e aplicado em CSS vars
316
+ 6. Shell renderiza conteudo e controles
317
+
318
+ ## Pontos de resiliencia
319
+
320
+ - fallback de carga para layouts/templates
321
+ - carregamento de markdown por idioma com fallback de erro
322
+ - sincronizacao de linguagem/versao/tema via localStorage
323
+ `,
324
+ githubIssuesProjects: `# GitHub Issues e Projects
325
+
326
+ Aprenda a usar GitHub Issues e Projects para gerenciar seu trabalho.
327
+
328
+ ## Conceitos
329
+
330
+ - Issues para rastrear tarefas e bugs
331
+ - Projects para visualizar e organizar o trabalho
332
+ - Workflows recomendados para equipes
333
+ `,
334
+ gitIntroduction: `# Introducao ao Git
335
+
336
+ Conceitos basicos de Git para iniciantes.
337
+
338
+ ## Comandos essenciais
339
+
340
+ - \`git init\` - iniciar repositorio
341
+ - \`git add\` - preparar alteracoes
342
+ - \`git commit\` - registrar commit
343
+ - \`git push\` - enviar para remoto
344
+ `,
345
+ authorizedRoutes: `# Rotas autorizadas
346
+
347
+ Proteja rotas por chave de acesso, papeis obrigatorios e provedores externos.
348
+
349
+ ## Local do config de versao
350
+
351
+ Configure em:
352
+
353
+ - \`gitpagedocs/docs/versions/<versao>/config.json\`
354
+
355
+ ## Secao global auth
356
+
357
+ Use \`auth\` no topo do config de versao:
358
+
359
+ - \`accessKeys\`: mapa de ids de chave para segredo esperado
360
+ - \`rolesStorageKey\`: chave de localStorage para bootstrap de papeis
361
+ - \`providers\`: lista de provedores externos (\`authjs\`, \`clerk\`, \`firebase\`, \`jwt\`)
362
+
363
+ ## Autorizacao por rota
364
+
365
+ Dentro de cada rota (\`routes-md\`, \`routes-html\`, \`routes-video\`):
366
+
367
+ - \`authorization.accessKeyId\`
368
+ - \`authorization.requiredRoles\`
369
+ - \`authorization.requireExternalAuth\`
370
+ - \`authorization.allowedProviders\`
371
+
372
+ ## Fases
373
+
374
+ ### Fase A - Chave de acesso
375
+
376
+ Defina \`authorization.accessKeyId\` e a chave correspondente em \`auth.accessKeys\`.
377
+
378
+ ### Fase B - Papeis
379
+
380
+ Defina \`authorization.requiredRoles\` com um ou mais papeis.
381
+
382
+ Os papeis podem vir de:
383
+
384
+ - query param \`?authRoles=admin,maintainer\`
385
+ - localStorage (\`rolesStorageKey\`)
386
+ - claims de provedores externos
387
+
388
+ ### Fase C - Provedores externos
389
+
390
+ Defina \`authorization.requireExternalAuth=true\` e opcionalmente \`allowedProviders\`.
391
+
392
+ Adaptadores suportados:
393
+
394
+ - Auth.js (\`type: "authjs"\`)
395
+ - Clerk (\`type: "clerk"\`)
396
+ - Firebase Auth (\`type: "firebase"\`)
397
+ - JWT custom (\`type: "jwt"\`)
398
+ `,
399
+ themes: `# Temas e layouts
400
+
401
+ Temas sao templates JSON mapeados por \`layoutsConfig.json\`.
402
+
403
+ ## Arquivos
404
+
405
+ - \`gitpagelayouts/layoutsConfig.json\`
406
+ - \`gitpagelayouts/layoutsFallbackConfig.json\`
407
+ - \`gitpagelayouts/templates/*.json\`
408
+
409
+ ## Modelo de template
410
+
411
+ Cada template normalmente contem:
412
+
413
+ - \`id\`, \`name\`, \`author\`, \`version\`
414
+ - \`mode\` e metadados de par dark/light
415
+ - \`colors\`
416
+ - \`typography\`
417
+ - tokens de \`components\`
418
+ - \`animations\`
419
+
420
+ ## Comportamento em runtime
421
+
422
+ - tema ativo vem de config/usuario
423
+ - toggle light/dark resolve o tema pareado por referencia
424
+ - variaveis CSS sao geradas dos tokens do template
425
+
426
+ ## Boas praticas
427
+
428
+ - mantenha contraste acessivel
429
+ - padronize escala de espaco e borda
430
+ - ofereca variantes dark e light quando possivel
431
+ `,
432
+ faq: `# FAQ
433
+
434
+ ## Por que repositorios remotos nao abrem localmente?
435
+
436
+ Verifique:
437
+
438
+ - \`GITPAGEDOCS_REPOSITORY_SEARCH=true\` no \`.env\`
439
+ - repositorio alvo contem \`gitpagedocs/config.json\`
440
+ - paths markdown do repositorio batem com seu config de rotas
441
+
442
+ ## Por que rota de versao mostra conteudo errado?
443
+
444
+ Verifique:
445
+
446
+ - \`VersionControl.versions[*].path\` em \`gitpagedocs/config.json\`
447
+ - config da versao possui \`routes\` e \`menus-header\` validos
448
+ - markdown existe para cada idioma
449
+
450
+ ## Por que tema nao aplica corretamente?
451
+
452
+ Verifique:
453
+
454
+ - \`layoutsConfig.json\` referencia templates validos
455
+ - ids de template sao unicos
456
+ - tema selecionado existe no mapa de temas carregados
457
+
458
+ ## Por que GitHub Pages pode se comportar diferente do local?
459
+
460
+ Porque o build de GitHub Pages habilita pagina inicial de busca e comportamento especifico de exportacao.
461
+ `,
462
+ };