samples/claude-code/ в репозитории
(veriqa.app/source), распространяется по MIT и рассчитан на то, чтобы
его переработали под свои цели. Руководство по установке — его README.
Три демо
Затратный прогон требует двух согласующих по очереди — разработчика, затем менеджера, — каждого
со своего мессенджер-аккаунта, записанного заранее. Подтверждение с любого другого аккаунта
отклоняет действие.
Как это работает
Плагин — мод Claude Code, то есть плагин из функций-хуков, работающий внутри Claude Code 2.1.295 или новее, — поэтому согласование идёт в самой среде запуска агента, без участия модели.- Хук плагина удерживает вызов инструмента или slash-команду и сверяет их со своими правилами. Ничего не совпало — Claude Code работает как обычно.
- Правило совпало — плагин создаёт подтверждение через
POST /api/transaction/confirmation(client credentials). Действие ждёт; ничего не выполнено. - Плагин открывает собственную панель: что спрашивается, QR-код, который вернула Veriqa, и ссылка. В узком терминале строка статуса говорит, чего ждём, а панель открывает команда.
- Хук ждёт исхода, читая
GET /api/transaction/{id}/result, пока транзакция не закончится. Действие выполняется только приconfirmed; отказ, истечение, отказ в панели, подтверждение с чужого аккаунта или недоступный хост его отклоняют. В цепочке панель переходит к коду следующего согласующего.
Каналы примера
По умолчанию человек отвечает в Telegram — хост читает его через длинный опрос (long polling), поэтому демо работает наlocalhost. Messenger, WhatsApp и Instagram, а также страница, где человек выбирает
один из этих каналов на телефоне, требуют хоста на публичном HTTPS-адресе: Meta доставляет ответ
вебхуком, а страница должна открываться с телефона.
Почему не кнопка «Разрешить» в самой среде запуска агента
- Названный человек. Хост проверяет, какой мессенджер-аккаунт подтвердил, а не только то, что кто-то нажал кнопку.
- Кто-то кроме разработчика. Цепочка спрашивает второго человека, и никто не утверждает собственные траты.
- След вне сессии агента. Одобрения записываются на хосте Veriqa, а не в локальный транскрипт, который тот же пользователь может отредактировать.
- Вопрос, который пишет не агент, и ответ с отдельного устройства по каналу, которым агент не управляет.