# Annonce des widgets d'espace de travail (/docs/fr/posts/announcing-workspace-widgets)



# Annonce des widgets d'espace de travail [#annonce-des-widgets-despace-de-travail]

Aujourd'hui nous livrons les **widgets d'espace de travail** : un moyen
de poser des apps interactives et vivantes directement sur le canevas de
l'espace de travail Robutler, côte à côte avec vos agents et vos
conversations.

<!-- more -->

## Ce qui change [#ce-qui-change]

Jusqu'à aujourd'hui, l'espace de travail était un bon endroit pour
parler à vos agents et épingler du contenu pour plus tard. Avec les
widgets, il devient un vrai bureau que vous composez à partir de petites
pièces :

* Un **noyau Python** qui tourne dans votre onglet, avec numpy et
  matplotlib préinstallés. Tracez un graphique et il arrive comme widget
  voisin sur le canevas, pas enfoui dans un panneau de terminal.
* Un **shell local** rattaché à un démon sur votre propre machine.
* Un **widget SSH** pour les machines de production sur lesquelles vous
  revenez sans cesse. La même gestion de clés et d'hôtes que l'ancien
  terminal, en plus net.
* Un **navigateur intégré** pour les tableaux de bord où vous passez vos
  journées.
* Un éditeur **CodeMirror** pour des modifications rapides de texte et
  de code.
* Des **notes autocollantes**, des **formes** et des **connecteurs**
  pour esquisser des plans sur le canevas (comme Figjam, mais juste à
  côté de votre agent).
* Et une poignée de jeux d'arcade (Snake, Tetris, Space Invaders),
  parce qu'un espace de travail doit aussi être amusant.

Lancez-en un depuis le bouton `+` → **Widget** → cherchez dans le
catalogue.

## Ce qui est nouveau pour ceux qui créent des agents [#ce-qui-est-nouveau-pour-ceux-qui-créent-des-agents]

Les widgets ne sont pas réservés aux humains. Les agents peuvent :

* **Faire apparaître des widgets sur le canevas** via la famille
  d'outils `present.*`. `present.image`, `present.code`, `present.url`,
  `present.chart`, `present.note` et un utilitaire générique
  `present.widget` permettent aux agents de publier des artefacts
  visuels à côté de la conversation.
* **Piloter des noyaux Python** via `workspace_widgets_invoke(id,
  'eval' | 'run', ...)`. Abonnez-vous aux événements `stdout` / `stderr`
  / `display` et les figures matplotlib remontent directement sur le
  canevas en temps réel.
* **Exécuter des commandes shell** sur les widgets démon et SSH via le
  même outil `workspace_widgets_invoke(id, 'run', ...)`. Chaque commande
  écrit une notification auditée `widget.agent_command`, pour que vous
  voyiez exactement ce
  qui a tourné.

L'usine à agents connaît cette nouvelle surface : elle peut construire
des widgets à partir de quelques indications, brancher `host.kv` pour
l'état, et produire des projections DSL pour les applications Robutler
natives iOS et Android.

## Confiance par défaut, le risque sur demande [#confiance-par-défaut-le-risque-sur-demande]

Laisser un agent exécuter des commandes shell est dangereux si
l'interrupteur est toujours sur ON. Nous livrons donc le réglage
inverse : chaque widget démon et SSH démarre avec **Autoriser les agents
à exécuter des commandes** sur OFF. Passez-le sur ON widget par widget
quand vous êtes prêt, remettez-le sur OFF quand vous avez terminé.

Les noyaux Python sont sur ON par défaut parce qu'ils sont isolés dans
votre onglet : même un agent qui déraille complètement ne peut pas
sortir de Pyodide. L'interrupteur est quand même là si vous voulez
verrouiller le noyau pour une session partagée.

Chaque commande d'agent acceptée ET refusée écrit une ligne d'audit.
Ouvrez le fil de notifications et cherchez `widget.agent_command`
pour voir votre historique de la semaine.

## Widgets multiplateformes [#widgets-multiplateformes]

Les widgets peuvent embarquer une **projection** : un petit arbre
déclaratif compilé depuis une fonction JS. Les projections servent à
trois choses :

. Un aperçu léger qui s'affiche sur le canevas sans charger l'iframe
  complète (gain énorme de performance quand des dizaines de widgets
  sont épinglés).
. Un rendu natif du widget dans les applications Robutler iOS et
  Android à venir cette année. L'application interroge la projection
  périodiquement et l'affiche comme une véritable tuile de widget iOS
  ou Android.
. Une projection pour le dock : épinglez un widget au dock et la
  projection prend le relais, pour lire l'état d'un coup d'œil sans
  garder l'iframe complète en mémoire.

Si vous écrivez un widget aujourd'hui, renvoyer une projection est
optionnel mais encouragé. Voir le
[guide du SDK hôte](/guides/widgets/host-sdk/) pour la
grammaire du DSL.

## Essayez [#essayez]

Ouvrez votre [espace de travail](/workspace), appuyez sur le bouton `+`
et choisissez **Widget**. Ou demandez simplement à votre agent :
« Montre-moi le cours de NVDA en graphique » et regardez le noyau Python
démarrer, la figure matplotlib apparaître, et l'agent la légender juste
à côté.

Nous avons hâte de voir ce que vous allez construire.

L'équipe Robutler
