À propos du projet
AIForge est un client IA pour terminal natif en C++23 conçu autour d'un noyau d'exécution neutre vis-à-vis des fournisseurs. Il prend en charge les interactions en streaming via Venice (via venice-cpp), les flux de travail IA ponctuels ou basés sur des pipes, ainsi que des sessions de chat persistantes et reprenables. L'interface de Chat interactive est basée sur TermForge pour un rendu terminal robuste.
Les fonctionnalités clés incluent :
- **Noyau neutre vis-à-vis des fournisseurs** : La logique centrale est découplée des fournisseurs d'IA, permettant des exécutions et des projections durables et reproductibles.
- **Sessions durables** : L'état de la session, les événements et les transcriptions sont stockés de manière persistante via SQLite ; les sessions peuvent être reprises ou continuées.
- **Planification de tâches reproductible** : Prend en charge l'utilisation structurée de l'outil `ask_user`, les révisions de plans, les graphes de tâches et les décisions de révision exacte avec analyse de conflits et suivi du backlog basé sur un dépôt.
- **Personas basés sur des fichiers** : Instructions système chargées depuis des fichiers `.md` ou `.txt` dans la configuration XDG ; gérées de manière sécurisée avec hachage de contenu et mises à jour atomiques.
- **Découverte et sélection de modèles** : Liste les modèles disponibles avec leurs capacités, tarifs et taille de contexte ; permet le filtrage et la sélection via CLI ou la commande interactive `/model`.
- **Sélection de personnages transitoires** : Sélection au moment de l'exécution de personnages spécifiques au fournisseur sans modifier la configuration centrale.
- **Support audio local (Linux)** : Capture et lecture via ALSA (RtAudio), avec une gestion sécurisée et aucune exposition aux modèles d'IA.
- **Gestion des images** : Génération, visualisation et exportation d'images avec stockage adressé par le contenu et validation (PNG, JPEG, WebP via RasterForge).
- **Exécution bornée** : Exécution de processus régie par des politiques, limites de taille d'entrée/sortie et restrictions de capacités pour renforcer la sécurité.
- **Contrôle de l'utilisation et des dépenses** : Suit l'utilisation des tokens et le coût monétaire par session ; impose des plafonds de dépenses configurables.
- **Système de commandes Slash** : Registre de commandes unifié et extensible avec aide, auto-complétion et vérifications de disponibilité.
- **Analyse statique et style** : Formatage du code imposé (clang-format 20) et analyse statique (clang-tidy 20) avec politiques documentées.
Construit via CMake (3.28+) avec GCC 13+ ou Clang 17+, et dépend de TermForge, venice-cpp et RasterForge pour les fonctionnalités de base. SQLite assure le stockage durable des sessions. Les tests et le linting sont intégrés au système de construction.
L'architecture met l'accent sur la sécurité, le déterminisme et l'auditabilité, avec des décisions architecturales régies par des ADR (Architecture Decision Records) et des documents de conception. Les contraintes notables incluent la validation UTF-8, les artefacts adressés par le contenu et le rejet strict des entrées non sécurisées ou des liens symboliques.
Fonctionne en mode sans tête (CLI) et en mode TUI interactif. Lorsqu'il est lancé sans arguments dans un terminal, il ouvre l'espace de travail Chat interactif. Prend en charge le pipelining stdin pour les revues de diff, l'analyse de code et l'automatisation.
Licencié sous BSD 3-clause.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.