2.0 - Une bibliothèque Node.JS

GenAIScript 2.0 représente une étape architecturale importante. Nous avons restructuré fondamentalement la base de code pour libérer l’exécution du runtime de sa dépendance au CLI, permettant à GenAIScript de fonctionner nativement dans n’importe quelle application Node.js.
Vos scripts existants restent en grande partie compatibles. La plupart des changements se font en coulisses, bien que nous ayons introduit quelques modifications de rupture au niveau du CLI et de certaines API pour améliorer la maintenabilité à long terme.
La version 2.0 est disponible sur npm et dans Visual Studio Code.
Une refonte majeure
Section intitulée « Une refonte majeure »Lorsque Matthew Podwysocki (@mattpodwysocki) nous a approchés pour contribuer à GenAIScript, nous avons d’abord suggéré des fonctionnalités plus modestes pour l’aider à se familiariser avec la codebase. Au lieu de cela, Matthew a vu plus grand et a proposé une refonte architecturale complète afin de créer un système plus modulaire et maintenable.
Cette suggestion a permis de traiter une partie importante de la dette technique du projet. GenAIScript est né comme un projet de recherche qui a évolué de manière organique, accumulant des hypothèses sur son environnement d’exécution. La contrainte la plus significative : les scripts ne pouvaient s’exécuter qu’au sein d’un runtime Node.js augmenté, géré par notre CLI. Cette architecture créait une barrière artificielle — chaque exécution de GenAIScript nécessitait le CLI comme intermédiaire.
Matthew a transformé cette limitation en opportunité. Il a dirigé la tâche complexe de refonte de l’ensemble de notre système de build, décomposant la structure monolithique en paquets npm ESM et CommonJS consommables. Il ne s’agissait pas seulement d’une mise à niveau technique — cela a changé fondamentalement la façon dont les développeurs peuvent intégrer GenAIScript dans leurs projets.
Introduisant @genaiscript/runtime
Section intitulée « Introduisant @genaiscript/runtime »Le nouveau paquet @genaiscript/runtime fournit un runtime autonome de GenAIScript qui fonctionne indépendamment dans tout environnement Node.js — aucune interface CLI requise.
Autrefois, accéder aux fonctionnalités du runtime signifiait importer une exportation personnalisée genaiscript/runtime
depuis le paquet genaiscript
. Désormais, @genaiscript/runtime
existe en tant que paquet dédié, conçu pour cette tâche, avec une API claire.
Se lancer est simple :
npm i @genaiscript/runtime
pnpm add @genaiscript/runtime
yarn add @genaiscript/runtime
import { initialize } from "@genaiscript/runtime";
// Initialize before using any global typesawait initialize();
Le processus d’initialisation charge les analyseurs globaux et les aides pour prompts inline, préparant le runtime à l’exécution des scripts.
Note architecturale importante : Les fonctions de prompt de niveau supérieur comme $
et def
restent exclusives au contexte CLI, car elles dépendent d’une initialisation spécifique au CLI. Lors de l’utilisation directe du runtime, vous travaillerez avec des prompts inline à la place :
import { prompt, runPrompt } from "@genaiscript/runtime";
const { text: recipe } = await prompt`write a recipe`;const { text: poem } = await runPrompt( (ctx) => ctx.$`write a poem for this recipe: ${recipe}`,);
Développement unifié : CLI et runtime Node.js
Section intitulée « Développement unifié : CLI et runtime Node.js »Cette évolution architecturale ouvre une nouvelle capacité puissante : vous pouvez désormais écrire du code de bibliothèque GenAIScript qui fonctionne sans couture à la fois dans les environnements CLI et Node.js. Cette approche unifiée élimine la friction de la gestion d’implémentations séparées pour différents contextes de déploiement.
Accès API simplifié avec @genaiscript/api
Section intitulée « Accès API simplifié avec @genaiscript/api »Le paquet @genaiscript/api fournit un exécuteur Node.js léger, optimisé pour l’exécution programmatique avec un minimum de dépendances d’exécution. Ce paquet met l’accent sur la performance et la simplicité, fournissant juste ce dont vous avez besoin pour exécuter GenAIScript dans des environnements de production.
import { run } from "@genaiscript/api";
Certaines fonctionnalités majeures ont été déplacées dans des paquets séparés (plugins) afin de réduire l’empreinte d’installation par défaut. Nous avons supprimé 200 Mo de dépendances…
@genaiscript/plugin-mermaid
- analyseur mermaid@genaiscript/plugin-ast-grep
- le parseur ast grep@genaiscript/plugin-z3
- le solveur Z3
En savoir plus sur les plugins du runtime et leur utilisation.
Autres changements majeurs
Section intitulée « Autres changements majeurs »- les options courtes des outils en ligne de commande ont été modifiées afin de permettre la mise à niveau vers la dernière version de la bibliothèque Commander.
Remerciements
Section intitulée « Remerciements »Grand merci à @matthew-podwysocki pour avoir investi son temps et ses efforts dans ce projet.