@justmpm/ai-tool 0.4.0 → 0.5.0
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/README.md +83 -9
- package/dist/{chunk-33DHCY2H.js → chunk-IIUNJRGG.js} +1408 -1314
- package/dist/cli.js +9 -7
- package/dist/index.d.ts +2 -1
- package/dist/index.js +1 -1
- package/dist/{server-62WVGNJD.js → server-FG4LYSEG.js} +19 -248
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -10,21 +10,22 @@ import {
|
|
|
10
10
|
impact,
|
|
11
11
|
map,
|
|
12
12
|
suggest
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-IIUNJRGG.js";
|
|
14
14
|
|
|
15
15
|
// src/cli.ts
|
|
16
16
|
var HELP = `
|
|
17
17
|
ai-tool v${VERSION} - Analise de dependencias e impacto
|
|
18
18
|
|
|
19
19
|
COMANDOS:
|
|
20
|
-
map
|
|
20
|
+
map Resumo do projeto: contagens e areas
|
|
21
|
+
map --full Mapa completo com lista de arquivos
|
|
21
22
|
dead Detecta codigo morto (usa Knip)
|
|
22
23
|
dead --fix Remove codigo morto automaticamente
|
|
23
24
|
impact <arquivo> Analise de impacto antes de modificar
|
|
24
25
|
suggest <arquivo> Sugere arquivos para ler antes de modificar
|
|
25
26
|
context <arquivo> Extrai assinaturas de um arquivo (funcoes, tipos)
|
|
26
27
|
|
|
27
|
-
AREAS
|
|
28
|
+
AREAS:
|
|
28
29
|
areas Lista todas as areas/dominios do projeto
|
|
29
30
|
areas init Gera arquivo de configuracao .analyze/areas.config.json
|
|
30
31
|
areas init --force Sobrescreve configuracao existente
|
|
@@ -41,7 +42,7 @@ OPCOES:
|
|
|
41
42
|
--no-cache Ignora cache e forca regeneracao
|
|
42
43
|
--limit=<n> Limite de sugestoes (default: 10, apenas suggest)
|
|
43
44
|
--type=<categoria> Filtra por categoria (apenas area)
|
|
44
|
-
--full
|
|
45
|
+
--full Lista completa (map: lista arquivos, area: todos arquivos)
|
|
45
46
|
--help, -h Mostra esta ajuda
|
|
46
47
|
--version, -v Mostra versao
|
|
47
48
|
|
|
@@ -51,7 +52,8 @@ CACHE:
|
|
|
51
52
|
Use --no-cache para forcar regeneracao.
|
|
52
53
|
|
|
53
54
|
EXEMPLOS:
|
|
54
|
-
ai-tool map
|
|
55
|
+
ai-tool map # Resumo compacto
|
|
56
|
+
ai-tool map --full # Lista completa de arquivos
|
|
55
57
|
ai-tool map --format=json
|
|
56
58
|
ai-tool dead
|
|
57
59
|
ai-tool dead --fix
|
|
@@ -85,7 +87,7 @@ async function main() {
|
|
|
85
87
|
}
|
|
86
88
|
}
|
|
87
89
|
if (flags.mcp) {
|
|
88
|
-
const { startMcpServer } = await import("./server-
|
|
90
|
+
const { startMcpServer } = await import("./server-FG4LYSEG.js");
|
|
89
91
|
await startMcpServer();
|
|
90
92
|
return;
|
|
91
93
|
}
|
|
@@ -106,7 +108,7 @@ async function main() {
|
|
|
106
108
|
let result;
|
|
107
109
|
switch (command) {
|
|
108
110
|
case "map":
|
|
109
|
-
result = await map({ format, cwd, cache });
|
|
111
|
+
result = await map({ format, cwd, cache, full: !!flags.full });
|
|
110
112
|
break;
|
|
111
113
|
case "dead":
|
|
112
114
|
if (flags.fix) {
|
package/dist/index.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ interface CommandOptions {
|
|
|
11
11
|
}
|
|
12
12
|
interface MapOptions extends CommandOptions {
|
|
13
13
|
trackDependencies?: boolean;
|
|
14
|
+
full?: boolean;
|
|
14
15
|
}
|
|
15
16
|
interface DeadOptions extends CommandOptions {
|
|
16
17
|
include?: string[];
|
|
@@ -501,6 +502,6 @@ declare const AREA_DESCRIPTIONS: Record<string, string>;
|
|
|
501
502
|
* ```
|
|
502
503
|
*/
|
|
503
504
|
|
|
504
|
-
declare const VERSION
|
|
505
|
+
declare const VERSION: string;
|
|
505
506
|
|
|
506
507
|
export { AREA_DESCRIPTIONS, AREA_NAMES, type AreaConfig, type AreaDetailResult, type AreaFile, type AreaOptions, type AreasConfigFile, type AreasOptions, type AreasResult, type CommandOptions, type ContextOptions, type ContextResult, type DeadFile, type DeadOptions, type DeadResult, type DetectedArea, FOLDER_PATTERNS, type FileCategory, type FileInfo, type FolderStats, type FunctionInfo, type ImpactFile, type ImpactOptions, type ImpactResult, type ImportInfo, KEYWORD_PATTERNS, type MapOptions, type MapResult, type OutputFormat, type ParamInfo, type RiskInfo, type SuggestOptions, type SuggestResult, type Suggestion, type SuggestionPriority, type TypeInfo, type TypeKind, VERSION, area, areas, areasInit, categoryIcons, clearFirebaseCache, configExists, context, dead, deadFix, detectCategory, detectFileAreas, filterCloudFunctionsFalsePositives, getAreaDescription, getAreaName, getCacheDir, getFileDescription, hasFirebaseFunctions, impact, inferFileDescription, invalidateCache, isCacheValid, isCodeFile, isEntryPoint, isExportedCloudFunction, isFirebaseProject, map, readConfig, removeArea, setArea, setFileDescription, suggest, writeConfig };
|
package/dist/index.js
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
impact,
|
|
9
9
|
map,
|
|
10
10
|
suggest
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-IIUNJRGG.js";
|
|
12
12
|
|
|
13
13
|
// src/mcp/server.ts
|
|
14
14
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
@@ -22,27 +22,8 @@ server.registerTool(
|
|
|
22
22
|
"aitool_project_map",
|
|
23
23
|
{
|
|
24
24
|
title: "Project Map",
|
|
25
|
-
description: `
|
|
26
|
-
|
|
27
|
-
FUNCIONALIDADES:
|
|
28
|
-
- Lista todos os arquivos TypeScript/JavaScript do projeto
|
|
29
|
-
- Categoriza automaticamente: page, layout, route, component, hook, service, store, util, type, config, test
|
|
30
|
-
- Agrupa estatisticas por pasta
|
|
31
|
-
- Detecta dependencias circulares
|
|
32
|
-
|
|
33
|
-
PARAMETROS:
|
|
34
|
-
- format: "text" (legivel) ou "json" (estruturado)
|
|
35
|
-
- cwd: Diretorio do projeto (default: diretorio atual)
|
|
36
|
-
|
|
37
|
-
RETORNA:
|
|
38
|
-
- Sumario com total de arquivos e pastas
|
|
39
|
-
- Distribuicao por categoria
|
|
40
|
-
- Lista de pastas com contagem
|
|
41
|
-
- Lista de arquivos com categoria
|
|
42
|
-
- Dependencias circulares detectadas
|
|
43
|
-
|
|
44
|
-
EXEMPLO DE USO:
|
|
45
|
-
Chamar para entender a estrutura de um projeto antes de modificar.`,
|
|
25
|
+
description: `Mapeia projeto e retorna resumo: contagens por categoria, areas detectadas, alertas.
|
|
26
|
+
Use no inicio da sessao. Para detalhes: area_detail, file_context, suggest_reads.`,
|
|
46
27
|
inputSchema: {
|
|
47
28
|
format: z.enum(["text", "json"]).default("text").describe("Formato de saida: text (legivel) ou json (estruturado)"),
|
|
48
29
|
cwd: z.string().optional().describe("Diretorio do projeto a analisar")
|
|
@@ -59,7 +40,8 @@ Chamar para entender a estrutura de um projeto antes de modificar.`,
|
|
|
59
40
|
try {
|
|
60
41
|
const result = await map({
|
|
61
42
|
format: params.format,
|
|
62
|
-
cwd: params.cwd
|
|
43
|
+
cwd: params.cwd,
|
|
44
|
+
full: false
|
|
63
45
|
});
|
|
64
46
|
return { content: [{ type: "text", text: result }] };
|
|
65
47
|
} catch (error) {
|
|
@@ -79,28 +61,8 @@ server.registerTool(
|
|
|
79
61
|
"aitool_dead_code",
|
|
80
62
|
{
|
|
81
63
|
title: "Dead Code Detector",
|
|
82
|
-
description: `Detecta codigo morto
|
|
83
|
-
|
|
84
|
-
DETECTA:
|
|
85
|
-
- Arquivos orfaos (nao importados por ninguem)
|
|
86
|
-
- Exports nao utilizados
|
|
87
|
-
- Dependencias npm nao usadas
|
|
88
|
-
|
|
89
|
-
PARAMETROS:
|
|
90
|
-
- format: "text" (legivel) ou "json" (estruturado)
|
|
91
|
-
- cwd: Diretorio do projeto (default: diretorio atual)
|
|
92
|
-
|
|
93
|
-
RETORNA:
|
|
94
|
-
- Sumario com total de codigo morto por tipo
|
|
95
|
-
- Lista de arquivos orfaos com categoria
|
|
96
|
-
- Lista de exports nao usados (arquivo + nome)
|
|
97
|
-
- Lista de dependencias npm nao usadas
|
|
98
|
-
|
|
99
|
-
EXEMPLO DE USO:
|
|
100
|
-
Chamar periodicamente para manter o projeto limpo.
|
|
101
|
-
Chamar antes de refatoracoes para identificar codigo removivel.
|
|
102
|
-
|
|
103
|
-
NOTA: Requer que o projeto tenha knip configurado ou use defaults.`,
|
|
64
|
+
description: `Detecta codigo morto: arquivos orfaos, exports nao usados, deps npm mortas.
|
|
65
|
+
Use antes de refatoracoes ou periodicamente para limpeza.`,
|
|
104
66
|
inputSchema: {
|
|
105
67
|
format: z.enum(["text", "json"]).default("text").describe("Formato de saida: text (legivel) ou json (estruturado)"),
|
|
106
68
|
cwd: z.string().optional().describe("Diretorio do projeto a analisar")
|
|
@@ -137,34 +99,8 @@ server.registerTool(
|
|
|
137
99
|
"aitool_impact_analysis",
|
|
138
100
|
{
|
|
139
101
|
title: "Impact Analysis",
|
|
140
|
-
description: `Analisa
|
|
141
|
-
|
|
142
|
-
ANALISA:
|
|
143
|
-
- UPSTREAM: Quem importa este arquivo (direto e indireto)
|
|
144
|
-
- DOWNSTREAM: O que este arquivo importa (direto e indireto)
|
|
145
|
-
- RISCOS: Arquivo critico, dependencias circulares, cadeia profunda
|
|
146
|
-
- SUGESTOES: O que verificar antes de modificar
|
|
147
|
-
|
|
148
|
-
PARAMETROS:
|
|
149
|
-
- target: Nome ou caminho do arquivo a analisar (obrigatorio)
|
|
150
|
-
- format: "text" (legivel) ou "json" (estruturado)
|
|
151
|
-
- cwd: Diretorio do projeto (default: diretorio atual)
|
|
152
|
-
|
|
153
|
-
O TARGET pode ser:
|
|
154
|
-
- Caminho completo: "src/components/Button.tsx"
|
|
155
|
-
- Caminho parcial: "components/Button"
|
|
156
|
-
- Nome do arquivo: "Button"
|
|
157
|
-
|
|
158
|
-
RETORNA:
|
|
159
|
-
- Categoria do arquivo target
|
|
160
|
-
- Lista de arquivos upstream (quem importa)
|
|
161
|
-
- Lista de arquivos downstream (o que importa)
|
|
162
|
-
- Alertas de risco com severidade
|
|
163
|
-
- Sugestoes de como proceder
|
|
164
|
-
|
|
165
|
-
EXEMPLO DE USO:
|
|
166
|
-
Chamar ANTES de modificar um arquivo para entender o impacto.
|
|
167
|
-
Usar para planejar refatoracoes seguras.`,
|
|
102
|
+
description: `Analisa impacto de modificar um arquivo: upstream (quem importa), downstream (o que importa), riscos.
|
|
103
|
+
Use ANTES de editar arquivos para planejar mudancas seguras.`,
|
|
168
104
|
inputSchema: {
|
|
169
105
|
target: z.string().min(1).describe(
|
|
170
106
|
"Arquivo a analisar: caminho completo, parcial ou nome do arquivo"
|
|
@@ -204,31 +140,8 @@ server.registerTool(
|
|
|
204
140
|
"aitool_suggest_reads",
|
|
205
141
|
{
|
|
206
142
|
title: "Suggest Files to Read",
|
|
207
|
-
description: `Sugere arquivos
|
|
208
|
-
|
|
209
|
-
PRIORIZA (nesta ordem):
|
|
210
|
-
1. CRITICAL: Arquivos de tipos/interfaces usados pelo target
|
|
211
|
-
2. HIGH: Dependencias diretas (arquivos importados pelo target)
|
|
212
|
-
3. MEDIUM: Upstream (arquivos que importam o target)
|
|
213
|
-
4. LOW: Testes relacionados
|
|
214
|
-
|
|
215
|
-
PARAMETROS:
|
|
216
|
-
- target: Nome ou caminho do arquivo que sera modificado (obrigatorio)
|
|
217
|
-
- limit: Numero maximo de sugestoes (default: 10, max: 50)
|
|
218
|
-
- cwd: Diretorio do projeto (default: diretorio atual)
|
|
219
|
-
|
|
220
|
-
O TARGET pode ser:
|
|
221
|
-
- Caminho completo: "src/components/Button.tsx"
|
|
222
|
-
- Caminho parcial: "components/Button"
|
|
223
|
-
- Nome do arquivo: "Button"
|
|
224
|
-
|
|
225
|
-
RETORNA:
|
|
226
|
-
- Lista ordenada de arquivos para ler
|
|
227
|
-
- Cada sugestao tem: path, categoria, razao, prioridade
|
|
228
|
-
|
|
229
|
-
EXEMPLO DE USO:
|
|
230
|
-
Chamar ANTES de modificar um arquivo para saber o que ler primeiro.
|
|
231
|
-
Util para entender o contexto completo antes de fazer mudancas.`,
|
|
143
|
+
description: `Sugere arquivos para ler ANTES de modificar um arquivo.
|
|
144
|
+
Prioriza: tipos usados, dependencias diretas, upstream, testes.`,
|
|
232
145
|
inputSchema: {
|
|
233
146
|
target: z.string().min(1).describe(
|
|
234
147
|
"Arquivo que sera modificado: caminho completo, parcial ou nome"
|
|
@@ -269,39 +182,8 @@ server.registerTool(
|
|
|
269
182
|
"aitool_file_context",
|
|
270
183
|
{
|
|
271
184
|
title: "Extract File Context",
|
|
272
|
-
description: `Extrai assinaturas de funcoes e tipos de um arquivo
|
|
273
|
-
|
|
274
|
-
EXTRAI:
|
|
275
|
-
- IMPORTS: Todos os imports com specifiers e se sao type-only
|
|
276
|
-
- EXPORTS: Lista de tudo que e exportado
|
|
277
|
-
- FUNCOES: Nome, parametros (com tipos), retorno, async, arrow, JSDoc
|
|
278
|
-
- TIPOS: Interfaces, types e enums com suas definicoes completas
|
|
279
|
-
|
|
280
|
-
NAO INCLUI:
|
|
281
|
-
- Corpo das funcoes (implementacao)
|
|
282
|
-
- Logica interna
|
|
283
|
-
- Comentarios inline
|
|
284
|
-
|
|
285
|
-
PARAMETROS:
|
|
286
|
-
- target: Nome ou caminho do arquivo (obrigatorio)
|
|
287
|
-
- cwd: Diretorio do projeto (default: diretorio atual)
|
|
288
|
-
|
|
289
|
-
O TARGET pode ser:
|
|
290
|
-
- Caminho completo: "src/components/Button.tsx"
|
|
291
|
-
- Caminho parcial: "components/Button"
|
|
292
|
-
- Nome do arquivo: "Button"
|
|
293
|
-
|
|
294
|
-
RETORNA:
|
|
295
|
-
- Arquivo com categoria detectada
|
|
296
|
-
- Lista de imports estruturada
|
|
297
|
-
- Lista de exports
|
|
298
|
-
- Lista de funcoes com assinaturas completas
|
|
299
|
-
- Lista de tipos com definicoes
|
|
300
|
-
|
|
301
|
-
EXEMPLO DE USO:
|
|
302
|
-
Chamar para entender a API publica de um arquivo antes de usa-lo.
|
|
303
|
-
Util para saber quais funcoes/tipos um arquivo exporta.
|
|
304
|
-
Eficiente: retorna apenas assinaturas, nao o codigo completo.`,
|
|
185
|
+
description: `Extrai assinaturas de funcoes e tipos de um arquivo (sem implementacao).
|
|
186
|
+
Use para entender a API publica antes de usar ou modificar.`,
|
|
305
187
|
inputSchema: {
|
|
306
188
|
target: z.string().min(1).describe(
|
|
307
189
|
"Arquivo para extrair contexto: caminho completo, parcial ou nome"
|
|
@@ -340,39 +222,8 @@ server.registerTool(
|
|
|
340
222
|
"aitool_list_areas",
|
|
341
223
|
{
|
|
342
224
|
title: "List Project Areas",
|
|
343
|
-
description: `Lista
|
|
344
|
-
|
|
345
|
-
IMPORTANTE - AREAS vs CATEGORIAS:
|
|
346
|
-
- CATEGORIA = tipo tecnico (hook, component, page, service...)
|
|
347
|
-
\u2192 Use aitool_project_map para ver categorias
|
|
348
|
-
- AREA = dominio funcional (auth, meus-pets, stripe, dashboard...)
|
|
349
|
-
\u2192 Use ESTA tool para ver areas
|
|
350
|
-
\u2192 Use aitool_area_detail para ver arquivos de uma area especifica
|
|
351
|
-
|
|
352
|
-
Um arquivo pode pertencer a MULTIPLAS areas!
|
|
353
|
-
|
|
354
|
-
FUNCIONALIDADES:
|
|
355
|
-
- Detecta areas automaticamente baseado em padroes de pasta e keywords
|
|
356
|
-
- Agrupa arquivos por dominio funcional
|
|
357
|
-
- Mostra distribuicao de categorias por area
|
|
358
|
-
- Identifica arquivos sem area definida
|
|
359
|
-
|
|
360
|
-
PARAMETROS:
|
|
361
|
-
- format: "text" (legivel) ou "json" (estruturado)
|
|
362
|
-
- cwd: Diretorio do projeto (default: diretorio atual)
|
|
363
|
-
|
|
364
|
-
RETORNA:
|
|
365
|
-
- Lista de areas com nome, descricao e contagem
|
|
366
|
-
- Distribuicao de categorias por area
|
|
367
|
-
- Lista de arquivos sem area (para configurar manualmente)
|
|
368
|
-
|
|
369
|
-
EXEMPLO DE USO:
|
|
370
|
-
Chamar no inicio da sessao para entender os dominios do projeto.
|
|
371
|
-
Usar antes de trabalhar em uma feature especifica.
|
|
372
|
-
|
|
373
|
-
CONFIGURACAO MANUAL:
|
|
374
|
-
Se houver arquivos sem area ou areas incorretas, use aitool_areas_init
|
|
375
|
-
para gerar .analyze/areas.config.json e edite manualmente.`,
|
|
225
|
+
description: `Lista areas/dominios funcionais do projeto (auth, pets, stripe...).
|
|
226
|
+
Diferente de categorias (hook, component). Use area_detail para ver arquivos.`,
|
|
376
227
|
inputSchema: {
|
|
377
228
|
format: z.enum(["text", "json"]).default("text").describe("Formato de saida: text (legivel) ou json (estruturado)"),
|
|
378
229
|
cwd: z.string().optional().describe("Diretorio do projeto a analisar")
|
|
@@ -409,36 +260,8 @@ server.registerTool(
|
|
|
409
260
|
"aitool_area_detail",
|
|
410
261
|
{
|
|
411
262
|
title: "Area Detail",
|
|
412
|
-
description: `Mostra
|
|
413
|
-
|
|
414
|
-
USE ESTA TOOL QUANDO:
|
|
415
|
-
- Usuario pedir para trabalhar em uma feature (ex: "vou mexer em auth")
|
|
416
|
-
- Precisar listar todos os arquivos de um dominio
|
|
417
|
-
- Quiser ver apenas hooks, components, etc de uma area especifica
|
|
418
|
-
|
|
419
|
-
FUNCIONALIDADES:
|
|
420
|
-
- Lista arquivos agrupados por categoria (page, component, hook...)
|
|
421
|
-
- Mostra descricao de cada arquivo (inferida ou manual)
|
|
422
|
-
- Permite filtrar por categoria especifica (type="hook")
|
|
423
|
-
- Mostra resumo de distribuicao
|
|
424
|
-
|
|
425
|
-
PARAMETROS:
|
|
426
|
-
- target: Nome da area (OBRIGATORIO - ex: "meus-pets", "auth", "stripe")
|
|
427
|
-
- type: Filtrar por categoria (opcional - ex: "hook", "component")
|
|
428
|
-
- full: Mostrar todos os arquivos (default: false = resumido)
|
|
429
|
-
- cwd: Diretorio do projeto
|
|
430
|
-
|
|
431
|
-
RETORNA:
|
|
432
|
-
- Nome e descricao da area
|
|
433
|
-
- Lista de arquivos por categoria
|
|
434
|
-
- Descricao de cada arquivo
|
|
435
|
-
|
|
436
|
-
EXEMPLOS DE USO:
|
|
437
|
-
- Ver tudo de auth: target="auth"
|
|
438
|
-
- Ver apenas hooks de auth: target="auth", type="hook"
|
|
439
|
-
- Ver todos os arquivos de stripe: target="stripe", full=true
|
|
440
|
-
|
|
441
|
-
DICA: Use aitool_list_areas primeiro para ver quais areas existem.`,
|
|
263
|
+
description: `Mostra arquivos de uma area especifica, agrupados por categoria.
|
|
264
|
+
Parametros: target (nome da area), type (filtrar categoria), full (todos arquivos).`,
|
|
442
265
|
inputSchema: {
|
|
443
266
|
target: z.string().min(1).describe("Nome da area: meus-pets, auth, stripe, etc"),
|
|
444
267
|
type: z.enum([
|
|
@@ -492,60 +315,8 @@ server.registerTool(
|
|
|
492
315
|
"aitool_areas_init",
|
|
493
316
|
{
|
|
494
317
|
title: "Initialize Areas Config",
|
|
495
|
-
description: `Gera
|
|
496
|
-
|
|
497
|
-
QUANDO USAR:
|
|
498
|
-
- Quando aitool_list_areas mostrar arquivos sem area definida
|
|
499
|
-
- Quando precisar personalizar deteccao de areas
|
|
500
|
-
- Quando quiser adicionar areas que nao sao detectadas automaticamente
|
|
501
|
-
|
|
502
|
-
O QUE FAZ:
|
|
503
|
-
- Escaneia o projeto e detecta areas automaticamente
|
|
504
|
-
- Infere patterns glob para cada area detectada
|
|
505
|
-
- Gera arquivo editavel em .analyze/areas.config.json
|
|
506
|
-
- NAO sobrescreve config existente (use force=true para sobrescrever)
|
|
507
|
-
|
|
508
|
-
PARAMETROS:
|
|
509
|
-
- force: Sobrescrever config existente (default: false)
|
|
510
|
-
- cwd: Diretorio do projeto (default: diretorio atual)
|
|
511
|
-
|
|
512
|
-
RETORNA:
|
|
513
|
-
- Confirmacao do arquivo criado
|
|
514
|
-
- Lista de areas detectadas com contagem
|
|
515
|
-
- Arquivos sem area (para configurar manualmente)
|
|
516
|
-
- Instrucoes de como editar o arquivo
|
|
517
|
-
|
|
518
|
-
ESTRUTURA DO ARQUIVO GERADO:
|
|
519
|
-
{
|
|
520
|
-
"areas": {
|
|
521
|
-
"auth": {
|
|
522
|
-
"name": "Autenticacao",
|
|
523
|
-
"description": "Sistema de login e sessao",
|
|
524
|
-
"patterns": ["components/auth/**", "hooks/useAuth.ts"],
|
|
525
|
-
"keywords": ["auth", "login", "session"]
|
|
526
|
-
}
|
|
527
|
-
},
|
|
528
|
-
"descriptions": {
|
|
529
|
-
"components/pets/PetForm.tsx": "Formulario multi-step de pets"
|
|
530
|
-
},
|
|
531
|
-
"settings": {
|
|
532
|
-
"autoDetect": true,
|
|
533
|
-
"inferDescriptions": true
|
|
534
|
-
}
|
|
535
|
-
}
|
|
536
|
-
|
|
537
|
-
COMO EDITAR MANUALMENTE:
|
|
538
|
-
1. Adicionar areas nao detectadas: adicione entrada em "areas"
|
|
539
|
-
2. Renomear areas: altere "name" da area
|
|
540
|
-
3. Ajustar deteccao: modifique "patterns" e "keywords"
|
|
541
|
-
4. Excluir arquivos: adicione "exclude" com patterns
|
|
542
|
-
5. Descrever arquivos: adicione entrada em "descriptions"
|
|
543
|
-
|
|
544
|
-
EXEMPLO DE USO:
|
|
545
|
-
1. Rode aitool_list_areas para ver areas atuais
|
|
546
|
-
2. Se houver arquivos sem area, rode aitool_areas_init
|
|
547
|
-
3. Edite .analyze/areas.config.json conforme necessario
|
|
548
|
-
4. Rode aitool_list_areas novamente para ver mudancas`,
|
|
318
|
+
description: `Gera .analyze/areas.config.json para customizar deteccao de areas.
|
|
319
|
+
Use quando houver arquivos sem area ou precisar ajustar deteccao.`,
|
|
549
320
|
inputSchema: {
|
|
550
321
|
force: z.boolean().default(false).describe("Sobrescrever config existente"),
|
|
551
322
|
cwd: z.string().optional().describe("Diretorio do projeto")
|
package/package.json
CHANGED