Guía: Escribe tu primera extensión
Empieza una extensión, pruébala en el chat, cámbiala en caliente y compártela.
En esta página
GuÃa: Escribe tu primera extensión
Una extensión añade cosas al chat y a la app sin tocar el framework: un comando, una tecla, un elemento de estado, una herramienta, un hueco en la página web. Esta guÃa lleva una desde cero hasta algo que puedes compartir. Necesita un proyecto (bxAgents new crea uno).
1. Empezarla
bxAgents add extension standup --with=command,key --description="Standup diario"
Eso escribe extensions/standup.bx: una clase con un comando /standup y una tecla, cada uno con un TODO por completar. Sin --with, en una terminal pregunta qué traer. Si marcas un scheduler, gateway, tool, skill o archivos web, crea una carpeta (extensions/standup/Extension.bx más esos archivos).
2. Probarla
bxAgents chat
Escribe /extensions para verla cargada y luego /standup. Un problema en el archivo aparece ahà con su motivo, asà que un error de escritura nunca queda en silencio.
3. Cambiarla en caliente
Edita el comando en extensions/standup.bx y escribe /reload en el mismo chat. El cambio entra sin reiniciar. Un ajuste va en configure():
function configure() {
variables.settings = { greeting : "Buenos dÃas" }
}
Léelo en el comando como settings.greeting. Agent.yaml (o tu propio ~/.bxagents/bxAgents.yml) puede cambiarlo sin tocar el código:
extensions:
standup:
greeting: "Hola equipo"
4. Usarla en todos los proyectos
Una extensión en el extensions/ del proyecto pertenece a ese proyecto y va a su app compilada. Para tener una en tu propio chat de terminal en todas partes, enlázala:
bxAgents extensions link ./extensions/standup.bx
Ahora se carga desde donde la editas, en cada chat de esta máquina, y /reload recoge un cambio.
5. Compartirla
Una extensión es una carpeta o un archivo, asà que compartirla es dar eso:
- comprime la carpeta en un zip, o súbela a un repositorio de GitHub;
- la otra persona ejecuta
bxAgents extensions install ./standup.zip, obxAgents extensions install tu/standup.
Ve lo que añade y lo que menciona su código, y dice que sà antes de que se coloque nada. La instalación queda en extensions.lock.json, que hace commit; la extensión se restaura desde él al compilar.
Siguientes pasos
- Extensiones lista todo lo que una extensión puede traer, con la forma exacta de cada cosa.
examples/extensions-agenttiene una extensión funcionando de cada tipo.