Añada un flujo de trabajo a la sala donde su equipo ya trabaja. Comience con el
ejemplo starter, poll o approvals y cree una app para su sala.
Qué es una mini-app
Una mini-app es una pequeña aplicación que vive dentro de una sala de Roomcord. La sala guarda los datos de la app como registros en colecciones. Las funciones de la app se ejecutan en un sandbox en el servidor y son el único código que modifica esos registros. Los miembros de la sala y los agentes de IA instalados en ella llaman a las funciones, y el cliente muestra una pantalla genérica generada a partir de los esquemas de la app.
Antes de empezar
- Node.js y npm en su equipo.
- Una cuenta en el servidor de Roomcord for Enterprise de su empresa.
- El rol de administrador en la sala donde publica la app. Solo los administradores de la sala pueden subir y aprobar apps.
Inicio rápido
Esta guía usa la versión 4.1.0 de @fulldivevr/workcord-cli. La herramienta de
línea de comandos se llama workcord. Todos los comandos imprimen JSON en stdout.
Instale la CLI.
npm i -g @fulldivevr/workcord-cliInicie sesión. Recibirá un código por correo y la CLI se lo pedirá. Si su empresa opera su propio servidor, solicite su origen al administrador y añada
--base-url <origin>a este comando una vez. El inicio de sesión guarda el servidor.workcord auth login --email [email protected] --saveBusque el id de la sala.
workcord rooms listCree una carpeta de app a partir de la plantilla.
workcord app init my-appEjecute las comprobaciones del servidor y las pruebas de la app en su equipo. No necesita un servidor.
workcord app test my-appGuarde la app como borrador pendiente de la sala. El resultado incluye el
draftId.workcord app push my-app --room <roomId>Apruebe el borrador. La app queda instalada en esa sala.
workcord app drafts --room <roomId> workcord app approve <draftId> --room <roomId>Llame a una función.
workcord app call my-app addEntry --room <roomId> --data '{"title":"Dune"}' workcord app describe my-app --room <roomId>
Antes de subir una actualización, ejecute workcord app validate my-app --room <roomId>.
Esto añade las comprobaciones que necesitan la sala: la versión y los registros existentes.
Formato del paquete
Un paquete es una carpeta:
my-app/
manifest.json id, version, name, summary, icon, collections, functions
GUIDE.md for agents: what the app is for, which function to use when
functions/
addEntry.js one file per function in the manifest
tests/
entries.json one scenario or a list of scenarios
manifest.jsondeclara las colecciones, cada una con un JSON Schema que debe cumplir cada escritura, y las funciones, cada una con unadescription, un esquemainputy una listacallers.callersindica quién puede llamar a una función:members,adminsoagents. Los agentes eligen una función por sudescription.GUIDE.mdindica a los agentes cómo usar la app.tests/contiene al menos un escenario. Las comprobaciones ejecutan todos los escenarios antes de subir la app y de nuevo antes de aprobarla.
Estructura de una función
Un archivo de función tiene exactamente un export default y ningún otro import
o export. Recibe el evento y un contexto:
export default async (event, ctx) => {
const { title, notes } = event.data;
return ctx.db.entries.insert({ title, notes, status: 'open' });
};
event.dataes la entrada, después de comprobar el esquema.event.calleres el usuario o agente que hizo la llamada. El motor lo establece, por lo que el código de la app nunca realiza la autenticación.ctx.db.<collection>ofreceget,query,insert,updateydelete. Cada llamada devuelve una promesa.throw new AppError(code, message)devuelve ese código y mensaje a quien hizo la llamada.
Cada escritura conserva una versión del registro, y una eliminación conserva su historial.
Límites
| Límite | Valor |
|---|---|
| Tiempo total por llamada a función | 1 s |
| Memoria por llamada | 32 MB |
| Pila | 512 KB |
| Resultado de la función | 256 KB como JSON |
| Registro | 256 KiB como JSON |
| Paquete | 512 KB como JSON |
| Colecciones por app | 1 a 20 |
| Funciones por app | 50 |
| Todos los escenarios de prueba juntos | 10 s |
Las funciones no tienen red, sistema de archivos, temporizadores ni importaciones. No pueden llamar a otras apps ni leer otras salas. Los agentes hacen ese trabajo.
Quién puede publicar
Solo los administradores de la sala pueden subir y aprobar apps. Los agentes de la
sala pueden guardar un borrador, pero un administrador lo aprueba. Una app aprobada
se instala solo en esa sala. Cada nueva versión debe tener una version superior
a todas las versiones que la sala haya aprobado antes.
Ejemplos y guía completa
El repositorio público
fulldiveVR/roomcord-mini-apps
contiene tres ejemplos para empezar: starter, poll y approvals.
La guía completa abarca colecciones, consultas, indicaciones de visualización, escenarios de prueba, actualizaciones y códigos de error.