Aller au contenu principal
Version: 1.0.0

Modèle d’exécution

Touba compile votre programme en AIR, puis le runtime applique ce contrat et produit une trace d’exécution.

CompilationVotre programmeAgents · capacités · limitesContrat compiléAIRModèle IAPropose une actionRuntime ToubaVérifie avant d’exécuterVos handlersJavaScript · PythonVos systèmesAPI · bases · servicesTrace d’exécutionDécisions · appels · résultatsAppel autoriséVotre programmeAgents · capacités · limitesContrat compiléAIRRuntime ToubaVérifie avant d’exécuterVos handlersJavaScript · PythonVos systèmesAPI · bases · servicesTrace d’exécutionDécisions · appels · résultatsModèle IA : propose une action
Le modèle propose. Touba contrôle l’appel. Vos handlers réalisent l’action et la trace en conserve le déroulement.

Source .tb​

Le fichier .tb est le programme lisible par l’utilisateur.

Il peut déclarer :

  • des types ;
  • des fonctions pures ;
  • des tools ;
  • des skills ;
  • des agents ;
  • des stratégies ;
  • des mémoires logiques.

AIR​

L’AIR est le contrat central entre le langage, le runtime, la CLI, l’extension VS Code et les outils d’inspection.

Il porte les déclarations, les graphes d’exécution, les arguments, les bindings, les expressions pures, les capacités requises, les secrets requis, les interactions humaines, l’autorité d’invocation et les scopes mémoire.

L’AIR ne contient pas :

  • la valeur réelle des secrets ;
  • le code des handlers ;
  • les réponses recueillies pendant l’exécution ;
  • la configuration de votre environnement.

Runtime​

Le runtime exécute l’AIR.

Dans un graphe Touba, give retourne le résultat du chemin courant et stop arrête ce chemin. Les instructions placées après un retour terminal ne s’exécutent pas ; le compilateur les signale comme UnreachableStatement.

Pour un tool, il vérifie le manifest avant de lancer un handler :

Structure
tool déclaré -> binding manifest -> grants et limites -> handler -> résultat

Le runtime peut refuser l’exécution avant handler si un grant, un secret, un scope mémoire, un caller agent ou un payload ne respecte pas le contrat.

Pour un agent piloté par provider, le runtime ajoute une boucle séquentielle bornée :

Structure
agent -> entrée modèle -> catalogue si demandé -> ressource autorisée -> observation -> décision suivante

Le modèle propose. Le runtime vérifie uses, callable_by, signatures, manifest, secrets, scopes et limite de pas avant d’exécuter ou de refuser.

Composition, concurrence et reprise​

Les appels source et les contrôles if, for, while suivent leur ordre déclaré. parallel distribue une liste typée sur une cible avec des plafonds explicites, puis joint les résultats dans l'ordre d'entrée. Les groupes peuvent s'imbriquer ; chaque invocation isole ses valeurs, tandis que les budgets et l'annulation restent communs au run.

Avant le premier appel du groupe, Touba vérifie la taille de la liste et tous ses arguments. À l'échec d'une branche, il cesse les nouveaux départs et attend l'arrêt coopératif des appels actifs. Il ne publie pas de résultat partiel comme succès et n'annule pas les effets externes déjà engagés.

Une pause humaine conserve la pile des appels et, dans un groupe parallèle, les continuations de ses branches. La reprise revalide l'autorité sans redispatcher les appels déjà terminés. Les checkpoints privés et journaux d'effets doivent être conservés : une trace publique ne suffit pas à reprendre. Le guide de reprise précise quel mécanisme utiliser et les frontières de crash qu'il couvre.

Trace​

La trace rend l’exécution observable.

Elle indique les appels, les pauses, les reprises, les autorisations et les refus. L’événement user_interaction_answered résume la réponse sans en recopier la valeur. Les observations brutes du provider restent hors trace. Les messages show sont rendus séparément dans messages ; la trace en conserve l’événement et les références, pas le texte. Gardez aussi les secrets hors des sorties métier.

Surfaces Touba​

Les surfaces Touba incluent la CLI, l’inspection texte, le serveur LSP et l’extension VS Code.

Elles affichent ce qui existe dans l’AIR ou les traces. Elles ne doivent pas inventer une sémantique absente du runtime.