Ir al contenido

Catálogo

ui.Catalog es un componente para cosas que instalar (agentes de un registro, servidores MCP, skills): un buscador sobre una lista con desplazamiento en la que cada fila muestra el nombre, la versión (version) y la descripción (description), y a la derecha Instalar, Instalado o Actualizar a una versión nueva. items son diccionarios u objetos con id, name y, opcionales, version, description, installed (un bool) y update (la versión nueva). Instalar y Actualizar llegan a on_install con el id en event.value; mientras busy tiene un id, esa fila muestra un spinner y los demás botones de Instalar se desactivan. height es la altura de la lista.

ui.Catalog · Categoría: Agentes de IA · Referencia completa →

CatálogoCatálogo
  • Para añadir agentes, servidores MCP, skills o plugins desde una lista, dentro de un diálogo o una página de ajustes.
import pyzed as pz
from pyzed import ui
class Agents(pz.App):
def __init__(self):
self.registry = load_registry() # [{"id", "name", "version", "description", "installed"}, ...]
self.installing = ""
def view(self):
return ui.Catalog(items=self.registry, busy=self.installing,
on_install=lambda e: self.install(e.value))

Mientras se instala uno, los demás botones de Instalar se desactivan.

Catálogo: Sin instalarCatálogo: Sin instalar
Sin instalar
Código
pz.container(ui.Catalog(items=[{"id": "goose", "name": "Goose", "version": "1.9.0",
"description": "An open source agent."}],
height=50), width=380)
Catálogo: installed=TrueCatálogo: installed=True
installed=True
Código
pz.container(ui.Catalog(items=[{"id": "goose", "name": "Goose", "version": "1.9.0",
"description": "An open source agent.", "installed": True}],
height=50), width=380)
Catálogo: update="2.0.0"Catálogo: update="2.0.0"
update="2.0.0"
Código
pz.container(ui.Catalog(items=[{"id": "goose", "name": "Goose", "version": "1.9.0",
"description": "An open source agent.", "installed": True,
"update": "2.0.0"}], height=50), width=380)
Catálogo: busy="goose"Catálogo: busy="goose"
busy="goose"
Código
pz.container(ui.Catalog(items=[
{"id": "goose", "name": "Goose", "version": "1.9.0", "description": "An open source agent."},
{"id": "codex", "name": "Codex CLI", "version": "0.40.0", "description": "Writes and runs code."},
], busy="goose", height=100), width=380)
Catálogo: Sin coincidenciasCatálogo: Sin coincidencias
Sin coincidencias
Código
pz.container(ui.Catalog(items=[{"id": "goose", "name": "Goose"}], height=50), width=380)

Catálogo tiene 1 evento propios, en la tabla de abajo. Como todo widget, también tiene los 18 eventos comunes (click, double_click, right_click, mouse_enter, drag, key_down, resize…), que se conectan con .on(...): mira Eventos y Eventos de cada componente.

Es un pz.Component, así que también lanza on_mount y on_unmount, y sus handlers reciben un pz.Event cuyo value trae el dato.

Evento El handler recibe Cuándo
on_install (event) Se pulsó Instalar o Actualizar (event.value es el id).

El handler recibe es lo que Pyzed le pasa a tu función: () es nada. Cualquier handler también puede ser un mensaje (un valor que no se puede llamar), que va a update().

Los mismos eventos escritos de tres formas. Imperativa: métodos de la app que cambian self. Declarativa: los handlers producen mensajes y un único update() decide. Funcional: una función pura dibuja un estado inmutable y pide cambios con set_state(...). Mira Imperativo, declarativo y funcional.

class Agents(pz.App):
def __init__(self):
self.items = [{"id": "goose", "name": "Goose", "version": "1.9.0"},
{"id": "codex", "name": "Codex CLI", "version": "0.40.0"}]
self.installing = ""
def install(self, ident): # on_install: event.value is the item's id
self.installing = ident
def view(self):
return ui.Catalog(items=self.items, busy=self.installing, height=200,
on_install=lambda e: self.install(e.value))
class Catalog

Un componente para cosas que instalar con un buscador (agentes de un registro, servidores, skills…): cada fila muestra Instalar, Instalado o Actualizar a una versión nueva.

Propiedad Por defecto Descripción
items None Dicts u objetos con id, name y, opcionalmente, version, description, installed y update.
busy "" El id que se está instalando (un indicador de carga).
height 320 Alto de la lista.
theme None Tema.

Eventos: on_install (eventos).

Referencia completa →