import {Meta} from '@storybook/addon-docs/blocks'

<Meta title='@dxtmisha/ru/scripts/Classes/DesignTypes - Генератор типов для ИИ'/>

# Класс DesignTypes

Класс `DesignTypes` — это специализированная утилита, предназначенная для сокращения разрыва между сложными определениями типов в коде и ИИ-помощниками по кодированию. Она автоматизирует извлечение, очистку и сжатие файлов деклараций TypeScript (`.d.ts`), используя ИИ для создания гипер-минималистичной версии системы типов проекта, которая обеспечивает максимальный контекст при минимальном потреблении токенов.

## Ключевые особенности

- **Автоматическое обнаружение** — рекурсивно сканирует директории сборки для поиска релевантных файлов деклараций типов.
- **Интеллектуальная фильтрация** — автоматически исключает внутренние пропсы конструкторов и второстепенные типы логики, сохраняя публичные API.
- **Сжатие на базе ИИ** — использует промпты LLM для удаления ненужных метаданных (импортов, комментариев, пустых строк) и консолидации определений.
- **Единый вывод** — объединяет несколько фрагментированных файлов деклараций в одну связную библиотеку типов.
- **Оптимизация контекста** — приоритизирует интерфейсы, перечисления и алиасы типов, наиболее важные для понимания ИИ.

## Инициализация

Инициализируйте генератор, указав исходную директорию, где расположены скомпилированные файлы деклараций.

**Параметры:**
- `dir: string` — путь к входной директории (по умолчанию `'dist'`).

```typescript
import { DesignTypes } from '@dxtmisha/scripts'

const generator = new DesignTypes('packages/core/dist')
generator.make()
```

## Методы

### Управление

- `make(): void` — запускает полный конвейер генерации: обнаружение, объединение, обработку ИИ и сохранение.

## Операции

### Конвейер генерации типов

При выполнении `make()` класс координирует многоэтапный рабочий процесс:
1. **Фильтрация файлов (`getListByFilter`)**: движок сканирует директорию на наличие файлов `.d.ts`, отфильтровывая детали внутренней реализации, такие как `props.d.ts` или `types.d.ts` внутри папок конструкторов.
2. **Валидация контента (`isContent`)**: проверяет, что каждый файл действительно содержит значимые определения типов (интерфейсы, типы или перечисления) перед обработкой.
3. **Консолидация (`toOneFile`)**: содержимое всех идентифицированных файлов объединяется в одну большую строку, помеченную путями к оригинальным файлам для контекста.
4. **Трансформация ИИ (`toAiEdit`)**: объединенный контент отправляется ИИ-помощнику со специфическими инструкциями по удалению шаблонного кода, неанглийских комментариев и минимизации синтаксиса.
5. **Сохранение (`save`)**: финальная библиотека типов высокой плотности сохраняется по настроенному пути вывода (обычно указанному в `UI_FILE_AI_TYPES`).

### Кейс: Внедрение контекста для ИИ

Основная цель этого класса — создание «артефакта знаний», который может быть внедрен в системный промпт LLM, работающих над проектом. Предоставляя чистый, сжатый обзор всех доступных типов и интерфейсов, ИИ может писать типобезопасный код и понимать архитектуру компонентов с значительно более высокой точностью и меньшими затратами.
