Документація для розробників аддонів StreamKit+

Інтеграційні аддони розширюють StreamKit+ з ізольованого worker-процесу. Код аддона виконується у VM-пісочниці та використовує глобальні API (network, events, api, …) — імпорт SDK всередині worker недоступний.

Розділи

Розділ Опис
Початок роботи Архітектура, встановлення, структура проєкту, @rocketman-streamkit/addon-generator
Життєвий цикл Завантаження, перезапуск аддона та захист від циклу падінь
manifest.json Поля маніфесту, типи, правила валідації
Публікація та релізи Реєстрація в каталозі, структура GitHub-релізу, кеш і синхронізація версії
Налаштування TypeScript tsconfig.json, типи, збірка
Дозволи Прапорці можливостей і підтвердження користувачем
Схема налаштувань GenerateConfig() і UI налаштувань
Локалізація Багатомовні рядки в коді аддона
Безпека Обмеження мережі, токени, ліміти пісочниці
OAuth і секрети Обмін токенів через вихідний HTTP

API пісочниці

Розділ Опис
Огляд API Усі глобальні об'єкти
events Шина подій і прив'язка HTTP-обробників
network HTTP-клієнт, ендпоінти, WebSocket, SSE, SignalR, Socket.IO
api.config і storage Параметри, конфіг застосунку, файлове сховище
Доступ до файлів Читання/запис за схваленими користувачем шляхами (files API)
Озвучення тексту (tts) Озвучення через TTS-движок користувача (дозвіл TTS)
LLM Access (llm) Запити до нейромереж через профілі користувача (дозвіл LLM)
Завантаження yt-dlp (ytdlp) Завантаження медіа через вбудований yt-dlp (FILE_ACCESS + NETWORK_REQUEST)
addons (RPC) Запити та події між аддонами
dashboard Віджет подій, чат, тригери оверлею
status, notify, ui Рядок стану, онлайн глядачів, сповіщення, сторінки OAuth
Валюта Основна валюта користувача та конвертація сум
Визначення мови (language) Визначення мови тексту через fastText (~176 мов; без дозволу)
Утиліти Таймери, crypto, console, режим розробника

Категорії аддонів

Розділ Опис
Платформені аддони platform.streaming, platform.donation
Оверлеї Ефекти, статичний web, просте медіа
Віджети Постійні web-сторінки та OBS Browser Source
Застосунки Вікна всередині основного застосунку
Ігрові інтеграції Внутрішньоігрові ефекти та вхідні тригери

Типізація

Встановіть оголошення пісочниці з npm — версія пакета має збігатися з цільовою версією StreamKit+:

npm install --save-dev @rocketman-streamkit/types

Див. Налаштування TypeScripttsconfig.json і глобали (declare global, без імпортів у коді аддона).