SDK
El app-runtime
Las apps compilan contra @deskssh/app-runtime — el mismo SDK que usan las apps integradas. Te da un hook de registro, contexto de sesión, primitivas de UI y llamadas al gateway tipadas.
Tu entrada se auto-registra con registerApp, devolviendo una definición de app: id, título, icono, los rangos de versión y una función render. Ese render recibe un AppContext con el traductor t, la sesión en vivo y ayudantes como openTerminal y openEditor.
El runtime también reexporta el kit de UI del host (Card, Button, ScrollArea…), el set completo de iconos y las funciones del gateway (listServices, serviceAction y el resto del Contract). Externaliza react y @deskssh/app-runtime al compilar para que tu app comparta las instancias únicas del host.
import {
registerApp,
Card, CardHeader, CardTitle, CardContent,
listServices, icons,
} from '@deskssh/app-runtime';
registerApp((t) => ({
id: 'services',
title: t('services.title'),
description: t('services.description'),
icon: icons.ServerCog,
version: '0.1.0',
contract: '^0.1.0',
author: { name: 'you', github: 'you' },
capabilities: ['listServices', 'serviceAction'],
render: (ctx) => {
// ctx.session, ctx.t, ctx.openTerminal, ctx.openEditor
return <ServicesView session={ctx.session} />;
},
})); Empieza desde la app de referencia
El plugin app-services del repo del core es un ejemplo completo y compilable — el camino más rápido a un scaffold funcional.