Adds real-time subprocess monitoring to the IDE via the callback-chain and subscribe/broadcast socket patterns: Shared types (packages/api): - New subprocess.ts message types: SubProcessStat, RequestProcessStatsMessage, SubscribeDroneMessage, UnsubscribeDroneMessage - New socket events in socket.ts: requestProcessStats, subscribeDrone, unsubscribeDrone (ClientToServer); drone:log, drone:status (ServerToClient) Drone (gadget-drone): - onRequestProcessStats handler calls SubProcessService.ps() + summarize(), returns typed SubProcessStat[] with status detection (exitCode/killed) Backend routing (gadget-code): - SocketService: getDroneSessionByRegistrationId(), droneMonitorIndex map, addDroneMonitor()/removeDroneMonitor()/broadcastToMonitors() - CodeSession: requestProcessStats proxy, subscribeDrone/unsubscribeDrone - DroneSession: broadcast drone:log + drone:status to monitor subscribers in addition to existing chat-session routing Frontend socket layer: - SocketClient: requestProcessStats(), subscribeDrone(), unsubscribeDrone() - drone:log + drone:status events forwarded to event bus Frontend components: - LogRenderer — reusable log rendering core extracted from LogPanel - SubProcessTable — btop-style process table with status dots - DroneMonitorGauge — canvas oscilloscope waveform (studio-equipment aesthetic) - DroneMonitor — 3-gauge container (CPU/red, NETWORK/cyan, FILE I/O/green) Frontend pages: - DroneManager: live log streaming, SubProcessTable, DroneMonitor gauges, 1-second polling, auto-scroll log with pause-on-scroll-up - Home/DroneInspector: process count summary, mini LogRenderer, navigate-to-manager link Documentation: - Updated gadget-drone/docs/subprocess.md Phase 2 section - Updated gadget-code/docs/ui-design-guide.md Phase 2 section - Updated docs/socket-protocol.md with new events, sequences, and patterns
43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
// src/index.ts
|
|
// Copyright (C) 2026 Robert Colbert <rob.colbert@openplatform.us>
|
|
// All Rights Reserved
|
|
|
|
export * from "./lib/gadget-id.ts";
|
|
export * from "./lib/component.ts";
|
|
export * from "./lib/log.ts";
|
|
export * from "./lib/log-transport.ts";
|
|
export * from "./lib/log-transport-console.ts";
|
|
export * from "./lib/log-transport-file.ts";
|
|
export * from "./lib/log-transport-socket.ts";
|
|
export * from "./lib/log-file.ts";
|
|
|
|
/*
|
|
* Data Model Interfaces
|
|
*/
|
|
|
|
export * from "./interfaces/ai-provider.ts";
|
|
export * from "./interfaces/chat-session.ts";
|
|
export * from "./interfaces/chat-turn.ts";
|
|
export * from "./interfaces/drone-monitor.ts";
|
|
export * from "./interfaces/drone-registration.ts";
|
|
export * from "./interfaces/ide-session.ts";
|
|
export * from "./interfaces/project.ts";
|
|
export * from "./interfaces/user.ts";
|
|
export * from "./interfaces/workspace.ts";
|
|
|
|
/*
|
|
* Socket.IO Interfaces
|
|
*/
|
|
|
|
export * from "./messages/ide.ts";
|
|
export * from "./messages/drone.ts";
|
|
export * from "./messages/subprocess.ts";
|
|
export * from "./messages/web.ts";
|
|
export * from "./messages/socket.ts";
|
|
|
|
/*
|
|
* Utilities - re-export types for cross-package usage
|
|
*/
|
|
|
|
export { Types } from "mongoose";
|