diff --git a/packages/cli/src/tui/hooks/use-socket.ts b/packages/cli/src/tui/hooks/use-socket.ts index 1bc5600..08ca792 100644 --- a/packages/cli/src/tui/hooks/use-socket.ts +++ b/packages/cli/src/tui/hooks/use-socket.ts @@ -12,6 +12,8 @@ import type { SessionInfoPayload, ErrorPayload, CommandManifestPayload, + SlashCommandResultPayload, + SystemReloadPayload, } from '@mosaic/types'; import { commandRegistry } from '../commands/index.js'; @@ -230,6 +232,27 @@ export function useSocket(opts: UseSocketOptions): UseSocketReturn { commandRegistry.updateManifest(data.manifest); }); + socket.on('command:result', (data: SlashCommandResultPayload) => { + const prefix = data.success ? '' : 'Error: '; + const text = data.message ?? (data.success ? 'Done.' : 'Command failed.'); + setMessages((msgs) => [ + ...msgs, + { role: 'system', content: `${prefix}${text}`, timestamp: new Date() }, + ]); + }); + + socket.on('system:reload', (data: SystemReloadPayload) => { + commandRegistry.updateManifest({ + commands: data.commands, + skills: data.skills, + version: Date.now(), + }); + setMessages((msgs) => [ + ...msgs, + { role: 'system', content: data.message, timestamp: new Date() }, + ]); + }); + return () => { socket.disconnect(); };