Документация Инструменты разработчика

Инструменты разработчика

Страница Утилиты — мастерская инструментов для разработчиков и QA.
Большинство инструментов работают прямо в браузере. Ниже перечислены
инструменты, обращающиеся к серверу; локальные инструменты доступны
и при недоступном сервере.

Как найти инструмент

Кнопка с книгой рядом с поиском открывает это руководство в новой вкладке.
Она учитывает настройку показа ссылок на документацию в настройках пользователя.

Страница открывается каталогом карточек:

  • Поиск фильтрует инструменты по названию, описанию или ключевым словам —
    на русском и английском. Очистить запрос можно клавишей Escape или кнопкой
    очистки; поиск и управление историей работают с актуальным каталогом,
    включая плагинные инструменты.
  • Вкладки — привычная навигация (Форматтеры, Кодировщики, Конвертеры,
    Сравнение, Генераторы, Тестеры, Веб, Сеть, Текст, Математика, Дизайн
    тестов, QA-планирование) плюс вкладка «Все», где карточки всех
    инструментов. Внутри вкладки инструменты показаны карточками; клик по
    карточке открывает сам инструмент.
  • Избранное — нажмите закладку на карточке, чтобы закрепить инструмент в
    верхней строке. Избранное хранится в этом профиле браузера.
  • Недавние — пять инструментов, которые вы открывали последними.
  • У каждого инструмента есть прямая ссылка: /ui/utils?tool=<id> открывает
    страницу с уже развёрнутым инструментом (например, /ui/utils?tool=cron-guru).

Что внутри

Категория Инструменты
Форматтеры JSON (форматирование / валидация / минификация), XML, Markdown → HTML
Кодировщики Base64, URL, HTML-сущности, JWT-декодер, Текст ⇄ байты (bin/hex/oct/dec)
Конвертеры JSON ⇄ XML, Timestamp (Unix/ISO/RFC 2822), исправление раскладки (RU⇄EN), конвертер регистра, JSON ⇄ YAML, JSON ⇄ CSV, римские цифры
Сравнение JSON diff, текстовый diff
Генераторы UUID v4 / v7 / ULID, хеши (MD5, семейство SHA, CRC), Lorem ipsum, пароли, случайные токены, HMAC-подписи, одноразовые коды TOTP/HOTP, SVG-заглушки, пары ключей RSA
Тестеры Regex-тестер, JsonPath-тестер (считает сервер — ровно как условия моков), конвертер цветов, надёжность пароля
Веб Разбор URL, HTTP-статусы, MIME-типы, заголовок Basic Auth, разбор User-Agent, мета-теги Open Graph / Twitter
Сеть Калькулятор IPv4-подсетей, разбор диапазона IPv4, генератор IPv6 ULA (RFC 4193), генератор MAC-адресов
Текст Статистика текста, slugify (с транслитерацией кириллицы), NATO-алфавит, нумеронимы, нормализация email, конвертер списков
Математика Инженерный калькулятор, калькулятор процентов, системы счисления
Дизайн тестов Pairwise, классы эквивалентности и граничные значения, таблицы решений, пути переходов состояний
QA-планирование PERT-оценка, матрица рисков, калькулятор SLA, расчёт нагрузочного теста, разбор cron-выражений с ближайшими запусками

Генератор IPv6 ULA возвращает префикс сети, заканчивающийся на ::/48, и адрес узла с окончанием ::1 в этой сети. Серверная утилита ipv6-ula возвращает ту же пару в полях prefix и host. Каждый запуск создаёт новый префикс частной сети.

Два места обращаются к серверу намеренно: JsonPath-тестер (его ответ должен
в точности совпадать с тем, как условия моков считают выражение) и всё, что
находится в Администрировании. Остальное вычисляется локально.

Инженерный калькулятор

Откройте Математика → Инженерный калькулятор или /ui/utils?tool=math-eval.
Введите формулу — результат обновляется по мере ввода. Кнопки функций вставляют
функцию в позицию курсора или оборачивают выделенное число. Примеры заполняют
формулу; Копировать копирует только корректный результат, Очистить
сбрасывает формулу.

Используйте + - * / % ^, скобки, pi и e, а также функции
sqrt, abs, round, floor, ceil, min, max, pow, log, ln,
exp, sin, cos и tan. log — десятичный логарифм, ln — натуральный.
Тригонометрические функции принимают радианы: sin(30*pi/180) переводит
30 градусов и возвращает примерно 0.5. Десятичный разделитель — точка.
В браузере формула ограничена 4096 символами и 128 уровнями вложенности.
Ошибка очищает предыдущий результат. Расчёт выполняется локально;
формула не отправляется на сервер.

Расширение плагинами

Плагины могут добавлять утилиты без правки продукта: декларативный вклад
utilities (JSON-шаблон + схема полей, без кода) становится карточкой
каталога и инструментом агента с идентификатором <plugin-id>:<key>. Они
появляются рядом со встроенными во всех пространствах, где плагин включён, —
см. Написание плагинов.

Те же инструменты для агентов

Агенты, подключённые по MCP, получают вычислительное ядро набора в виде двух
инструментов:

  • utility_catalog — перечисляет доступные утилиты и их входные поля.
  • run_utility — выполняет одну: {"tool": "uuid-gen", "input": {"count": 1}}.

Та же поверхность доступна скриптам через REST API:

GET /api/v1/utils/tools          # каталог
POST /api/v1/utils/run           # {"tool": "<id>", "input": {...}}

Типичные задачи агента: создать тестовые
фикстуры (uuid-gen, token-gen), декодировать JWT, разобрать cron-расписание
(cron-next), конвертировать JSON в YAML или безопасно вычислить выражение.

В серверных вызовах каждое строковое поле ограничено 1 МиБ. Используйте
типы полей и варианты из utility_catalog: некорректные значения отклоняются,
а не преобразуются молча. Расширенные результаты преобразования списков,
CSV, JSON/YAML и текста в байты ограничены 8 МиБ преобразованного текста. При достижении
лимита уменьшите входные данные. Выражения с чрезмерной вложенностью
отклоняются.

Поля с секретами HMAC/OTP, учётными данными Basic Auth и JWT не сохраняются
в браузерные черновики; ранее сохранённые значения этих полей удаляются.

Серверный каталог GET /api/v1/utils/tools возвращает tools и count. Необязательный параметр запроса category фильтрует по точному имени категории; без него или с пустым значением возвращаются все инструменты. Неизвестная категория возвращает пустой массив и count равный нулю. MCP-инструмент utility_catalog использует тот же фильтр. POST /api/v1/utils/run принимает tool и input; поля успешного результата зависят от выбранного инструмента, а неверный запрос возвращает сообщение error.

Встроенные чаты и задачи Mockarty отклоняют вызовы run_utility с input.secret или input, который не является объектом. Весь ответ отклоняется до исполнения любого инструмента из этого ответа; уже оплаченные токены модели учитываются. Не передавайте секреты подписи или OTP в промпт агента. Используйте утилиту непосредственно в браузере либо через stateless REST/MCP-вызов из клиента под вашим контролем. Сценарий со ссылкой на сохранённый секрет для встроенного агента пока недоступен. Во встроенном чате текст показывается после проверки полного ответа.

Браузерный конвертер JSON/YAML также ограничивает входные данные 1 МиБ и вложенность 128 уровнями. Циклические, чрезмерно сложные или расширенные документы отклоняются до формирования результата. Консервативный бюджет результата — 8 МиБ; ошибка или пустой ввод очищают предыдущий результат.

Утилиты плагинов используют namespace авторизованного вызова. Поля ввода не позволяют выбрать другой namespace; отключённый плагин или недоступная проверка активации останавливают выполнение. Встроенные агенты проверяют те же правила активации, что REST/MCP. Их встроенный каталог перечисляет встроенные утилиты; идентификаторы плагинов можно получить из каталога REST/MCP для своего namespace. HTTP-утилиты плагинов могут отправлять внешние запросы. Если запись завершилась ошибкой с неизвестным исходом, проверьте результат на стороне назначения перед повтором; сервер не отправляет запрос повторно автоматически. Отмена на стадии подготовки не запускает HTTP-запрос.

Откройте карточку плагина, заполните объявленные поля и выберите Выполнить. Доступность зависит от выбранного namespace. Поля и результат не сохраняются как черновики утилит; переход на другую страницу или выбор другого инструмента удаляет их. При отказе каталога доступна кнопка Повторить, а ошибка не изображается пустым каталогом. Выполнение автоматически не повторяется: после записи с неизвестным исходом сначала проверьте результат на стороне назначения.

Text ⇄ Bytes по умолчанию разделяет байты пробелами. Без разделителя каждый байт занимает фиксированное число цифр: 8 в двоичной записи, 3 в восьмеричной/десятичной и 2 в шестнадцатеричной. Такой результат можно преобразовать обратно. В серверном вызове пропустите delimiter для пробелов либо задайте "" для компактной записи. Значения вне диапазона 0–255 отклоняются. JSON ⇄ CSV сохраняет последнюю пустую ячейку в кавычках ("").

При смене namespace каталог плагинных утилит загружается заново, а форма, открытая в прежней области, закрывается. Если каталог недоступен, нажмите «Повторить»; отказ загрузки не показывается как успешно полученный пустой каталог. Закрытие формы не доказывает, что уже отправленный HTTP-запрос не имел эффекта; проверьте его результат на стороне назначения перед повторной записью.

Серверный каталог плагинов соблюдает права доступа и без параметра namespace. Для аудитора требуется явное членство в namespace по умолчанию; пропуск параметра не предоставляет доступ. Остальные авторизованные пользователи сохраняют доступ к общей области для экспериментов.