Ce projet contient :
jide, un IDE de bureau natif pour créer et exécuter des programmes FrenchRS ;- un laboratoire de calcul scientifique interactif et persistant ;
frenchrs, la bibliothèque de transpilation réutilisable ;frs, l'outil en ligne de commande.
fichier.frs -> lexer -> conversion des mots-clés -> fichier.rs -> rustc
Rust et rustc doivent être installés. Depuis la racine du projet :
./jideLe lanceur compile silencieusement la version de production si nécessaire, puis ouvre le dossier courant. Vous pouvez aussi ouvrir directement un autre dossier ou un fichier :
./jide /chemin/vers/projet
./jide /chemin/vers/programme.frsL'équivalent Cargo reste disponible avec cargo run --bin jide -- ..
Installez l'association utilisateur une fois :
./jide --installSur macOS, cette commande crée ~/Applications/jIDE.app, déclare FrenchRS
comme code source et texte brut, puis l'enregistre auprès de LaunchServices.
Les fichiers .frs apparaissent alors dans Ouvrir avec jIDE et Quick Look
peut les afficher comme du texte source.
Sous Windows, l'installateur natif enregistre .frs pour l'utilisateur comme
fichier texte FrenchRS, ajoute jIDE au menu d'ouverture et permet Ă
l'Explorateur d'utiliser son aperçu texte. Sous Linux, il installe les entrées
MIME et desktop correspondantes.
Après une mise à jour de jIDE, relancez ./jide --install pour actualiser
l'application ou le chemin de l'exécutable enregistré.
jIDE fournit actuellement :
- un explorateur récursif des fichiers
.frs; - plusieurs documents ouverts sous forme d'onglets ;
- la coloration des mots-clés, types, chaînes et commentaires FrenchRS ;
- la création et l'enregistrement de programmes ;
- la transpilation vers Rust et la compilation avec
rustc; - les diagnostics de compilation remappés vers le fichier
.frs; - l'exécution et l'arrêt des programmes ;
- un centre de commandes avec les flux
stdoutetstderren direct.
En mode Institute, le terminal devient une surface d'observabilité :
horodatage Ă la source, canaux SYS/OUT/ERR, recherche, filtres de flux,
compteurs, durée d'exécution, suivi automatique, retour à la ligne configurable
et défilement horizontal réel. Le composeur reste séparé en bas de la sortie.
Une animation d'activité discrète est rendue à environ 60 images/s uniquement
quand le terminal animé est visible ; les processus cachés utilisent un
rafraîchissement réduit. Stop termine le groupe de processus complet plutôt
que de laisser des descendants en arrière-plan. Le mode Classic / Turing
conserve l'ancien Centre de commandes.
Le mode Institute est l'expérience par défaut : navigation en langage clair, hiérarchie visuelle bleu marine et surfaces orientées projet, preuve et responsabilité. Le sélecteur supérieur permet de revenir à tout moment au mode Classic / Turing, qui conserve la présentation historique de jIDE.
L'explorateur sépare maintenant les fichiers locaux des artefacts de chaque
JELLY PROJECT, y compris ceux rangés sous .jide/projects/. Un carré bleu
marine indique un fichier majoritairement créé ou modifié par JELLY ; un carré
charbon indique un fichier provenant principalement du développeur local ou de
sa machine.
La vue Attribution fournit un blame local persistant, sans envoyer le code ailleurs. Le registre travaille au niveau de chaque octet UTF-8 et en dérive les pourcentages exacts de caractères et d'octets JELLY/local pour le workspace, le fichier, chaque ligne et chaque plage de colonnes. Les frappes humaines non enregistrées apparaissent en direct ; chaque opération d'outil JELLY crée un point de contrôle visible. Les sauvegardes effectuées dans jIDE sont enregistrées comme éditions humaines ; les fichiers préexistants restent classés comme origine locale/hôte. Cette mesure décrit l'historique d'édition observé par jIDE, pas la propriété intellectuelle ni l'originalité.
Cmd/Ctrl+K ouvre un navigateur calme et recherchable pour atteindre sans
parcourir des menus :
- Code, Focus du projet, Carte, Revue et Laboratoire ;
- les projets isolés et leurs sessions sauvegardées ;
- tous les fichiers FrenchRS du workspace ;
- JELLY, l'explorateur et le terminal ;
- Nouveau, Compiler, Exécuter et Actualiser.
La recherche comprend les libellés et l'intention : critical blockers,
dépendances, run, un nom de projet ou un nom de fichier conduisent
directement à l'action correspondante. Les flèches sélectionnent, Entrée ouvre
et Échap ferme.
Raccourcis directs :
Cmd/Ctrl+1: Code ;Cmd/Ctrl+2: Focus du projet ;Cmd/Ctrl+3: Laboratoire ;Cmd/Ctrl+Shift+J: afficher ou masquer JELLY ;Cmd/Ctrl+Shift+T: afficher ou masquer le terminal.
La barre supérieure affiche un fil de contexte compact
workspace › projet › vue › fichier et, lorsqu'un projet est actif, sa
prochaine action recommandée. La complexité reste dans le moteur ; le chemin
vers l'objectif courant reste visible.
Le bouton JELLY ouvre un panneau latéral redimensionnable à côté du code ou
du laboratoire, sans quitter le travail en cours. Sur une fenêtre étroite,
jIDE ferme automatiquement l'explorateur lorsque JELLY s'ouvre, et inversement,
afin de préserver l'espace central. Les boutons Fichiers, JELLY et
Terminal contrôlent les trois panneaux ; leur visibilité est conservée
dans .jide/ui.state.json.
Le premier écran propose trois démarrages guidés : expliquer le fichier actif,
créer une expérience, ou exécuter et diagnostiquer. JELLY utilise le moteur
local agency copilot, le mĂŞme type d'orchestration que le work-tracker
werk.
JELLY répond en anglais par défaut, sans changer le français utilisé par jIDE et FrenchRS. Le sélecteur English / Français change uniquement la langue de JELLY. Le sélecteur Chat / Log sépare deux usages :
- Chat montre les demandes et les réponses intentionnelles ; les appels d'outils et diagnostics restent regroupés dans une section repliable ;
- Log montre chronologiquement les réponses, outils, diagnostics et événements d'orchestration dans une présentation monospace.
La conversation ne force plus le défilement vers le bas lorsque vous remontez l'historique. Désactivez Follow output pour lire, sélectionner et copier du contenu sans saut ; Jump to latest réactive le suivi. La zone de demande accepte également de longs collages dans une surface défilable.
Chaque envoi produit maintenant un accusé visible immédiatement. JELLY indique si la demande est acceptée, si le moteur démarre, depuis combien de temps il travaille, ou pourquoi rien n'a été envoyé. Une demande vide et une seconde demande pendant une exécution active ne sont plus ignorées silencieusement. Les erreurs de création de projet, de lancement du moteur et d'entrée standard restent visibles au-dessus du chat même lorsque les journaux d'orchestration sont repliés.
Entrée place maintenant la demande dans une file d'envoi de cinq secondes ; Maj+Entrée ajoute une ligne sans envoyer. Pendant ce délai, Cancel restaure le texte dans le composeur, Send now l'envoie immédiatement, et chaque nouveau bloc validé par Entrée est ajouté à la même demande sur une nouvelle ligne en redémarrant le délai. Le minuteur continue même si le panneau JELLY est temporairement masqué.
JELLY utilise cinq espaces de travail persistants au lieu d'une pile verticale :
- Chat ne contient que la conversation, l'état condensé de l'action et le composeur ;
- Bench rassemble uniquement le contexte durable, la mémoire, le projet et les sorties disponibles ; les anciens états d'orchestration n'y sont pas présentés comme des travaux actifs ;
- Activity expose en direct outils, diagnostics, tâches et transitions ;
- Threads contient l'ancre active et une bibliothèque recherchable limitée par défaut au projet courant, avec une bascule explicite vers tous les threads ;
- Controls regroupe densité, suivi de sortie, modèle, langue et autorisation.
La barre persistante se limite à l'état JELLY, au projet, au thread actif et à l'arrêt d'une exécution. Les densités Compact, Comfortable et Presentation adaptent ensemble la typographie, les espacements et les contrôles ; Comfortable est la valeur par défaut. Le dock JELLY est plafonné à 40 % de l'espace disponible et son maximum est recalculé après l'explorateur afin de réserver au moins 520 points à l'éditeur. Sous 1160 points, Fichiers et JELLY deviennent mutuellement exclusifs plutôt que d'écraser le code.
Les chemins de fichiers, identités de thread, badges projet, résumés et métadonnées sont tronqués avec leur valeur complète au survol. Les onglets de documents, espaces JELLY et historiques longs possèdent leur propre défilement horizontal visible. Le terminal est limité à 45 % de la hauteur disponible, et le composeur JELLY réduit automatiquement sa hauteur lorsque la fenêtre est courte.
Open visualization et Open project transfèrent le travail vers l'espace central puis masquent les docks concurrents. Jump to latest déclenche un déplacement réel vers la fin du chat, au lieu de modifier uniquement le mode de suivi. Les événements Activity sont condensés sur une ligne avec le contenu complet au survol ; les réponses restent intégrales dans Chat. Les options secondaires du terminal (filtres, compteurs, répertoire, recherche, wrap et follow) sont regroupées sous View options.
Une visualisation nouvellement produite apparaît dans Bench comme une sortie en attente de revue. Son ouverture retire cette notification sans supprimer la visualisation persistante, qui reste accessible par Visualize. Les anciennes visualisations ne réapparaissent donc plus comme un état actif. L'explorateur n'affiche que les artefacts du projet actif ; changer de thread réactive automatiquement son projet et son groupe de fichiers.
Une barre OPEN reste disponible sous la navigation JELLY. Elle ouvre directement le dernier artefact compatible, la visualisation sauvegardée, le laboratoire, le projet ou l'activité en cours. L'artefact récemment créé par un outil est mémorisé et limité au projet actif. Les onglets JELLY se replient sur plusieurs lignes au lieu de conserver un décalage horizontal, et les blocs de code utilisent leur propre défilement afin de ne jamais élargir ou décaler le chat.
Les demandes d'exemple, simulation, expérience, laboratoire, modèle interactif
ou tableau de données utilisent désormais une livraison immersive par défaut,
sauf demande explicite de texte uniquement (text only, text-only, prose ou
document uniquement). Les formulations incidentes comme « for example » ne
forcent pas un rendu. jIDE prépare et ouvre le rendu
interactif comme résultat principal, avec traces de données, contrôles,
hypothèses, qualité des preuves et incertitude visibles. Le projet conserve en
arrière-plan un prototype FrenchRS, visualization.json et
data/observations.csv afin que le rendu reste éditable et reproductible plutôt
qu'une animation opaque.
Le studio place le rendu avant les panneaux documentaires, reste défilable sur les fenêtres courtes et affiche en permanence MODEL-DERIVED · NOT MEASURED tant que les traces ne proviennent pas de mesures validées.
JELLY peut définir une simulation sans modifier le code source de jIDE ni
ajouter un script Python. Le fichier projet visualization.json utilise le
schéma jide.workbench/v1 et décrit :
- des paramètres interactifs avec bornes, pas et unités ;
- des panneaux
grid,trace,metricsetentities; - des expressions utilisant
x,time, les paramètres, les opérateurs arithmétiques et les fonctions scientifiques usuelles.
Le runtime charge ce manifeste par projet, évalue les expressions localement
et affiche le workbench dans une fenĂŞtre VIRTUAL WORKBENCH redimensionnable,
fermable et réouvrable par OPEN · Visual. Les paramètres x et time sont
réservés ; un manifeste invalide produit une erreur visible au lieu d'un
fallback silencieux.
Dans Chat, Copy latest copie la dernière réponse JELLY et Copy chat copie uniquement les tours VOUS/JELLY sans les appels d'outils ou diagnostics.
Chaque demande crée un enregistrement visible avant l'exécution. La carte affiche un état d'action concis tel que Advising…, Implementing…, Visualizing…, Experimenting…, Investigating… ou Diagnosing…, puis expose :
- les compétences utilisées pour cette demande ;
- toutes les hypothèses de travail, y compris les limites de simulation ;
- le niveau d'autorisation Advise ou Act ;
- une topologie d'exécution par étapes, distinguant la découverte parallélisable des modifications et vérifications séquentielles ou bloquées ;
- les opérations locales prévues : inspection, création, édition, suppression, compilation, exécution, mesure ou rendu, ainsi que les outils actifs ;
- l'état réel de chaque opération : Planned, Running, Completed ou Failed.
Les appels d'outils mettent cette carte à jour en direct. Une opération non prévue découverte pendant l'orchestration est ajoutée plutôt que cachée. Les anciens enregistrements d'intention restent consultables par session et ne traversent pas silencieusement les limites de projet.
Chaque projet reçoit une couleur stable réutilisée dans l'ancre active, la rangée récente, la bibliothèque et la bande de contexte. Les conversations générales utilisent un repère neutre afin que la relation chat/projet reste visible sans dépendre d'un menu.
Une demande contenant une intention de visualiser, animer, rendre ou produire un playthrough configure un moteur de rendu jIDE local. Open Visualization ouvre une surface animée avec Lecture/Pause, réinitialisation, vitesse et traînées.
Le studio comprend actuellement :
- une lecture conceptuelle des trajectoires et oscillations de neutrinos avec plans de détection ;
- une lecture conceptuelle d'un réseau QCD qui sépare des trajectoires de type électron et proton via des portes pilotées par neutrons ;
- une animation du pipeline FrenchRS
source → lexer → tokens → Rust → rustc → binary; - une vue de champ scientifique générique pour les premiers modèles.
Le canevas utilise une présentation d'instrumentation : grille graduée, horodatage normalisé, traces persistantes, plans de détection, courbes de probabilité, champs vectoriels, diagnostics et états de pipeline. Les panneaux de diagnostic se replient de façon responsive au lieu d'écraser le modèle sur une fenêtre étroite.
Les hypothèses du rendu sont toujours visibles. Une animation explicative n'est jamais présentée comme une simulation validée ou comme une preuve physique. Les équations, paramètres mesurés et critères du projet doivent établir ce niveau de validité séparément.
Les visualisations sont isolées par projet. Hors projet, elles sont isolées par session générale. Changer de projet ne réutilise donc jamais silencieusement le rendu ou les hypothèses d'un autre contexte.
Chaque demande devient une tâche persistante avec son état. L'Active Thread affiche en permanence la conversation, le projet, l'état et les derniers threads. Thread Library remplace l'ancien menu déroulant par une bibliothèque recherchable, triée par récence, couvrant projets, résumés, résultats et conversations sauvegardées. Jusqu'à 250 threads au total sont conservés. Lorsqu'une session roule dans l'historique, JELLY produit une capsule locale à partir de sa dernière demande et de son dernier résultat.
Project memory conserve des faits, décisions et contraintes explicitement épinglés. Ces notes et les capsules des cinq investigations les plus récentes sont injectées dans les nouvelles demandes. Il s'agit d'un contexte de projet visible et contrôlable, pas d'un entraînement implicite du modèle.
Les conversations, identifiants de session, capsules, notes de mémoire, modèle,
langue, présentation, appels d'outils et tâches sont enregistrés par projet
dans .jide/jelly.state.json. Les anciens états JELLY sont migrés
automatiquement.
Deux modes rendent le niveau de contrĂ´le explicite :
- Conseil refuse structurellement les outils de modification et de shell ;
- Agir autorise JELLY à modifier le workspace, compiler, exécuter des commandes ciblées et conduire des expériences.
Les appels d'outils apparaissent dans la conversation pendant leur exécution ; leurs détails restent repliés par défaut pour garder le dialogue lisible. Arrêter termine tout le groupe de processus JELLY. Après une action, jIDE actualise l'explorateur et recharge uniquement les documents qui n'ont pas de modifications locales non enregistrées.
JELLY reçoit le contenu du document actif, son état enregistré/modifié et le contexte courant du laboratoire scientifique. Cela permet de demander, par exemple :
Explique ce modèle sans le modifier.
Ajoute une simulation FrenchRS de cet oscillateur puis compile-la.
Compare le résultat du programme avec l'équation active du laboratoire.
Exécute l'expérience et diagnostique les anomalies dans la sortie.
Le moteur peut être remplacé en définissant JIDE_JELLY_ENGINE avec le chemin
d'un lanceur compatible agency copilot. Cmd/Ctrl+Entrée envoie un message.
Une session reste une conversation ; un projet est maintenant un environnement durable et isolé pouvant contenir plusieurs sessions. Une demande claire comme :
Create an interactive electromagnetic field simulator.
Build a graph algorithm visualizer.
Investigate whether this physical control concept is viable.
crée automatiquement, en une interaction :
- un projet isolé sous
.jide/projects/<identifiant>/; - un Project Brief éditable avec exigences, hypothèses, inconnues et critères ;
- un pipeline adaptatif Frame → Investigate → Design → Prototype → Test → Refine → Validate → Package ;
- un premier artefact FrenchRS réversible ;
- une carte de projet et un Project Brain séparés des autres projets ;
- une session JELLY attachée au projet.
JELLY affiche immédiatement une carte PROJECT CREATED avec l'objectif, le premier artefact, la phase et la prochaine action. Open Project, Edit Brief et Undo Creation exécutent réellement ces opérations.
La vue Projet JELLY propose trois surfaces :
- FOCUS conserve le brief, l'étape critique, l'artefact actif, les critères de fin et les jalons précédent/actuel/suivant ;
- CARTE affiche les phases, étapes, dépendances, risques et statuts dans une feuille de route verticale défilable ;
- REVUE conserve les artefacts et versions, expériences, décisions, résultats, échecs et l'état structuré du Project Brain.
La barre du projet permet de sauvegarder, exécuter ou arrêter l'artefact FrenchRS actif, annuler la dernière étape et ouvrir les réglages du brief. L'exécution utilise le Centre de commandes existant. Le résultat réel du processus met ensuite à jour l'expérience : réussite d'exécution, échec ou arrêt volontaire restent distincts. Une exécution réussie ne devient jamais silencieusement une validation scientifique ou réelle.
La bibliothèque de threads passe entre la conversation générale, les projets et leurs conversations sans menu déroulant. Les sessions, capsules de contexte et Project Brains sont filtrés par identifiant de projet ; le contexte d'un projet n'est pas injecté dans un autre. Les préférences globales telles que la langue et la présentation restent partagées.
La demande suivante bénéficie d'un démarrage spécialisé :
Create an intelligent indoor air-quality monitoring system that analyzes
PM2.5, CO2, temperature, and humidity.
jIDE crée un jeu de données synthétique clairement étiqueté, un analyseur FrenchRS compilable, un Experiment 01 avec hypothèse, variables, seuil d'acceptation et prochaine expérience, puis propose d'établir le baseline. Les alertes indiquent explicitement si PM2.5 ou CO2 a franchi un seuil. Le projet reste provisoire jusqu'à une validation contre des observations étiquetées.
L'état des projets est enregistré dans .jide/projects.state.json. Les
conversations JELLY antérieures restent des sessions générales et ne sont pas
attachées artificiellement à un nouveau projet.
Le panneau inférieur démarre masqué pour préserver l'espace de travail et s'ouvre automatiquement lors d'une compilation, d'une exécution, d'une commande ou d'une erreur. Utilisez Terminal pour le masquer ou le réouvrir ; sa hauteur est redimensionnable mais limitée afin de ne pas recouvrir le contenu central. Il affiche :
- le dossier de travail actif ;
- la commande exacte transmise Ă
rustc; - les étapes de transpilation et le chemin de l'artefact produit ;
- les sorties standard et d'erreur avec des couleurs distinctes ;
- le processus actuellement actif et son état de sortie.
La ligne ❯ exécute également des commandes shell dans le dossier du projet.
Entrée lance la commande, les flèches haut/bas parcourent l'historique,
ArrĂŞter termine le processus actif et Effacer nettoie l'affichage.
Les programmes FrenchRS et les commandes shell alimentent le panneau en
continu, ce qui permet de surveiller les journaux d'une simulation, d'un
orchestrateur ou d'un outil de compilation.
Nouveau ouvre une petite fenêtre avant de créer le fichier. Elle permet de
choisir le nom et un dossier relatif Ă l'espace de travail, ou un dossier
absolu. L'emplacement complet sur l'ordinateur est toujours prévisualisé avant
l'enregistrement. L'extension .frs est ajoutée automatiquement lorsqu'elle
est omise, et un fichier existant exige une confirmation explicite.
Sous les onglets, une seule ligne compacte indique :
- si le document est ENREGISTRÉ ou MODIFIÉ ;
- son chemin complet, avec le chemin intégral au survol ;
- l'action Enregistrer sous… pour renommer, copier ou déplacer le fichier.
Cmd/Ctrl+S enregistre au mĂŞme emplacement et Cmd/Ctrl+Shift+S ouvre
Enregistrer sous.
Ouvrez jIDE puis sélectionnez Laboratoire dans la barre supérieure. Cette première tranche verticale relie directement une équation à un instrument interactif :
- Modifiez
y(x)avecx, des constantes et des paramètres. - Déplacez les curseurs d'amplitude, fréquence, phase ou décalage.
- Le signal est recalculé et redessiné immédiatement.
- Survolez le graphe pour inspecter une valeur et cliquez pour fixer une sonde.
- Utilisez Capturer pour superposer jusqu'Ă six alternatives.
- Utilisez Exporter CSV pour réutiliser les données calculées.
Le panneau affiche le minimum, le maximum, la moyenne, la valeur RMS,
l'intégrale numérique et la sonde sélectionnée. Il accepte les opérateurs
+ - * / ^, les constantes pi et e, et les fonctions :
sin cos tan sqrt abs exp ln log10 min max pow
L'équation, le domaine, les paramètres, la sonde et les comparaisons sont
enregistrés automatiquement dans .jide/scientific-lab.state. Les exports sont
écrits dans .jide/scientific-lab.csv.
Cette couche est volontairement indépendante de FrenchRS : elle établit le langage de calcul commun sur lequel pourront s'appuyer les futurs modules de simulation, unités, incertitudes, signaux matériels, automatisation et visualisation multidimensionnelle.
Les boutons Compiler, Exécuter et Arrêter contrôlent le programme
actif. Les raccourcis sont Cmd/Ctrl+S, Cmd/Ctrl+Shift+B et
Cmd/Ctrl+Shift+R. Les artefacts générés sont placés dans .jide/build/.
Pour produire directement l'exécutable jIDE :
cargo build --release --bin jideLe binaire se trouve dans target/release/jide (jide.exe sous Windows).
cargo run --bin frs -- compiler exemples/bonjour.frs --sortie target/bonjour.rs
rustc target/bonjour.rs -o target/bonjour
./target/bonjourexemples/orchestrateur_animaux.frs modélise un chien avec une carotte et un
chat avec du thon. La salle orchestre leurs interactions et écrit un événement
JSON par ligne, avec un flush immédiat pour permettre la lecture en continu.
cargo run --bin frs -- compiler exemples/orchestrateur_animaux.frs \
--sortie target/orchestrateur_animaux.rs
rustc target/orchestrateur_animaux.rs -o target/orchestrateur_animaux
./target/orchestrateur_animauxLe lexer conserve les chaînes, caractères et commentaires sans traduire leur
contenu. La table de conversion se trouve dans src/tokens.rs.
- Ajouter des mots-clés dans
src/tokens.rs. - Ajouter de nouvelles colorations dans
src/bin/jide/highlight.rs. - Ajouter un adaptateur de langage avant d'intégrer un deuxième compilateur.
- Ajouter l'autocomplétion, la recherche globale et le débogage.
- Prendre en charge les projets FrenchRS composés de plusieurs modules.