Prospero — кодинг-обвязка на C++, которая не мешает вашему фаззеру
Крис Веллонс считает, что обвязка — это «curl, склеенный с popen()», и написал свою, которая потребляет примерно на два порядка меньше ресурсов, чем конкуренты на веб-стеке.
Prospero работает с llama.cpp, OpenRouter или API Anthropic и OpenAI. У каждого ожидания есть дедлайн, долгие shell-команды превращаются в фоновые задачи, а остановка команды убивает всё её дерево процессов.
Реакция в треде разделилась по поводу языка. Ветеран C++, который сам написал GUI-фреймворк, сказал, что никогда не выбрал бы C++ для интерфейса агента.
Дедлайны вместо нянченья

Пост Веллонса описывает обвязку на C++ и Dear ImGui, главное правило которой — «никогда не жди вечно». Запросы на разрешение по таймауту превращаются в отказ, у сетевых вызовов есть таймауты, а shell-команда, которая не укладывается в таймаут, становится асинхронной задачей, и агент может проверить её позже. Остановка команды убивает всё её дерево процессов. Движок может работать headless на удалённом хосте, а интерфейс остаётся на десктопе. Поскольку обвязка лёгкая, по его словам, во время кампании фаззинга Linux OOM-килер не выберет обвязку вместо цели фаззинга.
Community Edition бесплатна на GitHub, но показывает напоминающее сообщение и не включает встроенные headless-движки. Professional Edition стоит символических денег.
C++ для интерфейса, построенного на markdown
«Интерфейсы агентов состоят из markdown, HTML, больших прокручиваемых списков, текстового потока, юникод-символов и всего прочего, в чём C++-фреймворки ужасны, а в HTML/CSS/JS это пара пустяков.. Вы храбрец!» — julesrms, автор GUI-фреймворка JUCE на C++
Другие усомнились в упаковке. Один комментатор запутался в проекте под лицензией Unlicense, который также продаёт версию Pro, и спросил, где лежит код Pro.
Чего хочет работающий пользователь
Разработчик, который пишет собственный GUI-агент, назвал недостаток нынешних CLI-агентов: пока пишешь промпт, внезапный вопрос Y/N может съесть нажатие клавиши и увести агента не туда. GUI-обвязка могла бы это исправить, если бы владела собственным фокусом ввода.
Получайте такие разборы каждый день
Главные истории Hacker News — на email, в Telegram или RSS.
GCC выбирает таблицу переходов вместо дерева сравнений, считая сравнения, а не метки
Случаи 0, 7, 14, 21, 34 компилируются в таблицу переходов. Случаи 0, 8, 16, 24, 40 — в сравнения. Switch из двадцати меток в диапазоне от 0 до 87 тоже теряет таблицу.