@eduardo-afonso/codebase-intelligence 2.0.1 → 2.0.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.
Files changed (3) hide show
  1. package/README.md +2 -1
  2. package/README.pt-BR.md +223 -222
  3. package/package.json +3 -2
package/README.md CHANGED
@@ -137,11 +137,12 @@ const impact = await codebase.impactOfChanges({}, myCustomProvider);
137
137
 
138
138
  ## CLI Reference
139
139
 
140
- Codebase Intelligence comes with a CLI for terminal use:
140
+ Codebase Intelligence comes with a CLI for terminal use. The main command is `codebase-intelligence`, but you can also use the shorter alias **`cbi`** (CodeBase Intelligence) if you install the package globally or use it within `package.json` scripts.
141
141
 
142
142
  ```bash
143
143
  # Analyze the current directory and output a summary
144
144
  npx @eduardo-afonso/codebase-intelligence analyze .
145
+ # or, if installed globally: cbi analyze .
145
146
 
146
147
  # Search for a specific symbol
147
148
  npx @eduardo-afonso/codebase-intelligence search "UserService" .
package/README.pt-BR.md CHANGED
@@ -1,223 +1,224 @@
1
- # Codebase Intelligence
2
-
3
- **Codebase Intelligence** é uma biblioteca Node.js de nível profissional, projetada para analisar, indexar e compreender bases de código (codebases) de forma programática. Ela escaneia arquivos, constrói grafos de dependência e indexa símbolos (como classes, funções e interfaces) diretamente a partir da AST.
4
-
5
- ## O Problema que Resolve
6
-
7
- Aplicações modernas são complexas. Quando desenvolvedores (ou agentes de IA) precisam entender como as partes do código se encaixam, a busca textual simples (como `grep`) não é suficiente. Encontrar exatamente onde uma classe é usada, entender o impacto de modificar um arquivo específico, ou rastrear dependências transitivas geralmente exige trabalho manual ou uma IDE pesada.
8
-
9
- O Codebase Intelligence funciona como um "Grafo de Conhecimento" fundamental para o seu código. Ele fornece insights estruturados sobre sua base de código, servindo como a espinha dorsal perfeita para ferramentas de desenvolvimento assistido por IA, geração de código, pipelines de RAG e sistemas automatizados de revisão de código.
10
-
11
- ## Funcionalidades
12
-
13
- - **Descoberta de Projeto**: Detecta automaticamente linguagens do projeto, frameworks (React, Next.js, etc.) e gerenciadores de pacotes.
14
- - **Análise via AST**: Utiliza o `ts-morph` para uma análise robusta e livre de regex de TypeScript/JavaScript, extraindo classes, funções, métodos e variáveis.
15
- - **Indexação de Símbolos**: Consulte instantaneamente sua base de código por símbolos, seja por nome, tipo ou arquivo.
16
- - **Grafo de Dependências**: Constrói um grafo direcionado de imports, `extends` e `implements`.
17
- - **Busca de Código**: Busca léxica e estrutural em arquivos e símbolos.
18
- - **Análise de Impacto**: Entenda as consequências diretas e indiretas de modificar qualquer arquivo, incluindo arquivos de teste relacionados.
19
- - **Análise de Impacto de Diferenças (Diff Impact)**: Dado um conjunto de alterações no Git (um branch, arquivos em stage, edições não commitadas), descubra *"o que este conjunto de mudanças afeta?"* — de forma conservadora, na granularidade do arquivo, sem inventar relações.
20
- - **Context Engine**: Crie payloads de contexto prontos para LLMs, com controle de tokens, usando três estratégias (shallow, signature, deep).
21
- - **CLI Incluída**: Execute análises e consultas diretamente pelo terminal.
22
-
23
- ---
24
-
25
- ## Instalação
26
-
27
- ```bash
28
- npm i @eduardo-afonso/codebase-intelligence
29
- ```
30
-
31
- *(Nota: Atualmente em fase de MVP. Certifique-se de que seu projeto tenha o TypeScript configurado para uso adequado).*
32
-
33
- ## Início Rápido
34
-
35
- Você pode usar a biblioteca de forma programática em seus próprios scripts:
36
-
37
- ```typescript
38
- import { Codebase } from 'codebase-intelligence';
39
-
40
- async function run() {
41
- // 1. Carrega a base de código (escaneia arquivos e detecta informações do projeto)
42
- const codebase = await Codebase.load('./src');
43
-
44
- // 2. Analisa a AST e constrói o grafo de dependências
45
- await codebase.analyze();
46
-
47
- // 3. Consulta os dados
48
- console.log('Total de arquivos:', codebase.files().length);
49
-
50
- // Busca por uma classe ou função específica
51
- const searchResults = codebase.search('AuthService');
52
- console.log('Resultados da busca:', searchResults);
53
-
54
- // Verifica o impacto de uma alteração em um arquivo
55
- const impact = codebase.impact('src/auth/AuthService.ts');
56
- console.log('Arquivos que dependem diretamente deste:', impact.direct);
57
- console.log('Arquivos que dependem indiretamente deste:', impact.indirect);
58
- }
59
-
60
- run();
61
- ```
62
-
63
- ---
64
-
65
- ## Referência da API Pública
66
-
67
- ### `Codebase.load(path: string, options?: CodebaseOptions): Promise<Codebase>`
68
- Inicializa a instância, escaneando o diretório informado. `options.ignore` aceita um array de padrões glob para excluir arquivos.
69
-
70
- ### `codebase.analyze(): Promise<void>`
71
- Analisa os arquivos descobertos e popula o Índice de Símbolos e o Grafo de Dependências internos. Deve ser chamado antes de consultar símbolos ou dependências.
72
-
73
- ### `codebase.files(): CodebaseFile[]`
74
- Retorna todos os arquivos indexados do projeto.
75
-
76
- ### `codebase.symbols(): CodeSymbol[]`
77
- Retorna todos os símbolos extraídos (classes, funções, interfaces, etc.) do projeto.
78
-
79
- ### `codebase.search(query: string, options?: SearchOptions): SearchResult[]`
80
- Realiza uma busca léxica/estrutural por arquivos e símbolos que correspondam à consulta.
81
-
82
- ### `codebase.dependencies(file: string): string[]`
83
- Retorna os arquivos dos quais o arquivo informado depende diretamente (imports).
84
-
85
- ### `codebase.dependents(file: string): string[]`
86
- Retorna os arquivos que dependem diretamente do arquivo informado.
87
-
88
- ### `codebase.impact(file: string): ImpactResult`
89
- Retorna `{ direct: string[], indirect: string[], tests: string[] }`, revelando o raio de impacto completo de uma alteração no arquivo informado.
90
-
91
- ### `codebase.impactOfFiles(paths: string[]): ChangeSetImpact`
92
- Análise de impacto pura e síncrona sem consultar o Git. Trata todos os caminhos relativos fornecidos como `modificados` e resolve as suas dependências através do grafo.
93
-
94
- ```typescript
95
- // O que é afetado se alterar utils.ts?
96
- const impact = codebase.impactOfFiles(['src/utils.ts']);
97
- console.log(impact.direct); // importadores diretos
98
- console.log(impact.indirect); // dependentes transitivos
99
- console.log(impact.tests); // arquivos de teste (por convenção)
100
- console.log(impact.globalChanges); // arquivos globais (afetam tudo)
101
- console.log(impact.unanalyzable); // arquivos não indexados e porquê
102
- ```
103
-
104
- ### `codebase.impactOfChanges(options?, provider?): Promise<ChangeSetImpact>`
105
- Consulta um `ChangeSetProvider` (Git por defeito) para determinar quais os arquivos alterados, mapeando-os para um `ChangeSetImpact`.
106
-
107
- ```typescript
108
- // Alterações introduzidas pela branch atual vs main:
109
- const impact = await codebase.impactOfChanges({ since: 'main' });
110
-
111
- // Apenas arquivos em stage:
112
- const staged = await codebase.impactOfChanges({ staged: true });
113
-
114
- // Todas as alterações não commitadas (incluindo arquivos untracked):
115
- const uncommitted = await codebase.impactOfChanges();
116
-
117
- // Provider personalizado (ex: API de PR do GitHub, mock de teste):
118
- const impact = await codebase.impactOfChanges({}, meuProvider);
119
- ```
120
-
121
- **Formato de `ChangeSetImpact`:**
122
- ```typescript
123
- {
124
- changed: FileChange[]; // lista bruta do provider
125
- direct: string[]; // arquivos que importam um arquivo alterado
126
- indirect: string[]; // dependentes transitivos (excluindo direct)
127
- tests: string[]; // arquivos de teste por convenção de nomes
128
- globalChanges: string[]; // ex: package.json, tsconfig.json
129
- unanalyzable: { path, reason }[]; // arquivos não rastreáveis
130
- unresolvedDependencies: string[]; // imports impossíveis de resolver
131
- metadata: { granularity: 'file'; base?: string; head?: string };
132
- }
133
- ```
134
-
135
- > ⚠️ **Nota sobre granularidade**: a análise opera na **granularidade de arquivo**. Uma alteração de uma linha marca *todos* os dependentes desse arquivo como potencialmente afetados. O resultado é um limite superior conservador.
136
-
137
- ---
138
-
139
- ## Referência da CLI
140
-
141
- O Codebase Intelligence vem com uma CLI para uso no terminal:
142
-
143
- ```bash
144
- # Analisa o diretório atual e exibe um resumo
145
- npx @eduardo-afonso/codebase-intelligence analyze .
146
-
147
- # Busca por um símbolo específico
148
- npx @eduardo-afonso/codebase-intelligence search "UserService" .
149
-
150
- # Exibe as dependências de um arquivo
151
- npx @eduardo-afonso/codebase-intelligence dependencies "src/auth/AuthService.ts" .
152
-
153
- # Exibe o que depende de um arquivo
154
- npx @eduardo-afonso/codebase-intelligence dependents "src/auth/AuthService.ts" .
155
-
156
- # ── Análise de Impacto ──────────────────────────────────────────────────
157
-
158
- # Modo de arquivo clássico: impacto de um único arquivo
159
- npx @eduardo-afonso/codebase-intelligence impact src/auth/AuthService.ts .
160
-
161
- # Modo Diff: o que afetam as mudanças desde a branch main? (comparação merge-base)
162
- npx @eduardo-afonso/codebase-intelligence impact . --since main
163
-
164
- # Modo Diff: apenas arquivos em stage
165
- npx @eduardo-afonso/codebase-intelligence impact . --staged
166
-
167
- # Modo Diff: todas as alterações não commitadas + arquivos untracked
168
- npx @eduardo-afonso/codebase-intelligence impact . --uncommitted
169
-
170
- # Saída em JSON (limpo em stdout, ideal para scripts)
171
- npx @eduardo-afonso/codebase-intelligence impact . --since main --format json
172
-
173
- # Imprime apenas caminhos de testes relacionados — útil em CI
174
- npx @eduardo-afonso/codebase-intelligence impact . --since main --tests-only
175
-
176
- # ── Context Engine & Chunking ────────────────────────────────────────────
177
-
178
- # Gera um payload de contexto pronto para LLMs para um arquivo (incluindo dependências)
179
- npx @eduardo-afonso/codebase-intelligence context "src/auth/AuthService.ts" --strategy signature .
180
-
181
- # Gera chunks semânticos para a base de código
182
- npx @eduardo-afonso/codebase-intelligence chunks . --max-tokens 512
183
-
184
- # Estima o uso de tokens de toda a base de código
185
- npx @eduardo-afonso/codebase-intelligence tokens .
186
- ```
187
-
188
- ---
189
-
190
- ## Visão Geral da Arquitetura
191
-
192
- O Codebase Intelligence é projetado em camadas modulares para permitir extensibilidade futura (por exemplo, adicionar parsers de C# ou Python):
193
-
194
- 1. **Camada de Descoberta**: Responsável por encontrar arquivos (`FileScanner`) e detectar propriedades do projeto (`ProjectDetector`).
195
- 2. **Camada de Análise**: Contém os parsers (`TypeScriptParser`) que transformam código bruto em objetos estruturados `CodeSymbol` e `CodeDependency`.
196
- 3. **Camada de Conhecimento**: Indexa os dados para recuperação rápida (`SymbolIndex`, `FileIndex`, `DependencyGraph`).
197
-
198
- Para detalhes arquiteturais mais profundos, veja [docs/architecture.md](docs/architecture.md).
199
-
200
- ---
201
-
202
- ## Roadmap
203
-
204
- A versão atual estabelece a análise estrutural determinística de uma base de código, inclui o **Context Engine** para chunking semântico e pipelines de RAG, e agora inclui **Análise de Impacto de Diferenças (Diff Impact)** para as alterações no Git. Versões futuras irão introduzir:
205
-
206
- - **Adaptadores de IA**: Implementações concretas para conectar LLMs externos (OpenAI, Anthropic, Gemini, Ollama) e Vector Stores (Qdrant, Chroma).
207
- - **Suporte Multi-linguagem**: Expansão do `ParserRegistry` para suportar Python, Go e C#.
208
- - **Granularidade a nível de Símbolo**: Reduzindo a análise de impacto ao nível do arquivo para os símbolos especificamente alterados.
209
- - **Indexação Incremental**: Evita a re-análise completa a cada execução detetando arquivos alterados da cache.
210
-
211
- ---
212
-
213
- ## Contribuindo
214
-
215
- Contribuições são bem-vindas. Por favor, certifique-se de que você:
216
- 1. Discuta mudanças arquiteturais importantes em uma issue primeiro.
217
- 2. Garanta que todos os testes passem (`npm run test:run`).
218
- 3. Garanta que não haja erros de tipo (`npm run typecheck`).
219
- 4. Evite introduzir dependências desnecessárias. A biblioteca principal busca permanecer leve.
220
-
221
- ## Licença
222
-
1
+ # Codebase Intelligence
2
+
3
+ **Codebase Intelligence** é uma biblioteca Node.js de nível profissional, projetada para analisar, indexar e compreender bases de código (codebases) de forma programática. Ela escaneia arquivos, constrói grafos de dependência e indexa símbolos (como classes, funções e interfaces) diretamente a partir da AST.
4
+
5
+ ## O Problema que Resolve
6
+
7
+ Aplicações modernas são complexas. Quando desenvolvedores (ou agentes de IA) precisam entender como as partes do código se encaixam, a busca textual simples (como `grep`) não é suficiente. Encontrar exatamente onde uma classe é usada, entender o impacto de modificar um arquivo específico, ou rastrear dependências transitivas geralmente exige trabalho manual ou uma IDE pesada.
8
+
9
+ O Codebase Intelligence funciona como um "Grafo de Conhecimento" fundamental para o seu código. Ele fornece insights estruturados sobre sua base de código, servindo como a espinha dorsal perfeita para ferramentas de desenvolvimento assistido por IA, geração de código, pipelines de RAG e sistemas automatizados de revisão de código.
10
+
11
+ ## Funcionalidades
12
+
13
+ - **Descoberta de Projeto**: Detecta automaticamente linguagens do projeto, frameworks (React, Next.js, etc.) e gerenciadores de pacotes.
14
+ - **Análise via AST**: Utiliza o `ts-morph` para uma análise robusta e livre de regex de TypeScript/JavaScript, extraindo classes, funções, métodos e variáveis.
15
+ - **Indexação de Símbolos**: Consulte instantaneamente sua base de código por símbolos, seja por nome, tipo ou arquivo.
16
+ - **Grafo de Dependências**: Constrói um grafo direcionado de imports, `extends` e `implements`.
17
+ - **Busca de Código**: Busca léxica e estrutural em arquivos e símbolos.
18
+ - **Análise de Impacto**: Entenda as consequências diretas e indiretas de modificar qualquer arquivo, incluindo arquivos de teste relacionados.
19
+ - **Análise de Impacto de Diferenças (Diff Impact)**: Dado um conjunto de alterações no Git (um branch, arquivos em stage, edições não commitadas), descubra *"o que este conjunto de mudanças afeta?"* — de forma conservadora, na granularidade do arquivo, sem inventar relações.
20
+ - **Context Engine**: Crie payloads de contexto prontos para LLMs, com controle de tokens, usando três estratégias (shallow, signature, deep).
21
+ - **CLI Incluída**: Execute análises e consultas diretamente pelo terminal.
22
+
23
+ ---
24
+
25
+ ## Instalação
26
+
27
+ ```bash
28
+ npm i @eduardo-afonso/codebase-intelligence
29
+ ```
30
+
31
+ *(Nota: Atualmente em fase de MVP. Certifique-se de que seu projeto tenha o TypeScript configurado para uso adequado).*
32
+
33
+ ## Início Rápido
34
+
35
+ Você pode usar a biblioteca de forma programática em seus próprios scripts:
36
+
37
+ ```typescript
38
+ import { Codebase } from 'codebase-intelligence';
39
+
40
+ async function run() {
41
+ // 1. Carrega a base de código (escaneia arquivos e detecta informações do projeto)
42
+ const codebase = await Codebase.load('./src');
43
+
44
+ // 2. Analisa a AST e constrói o grafo de dependências
45
+ await codebase.analyze();
46
+
47
+ // 3. Consulta os dados
48
+ console.log('Total de arquivos:', codebase.files().length);
49
+
50
+ // Busca por uma classe ou função específica
51
+ const searchResults = codebase.search('AuthService');
52
+ console.log('Resultados da busca:', searchResults);
53
+
54
+ // Verifica o impacto de uma alteração em um arquivo
55
+ const impact = codebase.impact('src/auth/AuthService.ts');
56
+ console.log('Arquivos que dependem diretamente deste:', impact.direct);
57
+ console.log('Arquivos que dependem indiretamente deste:', impact.indirect);
58
+ }
59
+
60
+ run();
61
+ ```
62
+
63
+ ---
64
+
65
+ ## Referência da API Pública
66
+
67
+ ### `Codebase.load(path: string, options?: CodebaseOptions): Promise<Codebase>`
68
+ Inicializa a instância, escaneando o diretório informado. `options.ignore` aceita um array de padrões glob para excluir arquivos.
69
+
70
+ ### `codebase.analyze(): Promise<void>`
71
+ Analisa os arquivos descobertos e popula o Índice de Símbolos e o Grafo de Dependências internos. Deve ser chamado antes de consultar símbolos ou dependências.
72
+
73
+ ### `codebase.files(): CodebaseFile[]`
74
+ Retorna todos os arquivos indexados do projeto.
75
+
76
+ ### `codebase.symbols(): CodeSymbol[]`
77
+ Retorna todos os símbolos extraídos (classes, funções, interfaces, etc.) do projeto.
78
+
79
+ ### `codebase.search(query: string, options?: SearchOptions): SearchResult[]`
80
+ Realiza uma busca léxica/estrutural por arquivos e símbolos que correspondam à consulta.
81
+
82
+ ### `codebase.dependencies(file: string): string[]`
83
+ Retorna os arquivos dos quais o arquivo informado depende diretamente (imports).
84
+
85
+ ### `codebase.dependents(file: string): string[]`
86
+ Retorna os arquivos que dependem diretamente do arquivo informado.
87
+
88
+ ### `codebase.impact(file: string): ImpactResult`
89
+ Retorna `{ direct: string[], indirect: string[], tests: string[] }`, revelando o raio de impacto completo de uma alteração no arquivo informado.
90
+
91
+ ### `codebase.impactOfFiles(paths: string[]): ChangeSetImpact`
92
+ Análise de impacto pura e síncrona sem consultar o Git. Trata todos os caminhos relativos fornecidos como `modificados` e resolve as suas dependências através do grafo.
93
+
94
+ ```typescript
95
+ // O que é afetado se alterar utils.ts?
96
+ const impact = codebase.impactOfFiles(['src/utils.ts']);
97
+ console.log(impact.direct); // importadores diretos
98
+ console.log(impact.indirect); // dependentes transitivos
99
+ console.log(impact.tests); // arquivos de teste (por convenção)
100
+ console.log(impact.globalChanges); // arquivos globais (afetam tudo)
101
+ console.log(impact.unanalyzable); // arquivos não indexados e porquê
102
+ ```
103
+
104
+ ### `codebase.impactOfChanges(options?, provider?): Promise<ChangeSetImpact>`
105
+ Consulta um `ChangeSetProvider` (Git por defeito) para determinar quais os arquivos alterados, mapeando-os para um `ChangeSetImpact`.
106
+
107
+ ```typescript
108
+ // Alterações introduzidas pela branch atual vs main:
109
+ const impact = await codebase.impactOfChanges({ since: 'main' });
110
+
111
+ // Apenas arquivos em stage:
112
+ const staged = await codebase.impactOfChanges({ staged: true });
113
+
114
+ // Todas as alterações não commitadas (incluindo arquivos untracked):
115
+ const uncommitted = await codebase.impactOfChanges();
116
+
117
+ // Provider personalizado (ex: API de PR do GitHub, mock de teste):
118
+ const impact = await codebase.impactOfChanges({}, meuProvider);
119
+ ```
120
+
121
+ **Formato de `ChangeSetImpact`:**
122
+ ```typescript
123
+ {
124
+ changed: FileChange[]; // lista bruta do provider
125
+ direct: string[]; // arquivos que importam um arquivo alterado
126
+ indirect: string[]; // dependentes transitivos (excluindo direct)
127
+ tests: string[]; // arquivos de teste por convenção de nomes
128
+ globalChanges: string[]; // ex: package.json, tsconfig.json
129
+ unanalyzable: { path, reason }[]; // arquivos não rastreáveis
130
+ unresolvedDependencies: string[]; // imports impossíveis de resolver
131
+ metadata: { granularity: 'file'; base?: string; head?: string };
132
+ }
133
+ ```
134
+
135
+ > ⚠️ **Nota sobre granularidade**: a análise opera na **granularidade de arquivo**. Uma alteração de uma linha marca *todos* os dependentes desse arquivo como potencialmente afetados. O resultado é um limite superior conservador.
136
+
137
+ ---
138
+
139
+ ## Referência da CLI
140
+
141
+ O Codebase Intelligence vem com uma CLI para uso no terminal. O comando principal é `codebase-intelligence`, mas você também pode usar o alias mais curto **`cbi`** (CodeBase Intelligence) caso instale o pacote globalmente ou utilize em scripts do `package.json`.
142
+
143
+ ```bash
144
+ # Analisa o diretório atual e exibe um resumo
145
+ npx @eduardo-afonso/codebase-intelligence analyze .
146
+ # ou, se instalado globalmente: cbi analyze .
147
+
148
+ # Busca por um símbolo específico
149
+ npx @eduardo-afonso/codebase-intelligence search "UserService" .
150
+
151
+ # Exibe as dependências de um arquivo
152
+ npx @eduardo-afonso/codebase-intelligence dependencies "src/auth/AuthService.ts" .
153
+
154
+ # Exibe o que depende de um arquivo
155
+ npx @eduardo-afonso/codebase-intelligence dependents "src/auth/AuthService.ts" .
156
+
157
+ # ── Análise de Impacto ──────────────────────────────────────────────────
158
+
159
+ # Modo de arquivo clássico: impacto de um único arquivo
160
+ npx @eduardo-afonso/codebase-intelligence impact src/auth/AuthService.ts .
161
+
162
+ # Modo Diff: o que afetam as mudanças desde a branch main? (comparação merge-base)
163
+ npx @eduardo-afonso/codebase-intelligence impact . --since main
164
+
165
+ # Modo Diff: apenas arquivos em stage
166
+ npx @eduardo-afonso/codebase-intelligence impact . --staged
167
+
168
+ # Modo Diff: todas as alterações não commitadas + arquivos untracked
169
+ npx @eduardo-afonso/codebase-intelligence impact . --uncommitted
170
+
171
+ # Saída em JSON (limpo em stdout, ideal para scripts)
172
+ npx @eduardo-afonso/codebase-intelligence impact . --since main --format json
173
+
174
+ # Imprime apenas caminhos de testes relacionados — útil em CI
175
+ npx @eduardo-afonso/codebase-intelligence impact . --since main --tests-only
176
+
177
+ # ── Context Engine & Chunking ────────────────────────────────────────────
178
+
179
+ # Gera um payload de contexto pronto para LLMs para um arquivo (incluindo dependências)
180
+ npx @eduardo-afonso/codebase-intelligence context "src/auth/AuthService.ts" --strategy signature .
181
+
182
+ # Gera chunks semânticos para a base de código
183
+ npx @eduardo-afonso/codebase-intelligence chunks . --max-tokens 512
184
+
185
+ # Estima o uso de tokens de toda a base de código
186
+ npx @eduardo-afonso/codebase-intelligence tokens .
187
+ ```
188
+
189
+ ---
190
+
191
+ ## Visão Geral da Arquitetura
192
+
193
+ O Codebase Intelligence é projetado em camadas modulares para permitir extensibilidade futura (por exemplo, adicionar parsers de C# ou Python):
194
+
195
+ 1. **Camada de Descoberta**: Responsável por encontrar arquivos (`FileScanner`) e detectar propriedades do projeto (`ProjectDetector`).
196
+ 2. **Camada de Análise**: Contém os parsers (`TypeScriptParser`) que transformam código bruto em objetos estruturados `CodeSymbol` e `CodeDependency`.
197
+ 3. **Camada de Conhecimento**: Indexa os dados para recuperação rápida (`SymbolIndex`, `FileIndex`, `DependencyGraph`).
198
+
199
+ Para detalhes arquiteturais mais profundos, veja [docs/architecture.md](docs/architecture.md).
200
+
201
+ ---
202
+
203
+ ## Roadmap
204
+
205
+ A versão atual estabelece a análise estrutural determinística de uma base de código, inclui o **Context Engine** para chunking semântico e pipelines de RAG, e agora inclui **Análise de Impacto de Diferenças (Diff Impact)** para as alterações no Git. Versões futuras irão introduzir:
206
+
207
+ - **Adaptadores de IA**: Implementações concretas para conectar LLMs externos (OpenAI, Anthropic, Gemini, Ollama) e Vector Stores (Qdrant, Chroma).
208
+ - **Suporte Multi-linguagem**: Expansão do `ParserRegistry` para suportar Python, Go e C#.
209
+ - **Granularidade a nível de Símbolo**: Reduzindo a análise de impacto ao nível do arquivo para os símbolos especificamente alterados.
210
+ - **Indexação Incremental**: Evita a re-análise completa a cada execução detetando arquivos alterados da cache.
211
+
212
+ ---
213
+
214
+ ## Contribuindo
215
+
216
+ Contribuições são bem-vindas. Por favor, certifique-se de que você:
217
+ 1. Discuta mudanças arquiteturais importantes em uma issue primeiro.
218
+ 2. Garanta que todos os testes passem (`npm run test:run`).
219
+ 3. Garanta que não haja erros de tipo (`npm run typecheck`).
220
+ 4. Evite introduzir dependências desnecessárias. A biblioteca principal busca permanecer leve.
221
+
222
+ ## Licença
223
+
223
224
  Licença ISC. Veja o arquivo `LICENSE` para mais detalhes.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eduardo-afonso/codebase-intelligence",
3
- "version": "2.0.1",
3
+ "version": "2.0.2",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -14,7 +14,8 @@
14
14
  }
15
15
  },
16
16
  "bin": {
17
- "codebase-intelligence": "./dist/cli/index.js"
17
+ "codebase-intelligence": "./dist/cli/index.js",
18
+ "cbi": "./dist/cli/index.js"
18
19
  },
19
20
  "files": [
20
21
  "dist"