obsbot-mcp 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/README.md +197 -38
  2. package/dist/codec/commands.d.ts +42 -4
  3. package/dist/codec/commands.js +72 -10
  4. package/dist/codec/commands.js.map +1 -1
  5. package/dist/codec/frame.d.ts +1 -0
  6. package/dist/codec/frame.js +1 -1
  7. package/dist/codec/frame.js.map +1 -1
  8. package/dist/codec/preset.d.ts +40 -0
  9. package/dist/codec/preset.js +198 -0
  10. package/dist/codec/preset.js.map +1 -0
  11. package/dist/codec/types.d.ts +4 -0
  12. package/dist/device/helper-factory.d.ts +25 -0
  13. package/dist/device/helper-factory.js +40 -0
  14. package/dist/device/helper-factory.js.map +1 -0
  15. package/dist/device/manager.d.ts +326 -2
  16. package/dist/device/manager.js +720 -24
  17. package/dist/device/manager.js.map +1 -1
  18. package/dist/ipc/client.d.ts +19 -0
  19. package/dist/ipc/client.js +81 -0
  20. package/dist/ipc/client.js.map +1 -0
  21. package/dist/ipc/coordinator.d.ts +29 -0
  22. package/dist/ipc/coordinator.js +94 -0
  23. package/dist/ipc/coordinator.js.map +1 -0
  24. package/dist/ipc/owner.d.ts +21 -0
  25. package/dist/ipc/owner.js +59 -0
  26. package/dist/ipc/owner.js.map +1 -0
  27. package/dist/ipc/protocol.d.ts +21 -0
  28. package/dist/ipc/protocol.js +56 -0
  29. package/dist/ipc/protocol.js.map +1 -0
  30. package/dist/ipc/rendezvous.d.ts +26 -0
  31. package/dist/ipc/rendezvous.js +93 -0
  32. package/dist/ipc/rendezvous.js.map +1 -0
  33. package/dist/mcp/log-sink.d.ts +12 -0
  34. package/dist/mcp/log-sink.js +27 -0
  35. package/dist/mcp/log-sink.js.map +1 -0
  36. package/dist/mcp/ready.d.ts +16 -4
  37. package/dist/mcp/ready.js +11 -8
  38. package/dist/mcp/ready.js.map +1 -1
  39. package/dist/mcp/render.js +1 -1
  40. package/dist/mcp/render.js.map +1 -1
  41. package/dist/mcp/server.js +68 -18
  42. package/dist/mcp/server.js.map +1 -1
  43. package/dist/mcp/tools.d.ts +5 -3
  44. package/dist/mcp/tools.js +787 -186
  45. package/dist/mcp/tools.js.map +1 -1
  46. package/dist/transport/helper-process.d.ts +36 -0
  47. package/dist/transport/helper-process.js +190 -10
  48. package/dist/transport/helper-process.js.map +1 -1
  49. package/dist/transport/linux.d.ts +40 -0
  50. package/dist/transport/linux.js +92 -2
  51. package/dist/transport/linux.js.map +1 -1
  52. package/dist/transport/macos.d.ts +13 -0
  53. package/dist/transport/macos.js +59 -3
  54. package/dist/transport/macos.js.map +1 -1
  55. package/dist/transport/read-serial.d.ts +26 -0
  56. package/dist/transport/read-serial.js +87 -0
  57. package/dist/transport/read-serial.js.map +1 -0
  58. package/dist/transport/transport.d.ts +24 -0
  59. package/dist/transport/windows.d.ts +4 -0
  60. package/dist/transport/windows.js +31 -4
  61. package/dist/transport/windows.js.map +1 -1
  62. package/native/prebuilt/darwin-arm64/obsbot-helper +0 -0
  63. package/native/prebuilt/darwin-x64/obsbot-helper +0 -0
  64. package/native/prebuilt/linux-x64/obsbot-helper +0 -0
  65. package/native/prebuilt/win32-x64/obsbot-helper.exe +0 -0
  66. package/package.json +3 -2
  67. package/dist/device/session.d.ts +0 -22
  68. package/dist/device/session.js +0 -37
  69. package/dist/device/session.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,30 @@
1
1
  import { DeviceInfo } from "../codec/types.js";
2
2
  import { Snapshot, SnapshotOpts } from "./transport.js";
3
+ /** A camera the OS reported as attached or detached, pushed by the helper. */
4
+ export interface CameraEvent {
5
+ /** Device path (on macOS the AVFoundation uniqueID), as `enumerate` reports it. */
6
+ path: string;
7
+ name: string;
8
+ }
3
9
  export declare class HelperProcess {
4
10
  private commandOverride?;
5
11
  private proc?;
6
12
  private rl?;
7
13
  private queue;
14
+ /** Set once the child is gone; every later request fails with this. */
15
+ private dead?;
16
+ /** Set once an op reports the DEVICE gone, even though the process lives on. */
17
+ private lostDevice;
18
+ /** Listeners for unsolicited camera arrival/removal pushed by the helper. */
19
+ private arrivedListeners;
20
+ private departedListeners;
8
21
  constructor(commandOverride?: string[] | undefined);
22
+ /**
23
+ * Fail the helper permanently and settle everything waiting on it. Mirrors
24
+ * IpcClient's failAll() on socket close/error — same queue-of-waiters shape,
25
+ * same requirement that no caller be left pending.
26
+ */
27
+ private failAll;
9
28
  static resolveBinaryPath(platform?: string, arch?: string): string;
10
29
  start(): Promise<void>;
11
30
  private rpcRaw;
@@ -35,5 +54,22 @@ export declare class HelperProcess {
35
54
  min: number;
36
55
  max: number;
37
56
  }>;
57
+ /** Route a non-response line to the right listeners; ignore anything else. */
58
+ private dispatchEvent;
59
+ /** Notified when the OS reports a camera attached. */
60
+ onCameraArrived(fn: (e: CameraEvent) => void): void;
61
+ /** Notified when the OS reports a camera detached. */
62
+ onCameraDeparted(fn: (e: CameraEvent) => void): void;
63
+ /** Fire-and-forget write, for driving the fake helper's event ops in tests. */
64
+ send(req: Record<string, unknown>): void;
65
+ /** True once the child has died (or close() was called) — see getScanHelper(). */
66
+ get isDead(): boolean;
67
+ /**
68
+ * True once an operation reported the camera as no longer attached, while
69
+ * this helper's PROCESS is still perfectly alive — the unplug case. Callers
70
+ * treat it exactly like isDead: the handle is unusable and the binding must
71
+ * be re-established, even though there is no corpse to notice.
72
+ */
73
+ get deviceLost(): boolean;
38
74
  close(): Promise<void>;
39
75
  }
@@ -8,14 +8,77 @@ const SUPPORTED = {
8
8
  darwin: "obsbot-helper",
9
9
  linux: "obsbot-helper",
10
10
  };
11
+ // A request has two ways to never come back, and they need different guards:
12
+ //
13
+ // the helper DIES -> 'exit'/'error' fires; pending requests are failed at once
14
+ // the helper WEDGES -> process stays alive and silent; only a timeout settles it
15
+ //
16
+ // The second is the likelier shape of a real hardware fault (a driver-level
17
+ // stall), and no death handler can catch it. Both must fail rather than hang:
18
+ // ensureReady() self-heals on a THROW (invalidate -> re-bind -> fresh helper),
19
+ // so a request that hangs doesn't just block one call, it silently disables the
20
+ // respawn path that already exists.
21
+ //
22
+ // The default budget is generous because these are USB control transfers, not
23
+ // network calls — it exists to break a wedge, not to police latency. `snapshot`
24
+ // gets its own budget: it captures a real frame after an explicit settle delay
25
+ // (settleMs is caller-supplied, capped at 5000 by the tool schema), so its
26
+ // timeout is computed per-call from that delay rather than fixed.
27
+ const DEFAULT_RPC_TIMEOUT_MS = 10_000;
28
+ const SNAPSHOT_RPC_TIMEOUT_MS = 30_000;
29
+ // Errors that mean "the camera is no longer attached", as opposed to any other
30
+ // operation failure. A helper stays ALIVE when its device is unplugged — only
31
+ // the USB handle dies — so process death cannot detect this, and without a
32
+ // separate signal the binding is stranded until the process is killed.
33
+ //
34
+ // Deliberately NARROW. Condemning a binding on any random error would be worse
35
+ // than the bug it fixes: one bad argument would drop a healthy camera. Anything
36
+ // not listed here leaves the binding alone.
37
+ //
38
+ // - darwin: kIOReturnNoDevice. Hardware-observed 2026-07-21 on an unplug —
39
+ // every op returned "USB control request failed (0xe00002c0)". The adjacent
40
+ // 0xe00002c5 is kIOReturnExclusiveAccess, already referenced elsewhere in
41
+ // this repo, which anchors the numbering.
42
+ // - linux: the helper formats errno via strerror(), so ENODEV is exactly
43
+ // "No such device".
44
+ // - win32: HRESULT 0x800701b1 = HRESULT_FROM_WIN32(433) ERROR_DEV_NOT_EXIST,
45
+ // "A device which does not exist was specified." Hardware-observed
46
+ // 2026-07-21 (Tiny 2, cable pull with the device held open). BOTH DirectShow
47
+ // surfaces report the identical code — the KS/XU vendor property path
48
+ // ("KsProperty GET failed (hr=0x800701b1)") and IAMCameraControl
49
+ // ("IAMCameraControl::Get failed (hr=0x800701b1)") — so one pattern covers
50
+ // both. Worth recording that none of the plausible guesses was right:
51
+ // not 0x8007001F (ERROR_GEN_FAILURE), not 0x800705B4 (timeout), not
52
+ // 0x8007048F (ERROR_DEVICE_NOT_CONNECTED), not VFW_E_NOT_CONNECTED. This
53
+ // entry exists because it was measured, not inferred.
54
+ const DEVICE_LOST_SIGNATURES = [/0xe00002c0/i, /No such device/i, /0x800701b1/i];
11
55
  export class HelperProcess {
12
56
  commandOverride;
13
57
  proc;
14
58
  rl;
15
59
  queue = [];
60
+ /** Set once the child is gone; every later request fails with this. */
61
+ dead;
62
+ /** Set once an op reports the DEVICE gone, even though the process lives on. */
63
+ lostDevice = false;
64
+ /** Listeners for unsolicited camera arrival/removal pushed by the helper. */
65
+ arrivedListeners = [];
66
+ departedListeners = [];
16
67
  constructor(commandOverride) {
17
68
  this.commandOverride = commandOverride;
18
69
  }
70
+ /**
71
+ * Fail the helper permanently and settle everything waiting on it. Mirrors
72
+ * IpcClient's failAll() on socket close/error — same queue-of-waiters shape,
73
+ * same requirement that no caller be left pending.
74
+ */
75
+ failAll(err) {
76
+ this.dead ??= err;
77
+ const waiting = this.queue;
78
+ this.queue = [];
79
+ for (const w of waiting)
80
+ w.reject(err);
81
+ }
19
82
  static resolveBinaryPath(platform = process.platform, arch = process.arch) {
20
83
  const bin = SUPPORTED[platform];
21
84
  if (!bin) {
@@ -29,6 +92,19 @@ export class HelperProcess {
29
92
  HelperProcess.resolveBinaryPath(),
30
93
  ];
31
94
  this.proc = spawn(cmd, args, { stdio: ["pipe", "pipe", "inherit"] });
95
+ // Without these, a dead child leaves every caller pending forever.
96
+ // Error text is API surface here: the caller is an LLM, so each message says
97
+ // what happened AND what to do next. "helper process exited (code 1)" is an
98
+ // implementation detail that prescribes nothing; a model reading it tends to
99
+ // either retry blindly forever or tell the human the camera is broken — when
100
+ // in fact the next call re-binds automatically (DeviceManager.pruneDeadEntries).
101
+ this.proc.on("exit", (code, signal) => this.failAll(new Error(`camera link lost: the helper process exited (code ${code ?? "null"}, ` +
102
+ `signal ${signal ?? "none"}). The connection resets automatically — retry this call.`)));
103
+ this.proc.on("error", (e) => this.failAll(new Error(`camera link lost: the helper process failed to run (${e.message}). ` +
104
+ `Retry this call; if it repeats, the helper binary may be missing or blocked.`)));
105
+ // Writing to a dead child's stdin emits EPIPE on the stream; an 'error'
106
+ // event with no listener is rethrown by Node and would take the server down.
107
+ this.proc.stdin.on("error", (e) => this.failAll(new Error(`helper stdin error: ${e.message}`)));
32
108
  this.rl = createInterface({ input: this.proc.stdout });
33
109
  this.rl.on("line", (line) => {
34
110
  if (!line.trim())
@@ -48,24 +124,71 @@ export class HelperProcess {
48
124
  typeof parsed.ok !== "boolean") {
49
125
  // Valid JSON but not a recognizable RPC response (missing/invalid
50
126
  // `ok` field). Treat as noise rather than desyncing the queue.
127
+ //
128
+ // Unsolicited push events ride exactly this lane: they carry `event`
129
+ // and no `ok`, so they reach listeners WITHOUT shifting the queue.
130
+ // Responses correlate by position, so an event consumed as a response
131
+ // would hand this request's reply to the next waiter and desync every
132
+ // later call — which is why events must never look like responses.
133
+ this.dispatchEvent(parsed);
51
134
  return;
52
135
  }
53
136
  const cb = this.queue.shift();
54
137
  if (cb)
55
- cb(parsed);
138
+ cb.resolve(parsed);
56
139
  });
57
140
  }
58
141
  // Send a request and resolve with the raw response, whatever `ok` is.
59
- rpcRaw(req) {
60
- return new Promise((resolve) => {
61
- this.queue.push(resolve);
142
+ rpcRaw(req, timeoutMs = DEFAULT_RPC_TIMEOUT_MS) {
143
+ if (this.dead)
144
+ return Promise.reject(this.dead);
145
+ return new Promise((resolve, reject) => {
146
+ // A wedged helper never answers and never exits, so the timeout is the
147
+ // only thing that settles this. It fails just this request rather than
148
+ // condemning the helper: one slow op shouldn't tear down a working
149
+ // session. A genuinely dead helper is caught by the exit handler instead.
150
+ //
151
+ // On timeout the slot STAYS in the queue as a tombstone. Responses are
152
+ // correlated by position, so removing it would hand this request's late
153
+ // reply to the next waiter and desync every subsequent call — the exact
154
+ // failure the stray-line guard in start() exists to prevent. The tombstone
155
+ // absorbs that one late reply and discards it.
156
+ const entry = {
157
+ resolve: (r) => {
158
+ clearTimeout(timer);
159
+ resolve(r);
160
+ },
161
+ reject: (e) => {
162
+ clearTimeout(timer);
163
+ reject(e);
164
+ },
165
+ };
166
+ const timer = setTimeout(() => {
167
+ entry.resolve = () => { }; // tombstone: swallow the late reply
168
+ entry.reject = () => { };
169
+ reject(new Error(`helper request "${String(req.op)}" timed out after ${timeoutMs}ms — the camera ` +
170
+ `did not respond. Retry this call; if it repeats, check that no other ` +
171
+ `application is using the camera.`));
172
+ }, timeoutMs);
173
+ this.queue.push({
174
+ resolve: (r) => entry.resolve(r),
175
+ reject: (e) => entry.reject(e),
176
+ });
62
177
  this.proc.stdin.write(JSON.stringify(req) + "\n");
63
178
  });
64
179
  }
65
- async rpc(req) {
66
- const resp = await this.rpcRaw(req);
67
- if (!resp.ok)
68
- throw new Error(resp.error ?? "helper error (no message)");
180
+ async rpc(req, timeoutMs) {
181
+ const resp = await this.rpcRaw(req, timeoutMs);
182
+ if (!resp.ok) {
183
+ const message = resp.error ?? "helper error (no message)";
184
+ // Flag BEFORE throwing, so this is recorded even for callers that swallow
185
+ // the error into their own { ok: false } result (obsbot_status does), and
186
+ // for every tool regardless of whether it routes through the readiness
187
+ // gate. DeviceManager drops flagged helpers on the next resolve.
188
+ if (DEVICE_LOST_SIGNATURES.some((re) => re.test(message)))
189
+ this.lostDevice = true;
190
+ throw new Error(message);
191
+ }
69
192
  return resp;
70
193
  }
71
194
  async version() {
@@ -74,7 +197,13 @@ export class HelperProcess {
74
197
  }
75
198
  async enumerate() {
76
199
  const resp = await this.rpc({ op: "enumerate" });
77
- return resp.devices;
200
+ return resp.devices.map((d) => ({
201
+ path: String(d.path ?? ""),
202
+ name: String(d.name ?? ""),
203
+ locationId: typeof d.locationId === "number" ? d.locationId : undefined,
204
+ vid: typeof d.vid === "number" ? d.vid : undefined,
205
+ pid: typeof d.pid === "number" ? d.pid : undefined,
206
+ }));
78
207
  }
79
208
  async open(path) {
80
209
  const resp = await this.rpc({ op: "open", path });
@@ -104,7 +233,10 @@ export class HelperProcess {
104
233
  req.quality = opts.quality;
105
234
  if (opts.settleMs !== undefined)
106
235
  req.settleMs = opts.settleMs;
107
- const resp = await this.rpcRaw(req);
236
+ // Snapshot waits out a caller-supplied settle delay and then captures a real
237
+ // frame, so it gets its own budget on top of that delay rather than the
238
+ // default. Without this a legitimate slow capture would look like a wedge.
239
+ const resp = await this.rpcRaw(req, SNAPSHOT_RPC_TIMEOUT_MS + (opts.settleMs ?? 0));
108
240
  if (!resp.ok) {
109
241
  if (resp.busy)
110
242
  throw new CameraBusyError(resp.error ?? undefined);
@@ -135,7 +267,55 @@ export class HelperProcess {
135
267
  const resp = await this.rpc({ op: "procamp_range", property });
136
268
  return { min: resp.min, max: resp.max };
137
269
  }
270
+ /** Route a non-response line to the right listeners; ignore anything else. */
271
+ dispatchEvent(msg) {
272
+ const kind = msg.event;
273
+ if (kind !== "camera_arrived" && kind !== "camera_departed")
274
+ return;
275
+ const e = {
276
+ path: typeof msg.path === "string" ? msg.path : "",
277
+ name: typeof msg.name === "string" ? msg.name : "",
278
+ };
279
+ // A throwing listener must not take down the stdout reader — that would
280
+ // wedge every in-flight request for an unrelated reason.
281
+ for (const fn of kind === "camera_arrived" ? this.arrivedListeners : this.departedListeners) {
282
+ try {
283
+ fn(e);
284
+ }
285
+ catch {
286
+ // listener errors are the listener's problem
287
+ }
288
+ }
289
+ }
290
+ /** Notified when the OS reports a camera attached. */
291
+ onCameraArrived(fn) {
292
+ this.arrivedListeners.push(fn);
293
+ }
294
+ /** Notified when the OS reports a camera detached. */
295
+ onCameraDeparted(fn) {
296
+ this.departedListeners.push(fn);
297
+ }
298
+ /** Fire-and-forget write, for driving the fake helper's event ops in tests. */
299
+ send(req) {
300
+ this.proc?.stdin.write(JSON.stringify(req) + "\n");
301
+ }
302
+ /** True once the child has died (or close() was called) — see getScanHelper(). */
303
+ get isDead() {
304
+ return this.dead !== undefined;
305
+ }
306
+ /**
307
+ * True once an operation reported the camera as no longer attached, while
308
+ * this helper's PROCESS is still perfectly alive — the unplug case. Callers
309
+ * treat it exactly like isDead: the handle is unusable and the binding must
310
+ * be re-established, even though there is no corpse to notice.
311
+ */
312
+ get deviceLost() {
313
+ return this.lostDevice;
314
+ }
138
315
  async close() {
316
+ // Mark dead BEFORE tearing down, so anything still queued fails with an
317
+ // intentional-shutdown reason rather than racing the 'exit' handler.
318
+ this.failAll(new Error("helper process closed"));
139
319
  this.rl?.close();
140
320
  this.proc?.stdin.end();
141
321
  this.proc?.kill();
@@ -1 +1 @@
1
- {"version":3,"file":"helper-process.js","sourceRoot":"","sources":["../../src/transport/helper-process.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helper-process.js","sourceRoot":"","sources":["../../src/transport/helper-process.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,19 @@ import { ObsbotTransport, Snapshot, SnapshotOpts } from "./transport.js";
5
5
  * because both delegate to the native helper process over the same JSON-RPC
6
6
  * stdio protocol. The selector constants are camera-side constants (the UVC
7
7
  * Extension Unit), not OS constants, so they are shared.
8
+ *
9
+ * Key difference: gimbal absolute movement uses V4L2 pan_absolute/tilt_absolute
10
+ * (hardware-verified to physically move the gimbal, repeatedly, 2026-07-21),
11
+ * NOT vendor V3 frames. camCtrlGet for pan/tilt reads back the same V4L2
12
+ * controls — this is the last-*commanded* value, not a live in-flight
13
+ * reading: VIDIOC_QUERY_EXT_CTRL reports these controls as non-volatile on
14
+ * this kernel, so V4L2 core serves its own cache rather than re-querying the
15
+ * device. Getting a genuinely live reading requires a raw USB read with the
16
+ * kernel driver briefly detached, which conflicts with any concurrent video
17
+ * capture (preview/recording) and was deliberately dropped from the shipped
18
+ * transport for that reason — see README's Linux limitations section. A
19
+ * kernel patch marking these controls volatile would fix this at the source;
20
+ * until then, gimbal moves on Linux are open-loop, same as the position read.
8
21
  */
9
22
  export declare class LinuxTransport implements ObsbotTransport {
10
23
  private helper;
@@ -35,6 +48,33 @@ export declare class LinuxTransport implements ObsbotTransport {
35
48
  min: number;
36
49
  max: number;
37
50
  }>;
51
+ /**
52
+ * Move the gimbal using V4L2 pan_absolute/tilt_absolute (arc-seconds).
53
+ * Hardware-verified to physically move the gimbal (2026-07-21, repeated
54
+ * across many absolute targets). Unlike vendor V3 frames, V4L2 writes keep
55
+ * camCtrlGet's echo in sync with what was actually commanded.
56
+ *
57
+ * Sign convention: V4L2 pan_absolute + = camera's left (matches our yaw sign).
58
+ * V4L2 tilt_absolute + = tilt up (opposite of our +pitch = down convention).
59
+ */
60
+ gimbalSet(yawDeg: number, pitchDeg: number, _rollDeg?: number): Promise<void>;
61
+ /**
62
+ * Drive the gimbal at a speed for a duration, using vendor-frame velocity
63
+ * protocol (fire-and-forget, no position readback). Not reachable from the
64
+ * Linux tool surface (obsbot_gimbal_move_speed is hidden on this platform):
65
+ * without a live position reading there is no way to confirm a speed burst
66
+ * stays within the gimbal's mechanical range before it gets there, unlike
67
+ * gimbalSet's absolute target, which can be clamped up front regardless of
68
+ * current position. Kept implemented here for ObsbotTransport conformance
69
+ * and for any future internal use once live feedback exists.
70
+ */
71
+ gimbalSpeed(yaw: number, pitch: number, roll: number, autoStopMs: number): Promise<void>;
72
+ /**
73
+ * Recenter the gimbal via V4L2 pan_absolute=0, tilt_absolute=0.
74
+ * Hardware-verified to physically recenter the gimbal (2026-07-21).
75
+ */
76
+ gimbalRecenter(): Promise<void>;
77
+ readSerial(): Promise<string>;
38
78
  nextSeq(): number;
39
79
  close(): Promise<void>;
40
80
  }