valwisp-agent-desktop
Wrapper Electron del agente — mismo core de comandos, empaquetado con electron-builder.
Sincronización del core
scripts/sync-agent-core.js copia (git-ignored, se regenera en cada build)
types.ts, logger.ts, command-executor.ts y los drivers desde
apps/valwisp-agent/src/ hacia src/main/agent-core/. Edita la lógica de comandos
solo en apps/valwisp-agent/src/ — nunca directamente en el árbol copiado del
desktop, se pierde en el siguiente sync.
Empaquetado (electron-builder)
npm run dist # build + electron-builder, todas las plataformas configuradas
npm run dist:win # NSIS → valwisp-agent-setup-${version}.exe
npm run dist:mac # DMG → valwisp-agent-${version}.dmg
npm run dist:linux # AppImage → valwisp-agent-${version}.AppImage
npm run manifest # solo genera release/latest.jsonscripts/write-manifest.js genera release/latest.json con
{ version, files: { win, mac, linux } }, listando solo los instaladores realmente
producidos.
Login sin copiar token
A diferencia del CLI puro (que requiere AGENT_TOKEN en .env), el desktop permite
login con email/contraseña de Valwisp (agent-bridge.ts::loginAndGetToken contra
POST /api/v1/auth/login) y obtiene el token del agente automáticamente. Persiste
configuración con electron-store, soporta auto-arranque (auto-launch) y minimizado a
bandeja.
Distribución
Los instaladores y latest.json se suben manualmente/por CI a
/opt/projects/valwisp-downloads/ en ecfera.cloud (fuera del repo). La API los sirve en
https://api.valwisp.com/downloads/<archivo> (env DOWNLOADS_DIR), y el dashboard
consume el manifiesto vía GET /agent/downloads para habilitar los botones de descarga.