archicore 0.1.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.
Files changed (118) hide show
  1. package/README.md +530 -0
  2. package/dist/analyzers/dead-code.d.ts +95 -0
  3. package/dist/analyzers/dead-code.js +327 -0
  4. package/dist/analyzers/duplication.d.ts +90 -0
  5. package/dist/analyzers/duplication.js +344 -0
  6. package/dist/analyzers/security.d.ts +79 -0
  7. package/dist/analyzers/security.js +484 -0
  8. package/dist/architecture/index.d.ts +35 -0
  9. package/dist/architecture/index.js +249 -0
  10. package/dist/cli/commands/analyzers.d.ts +6 -0
  11. package/dist/cli/commands/analyzers.js +431 -0
  12. package/dist/cli/commands/export.d.ts +6 -0
  13. package/dist/cli/commands/export.js +78 -0
  14. package/dist/cli/commands/index.d.ts +8 -0
  15. package/dist/cli/commands/index.js +8 -0
  16. package/dist/cli/commands/init.d.ts +26 -0
  17. package/dist/cli/commands/init.js +140 -0
  18. package/dist/cli/commands/interactive.d.ts +7 -0
  19. package/dist/cli/commands/interactive.js +522 -0
  20. package/dist/cli/commands/projects.d.ts +6 -0
  21. package/dist/cli/commands/projects.js +249 -0
  22. package/dist/cli/index.d.ts +7 -0
  23. package/dist/cli/index.js +7 -0
  24. package/dist/cli/ui/box.d.ts +17 -0
  25. package/dist/cli/ui/box.js +62 -0
  26. package/dist/cli/ui/colors.d.ts +49 -0
  27. package/dist/cli/ui/colors.js +86 -0
  28. package/dist/cli/ui/index.d.ts +9 -0
  29. package/dist/cli/ui/index.js +9 -0
  30. package/dist/cli/ui/prompt.d.ts +34 -0
  31. package/dist/cli/ui/prompt.js +122 -0
  32. package/dist/cli/ui/spinner.d.ts +29 -0
  33. package/dist/cli/ui/spinner.js +80 -0
  34. package/dist/cli/ui/table.d.ts +33 -0
  35. package/dist/cli/ui/table.js +84 -0
  36. package/dist/cli/utils/config.d.ts +23 -0
  37. package/dist/cli/utils/config.js +73 -0
  38. package/dist/cli/utils/index.d.ts +6 -0
  39. package/dist/cli/utils/index.js +6 -0
  40. package/dist/cli/utils/session.d.ts +27 -0
  41. package/dist/cli/utils/session.js +117 -0
  42. package/dist/cli.d.ts +8 -0
  43. package/dist/cli.js +295 -0
  44. package/dist/code-index/ast-parser.d.ts +16 -0
  45. package/dist/code-index/ast-parser.js +330 -0
  46. package/dist/code-index/dependency-graph.d.ts +16 -0
  47. package/dist/code-index/dependency-graph.js +161 -0
  48. package/dist/code-index/index.d.ts +44 -0
  49. package/dist/code-index/index.js +124 -0
  50. package/dist/code-index/symbol-extractor.d.ts +13 -0
  51. package/dist/code-index/symbol-extractor.js +150 -0
  52. package/dist/export/index.d.ts +92 -0
  53. package/dist/export/index.js +676 -0
  54. package/dist/github/github-service.d.ts +146 -0
  55. package/dist/github/github-service.js +609 -0
  56. package/dist/impact-engine/index.d.ts +25 -0
  57. package/dist/impact-engine/index.js +284 -0
  58. package/dist/index.d.ts +60 -0
  59. package/dist/index.js +149 -0
  60. package/dist/metrics/index.d.ts +136 -0
  61. package/dist/metrics/index.js +525 -0
  62. package/dist/orchestrator/deepseek-optimizer.d.ts +67 -0
  63. package/dist/orchestrator/deepseek-optimizer.js +320 -0
  64. package/dist/orchestrator/index.d.ts +34 -0
  65. package/dist/orchestrator/index.js +305 -0
  66. package/dist/pr-guardian/index.d.ts +143 -0
  67. package/dist/pr-guardian/index.js +553 -0
  68. package/dist/refactoring/index.d.ts +108 -0
  69. package/dist/refactoring/index.js +580 -0
  70. package/dist/rules-engine/index.d.ts +129 -0
  71. package/dist/rules-engine/index.js +482 -0
  72. package/dist/semantic-memory/embedding-service.d.ts +24 -0
  73. package/dist/semantic-memory/embedding-service.js +120 -0
  74. package/dist/semantic-memory/index.d.ts +45 -0
  75. package/dist/semantic-memory/index.js +206 -0
  76. package/dist/semantic-memory/vector-store.d.ts +27 -0
  77. package/dist/semantic-memory/vector-store.js +166 -0
  78. package/dist/server/index.d.ts +28 -0
  79. package/dist/server/index.js +141 -0
  80. package/dist/server/middleware/api-auth.d.ts +43 -0
  81. package/dist/server/middleware/api-auth.js +256 -0
  82. package/dist/server/routes/admin.d.ts +5 -0
  83. package/dist/server/routes/admin.js +123 -0
  84. package/dist/server/routes/api.d.ts +7 -0
  85. package/dist/server/routes/api.js +362 -0
  86. package/dist/server/routes/auth.d.ts +16 -0
  87. package/dist/server/routes/auth.js +191 -0
  88. package/dist/server/routes/developer.d.ts +8 -0
  89. package/dist/server/routes/developer.js +439 -0
  90. package/dist/server/routes/github.d.ts +7 -0
  91. package/dist/server/routes/github.js +495 -0
  92. package/dist/server/routes/upload.d.ts +7 -0
  93. package/dist/server/routes/upload.js +196 -0
  94. package/dist/server/services/api-key-service.d.ts +81 -0
  95. package/dist/server/services/api-key-service.js +281 -0
  96. package/dist/server/services/auth-service.d.ts +40 -0
  97. package/dist/server/services/auth-service.js +315 -0
  98. package/dist/server/services/project-service.d.ts +123 -0
  99. package/dist/server/services/project-service.js +533 -0
  100. package/dist/server/services/token-service.d.ts +107 -0
  101. package/dist/server/services/token-service.js +416 -0
  102. package/dist/server/services/upload-service.d.ts +93 -0
  103. package/dist/server/services/upload-service.js +464 -0
  104. package/dist/types/api.d.ts +188 -0
  105. package/dist/types/api.js +86 -0
  106. package/dist/types/github.d.ts +335 -0
  107. package/dist/types/github.js +5 -0
  108. package/dist/types/index.d.ts +265 -0
  109. package/dist/types/index.js +32 -0
  110. package/dist/types/user.d.ts +69 -0
  111. package/dist/types/user.js +42 -0
  112. package/dist/utils/file-utils.d.ts +20 -0
  113. package/dist/utils/file-utils.js +163 -0
  114. package/dist/utils/logger.d.ts +17 -0
  115. package/dist/utils/logger.js +41 -0
  116. package/dist/watcher/index.d.ts +125 -0
  117. package/dist/watcher/index.js +397 -0
  118. package/package.json +71 -0
package/README.md ADDED
@@ -0,0 +1,530 @@
1
+ # AIArhitector
2
+
3
+ **AI Software Architect System** - система ИИ-архитектор, которая понимает весь код, держит контекст и снижает риск багов практически до нуля.
4
+
5
+ ## Ключевые возможности
6
+
7
+ ### 1. **Понимание всего кода**
8
+ - 🌲 **AST Parsing** - парсинг кода через Tree-sitter
9
+ - 🕸️ **Dependency Graph** - полный граф зависимостей между компонентами
10
+ - 🔍 **Symbol Extraction** - извлечение всех символов (функции, классы, интерфейсы)
11
+ - 📊 **Call Graph** - граф вызовов функций
12
+
13
+ ### 2. **Семантическая память**
14
+ - 🧠 **Vector Database** - хранение семантического понимания кода (Qdrant)
15
+ - 🔎 **Semantic Search** - поиск по смыслу, а не по тексту
16
+ - 💾 **Long-term Memory** - долговременная память о назначении компонентов
17
+
18
+ ### 3. **Архитектурные знания**
19
+ - 🏛️ **Bounded Contexts** - описание границ контекстов
20
+ - 📐 **Domain Entities** - доменные сущности и их связи
21
+ - 📋 **Architectural Rules** - правила архитектуры
22
+ - ⚖️ **Invariants** - инварианты системы
23
+
24
+ ### 4. **Анализ влияния изменений**
25
+ - 🎯 **Impact Analysis** - определение затронутых компонентов
26
+ - ⚠️ **Risk Assessment** - оценка рисков
27
+ - 💡 **Recommendations** - автоматические рекомендации
28
+ - 📈 **Impact Graph** - визуальный граф влияния
29
+
30
+ ### 5. **LLM Orchestration**
31
+ - 🤖 **AI Architect** - ИИ-архитектор для принятия решений
32
+ - 💬 **Contextual Answers** - ответы с учётом всего контекста
33
+ - 🔄 **Code Review** - автоматический ревью кода
34
+ - 📝 **Documentation** - генерация документации
35
+
36
+ ## Архитектура системы
37
+
38
+ ```
39
+ ┌─────────────────────────────────────────────────────┐
40
+ │ Git Repository │
41
+ └─────────────────────────────────────────────────────┘
42
+
43
+ ┌─────────────────────────────────────────────────────┐
44
+ │ Code Index (AST + Graph) │
45
+ │ - Tree-sitter Parser │
46
+ │ - Symbol Extraction │
47
+ │ - Dependency Graph Builder │
48
+ └─────────────────────────────────────────────────────┘
49
+
50
+ ┌─────────────────────────────────────────────────────┐
51
+ │ Semantic Memory (Vector DB) │
52
+ │ - Embeddings Generation │
53
+ │ - Qdrant Vector Store │
54
+ │ - Semantic Search │
55
+ └─────────────────────────────────────────────────────┘
56
+
57
+ ┌─────────────────────────────────────────────────────┐
58
+ │ Architecture Knowledge Layer │
59
+ │ - Bounded Contexts │
60
+ │ - Domain Entities │
61
+ │ - Architectural Rules │
62
+ │ - Invariants Validation │
63
+ └─────────────────────────────────────────────────────┘
64
+
65
+ ┌─────────────────────────────────────────────────────┐
66
+ │ Change Impact Engine │
67
+ │ - Affected Components Detection │
68
+ │ - Risk Assessment │
69
+ │ - Recommendations Generation │
70
+ │ - Impact Graph Building │
71
+ └─────────────────────────────────────────────────────┘
72
+
73
+ ┌─────────────────────────────────────────────────────┐
74
+ │ LLM Orchestrator │
75
+ │ - Claude / GPT Integration │
76
+ │ - Context Management │
77
+ │ - Architectural Decision Making │
78
+ │ - Code Generation & Review │
79
+ └─────────────────────────────────────────────────────┘
80
+
81
+ ┌─────────────────────────────────────────────────────┐
82
+ │ Interfaces (CLI, API, IDE) │
83
+ └─────────────────────────────────────────────────────┘
84
+ ```
85
+
86
+ ## Установка
87
+
88
+ ### 1. Клонировать репозиторий
89
+
90
+ ```bash
91
+ git clone https://github.com/yourusername/AIarhitector.git
92
+ cd AIarhitector
93
+ ```
94
+
95
+ ### 2. Установить зависимости
96
+
97
+ ```bash
98
+ npm install
99
+ ```
100
+
101
+ ### 3. Настроить окружение
102
+
103
+ Создайте файл `.env`:
104
+
105
+ ```bash
106
+ cp .env.example .env
107
+ ```
108
+
109
+ Заполните необходимые ключи:
110
+
111
+ ```env
112
+ # LLM API Keys
113
+ ANTHROPIC_API_KEY=your_key_here
114
+ OPENAI_API_KEY=your_key_here
115
+
116
+ # Vector Database
117
+ QDRANT_URL=http://localhost:6333
118
+ QDRANT_API_KEY=
119
+
120
+ # Database
121
+ DATABASE_URL=postgresql://localhost:5432/aiarhitector
122
+ ```
123
+
124
+ ### 4. Запустить Qdrant (векторная БД)
125
+
126
+ **Вариант A: Через скрипт (рекомендуется)**
127
+
128
+ ```bash
129
+ # Windows
130
+ start-qdrant.bat
131
+
132
+ # Linux/Mac
133
+ chmod +x start-qdrant.sh
134
+ ./start-qdrant.sh
135
+ ```
136
+
137
+ Скрипт автоматически:
138
+ - Использует Docker если установлен
139
+ - Или скачает и запустит Qdrant binary
140
+
141
+ **Вариант B: Через Docker Compose**
142
+
143
+ ```bash
144
+ docker-compose up -d
145
+ ```
146
+
147
+ **Вариант C: Вручную через Docker**
148
+
149
+ ```bash
150
+ docker run -d --name qdrant -p 6333:6333 -p 6334:6334 qdrant/qdrant
151
+ ```
152
+
153
+ После запуска Qdrant доступен на:
154
+ - **API:** http://localhost:6333
155
+ - **Dashboard:** http://localhost:6333/dashboard
156
+
157
+ ### 5. Собрать проект
158
+
159
+ ```bash
160
+ npm run build
161
+ ```
162
+
163
+ ## Использование
164
+
165
+ ### CLI Команды
166
+
167
+ #### 1. Индексирование проекта
168
+
169
+ ```bash
170
+ npm run index
171
+ # или
172
+ npx tsx src/cli.ts index --dir /path/to/project
173
+ ```
174
+
175
+ Результат:
176
+ ```
177
+ ✓ Проект проиндексирован!
178
+
179
+ 📊 Статистика:
180
+
181
+ Всего файлов: 156
182
+ Всего символов: 1243
183
+ Узлов в графе: 1399
184
+ Связей: 2847
185
+
186
+ 🔤 Символы по типам:
187
+
188
+ function: 687
189
+ class: 234
190
+ interface: 145
191
+ variable: 177
192
+
193
+ 🧠 Семантическая память:
194
+
195
+ Векторов: 1243
196
+ Точек: 1243
197
+ ```
198
+
199
+ #### 2. Анализ влияния изменений
200
+
201
+ ```bash
202
+ npx tsx src/cli.ts analyze \
203
+ --description "Объединить уроки и базу знаний в единую сущность" \
204
+ --files "src/lessons,src/knowledge-base" \
205
+ --type "refactor"
206
+ ```
207
+
208
+ Результат:
209
+ ```
210
+ 📋 ОТЧЁТ ОБ АНАЛИЗЕ ВЛИЯНИЯ
211
+
212
+ ⚠ ЗАТРОНУТЫЕ КОМПОНЕНТЫ:
213
+
214
+ Всего: 47
215
+ 🔴 Критические: 12
216
+ 🟠 Высокие: 18
217
+ 🟡 Средние: 11
218
+ 🟢 Низкие: 6
219
+
220
+ 🔴 КРИТИЧЕСКИЕ КОМПОНЕНТЫ:
221
+
222
+ - CourseService (src/services/course.ts)
223
+ Directly modified
224
+ - KnowledgeRepository (src/repositories/knowledge.ts)
225
+ Direct dependency
226
+ - ProgressTracker (src/tracking/progress.ts)
227
+ Direct dependency
228
+
229
+ ⚠ РИСКИ:
230
+
231
+ [HIGH] Change affects 12 critical components
232
+ 💡 Consider breaking into smaller changes
233
+
234
+ [CRITICAL] Modification may break API contracts
235
+ 💡 Review and update all API consumers
236
+
237
+ ✅ РЕКОМЕНДАЦИИ:
238
+
239
+ [CRITICAL] Review all affected components
240
+ 47 components will be affected by this change
241
+
242
+ [CRITICAL] Test critical components
243
+ Focus on: CourseService, KnowledgeRepository, ProgressTracker
244
+
245
+ [CRITICAL] Address high-severity risks
246
+ Change affects 12 critical components; Modification may break API contracts
247
+ ```
248
+
249
+ #### 3. Семантический поиск
250
+
251
+ ```bash
252
+ npx tsx src/cli.ts search \
253
+ --query "функции для обработки платежей" \
254
+ --limit 5
255
+ ```
256
+
257
+ Результат:
258
+ ```
259
+ 🔍 РЕЗУЛЬТАТЫ ПОИСКА:
260
+
261
+ 1. src/payments/processor.ts:45
262
+ Релевантность: 94.23%
263
+ export class PaymentProcessor { processPayment(...)
264
+
265
+ 2. src/payments/stripe.ts:12
266
+ Релевантность: 87.15%
267
+ async function handleStripePayment(...)
268
+
269
+ 3. src/billing/charge.ts:78
270
+ Релевантность: 82.34%
271
+ function calculateCharge(amount, currency)
272
+ ```
273
+
274
+ #### 4. Вопрос архитектору
275
+
276
+ ```bash
277
+ npx tsx src/cli.ts ask \
278
+ --question "Как организована работа с платежами в системе?"
279
+ ```
280
+
281
+ Результат:
282
+ ```
283
+ 💬 ОТВЕТ AI АРХИТЕКТОРА:
284
+
285
+ В системе используется слоистая архитектура для работы с платежами:
286
+
287
+ 1. **Слой домена** (src/domain/payments)
288
+ - PaymentEntity - доменная сущность платежа
289
+ - PaymentStatus - статусы платежа
290
+ - Бизнес-правила валидации
291
+
292
+ 2. **Слой приложения** (src/application/payments)
293
+ - PaymentService - основной сервис обработки платежей
294
+ - UseCase классы для различных сценариев
295
+
296
+ 3. **Инфраструктурный слой** (src/infrastructure/payments)
297
+ - StripeAdapter - интеграция со Stripe
298
+ - PaymentRepository - персистентность
299
+ - EventPublisher - публикация событий
300
+
301
+ Платежи обрабатываются асинхронно через очередь, что обеспечивает
302
+ надёжность и возможность повторных попыток при ошибках.
303
+ ```
304
+
305
+ #### 5. Генерация документации
306
+
307
+ ```bash
308
+ npx tsx src/cli.ts docs --output ARCHITECTURE.md
309
+ ```
310
+
311
+ Создаст подробную документацию по архитектуре проекта.
312
+
313
+ ## Поддерживаемые LLM провайдеры
314
+
315
+ AIArhitector поддерживает несколько LLM провайдеров:
316
+
317
+ ### 1. **Claude (Anthropic)** ⭐ Рекомендуется
318
+ - Лучшее качество для архитектурных решений
319
+ - Модели: `claude-opus-4-20250514`, `claude-sonnet-4-20250514`
320
+ - Контекст: до 200K токенов
321
+ - Цена: $$$ (высокая)
322
+
323
+ ### 2. **GPT (OpenAI)**
324
+ - Отличное качество
325
+ - Модели: `gpt-4-turbo-preview`, `gpt-4`, `gpt-3.5-turbo`
326
+ - Контекст: до 128K токенов
327
+ - Цена: $$ (средняя-высокая)
328
+
329
+ ### 3. **DeepSeek** 💰 Бюджетный вариант ⚡ С автооптимизацией
330
+ - Приемлемое качество для простых задач
331
+ - Модели: `deepseek-chat`, `deepseek-coder`
332
+ - Контекст: 16-32K токенов
333
+ - Цена: $ (очень низкая, ~99% дешевле GPT-4)
334
+ - **🚀 Автоматическая оптимизация промптов для лучшего качества!**
335
+
336
+ ⚠️ **Важно**: Для критических архитектурных решений рекомендуется Claude или GPT-4. DeepSeek подходит для разработки/тестирования.
337
+
338
+ 📖 **Документация**:
339
+ - [DEEPSEEK.md](./DEEPSEEK.md) - Подробное сравнение плюсов/минусов
340
+ - [DEEPSEEK_OPTIMIZATION.md](./DEEPSEEK_OPTIMIZATION.md) - Как работает автооптимизация
341
+
342
+ #### Что делает автооптимизация:
343
+
344
+ 1. **Упрощает промпты** - убирает сложные формулировки
345
+ 2. **Сокращает контекст** - только топ-3 самых важных фрагмента
346
+ 3. **Переводит на английский** - DeepSeek лучше понимает английский
347
+ 4. **Структурирует вывод** - требует четкий формат ответа
348
+ 5. **Обрезает до оптимума** - 8000 символов вместо 32K
349
+ 6. **Retry с упрощением** - до 2 попыток с прогрессивным упрощением
350
+
351
+ **Результат**: DeepSeek работает в **1.5-2x точнее** с автооптимизацией!
352
+
353
+ ### Пример использования DeepSeek
354
+
355
+ ```typescript
356
+ const ai = new AIArhitector({
357
+ rootDir: '/path/to/project',
358
+ llm: {
359
+ provider: 'deepseek', // вместо 'anthropic' или 'openai'
360
+ model: 'deepseek-chat',
361
+ temperature: 0.1,
362
+ maxTokens: 4096
363
+ },
364
+ vectorStore: {
365
+ url: 'http://localhost:6333',
366
+ collectionName: 'my-project'
367
+ }
368
+ });
369
+ ```
370
+
371
+ ## Платформы
372
+
373
+ ### 🐧 Linux
374
+
375
+ Для Linux созданы shell-скрипты:
376
+
377
+ - **`setup.sh`** - Автоматическая установка и настройка
378
+ - **`analyze-project.sh`** - Полный анализ проекта
379
+ - **`ask-question.sh`** - Интерактивные вопросы AI
380
+ - **`search-code.sh`** - Семантический поиск
381
+ - **`test-full.sh`** - Проверка всей системы
382
+ - **`start-qdrant-docker.sh`** - Запуск Qdrant в Docker
383
+
384
+ **Быстрый старт Linux:**
385
+ ```bash
386
+ # 1. Запустить установку
387
+ chmod +x setup.sh
388
+ ./setup.sh
389
+
390
+ # 2. Настроить .env с API ключами
391
+ nano .env
392
+
393
+ # 3. Запустить анализ
394
+ ./analyze-project.sh
395
+ ```
396
+
397
+ 📖 **Документация:**
398
+ - [SETUP_LINUX.md](./SETUP_LINUX.md) - Полное руководство по установке
399
+ - [QUICKSTART_LINUX.md](./QUICKSTART_LINUX.md) - Быстрый старт за 5 минут
400
+
401
+ **Преимущества Linux:**
402
+ - ✅ Лучше для production серверов
403
+ - ✅ Легкая автоматизация (cron jobs)
404
+ - ✅ Нет проблем с кодировкой
405
+ - ✅ Отличная поддержка Docker
406
+ - ✅ SSH доступ для удаленной работы
407
+
408
+ ## Программное использование
409
+
410
+ ```typescript
411
+ import { AIArhitector, Change } from 'aiarhitector';
412
+
413
+ // Создание экземпляра
414
+ const ai = new AIArhitector({
415
+ rootDir: '/path/to/project',
416
+ llm: {
417
+ provider: 'anthropic',
418
+ model: 'claude-sonnet-4-20250514',
419
+ temperature: 0.1,
420
+ maxTokens: 4096
421
+ },
422
+ vectorStore: {
423
+ url: 'http://localhost:6333',
424
+ collectionName: 'my-project'
425
+ }
426
+ });
427
+
428
+ // Инициализация
429
+ await ai.initialize();
430
+
431
+ // Анализ изменений
432
+ const change: Change = {
433
+ type: 'modify',
434
+ description: 'Обновление API аутентификации',
435
+ files: ['src/auth/api.ts'],
436
+ symbols: ['AuthController', 'loginUser']
437
+ };
438
+
439
+ const impact = await ai.analyzeChange(change);
440
+
441
+ console.log('Затронутые компоненты:', impact.affectedNodes.length);
442
+ console.log('Риски:', impact.risks);
443
+ console.log('Рекомендации:', impact.recommendations);
444
+
445
+ // Семантический поиск
446
+ const results = await ai.searchCode('функции валидации email', 5);
447
+
448
+ // Вопрос архитектору
449
+ const answer = await ai.askQuestion(
450
+ 'Какие компоненты отвечают за аутентификацию?'
451
+ );
452
+
453
+ // Ревью кода
454
+ const review = await ai.reviewCode(
455
+ codeContent,
456
+ ['src/auth/api.ts'],
457
+ );
458
+
459
+ // Генерация документации
460
+ const docs = await ai.generateDocumentation();
461
+ ```
462
+
463
+ ## Конфигурация архитектуры
464
+
465
+ Создайте файл `.aiarhitector/architecture.json`:
466
+
467
+ ```json
468
+ {
469
+ "boundedContexts": [
470
+ {
471
+ "id": "core",
472
+ "name": "Core Domain",
473
+ "description": "Основная бизнес-логика",
474
+ "modules": ["src/core"],
475
+ "dependencies": [],
476
+ "prohibitedDependencies": ["src/ui", "src/external"]
477
+ }
478
+ ],
479
+ "entities": [
480
+ {
481
+ "id": "user",
482
+ "name": "User",
483
+ "context": "core",
484
+ "properties": [...],
485
+ "relationships": [...],
486
+ "invariants": [...]
487
+ }
488
+ ],
489
+ "rules": [],
490
+ "invariants": []
491
+ }
492
+ ```
493
+
494
+ Пример см. в `.aiarhitector/architecture.example.json`
495
+
496
+ ## Этапы внедрения
497
+
498
+ ### Этап 1 (2-3 недели)
499
+ - ✅ Индексация кода (AST + граф)
500
+ - ✅ Семантическая память (векторная БД)
501
+ - ✅ Анализ влияния изменений (read-only)
502
+
503
+ ### Этап 2 (1-2 недели)
504
+ - ⏳ PR-анализ
505
+ - ⏳ Автоматические подсказки
506
+ - ⏳ Интеграция с IDE
507
+
508
+ ### Этап 3 (2-3 недели)
509
+ - ⏳ Микро-рефакторинг
510
+ - ⏳ Автоматическая документация
511
+ - ⏳ Continuous learning
512
+
513
+ ## Технологический стек
514
+
515
+ - **Языки**: TypeScript
516
+ - **AST**: Tree-sitter (TypeScript, JavaScript, Python)
517
+ - **Vector DB**: Qdrant
518
+ - **LLM**: Anthropic Claude, OpenAI GPT
519
+ - **Database**: PostgreSQL (опционально)
520
+ - **CLI**: Commander.js
521
+ - **Logging**: Custom logger with Chalk
522
+
523
+ ## Производительность
524
+
525
+ - Индексация 1000 файлов: ~30 секунд
526
+ - Анализ влияния: ~2-5 секунд
527
+ - Семантический поиск: ~100ms
528
+ - LLM запрос: ~2-10 секунд (зависит от модели)
529
+
530
+
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Dead Code Detector
3
+ *
4
+ * Обнаружение неиспользуемого кода:
5
+ * - Неиспользуемые экспорты
6
+ * - Неиспользуемые переменные
7
+ * - Unreachable code
8
+ * - Пустые функции/классы
9
+ * - Закомментированный код
10
+ */
11
+ import { DependencyGraph, Symbol } from '../types/index.js';
12
+ export interface DeadCodeResult {
13
+ unusedExports: UnusedExport[];
14
+ unusedVariables: UnusedVariable[];
15
+ unreachableCode: UnreachableCode[];
16
+ emptyBlocks: EmptyBlock[];
17
+ commentedCode: CommentedCode[];
18
+ summary: DeadCodeSummary;
19
+ }
20
+ export interface UnusedExport {
21
+ name: string;
22
+ type: string;
23
+ file: string;
24
+ line: number;
25
+ suggestion: string;
26
+ }
27
+ export interface UnusedVariable {
28
+ name: string;
29
+ file: string;
30
+ line: number;
31
+ scope: string;
32
+ }
33
+ export interface UnreachableCode {
34
+ file: string;
35
+ startLine: number;
36
+ endLine: number;
37
+ reason: string;
38
+ }
39
+ export interface EmptyBlock {
40
+ type: 'function' | 'class' | 'if' | 'catch' | 'loop';
41
+ name?: string;
42
+ file: string;
43
+ line: number;
44
+ }
45
+ export interface CommentedCode {
46
+ file: string;
47
+ startLine: number;
48
+ endLine: number;
49
+ linesCount: number;
50
+ preview: string;
51
+ }
52
+ export interface DeadCodeSummary {
53
+ totalIssues: number;
54
+ unusedExportsCount: number;
55
+ unusedVariablesCount: number;
56
+ unreachableCodeLines: number;
57
+ emptyBlocksCount: number;
58
+ commentedCodeLines: number;
59
+ estimatedCleanupHours: number;
60
+ }
61
+ export declare class DeadCodeDetector {
62
+ /**
63
+ * Анализ мёртвого кода
64
+ */
65
+ analyze(graph: DependencyGraph, symbols: Map<string, Symbol>, fileContents: Map<string, string>): Promise<DeadCodeResult>;
66
+ /**
67
+ * Поиск неиспользуемых экспортов
68
+ */
69
+ private findUnusedExports;
70
+ /**
71
+ * Поиск неиспользуемых переменных
72
+ */
73
+ private findUnusedVariables;
74
+ /**
75
+ * Поиск недостижимого кода
76
+ */
77
+ private findUnreachableCode;
78
+ /**
79
+ * Поиск пустых блоков
80
+ */
81
+ private findEmptyBlocks;
82
+ /**
83
+ * Поиск закомментированного кода
84
+ */
85
+ private findCommentedCode;
86
+ /**
87
+ * Подсказка для неиспользуемого экспорта
88
+ */
89
+ private getSuggestionForUnusedExport;
90
+ /**
91
+ * Сводка
92
+ */
93
+ private calculateSummary;
94
+ }
95
+ //# sourceMappingURL=dead-code.d.ts.map