Paskooter 8c92e1c963 Fix Track.lookAt crash and fetchBuffer hang; bump to 2.0.1
- Track.lookAt: was calling client.user.lookAtEntity (undefined), now
  correctly routes to client.behavior.lookAtEntity — fixes unhandled
  promise rejections on every face-detection event
- connection: httpGet/httpGetStream had no socket timeout; added 15 s
  req.setTimeout so fetchBuffer/pipe reject instead of hanging forever
- connection: _txSend silently dropped commands when session not yet
  ready and returned a dead txId, causing callers to hang for the full
  timeout; now throws immediately with code NOT_READY

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 12:45:48 -04:00
2026-04-23 01:18:10 -04:00

rom-control

Robust client for the Jibo ROM WebSocket API. Provides a discord.js-style OOP interface with promises, rich event objects, and automatic session management.

const { Client, AttentionMode } = require('rom-control');

const jibo = new Client({ host: '192.168.1.217' });

jibo.once('ready', async () => {
  await jibo.behavior.setAttention(AttentionMode.Engaged);
  await jibo.behavior.say('<anim cat="excited" nonBlocking="true"/> Hello!');
});

jibo.on('trackCreate', async (track) => {
  await track.lookAt();
});

jibo.on('hotword', async (event) => {
  const result = await jibo.audio.awaitSpeech();
  console.log('Heard:', result.speech);
});

jibo.connect();

Install

npm install rom-control

Features

  • Promise-based API — every action resolves when physically complete
  • Manager classes: client.behavior, client.audio, client.camera, client.display, client.assets
  • Rich event objects: Track, Photo, SpeechResult, HotwordEvent, GestureEvent, and more
  • Live entity tracking map (client.tracks)
  • Auto-reconnect, auto-heartbeat, and auto-subscribe
  • Local ASR speech recognition (no cloud required)
  • Wakeword detection via on-robot ASR service
  • ESM and CJS exports

Documentation

See API.md for full reference.

Requirements

  • Node.js ≥ 16
  • A Jibo robot running ROM firmware on your local network
Description
Robust client for the Jibo ROM WebSocket API
Readme 88 KiB
Languages
JavaScript 100%