Process-level supervisor for Embedded32 - registers modules, tracks health, coordinates startup/shutdown, and backs @embedded32/cli start / demo.
npm install @embedded32/supervisor
import { Supervisor } from '@embedded32/supervisor';
const supervisor = new Supervisor({
logging: { level: 'info' },
});
supervisor.registerModule({
id: 'hello',
name: 'Hello Module',
version: '1.0.0',
start: async () => console.log('started'),
stop: async () => console.log('stopped'),
getStatus: () => ({ state: 'running', uptime: 0, restarts: 0 }),
});
await supervisor.start();
await supervisor.stop();
Easiest path for learners: npx embedded32 demo instead of wiring supervisor manually.
| Export | Role |
|---|---|
Supervisor |
Start/stop runtime, module registry |
registerModule |
Add modules with start/stop/getStatus |
getHealthStatus |
Aggregate module health |
getEventBus, getLogger |
Shared runtime services |
@embedded32/core, @embedded32/can, @embedded32/j1939, @embedded32/ethernet, @embedded32/bridge at 1.0.0 for full stacksNone for minimal supervisor example. Full fleet configs may enable SocketCAN modules.
Node.js only.
| Error | Fix |
|---|---|
| Module stuck in ERROR | Check module start() throws; use getHealthStatus() |
Double start() |
Guard with isRunningFlag() or CLI status |
| Wrong package name | Use @embedded32/supervisor scoped install |
@embedded32/cli - primary user entry@embedded32/core - runtime primitives inside modules@embedded32/bridge - optional bridge modules@embedded32/supervisor@1.0.0 matches CLI 1.0.0.
MIT © Mukesh Mani Tripathi