Sobre o projeto
O AIForge é um cliente de IA nativo em terminal C++23 projetado em torno de um núcleo de tempo de execução neutro em relação ao provedor. Ele suporta interações de streaming via Venice (através do venice-cpp), fluxos de trabalho de IA de execução única e baseados em pipes, e sessões de chat persistentes e resumíveis. A interface interativa de Chat é construída sobre o TermForge para renderização robusta no terminal.
Principais recursos incluem:
- Provider-Neutral Kernel: A lógica central é desacoplada dos provedores de IA, permitindo execuções duráveis e reproduzíveis, além de projeções.
- Durable Sessions: O estado da sessão, eventos e transcrições são armazenados persistentemente usando SQLite; as sessões podem ser retomadas ou continuadas.
- Replayable Task Planning: Suporta uso estruturado da ferramenta ask_user, revisões de planos, grafos de tarefas e decisões de revisão exata com análise de conflitos e rastreamento de backlog com suporte de repositório.
- File-Backed Personas: Instruções do sistema carregadas de arquivos .md ou .txt na configuração XDG; gerenciadas com segurança usando hashing de conteúdo e atualizações atômicas.
- Model Discovery & Selection: Lista modelos disponíveis com capacidades, preços e tamanho de contexto; permite filtragem e seleção via CLI ou comando interativo /model.
- Transient Character Selection: Seleção em tempo de execução de personagens específicos do provedor sem alterar a configuração principal.
- Local Audio Support (Linux): Captura e reprodução via ALSA (RtAudio), com manipulação segura e sem exposição aos modelos de IA.
- Image Handling: Gere, visualize e exporte imagens com armazenamento endereçado por conteúdo e validação (PNG, JPEG, WebP via RasterForge).
- Bounded Execution: Execução de processos controlada por políticas, limites de tamanho de entrada/saída e restrições de capacidade para aumentar a segurança.
- Usage & Spend Control: Monitora o uso de tokens e custo monetário por sessão; aplica limites configuráveis de gastos.
- Slash Command System: Registro unificado e extensível de comandos com ajuda, preenchimento automático e verificações de disponibilidade.
- Static Analysis & Style: Formatação de código imposta (clang-format 20) e análise estática (clang-tidy 20) com políticas documentadas.
Compila via CMake (3.28+) com GCC 13+ ou Clang 17+, e depende de TermForge, venice-cpp e RasterForge para funcionalidade principal. O SQLite fornece armazenamento durável de sessões. Testes e linting são integrados ao sistema de compilação.
A arquitetura enfatiza segurança, determinismo e auditabilidade, com decisões arquiteturais regidas por ADRs (Architecture Decision Records) e documentos de design. Restrições notáveis incluem validação UTF-8, artefatos endereçados por conteúdo e rejeição estrita de entradas inseguras ou symlinks.
Executa tanto em modo headless (CLI) quanto em modos TUI interativos. Quando iniciado sem argumentos em um terminal, abre o workspace de Chat interativo. Suporta pipeline do stdin para revisões de diff, análise de código e automação.
Licenciado sob BSD 3-clause.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.