Cómo comparten el estado la CLI y la app
Modelo de estado del agente de Beam Bench. Qué ve la CLI, qué ve la app y dónde se conectan.
La CLI de Beam Bench y la app de escritorio son dos clientes del mismo backend. Ambas pueden inspeccionar el mismo proyecto, la misma conexión de máquina y el mismo estado de la cámara. Saber cómo comparten ese estado es útil cuando quieres controlar la app desde un script.
El modelo
Dentro de Beam Bench existe una única fuente de verdad que administra:
- El proyecto activo.
- La conexión de máquina.
- El estado de la cámara.
- La superficie de capacidades / estado del agente.
La interfaz de usuario de la app de escritorio es un consumidor de ese estado. La CLI es otro. La API HTTP / WebSocket expone la misma superficie.
Qué puede hacer la CLI
beambench-cli agent state --json devuelve el estado actual del proyecto, la máquina, la selección y la cámara en un esquema JSON estable. Úsalo para inspeccionar lo que la app tiene cargado actualmente.
beambench-cli agent capabilities --json devuelve un registro de las operaciones disponibles y de qué subcomandos de la CLI corresponden a cada operación del backend.
beambench-cli agent guide --json devuelve una sugerencia de flujo de trabajo para un agente externo (como Claude) sobre cómo controlar la app.
Qué no puede hacer la CLI
La CLI no tiene su propio estado de la interfaz de usuario. No puede seleccionar una herramienta, abrir un panel ni abrir un cuadro de diálogo. Esas son acciones del lado de la app; hazlas en la app, no desde la CLI.
Cuándo la CLI necesita que la app esté en ejecución
Algunas operaciones requieren que la app haga trabajo real (renderizar el lienzo con una superposición, capturar un fotograma de la cámara). La CLI envía la solicitud y la app realiza el trabajo; el resultado vuelve a la CLI.
El comando camera overlay render funciona de esta manera. La CLI espera hasta que la app termina o se agota el tiempo de espera (15 s).
Comandos sin app y comandos que necesitan la app
| ¿Necesita que la app esté en ejecución? | Ejemplos |
|---|---|
| No (sin interfaz) | beambench-cli design render --png, beambench-cli project save, beambench-cli export svg, beambench-cli agent state |
| Sí | beambench-cli camera overlay render, beambench-cli camera capture (cuando usa la cámara nativa), cualquier inspección del estado de la interfaz de usuario |