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

<Meta title='@dxtmisha/ru/scripts/Classes/AiClaudeCliLite - Легковесный класс Claude CLI'/>

# Класс AiClaudeCliLite

Класс `AiClaudeCliLite` представляет собой легковесную реализацию `AiAbstract`, взаимодействующую с официальным инструментом Claude CLI посредством системных команд оболочки (shell). Он управляет временными файлами промптов с помощью `ApiTmp`, чтобы обойти ограничения на длину аргументов терминала.

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

- **Выполнение команд в оболочке** — использует системную оболочку (`node:child_process`) для вызова CLI-команд `claude`.
- **Маршрутизация через временные файлы** — использует `ApiTmp` для сохранения длинных промптов/содержимого в локальные файлы `.txt`, размечая ссылки на них с помощью аннотации `@` для стабильной обработки.
- **Безопасность промптов** — автоматически экранирует двойные кавычки и принудительно навязывает строгий формат вывода ответов (например, `Output strictly the code/answer. No preamble, no chatter, no reasoning`).
- **Очистка ресурсов** — автоматически удаляет все временные папки и файлы при получении ответа или возникновении ошибки.

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

`AiClaudeCliLite` требует ручной передачи учетных данных через конструктор.

**Параметры конструктора:**
- `key: string` — API-ключ для сервиса Anthropic.
- `model: string` — начальный идентификатор модели.

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

const ai = new AiClaudeCliLite(process.env.ANTHROPIC_API_KEY, 'claude-3-5-sonnet-20241022')
```

## Методы

### Внутренние хуки реализации

Эти защищенные методы реализуют обязательный интерфейс расширения `AiAbstract`:

- `init(): void` — Устанавливает `this.ai` в пустой объект.
- `toImages(): any` — Возвращает пустой массив `[]` (изображения игнорируются при выполнении через CLI).
- `toContents(): any` — Преобразует накопленные `contents` во временные файлы с помощью `ApiTmp.createFile` и возвращает их отформатированные пути.
- `response(model: string, contents: string): Promise<string>` — Объединяет все временные файлы, экранирует кавычки, конструирует команду оболочки, запускает ее и очищает ресурсы.
