Об этом проекте
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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.