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

<Meta title='@dxtmisha/ru/scripts/bin/dxt-component-wiki - ИИ Документация Компонентов'/>

# dxt-component-wiki

Команда `dxt-component-wiki` отвечает за автоматическую генерацию детализированной MDX-документации, типов компонентов и Storybook историй с помощью ИИ для дизайн-системы.

## Ключевые возможности

- **Точечная AI-генерация файлов**: Учитывая путь к отдельному компоненту, генератор ИИ может полностью переопределить или обновить стандартные артефакты, такие как `MDX` заметки, `types.ts` и `stories.ts`.
- **Резервное копирование (Legacy Backup)**: Безопасно сохраняет предыдущие версии измененных файлов, добавляя суффикс `__old.txt`, чтобы предотвратить случайную потерю кода.
- **Настраиваемые инструкции для ИИ**: Включает возможность добавления ваших собственных точечных инструкций к выполняемому промпту ИИ при вызове команды.

## Как это работает?

Процесс AI Wiki генерации обрабатывает уже существующий путь компонента:
1. Скрипт запускает временную фоновую компиляцию во временную среду дистрибуции для получения корректной информации о поведении TypeScript.
2. Он читает конфигурацию для поиска файлов с локализованными системными промптами (например, `componentPrompt.ru.txt`) и объединяет их с вашим реальным оригинальным кодом компонента (MDX, исходники vue, истории storybook).
3. Единый комплексный ответ от ИИ-модели интеллектуально распределяет новые фрагменты кода прямо в ваш репозиторий при помощи движка `ComponentWikiFile`.

## Настройка и запуск

Конфигурация генератора ИИ определяется централизованно в файле `design.config.json` вашего проекта. **Создайте этот файл в корне вашего проекта.** Выполните эти точные шаги для настройки:

1. **Настройте параметры ИИ в `design.config.json`**:
   Добавьте ключ API, целевую модель и язык документации напрямую в конфигурационный объект. Важно отметить, что `wikiLanguage` определяет не только язык текста, но и какой базовый промпт загрузит система (например, `componentPrompt.ru.txt`).
   ```json
   {
     "wikiLanguage": "ru",
     "aiType": "gemini",
     "aiModel": "gemini-2.0-flash",
     "aiKey": "ВАШ_API_КЛЮЧ"
   }
   ```
2. **Запуск AI-документирования для компонента**:
   Для анализа конкретного компонента с помощью ИИ, передайте генератору его относительный путь (например, `Button`). Вы можете опционально включить дополнительные инструкции для промпта:
   ```bash
   npx dxt-component-wiki <component-path> "[optional-prompt-instruction]"
   ```
   **Пример:**
   ```bash
   npx dxt-component-wiki "ButtonBase" "Убедись, что в документации указано, что он отключен по умолчанию"
   ```

## Дополнительная информация

### Зависимость от сборки проекта

Генерация через ИИ глубоко связана со сборкой приложения в реальном времени. Скрипт инициирует `npm run build` во временную папку `dist-temporary`. **Если в вашем проекте есть ошибки компиляции TypeScript, то генерация контекста для ИИ систематически завершится сбоем.**

### Автоматическое создание бэкапов (`__old.txt`)

Если `ComponentWikiFile` определяет, что применяемые ИИ обновления сильно отличаются от оригинальных исходных данных, механизм активно делает резервную копию файлов в формате `[filename]__old.txt`, что позволяет произвести откат без лишних сложностей.
