Об этом проекте

AIForge — нативный терминальный AI-клиент на C++23, построенный вокруг нейтрального к провайдерам ядра выполнения. Он поддерживает потоковые взаимодействия с Venice через venice-cpp, однократные и конвейерные AI-сценарии, а также постоянные возобновляемые chat-сессии. Интерактивный интерфейс Chat использует TermForge для надёжного отображения в терминале. Основные возможности: - **Нейтральное к провайдеру ядро**: основная логика отделена от AI-провайдеров, поэтому runs и projections можно сохранять и воспроизводить. - **Постоянные сессии**: состояние сессий, события и расшифровки хранятся в SQLite; сессии можно возобновлять. - **Воспроизводимое планирование задач**: поддерживаются структурированный инструмент `ask_user`, изменения планов, графы задач и решения с точной ревизией и анализом конфликтов. - **Персоны из файлов**: системные инструкции загружаются из `.md` или `.txt` в XDG config и безопасно управляются с хешированием содержимого и атомарными обновлениями. - **Поиск и выбор моделей**: список моделей с возможностями, стоимостью и размером контекста; фильтрация и выбор через CLI или интерактивную команду `/model`. - **Временный выбор персонажа**: runtime-выбор provider-specific персонажа без изменения основной конфигурации. - **Локальное аудио (Linux)**: запись и воспроизведение через ALSA (RtAudio) без передачи аудио AI-моделям. - **Работа с изображениями**: генерация, просмотр и экспорт PNG, JPEG и WebP через RasterForge с content-addressed storage и проверкой данных. - **Ограниченное выполнение**: policy-gated запуск процессов, ограничения размеров ввода и вывода и capability restrictions повышают безопасность. - **Контроль использования и расходов**: учёт токенов и денежных затрат по каждой сессии и настраиваемые лимиты расходов. - **Система slash-команд**: единый расширяемый реестр команд с help, completion и проверкой доступности. - **Статический анализ и стиль**: форматирование clang-format 20 и анализ clang-tidy 20 включены в политику сборки. Проект собирается через CMake 3.28+ с GCC 13+ или Clang 17+ и зависит от TermForge, venice-cpp и RasterForge. SQLite используется для постоянного хранения сессий, а тесты и linting встроены в процесс сборки. Архитектура ориентирована на безопасность, детерминизм и аудит. Решения фиксируются в ADR и design-документах; среди важных ограничений — проверка UTF-8, content-addressed artifacts и строгий отказ от небезопасного ввода или symlink. AIForge работает в headless CLI и интерактивном TUI-режимах. При запуске в терминале без аргументов открывается интерактивное Chat workspace. Поддерживается передача через stdin для проверки diff, анализа кода и автоматизации. Лицензия BSD 3-clause.