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

<Meta title='@dxtmisha/ru/scripts/Classes/AiDocItemComposables - Генератор документации композаблов через ИИ'/>

# Класс AiDocItemComposables

Специализированный класс для генерации и обновления документации Vue-композаблов (Composables) с помощью ИИ. Он автоматизирует процесс анализа функций композиции, сбора контекста и создания высококачественной MDX-документации.

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

- **Ориентированность на Composables** — использует специальные шаблоны (`aiDocComposablePrompt.en.txt`), адаптированные для документирования функций композиции.
- **Визуальные демо** — включает эталонные данные из `demoComposableEn.mdx` для поддержания единого стиля документации композаблов.
- **Полная автоматизация** — берет на себя технические этапы: чтение кода, проверку статуса сборки и запись финальных результатов.
- **Умная маршрутизация** — автоматически рассчитывает подходящий путь хранения в Wiki и заголовок страницы.

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

Инициализируйте `AiDocItemComposables`, указав путь к проекту и метаданные целевого файла.

**Параметры:**
- `path: string` — базовый путь к директории проекта.
- `item: GitFileItem` — информация о конкретном файле композабла.

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

const composableDoc = new AiDocItemComposables('/src/composables', gitFileItem)

// Запуск генерации документации
await composableDoc.make()
```

## Методы

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

- `make(): Promise<void>` — выполняет полный цикл документирования: проверяет наличие обновлений, подготавливает контекст для ИИ и записывает результат.

### Метаданные

- `getTitle(): string` — формирует стандартизированный заголовок для документации композабла.
- `getPathWiki(): string[]` — рассчитывает путь в Wiki на основе расположения файла в проекте.
- `isBuildDisabled(): boolean` — проверяет, содержит ли исходный файл маркер `// wiki:build-none`, чтобы пропустить генерацию.

## Типы

### GitFileItem
Представляет информацию о файле, управляемом Git.
- `path: string` — относительный путь к файлу.
- `pathByOS: string` — абсолютный путь, специфичный для ОС.
- `date: string` — дата последнего изменения.
- `item: any` — зарезервировано для дополнительных метаданных.
