Afina

Скачать приложение

AppleWindows
RU

RPA-модули — Node.js-код внутри ваших сценариев

Пишите собственные Node.js-модули с npm-зависимостями и вызывайте их из RPA-сценариев через блок executeModule. Подписанное исполнение, изолированный рантайм, полная переиспользуемость — мост между no-code автоматизацией и настоящей разработкой.

RPA-модули — Node.js-код внутри ваших сценариев
Node.js • npm • executeModule

Когда кликов мало — переходите в код

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

Пишите Node.js, доставляйте как npm-пакет

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

Вызывайте модули из RPA-сценариев

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

Полная экосистема npm

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

Ed25519-подпись исполнения

У каждого модуля Ed25519-подпись над md5-манифестом файлов. Executor отказывается запускать неподписанный или устаревший модуль — защита от случайного повреждения и supply-chain подмен. Вместе с MCP-сервером ИИ-агенты тоже могут писать модули безопасно.

FAQs

Скрипт — это граф блоков на визуальном холсте. Модуль — это Node.js-функция, чистый код, который вы оборачиваете form-схемой и зовёте изнутри скрипта через блок executeModule. Скрипт даёт оркестрацию; модуль — императивную логику, когда блоков недостаточно.

Вызовите create_module через API, MCP или UI — Afina скаффолдит папку с index.js, utils.js, package.json и settings.json. Правите index.js в редакторе, добавляете npm-зависимости, потом resign_module — executor принимает новые файлы. Новый модуль появляется в пикере executeModule.

Чтобы executor не запускал подменённый код. Каждое сохранение обновляет Ed25519-подпись над md5-манифестом всех файлов модуля. Если подпись не сходится с манифестом, executor отказывается стартовать — отдаёт явный modules.error.signature_invalid.

Практически любые. Afina выполняет npm install в папке модуля, поэтому зависимости вашего package.json лежат там изолированно. Список allowedFunctions runtime'а контролирует, какие Node-built-in'ы доступны; можно расширять или ограничивать на модуль.

Да — через хелперы модулей Afina. Модуль получает context, который позволяет звать те же примитивы, что и сценарии: navigate, click, eval, set/get переменных аккаунта, дёрнуть локальный API. Работает в той же задаче, что и родительский сценарий.

Да. MCP-сервер отдаёт инструменты create_module/update_module/resign_module, а LLM использует хостовые файл-инструменты (Read/Edit/Write) для правки файлов модуля в moduleDirAbs. Подпись — это то, что гарантирует, что ИИ выкатил ровно то, что запустится.

Кастомный Node.js внутри антидетект-браузера

Пишете модуль, подписываете, кидаете в сценарий — ваш код, подписанный и изолированный, работает на реальном браузере.

RPA-модули — Node.js-код внутри сценариев | Afina