Robutler

Presentamos los widgets del espacio de trabajo

Hoy lanzamos los widgets del espacio de trabajo, una forma de poner apps interactivas y en vivo directamente en el lienzo del espacio de trabajo de Robutler, al lado de tus agentes y tus chats.

Qué ha cambiado

Hasta hoy el espacio de trabajo era un buen sitio para hablar con tus agentes y guardar contenido para más tarde. Con los widgets se convierte en un escritorio real que construyes con piezas pequeñas y combinables:

  • Un kernel de Python que se ejecuta en tu pestaña, con numpy y matplotlib preinstalados. Dibuja un gráfico y aparece como un widget hermano en el lienzo, no enterrado en un panel de terminal.
  • Un shell local conectado a un daemon en tu propia máquina.
  • Un widget de SSH para las máquinas de producción a las que siempre vuelves. La misma gestión de claves y hosts que en la terminal antigua, solo más limpia.
  • Un navegador incrustado para los paneles en los que vives.
  • Un editor CodeMirror para ediciones rápidas de texto y código.
  • Notas adhesivas, formas y conectores para esbozar planes en el lienzo (como Figjam, pero justo al lado de tu agente).
  • Y un puñado de juegos de estilo arcade (Snake, Tetris, Space Invaders) porque los espacios de trabajo deberían ser divertidos.

Crea uno desde el botón + → Widget → busca en el catálogo.

Novedades para quienes crean agentes

Los widgets no son solo para las personas. Los agentes pueden:

  • Crear widgets en el lienzo con la familia de herramientas present.*. present.image, present.code, present.url, present.chart, present.note y un ayudante genérico present.widget permiten a los agentes publicar artefactos visuales junto a la conversación.
  • Controlar kernels de Python con workspace_widgets_invoke(id, 'eval' | 'run', ...). Suscríbete a los eventos stdout / stderr / display y las figuras de matplotlib se transmiten directamente al lienzo en tiempo real.
  • Ejecutar comandos de shell en widgets de daemon y de SSH con la misma herramienta workspace_widgets_invoke(id, 'run', ...). Cada comando escribe una notificación auditada widget.agent_command, así que puedes ver exactamente qué se ejecutó.

La fábrica de agentes conoce esta nueva superficie: puede crear widgets a partir de unas pocas indicaciones, conectar host.kv para el estado y emitir proyecciones DSL para las apps nativas de Robutler en iOS y Android.

Confianza por defecto, el riesgo se activa a mano

Dejar que un agente ejecute comandos de shell es peligroso si el interruptor está siempre activado. Así que enviamos el valor contrario: cada widget de daemon y de SSH empieza con Permitir que los agentes ejecuten comandos desactivado. Actívalo widget por widget cuando estés listo y desactívalo cuando termines.

Los kernels de Python vienen activados porque están aislados dentro de tu pestaña: ni el agente más descontrolado puede escapar de Pyodide. El interruptor sigue ahí si quieres bloquear el kernel para una sesión compartida.

Cada comando de agente aceptado Y rechazado escribe una fila de auditoría. Abre el feed de notificaciones y busca widget.agent_command para ver tu historial semanal.

Widgets multiplataforma

Los widgets pueden incluir opcionalmente una proyección: un árbol declarativo diminuto compilado a partir de una función de JS. Las proyecciones sirven para tres cosas:

  1. Una vista previa ligera que se renderiza en el lienzo sin cargar el iframe completo (una gran ganancia de rendimiento con decenas de widgets fijados).
  2. Un renderizado nativo del widget en las apps de Robutler para iOS y Android que llegarán este año. La app consulta la proyección periódicamente y la renderiza como un widget nativo de iOS o Android.
  3. Una proyección para el dock: fija un widget al dock y la proyección toma el relevo para que puedas ver el estado de un vistazo sin cargar el iframe completo en memoria.

Si estás escribiendo un widget hoy, devolver una proyección es opcional pero recomendable. Consulta la guía del SDK del host para conocer la gramática del DSL.

Pruébalo

Abre tu espacio de trabajo, toca el botón + y elige Widget. O simplemente pídeselo a tu agente: "Muéstrame un gráfico de la cotización de NVDA" y mira cómo arranca el kernel de Python, aparece la figura de matplotlib y el agente le pone un pie al lado.

Estamos impacientes por ver qué construyes.

El equipo de Robutler