Инструменты разработчика
Страница Утилиты — мастерская инструментов для разработчиков и 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 по умолчанию; пропуск параметра не предоставляет доступ. Остальные авторизованные пользователи сохраняют доступ к общей области для экспериментов.