
Пишите Node.js, доставляйте как npm-пакет
Каждый модуль — папка с index.js, package.json и любыми npm-зависимостями. Правьте файлы в любимом редакторе — VS Code, Cursor, JetBrains — Afina следит и пере-подписывает по запросу.
Пишите собственные Node.js-модули с npm-зависимостями и вызывайте их из RPA-сценариев через блок executeModule. Подписанное исполнение, изолированный рантайм, полная переиспользуемость — мост между no-code автоматизацией и настоящей разработкой.

Большинство RPA-сценариев живут на визуальном холсте. Сложные 10% — кастомные API-вызовы, нишевые библиотеки, серьёзные трансформации данных — хотят настоящего кода. Модули Afina — это полноценные Node.js-пакеты с npm-зависимостями, Ed25519-подписью для безопасного исполнения и чистым form-based UI в родительском сценарии.

Каждый модуль — папка с index.js, package.json и любыми npm-зависимостями. Правьте файлы в любимом редакторе — VS Code, Cursor, JetBrains — Afina следит и пере-подписывает по запросу.

Новый блок executeModule принимает hash модуля + form-payload. Функция модуля получает args, общается с браузером через хелперы Afina, возвращает значение в сценарий. Нативный interop с остальным стеком scripts-and-automation.

Берите любимые пакеты — axios, cheerio, ethers, sharp, что угодно. Afina ставит зависимости в папку модуля; runtime allowlist ограничивает поверхность Node API, чтобы криво написанный модуль не уронил машину. Идеальный спутник для локального API.

У каждого модуля Ed25519-подпись над md5-манифестом файлов. Executor отказывается запускать неподписанный или устаревший модуль — защита от случайного повреждения и supply-chain подмен. Вместе с MCP-сервером ИИ-агенты тоже могут писать модули безопасно.
Пишете модуль, подписываете, кидаете в сценарий — ваш код, подписанный и изолированный, работает на реальном браузере.
Модули в Afina позволяют писать настоящий Node.js-код, который выполняется в контексте антидетект-браузера, вызывать его из RPA-флоу, переиспользовать на профилях и поставлять с криптоподписями, чтобы ничего не запускалось без подписи. Подключите npm-экосистему к автоматизации, не жертвуя безопасностью.
Визуальные RPA-блоки покрывают 80% автоматизации; локальный HTTP API покрывает engineering-heavy 10%. Модули закрывают gap — когда flow нужен кастомный API-вызов, крипто-подпись, сложный парсер или приватный SDK, вы пишете Node.js-модуль один раз, подписываете, кладёте в RPA-библиотеку, и каждый flow может его использовать.
Стандартные CommonJS / ESM-модули. Используйте любой npm-пакет (axios, ethers, jsonwebtoken, sharp, ваш приватный SDK). Модули запускаются в Node.js-субпроцессе с контекстом профиля внутри.
Вызывайте модуль из любого RPA-флоу через блок executeModule. Передал input, получил output, продолжаешь flow. Один модуль — каждый скрипт выигрывает. Уходит копи-паст ад из 30 скриптов с одной и той же Puppeteer-логикой.
Каждый модуль несёт Ed25519-подпись над md5-манифестом своих файлов. Executor сверяет перед каждым запуском. Один изменённый байт — отказ. Часть zero-knowledge модели: никаких тихих supply-chain подмен, никаких вредоносных dependency-update втихую.
Через MCP-сервер LLM может создать модуль, отредактировать файлы, запустить и переподписать через инструмент resign_module. Агенты собирают флоу end-to-end, не покидая хост-редактор.
Модули живут в вашем moduleDirAbs на диске. Push в Afina cloud или Google Drive для шеринга между командой и машинами — opt-in на модуль.
Крипто-флоу с подписью транзакций на устройстве (ключ не покидает машину). Кастомные интеграции с внутренними SaaS-API без публичного web UI. Тяжёлый парсинг — PDF-extract, OCR post-processing, парсинг HTML маркетплейсов. Интеграция CAPTCHA-сольверов. Везде, где вы написали бы скрипт на Puppeteer или Playwright, но хотите per-profile fingerprint-контекст и общую переиспользуемость в RPA-библиотеке.