Metadata-Version: 2.1
Name: cluster-sdk
Version: 0.1.0
Summary: Public Python SDK and project tools for Cluster modules
Requires-Python: >=3.12
Provides-Extra: dev
Requires-Dist: pyright==1.1.414; extra == 'dev'

# Cluster SDK

Устанавливаемый Python-пакет для разработки модулей Cluster. Содержит публичные классы и конструкторы, типы, проверку проекта и сборку архива. Python 3.12 или новее.

Рабочие `app` и `loader` передаёт Cluster при запуске модуля. Локально доступны конструкторы текста, кнопок, клавиатур, страниц, полей, документов и графических сцен. Запросы к Telegram, базе, файлам и остальным службам выполняет подключённый транспорт; пакет не содержит ядро, серверный ввод-вывод, сессии, ключи или серверные проверки прав.

Команды:

```bash
python -m cluster_sdk init ./my-module --name "My module"
python -m cluster_sdk check ./my-module
python -m cluster_sdk pack ./my-module
```

`init` настраивает редактор и создаёт основу модуля. Для готового проекта или папки с несколькими модулями добавь `--existing`, чтобы не создавать шаблон. Существующие исходники и описание версии не заменяются. Пользовательские настройки сохраняются; пути интерпретатора обновляются с резервной копией JSON.

`check` проверяет синтаксис, импорты и описание обработчиков. При установленном Pyright дополнительно проверяются типы; `--types` требует его наличия. Проверка импорта выполняет ваш Python-код локально, не является изоляцией и не вызывает `init` или обработчики.

`pack` создаёт архив с `main.py` и `manifest.json` в корне. Виртуальные окружения, кеши, Git, настройки редактора и тесты в него не добавляются. Созданный архив загружается на сайт Cluster для серверной проверки и установки.

Исходный код пользовательского модуля не нужно менять для переноса между локальным проектом и Cluster. Типы доступны через `cluster_sdk`, например `from cluster_sdk import App, Event, loader`. Для аннотаций используется `TYPE_CHECKING`; классы, которые действительно создаются локально, импортируются обычно.

Пакет относится к зависимостям разработки. Его не нужно добавлять в `requirements` устанавливаемого модуля: рабочий SDK уже предоставляет Cluster.

Полная инструкция: https://cluster.ninepeaks.dev/developers/docs/SDK_SETUP.html
