sauron-cli 1.4.0 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.windsurfrules DELETED
@@ -1,160 +0,0 @@
1
- # SAURON END
2
-
3
-
4
-
5
- # SAURON END
6
-
7
- # SAURON END
8
-
9
- # SAURON START
10
- ---
11
- trigger: always_on
12
- ---
13
-
14
- # SAURON START
15
- ---
16
- trigger: always_on
17
- ---
18
-
19
- # SAURON START
20
- ---
21
- trigger: always_on
22
- ---
23
-
24
- # SAURON START
25
- ---
26
- trigger: always_on
27
- ---
28
-
29
- # Regra de Memória do Projeto (OBRIGATÓRIA)
30
-
31
- > Esta regra garante que o Wiki (`.sauron/wiki/`) é a fonte da verdade absoluta do projeto.
32
- > Violá-la significa perder informação crítica entre sessões.
33
-
34
- ---
35
-
36
- ## 1. LEITURA — Antes de Agir
37
-
38
- Sempre que algo for perguntado ou uma tarefa for iniciada:
39
-
40
- 1. Leia `.sauron/wiki/summary.json` (o arquivo de roteamento base) primeiro. Este arquivo segue um **padrão rígido** e é a única fonte confiável de metadados.
41
- 2. Navegue pelas sub-páginas relevantes usando as informações de nome original e tipo (file/folder) contidas no JSON.
42
- 3. Só recorra à exploração do sistema de arquivos se a informação **não existir** no sumário (e atualize o sumário se necessário seguindo o schema da Seção 6).
43
-
44
- ---
45
-
46
- ## 2. PROTOCOLO DE SINCRONIZAÇÃO (NUVEM)
47
-
48
- O fluxo de documentação segue um ciclo de três etapas para garantir a persistência:
49
-
50
- 1. **PULL (Manual)**: Antes de iniciar a tarefa, o usuário executa `sauron pull` para atualizar os documentos locais com a versão mais recente da nuvem.
51
- 2. **EXECUÇÃO (IA)**: Durante o desenvolvimento, o Agente atualiza/cria os documentos em `.sauron/wiki/` em tempo real.
52
- 3. **PUSH (Manual)**: Ao finalizar a tarefa, o usuário executa `sauron push` para enviar as atualizações locais para a nuvem.
53
-
54
- > [!IMPORTANT]
55
- > O Agente deve assumir que o diretório `.sauron/wiki/` é o destino final e atualizá-lo diligentemente, permitindo que o usuário sincronize as mudanças posteriormente.
56
-
57
- ---
58
-
59
- ## 3. ESCRITA — Depois de Entregar (CRÍTICO)
60
-
61
- **Após QUALQUER entrega funcional, a wiki DEVE ser atualizada NO MESEMO TURNO de resposta.**
62
-
63
- ### Gatilhos Obrigatórios de Escrita
64
-
65
- | Evento | Ação no Wiki |
66
- |--------|-------------|
67
- | **Integração de API externa** | Criar/atualizar página documentando URL, autenticação, payload, resposta e tratamento de erros. |
68
- | **Nova página/rota criada** | Registrar em `summary.json` (seguindo o **padrão rígido** da Seção 6) + criar arquivo `.md`. |
69
- | **Fluxo de autenticação alterado** | Atualizar a página de auth com o fluxo completo, incluindo cookies, tokens e middleware. |
70
- | **Novo componente de UI funcional** | Registrar na página do módulo correspondente com props, comportamento e dependências. |
71
- | **Decisão arquitetural tomada** | Documentar usando o formato "Decisão Arquitetural" (Problema → Opções → Escolha → Justificativa). |
72
- | **Variável de ambiente adicionada/alterada** | Registrar na página de infraestrutura com nome, propósito e exemplo. |
73
- | **Schema de banco alterado** | Atualizar `module-data-schema.md` com a mudança. |
74
- | **Bug crítico resolvido** | Registrar causa raiz e solução na página do módulo afetado. |
75
-
76
- ### Regra de Ouro
77
-
78
- ```
79
- ❌ ERRADO: Entregar código → Responder ao usuário → Esquecer o wiki
80
- ✅ CORRETO: Entregar código → Atualizar wiki → Responder ao usuário
81
- ```
82
-
83
- A atualização do wiki é **parte da entrega**, não um passo opcional posterior.
84
-
85
- ---
86
-
87
- ## 4. FORMATO — O que Escrever
88
-
89
- Cada registro deve conter no mínimo:
90
- - **O que foi feito** (descrição objetiva)
91
- - **Por que foi feito** (contexto e motivação)
92
- - **Como funciona** (detalhes técnicos: endpoints, payloads, fluxos)
93
- - **Arquivos afetados** (lista de caminhos)
94
- - **Data** (timestamp da alteração)
95
-
96
- ---
97
-
98
- ## 6. ESTRUTURA RÍGIDA DO SUMMARY.JSON
99
-
100
- O arquivo `.sauron/wiki/summary.json` é o mapa de metadados que vincula os arquivos locais ao servidor. O CLI exige um padrão estrito para o comando `sauron push` funcionar corretamente.
101
-
102
- ### Regras de Ouro do Summary
103
- - **NUNCA altere IDs**: Os campos `id`, `domainId` e `orgId` são cruciais. Removê-los ou alterá-los causará a criação de documentos duplicados no servidor em vez de atualizar os existentes.
104
- - **Mantenha o Mapeamento**: O campo `name` deve ser o título original (com espaços e acentos). O `slug` e o `path` devem ser gerados seguindo a lógica de normalização (lowercase, sem acentos, espaços viram hífens).
105
- - **Otimização**: Os campos `contentLength` e `contentHash` (SHA256) permitem que o CLI pule arquivos não alterados. Se você editar um arquivo manualmente, o `push` detectará a mudança mesmo se você não atualizar o hash (ele recalcula o hash local), mas o `summary.json` deve ser mantido atualizado para consistência.
106
- - **Acoplamento Físico**: O Sauron CLI mapeia domínios do banco de dados na nuvem com base na subpasta física no disco local (usando o diretório pai do arquivo). Arquivos na raiz do wiki sempre pertencerão ao domínio genérico `.`. É obrigatória a organização física em pastas para manter a separação lógica na nuvem.
107
- - **Ignorar summary.md**: O arquivo `summary.md` é uma página especial/reservada. Nunca adicione o `summary.md` como uma entrada do tipo `"file"` dentro do `summary.json`, caso contrário o CLI tentará excluí-lo e falhará com erro 422.
108
-
109
- ### Schema Obrigatório
110
-
111
- O JSON deve ser um **array de objetos** seguindo rigorosamente estes formatos:
112
-
113
- #### Entrada de Pasta (Domínio)
114
- ```json
115
- {
116
- "type": "folder",
117
- "name": "Título Original",
118
- "slug": "titulo-original",
119
- "path": "titulo-original",
120
- "id": "id-do-dominio"
121
- }
122
- ```
123
-
124
- #### Entrada de Arquivo (Documento)
125
- ```json
126
- {
127
- "type": "file",
128
- "name": "Título Original do Documento",
129
- "slug": "titulo-original-do-documento",
130
- "path": "slug-do-dominio/titulo-original-do-documento.md",
131
- "id": "id-do-kb",
132
- "domainId": "id-do-dominio-pai",
133
- "orgId": "id-da-organizacao",
134
- "contentLength": 1234,
135
- "contentHash": "sha256-checksum"
136
- }
137
- ```
138
-
139
- ---
140
-
141
- ## 7. VALIDAÇÃO — Checklist Mental
142
-
143
- Antes de finalizar qualquer resposta que envolva código, pergunte-se:
144
-
145
- - [ ] Criei ou modifiquei um arquivo? → Wiki precisa saber.
146
- - [ ] Conectei a uma API externa? → Wiki precisa documentar.
147
- - [ ] Alterei fluxo de login/sessão? → Wiki MUST refletir.
148
- - [ ] Criei uma nova página/rota? → `summary.json` precisa do registro de roteamento seguindo o **padrão rígido**.
149
- - [ ] Tomei uma decisão técnica (lib X vs Y, abordagem A vs B)? → Wiki precisa da justificativa.
150
- - [ ] Adicionei/alterei uma variável de ambiente? → Wiki precisa do registro.
151
-
152
- Se qualquer checkbox for `true` e o wiki não foi atualizado, **a tarefa NÃO está completa**.
153
-
154
- # SAURON END
155
-
156
- # SAURON END
157
-
158
- # SAURON END
159
-
160
- # SAURON END