@pollen-robotics/reachy-mini-sdk 1.10.0-dev.0.main.05ce680 → 1.10.0-dev.0.main.4dc28bb

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 (125) hide show
  1. package/APP_CREATION_GUIDE.md +98 -0
  2. package/dist/lib/central-listener.d.ts +71 -0
  3. package/dist/lib/central-listener.d.ts.map +1 -0
  4. package/dist/lib/central-listener.js +277 -0
  5. package/dist/lib/central-listener.js.map +1 -0
  6. package/dist/lib/central-listener.test.d.ts +2 -0
  7. package/dist/lib/central-listener.test.d.ts.map +1 -0
  8. package/dist/lib/central-listener.test.js +378 -0
  9. package/dist/lib/central-listener.test.js.map +1 -0
  10. package/dist/lib/dc-watchdog.test.d.ts +2 -0
  11. package/dist/lib/dc-watchdog.test.d.ts.map +1 -0
  12. package/dist/lib/dc-watchdog.test.js +154 -0
  13. package/dist/lib/dc-watchdog.test.js.map +1 -0
  14. package/dist/lib/ensure-awake.test.d.ts +2 -0
  15. package/dist/lib/ensure-awake.test.d.ts.map +1 -0
  16. package/dist/lib/ensure-awake.test.js +117 -0
  17. package/dist/lib/ensure-awake.test.js.map +1 -0
  18. package/dist/lib/ice-grace.test.d.ts +2 -0
  19. package/dist/lib/ice-grace.test.d.ts.map +1 -0
  20. package/dist/lib/ice-grace.test.js +211 -0
  21. package/dist/lib/ice-grace.test.js.map +1 -0
  22. package/dist/lib/imu.test.d.ts +2 -0
  23. package/dist/lib/imu.test.d.ts.map +1 -0
  24. package/dist/lib/imu.test.js +78 -0
  25. package/dist/lib/imu.test.js.map +1 -0
  26. package/dist/lib/logger.d.ts +38 -0
  27. package/dist/lib/logger.d.ts.map +1 -0
  28. package/dist/lib/logger.js +81 -0
  29. package/dist/lib/logger.js.map +1 -0
  30. package/dist/lib/pending-replies.d.ts +127 -0
  31. package/dist/lib/pending-replies.d.ts.map +1 -0
  32. package/dist/lib/pending-replies.js +255 -0
  33. package/dist/lib/pending-replies.js.map +1 -0
  34. package/dist/lib/pending-replies.test.d.ts +2 -0
  35. package/dist/lib/pending-replies.test.d.ts.map +1 -0
  36. package/dist/lib/pending-replies.test.js +217 -0
  37. package/dist/lib/pending-replies.test.js.map +1 -0
  38. package/dist/lib/reachy-mini.d.ts +185 -91
  39. package/dist/lib/reachy-mini.d.ts.map +1 -1
  40. package/dist/lib/reachy-mini.js +604 -648
  41. package/dist/lib/reachy-mini.js.map +1 -1
  42. package/dist/lib/redial.test.d.ts +2 -0
  43. package/dist/lib/redial.test.d.ts.map +1 -0
  44. package/dist/lib/redial.test.js +206 -0
  45. package/dist/lib/redial.test.js.map +1 -0
  46. package/dist/lib/request.test.d.ts +2 -0
  47. package/dist/lib/request.test.d.ts.map +1 -0
  48. package/dist/lib/request.test.js +90 -0
  49. package/dist/lib/request.test.js.map +1 -0
  50. package/dist/lib/session-supervisor.d.ts +201 -0
  51. package/dist/lib/session-supervisor.d.ts.map +1 -0
  52. package/dist/lib/session-supervisor.js +520 -0
  53. package/dist/lib/session-supervisor.js.map +1 -0
  54. package/dist/lib/token-store.d.ts +50 -0
  55. package/dist/lib/token-store.d.ts.map +1 -0
  56. package/dist/lib/token-store.js +120 -0
  57. package/dist/lib/token-store.js.map +1 -0
  58. package/dist/lib/token-store.test.d.ts +2 -0
  59. package/dist/lib/token-store.test.d.ts.map +1 -0
  60. package/dist/lib/token-store.test.js +82 -0
  61. package/dist/lib/token-store.test.js.map +1 -0
  62. package/dist/lib/types.d.ts +280 -6
  63. package/dist/lib/types.d.ts.map +1 -1
  64. package/dist/lib/url-helpers.d.ts.map +1 -1
  65. package/dist/lib/url-helpers.js +3 -1
  66. package/dist/lib/url-helpers.js.map +1 -1
  67. package/dist/lib/version.d.ts +2 -0
  68. package/dist/lib/version.d.ts.map +1 -0
  69. package/dist/lib/version.js +5 -0
  70. package/dist/lib/version.js.map +1 -0
  71. package/dist/reachy-mini-sdk.d.ts +15 -1
  72. package/dist/reachy-mini-sdk.d.ts.map +1 -1
  73. package/dist/reachy-mini-sdk.js +12 -0
  74. package/dist/reachy-mini-sdk.js.map +1 -1
  75. package/host/dist/ReachyHost.d.ts.map +1 -1
  76. package/host/dist/chunks/centralRest-uXNMidlL.js +2315 -0
  77. package/host/dist/chunks/index-Beu4GNzi.js +821 -0
  78. package/host/dist/chunks/{mountHost-DztGlWwu.js → mountHost-BTTF4Uu9.js} +26739 -29305
  79. package/host/dist/components/DaemonUpdateGate.d.ts +65 -0
  80. package/host/dist/components/DaemonUpdateGate.d.ts.map +1 -0
  81. package/host/dist/components/ErrorView.d.ts.map +1 -1
  82. package/host/dist/components/HostErrorBoundary.d.ts +30 -0
  83. package/host/dist/components/HostErrorBoundary.d.ts.map +1 -0
  84. package/host/dist/components/PickerView.d.ts +16 -14
  85. package/host/dist/components/PickerView.d.ts.map +1 -1
  86. package/host/dist/components/PostOAuthSplash.d.ts +14 -9
  87. package/host/dist/components/PostOAuthSplash.d.ts.map +1 -1
  88. package/host/dist/components/ReachyHostShell.d.ts.map +1 -1
  89. package/host/dist/components/SignInView.d.ts.map +1 -1
  90. package/host/dist/components/TopBar.d.ts +5 -6
  91. package/host/dist/components/TopBar.d.ts.map +1 -1
  92. package/host/dist/embed/index.d.ts +68 -5
  93. package/host/dist/embed/index.d.ts.map +1 -1
  94. package/host/dist/entry/auto.js +2 -2
  95. package/host/dist/entry/embed.d.ts +5 -4
  96. package/host/dist/entry/embed.d.ts.map +1 -1
  97. package/host/dist/entry/embed.js +5 -4
  98. package/host/dist/hooks/useHostBridge.d.ts +35 -1
  99. package/host/dist/hooks/useHostBridge.d.ts.map +1 -1
  100. package/host/dist/hooks/useLatestDaemonVersion.d.ts +7 -0
  101. package/host/dist/hooks/useLatestDaemonVersion.d.ts.map +1 -0
  102. package/host/dist/hooks/useOAuth.d.ts +18 -0
  103. package/host/dist/hooks/useOAuth.d.ts.map +1 -1
  104. package/host/dist/hooks/useRobots.d.ts +0 -2
  105. package/host/dist/hooks/useRobots.d.ts.map +1 -1
  106. package/host/dist/index.d.ts +2 -2
  107. package/host/dist/index.d.ts.map +1 -1
  108. package/host/dist/index.js +11 -10
  109. package/host/dist/lib/daemonRelease.d.ts +84 -0
  110. package/host/dist/lib/daemonRelease.d.ts.map +1 -0
  111. package/host/dist/lib/protocol.d.ts +141 -7
  112. package/host/dist/lib/protocol.d.ts.map +1 -1
  113. package/host/dist/lib/rebootWatch.d.ts +51 -0
  114. package/host/dist/lib/rebootWatch.d.ts.map +1 -0
  115. package/host/dist/lib/sdk-types.d.ts +1 -1
  116. package/host/dist/lib/sdk-types.d.ts.map +1 -1
  117. package/host/dist/lib/sdkStaleness.d.ts +78 -0
  118. package/host/dist/lib/sdkStaleness.d.ts.map +1 -0
  119. package/host/dist/lib/settings.d.ts +16 -5
  120. package/host/dist/lib/settings.d.ts.map +1 -1
  121. package/package.json +9 -2
  122. package/host/dist/chunks/index-lMs2sCXG.js +0 -439
  123. package/host/dist/chunks/reachy-mini-DJD3mwi2.js +0 -1595
  124. package/host/dist/lib/centralListener.d.ts +0 -73
  125. package/host/dist/lib/centralListener.d.ts.map +0 -1
@@ -3,16 +3,8 @@
3
3
  * See `../reachy-mini-sdk.ts` for the package's barrel and the README for
4
4
  * a quick-start guide.
5
5
  */
6
- import type { ApplyAudioConfigOptions, AudioConfigEntry, AutoConnectOptions, AutoConnectResult, FaceTarget, MotionAwaitOptions, MoveData, PlayMoveOptions, PlayMoveResult, PlayUploadedAudioOptions, ReachyMiniInstance, ReachyMiniOptions, RobotInfo, RobotState, SubscribeLogsOptions, UploadAudioOptions } from './types.js';
7
- /** One progress event from an in-flight `startDaemonUpdate()`. */
8
- export interface UpdateProgressEvent {
9
- status: 'in_progress' | 'done' | 'failed';
10
- /** A log line of the underlying update job (when `in_progress`). */
11
- line?: string;
12
- /** Set when `status === 'failed'`. */
13
- error?: string;
14
- }
15
- type UpdateProgressCallback = (event: UpdateProgressEvent) => void;
6
+ import type { ApplyAudioConfigOptions, AudioConfigEntry, AutoConnectOptions, AutoConnectResult, FaceTarget, ImuData, LoginOptions, MotionAwaitOptions, MoveData, PlayMoveOptions, PlayMoveResult, PlayUploadedAudioOptions, ReachyMiniInstance, ReachyMiniOptions, RequestOptions, RobotInfo, RobotState, StartDaemonUpdateOptions, SubscribeLogsOptions, UpdateProgressEvent, UploadAudioOptions } from './types.js';
7
+ export type { UpdateProgressEvent };
16
8
  export declare class ReachyMini extends EventTarget implements ReachyMiniInstance {
17
9
  private readonly _signalingUrl;
18
10
  private readonly _clientId;
@@ -23,6 +15,9 @@ export declare class ReachyMini extends EventTarget implements ReachyMiniInstanc
23
15
  private _state;
24
16
  private _robots;
25
17
  private _robotState;
18
+ private _lastPoseSeq;
19
+ private _lastPoseFrameAt;
20
+ private _poseSubRefs;
26
21
  private readonly _preselectedRobotId;
27
22
  private _token;
28
23
  private _username;
@@ -39,32 +34,17 @@ export declare class ReachyMini extends EventTarget implements ReachyMiniInstanc
39
34
  private _micSupported;
40
35
  private _latencyMonitorId;
41
36
  private _stateRefreshInterval;
42
- private _versionResolve;
43
- private _hardwareIdResolve;
44
- private _volumeResolve;
45
- private _micVolumeResolve;
46
- private _trackedFaceResolve;
47
- private _applyAudioConfigResolve;
48
- private _readAudioParameterResolve;
37
+ private readonly _pending;
49
38
  private readonly _logSubscribers;
50
39
  private readonly _updateProgressSubscribers;
51
- private _rpcCounter;
52
- private readonly _pendingRpc;
53
40
  private readonly _rpcListeners;
54
- private _broadcastWaiters;
55
41
  private _activeMoveUploadId;
56
42
  private _activeAudioUploadId;
57
43
  private _sessionResolve;
58
44
  private _sessionReject;
59
45
  private _iceConnected;
60
46
  private _dcOpen;
61
- private _iceGraceTimer;
62
- private _iceGraceReason;
63
- private _pendingVisibilityHandler;
64
- private _onlineHandler;
65
- private _offlineHandler;
66
- private _connectionChangeHandler;
67
- private readonly _pendingMotionCompletions;
47
+ private readonly _supervisor;
68
48
  private _videoElement;
69
49
  constructor(options?: ReachyMiniOptions);
70
50
  get state(): 'disconnected' | 'connected' | 'streaming';
@@ -77,6 +57,24 @@ export declare class ReachyMini extends EventTarget implements ReachyMiniInstanc
77
57
  get audioMuted(): boolean;
78
58
  get preselectedRobotId(): string | null;
79
59
  get isEmbedded(): boolean;
60
+ /**
61
+ * Live RTCPeerConnection, or `null` between sessions. Read-only escape
62
+ * hatch for stats sampling (`getStats()`); mutating it is unsupported.
63
+ * Auto-reconnect re-dials REPLACE this object, so re-read it on every
64
+ * use — never capture it across ticks.
65
+ */
66
+ get peerConnection(): RTCPeerConnection | null;
67
+ /**
68
+ * Build version of this SDK (npm package `version`), injected from
69
+ * package.json at build time. This is the JS SDK's OWN version and is
70
+ * distinct from `getVersion()`, which asks the DAEMON its version over
71
+ * the data channel. `0.0.0-managed-by-ci` means an unreleased/branch
72
+ * build (npm releases carry a real semver).
73
+ */
74
+ get sdkVersion(): string;
75
+ /** Same value as the instance `sdkVersion`, reachable without an
76
+ * instance: `ReachyMini.version`. */
77
+ static get version(): string;
80
78
  /**
81
79
  * Internal: try to honour the `autoStartFromUrl` constructor
82
80
  * option. Called from the signaling-message handler after every
@@ -85,65 +83,55 @@ export declare class ReachyMini extends EventTarget implements ReachyMiniInstanc
85
83
  */
86
84
  _maybeAutoStart(): void;
87
85
  authenticate(): Promise<boolean>;
88
- login(): Promise<void>;
86
+ login(options?: LoginOptions): Promise<void>;
89
87
  logout(): void;
90
88
  connect(token?: string): Promise<void>;
91
89
  autoConnect(options?: AutoConnectOptions): Promise<AutoConnectResult>;
92
90
  private _fetchOwnedRobots;
93
91
  private _waitForRobotInList;
94
92
  startSession(robotId: string): Promise<void>;
93
+ private _startSessionInternal;
94
+ /**
95
+ * Common transport teardown shared by every session-ending path
96
+ * (stopSession, disconnect, the auto-redial, a session rejection):
97
+ * settle the pending-reply ledger and the startSession() resolvers
98
+ * with `settleErr`, stand the resilience plumbing down, stop the
99
+ * session-scoped timers, release the mic placeholder and close the
100
+ * pc/dc. Returns the session id (already cleared on the instance)
101
+ * so each caller decides whether and how to send `endSession`.
102
+ * What else differs — events, subscriber wipes, where `_state`
103
+ * lands — stays with the callers.
104
+ */
105
+ private _closeTransport;
95
106
  private _failSessionRejected;
96
107
  stopSession(): Promise<void>;
97
108
  disconnect(): void;
98
109
  /**
99
- * Cancel any pending ICE grace timer and visibility handler. Called
100
- * on a healed `connected`/`completed` transition AND from the
101
- * lifecycle teardown paths so a callback can't fire after `_pc`
102
- * is closed.
103
- */
104
- private _clearIceGrace;
105
- /**
106
- * Start a grace window. After `ms`, re-check the live ICE state:
107
- * - If we healed back to `connected`/`completed`, the timer was
108
- * already cancelled in `oniceconnectionstatechange`, so we
109
- * never get here.
110
- * - If we're still in the originally-observed bad state (or
111
- * worse), surface the error and reject any pending session
112
- * promise. The original code path is preserved verbatim so
113
- * downstream consumers see the same `error` payload shape.
110
+ * Enable/disable the automatic session re-dial at runtime.
111
+ * Disabling also aborts any re-dial already in flight. Used by
112
+ * flows that EXPECT the transport to die — e.g. the daemon
113
+ * self-update, whose `systemctl restart` teardown must surface as
114
+ * `sessionStopped` immediately (it's the "install done, rebooting"
115
+ * signal), not get absorbed by ~22 s of doomed reconnect attempts
116
+ * against a robot that is rebooting anyway.
117
+ *
118
+ * Sharp edge: cancelling an in-flight re-dial leaves the session
119
+ * torn down without emitting `sessionStopped` or `error` — the
120
+ * caller owns the terminal event (see `ReachyMiniInstance`).
114
121
  */
115
- private _scheduleIceGrace;
122
+ setAutoReconnect(enabled: boolean): void;
116
123
  /**
117
- * `disconnected` while the tab is hidden. JS timers are throttled
118
- * in background tabs (Chrome clamps to ~1 Hz, Safari can pause
119
- * altogether), so a foreground grace timer would either miss the
120
- * window or fire long after the connection healed. Wait for the
121
- * tab to come back, then re-evaluate.
124
+ * Transport-only teardown: everything stopSession() does EXCEPT the
125
+ * user-facing state flip (`sessionStopped` is not emitted, `_state`
126
+ * falls back to 'connected' so the re-dial can start a session).
127
+ * Pending promises that ride the dead channel are settled just like
128
+ * stopSession() settles them — callers see the same failure shape a
129
+ * manual stop would produce; that includes a timed-out dial
130
+ * attempt's own startSession() promise (its resolvers were left
131
+ * armed, and a late signaling reply could otherwise settle them
132
+ * against a closed pc).
122
133
  */
123
- private _armIceGraceOnVisibility;
124
- /**
125
- * Install browser-level network listeners and forward them as
126
- * public `networkOnline` / `networkOffline` / `networkChange`
127
- * events on this instance. Idempotent: called from
128
- * `startSession()`, removed by `_uninstallNetworkListeners` on
129
- * teardown. Reachable only when there's a live `window`
130
- * (defensive guard for SSR / test environments).
131
- *
132
- * `online` / `offline` are semantically about CONNECTIVITY:
133
- * "does the OS think we can reach the internet". They flip
134
- * symmetrically.
135
- *
136
- * `connection.change` (NetworkInformation API, Chrome / Android
137
- * WebView only) is semantically about the TRANSPORT: it fires
138
- * on Wi-Fi → 4G swaps, AP roams, etc. without necessarily going
139
- * through `offline`. We forward it as its own `networkChange`
140
- * event rather than aliasing it onto `networkOnline`, so
141
- * consumers don't have to guess whether they're seeing a real
142
- * connectivity recovery or a silent transport swap.
143
- */
144
- private _installNetworkListeners;
145
- /** Counterpart to `_installNetworkListeners`. */
146
- private _uninstallNetworkListeners;
134
+ private _teardownForRedial;
147
135
  /**
148
136
  * Atomic raw-units pose update over the data channel. Channels you
149
137
  * omit are held at their last commanded value (per-axis, independent).
@@ -202,6 +190,31 @@ export declare class ReachyMini extends EventTarget implements ReachyMiniInstanc
202
190
  setAntennasDeg(rightDeg: number, leftDeg: number): boolean;
203
191
  setBodyYawDeg(yawDeg: number): boolean;
204
192
  playSound(file: string): boolean;
193
+ playRecordedMove(moveName: string, { dataset, initialGotoDuration, }?: {
194
+ dataset?: string;
195
+ initialGotoDuration?: number;
196
+ }): boolean;
197
+ /**
198
+ * Stop whatever move is currently playing on the daemon (recorded move,
199
+ * uploaded move, goto). Fire-and-forget and idempotent: the daemon acks
200
+ * ok with `stopped: false` when nothing was running. Returns `false` if
201
+ * the data channel is not open.
202
+ */
203
+ stopMove(): boolean;
204
+ preloadDataset(dataset: string): boolean;
205
+ /**
206
+ * Like `preloadDataset()`, but resolves once the daemon acks the preload
207
+ * (`{command: "preload_dataset", ...}` on the data channel), i.e. when the
208
+ * dataset is actually in the local HF cache. Resolves `true` on success,
209
+ * `false` when the daemon reports a download failure, and `null` on the
210
+ * fail-open timeout (download slower than `timeoutMs`, or a daemon that
211
+ * predates the command and never replies) - callers should proceed in all
212
+ * three cases, `playRecordedMove` still downloads on demand. Rejects when
213
+ * the data channel isn't open or the session tears down mid-flight.
214
+ */
215
+ preloadDatasetAndWait(dataset: string, { timeoutMs }?: {
216
+ timeoutMs?: number;
217
+ }): Promise<boolean | null>;
205
218
  clearIncomingAudio(): boolean;
206
219
  startHeadTracking(weight?: number): boolean;
207
220
  stopHeadTracking(): boolean;
@@ -220,44 +233,122 @@ export declare class ReachyMini extends EventTarget implements ReachyMiniInstanc
220
233
  *
221
234
  * Returns `false` if the data channel isn't open.
222
235
  */
223
- startDaemonUpdate({ preRelease, onProgress }?: {
224
- preRelease?: boolean;
225
- onProgress?: UpdateProgressCallback;
226
- }): boolean;
236
+ startDaemonUpdate({ preRelease, onProgress }?: StartDaemonUpdateOptions): boolean;
227
237
  setMotorMode(mode: 'enabled' | 'disabled' | 'gravity_compensation'): boolean;
228
238
  setMotorTorque(on: boolean, ids?: string[] | null): boolean;
229
239
  wakeUp({ timeoutMs }?: MotionAwaitOptions): Promise<void>;
230
240
  gotoSleep({ timeoutMs }?: MotionAwaitOptions): Promise<void>;
231
241
  private _sendCommandAwaitCompletion;
232
- private _rejectPendingMotionCompletions;
233
242
  isAwake(): boolean;
234
243
  ensureAwake(timeoutMs?: number): Promise<boolean>;
244
+ /**
245
+ * Query the daemon version. Resolves `null` when the daemon predates
246
+ * `get_version` (fail-open on the shared slot timeout) or the reply is
247
+ * superseded by session teardown.
248
+ */
235
249
  getVersion(): Promise<string | null>;
236
250
  getHardwareId(): Promise<string | null>;
251
+ /**
252
+ * One-shot IMU reading (BMI088, wireless version only). Resolves `null`
253
+ * when the robot has no IMU (Lite, simulation) or the daemon predates
254
+ * the `get_imu` command (fail-open on the shared slot timeout).
255
+ */
256
+ getImu(): Promise<ImuData | null>;
237
257
  getVolume(): Promise<number | null>;
238
258
  setVolume(volume: number): Promise<number | null>;
239
259
  getMicrophoneVolume(): Promise<number | null>;
240
260
  setMicrophoneVolume(volume: number): Promise<number | null>;
261
+ /**
262
+ * Query whether the first wake-up setup wizard has been completed.
263
+ * Robot-wide, persisted on the robot. Resolves `false` when pending,
264
+ * `true` when done, or `null` when the channel isn't open / the daemon
265
+ * predates the `get_first_wake_up` command (callers should fail-open
266
+ * and skip the wizard on `null`).
267
+ */
268
+ getFirstWakeUp(): Promise<boolean | null>;
269
+ /**
270
+ * Persist the first wake-up wizard completion flag on the robot.
271
+ * Resolves with the stored value (or `null` on channel-closed).
272
+ */
273
+ setFirstWakeUp(isCompleted: boolean): Promise<boolean | null>;
274
+ /**
275
+ * Query the persisted robot display name. Resolves the stored name,
276
+ * `null` when none is set / the channel isn't open / the daemon predates
277
+ * the `get_robot_name` command.
278
+ */
279
+ getRobotName(): Promise<string | null>;
280
+ /**
281
+ * Set and persist the robot display name on the robot. Resolves with the
282
+ * stored (trimmed) name, or `null` on error / channel-closed. Applied live
283
+ * by the daemon (status + central relay + mDNS), so it takes effect right
284
+ * away without a restart; the persisted name also overrides --robot-name
285
+ * on the next start.
286
+ */
287
+ setRobotName(name: string): Promise<string | null>;
288
+ /**
289
+ * Sign this robot out of Hugging Face: asks the daemon to delete its
290
+ * stored HF token, which de-registers the robot from the central
291
+ * signaling relay (it disappears from its owner's robot list until it
292
+ * is set up again). Works over the WebRTC data channel, so it reaches
293
+ * the robot remotely (no LAN HTTP path required).
294
+ *
295
+ * Resolves `true` when the daemon acked success, `false` on a daemon
296
+ * error, or `null` when no ack arrives before the timeout (e.g. a
297
+ * daemon that predates the `delete_hf_token` command silently drops
298
+ * it). Rejects if the data channel isn't open. Note the sign-out
299
+ * drops the central relay, so the session may tear down right after
300
+ * the ack - callers should treat a post-call session drop as expected,
301
+ * and a successful sign-out may surface as `null` if teardown races
302
+ * ahead of the ack.
303
+ */
304
+ signOut(): Promise<boolean | null>;
241
305
  applyAudioConfig(config: AudioConfigEntry[], { verify }?: ApplyAudioConfigOptions): Promise<boolean>;
242
306
  readAudioParameter(name: string): Promise<number[] | null>;
243
307
  /**
244
308
  * Internal: send a command and await the matching daemon response in a
245
- * named single-resolver slot. Used by the volume helpers and the
246
- * XVF3800 audio-config helpers — every one of them has a strict
247
- * request/response shape where a single in-flight call per slot is
248
- * sufficient. If a previous request on the same slot is still
249
- * pending when a new one comes in, the older promise is resolved to
250
- * `null` so its caller doesn't hang forever.
251
- *
252
- * Slot access is passed in as getter/setter closures rather than a
253
- * key into `this`: that keeps the helper fully generic-checked (T is
254
- * inferred from the slot's resolver type at each call site) with no
255
- * indexed-property casts.
309
+ * named single-resolver slot (see `PendingReplies.slotRoundtrip`).
310
+ * Every caller has a strict request/response shape where a single
311
+ * in-flight call per slot is sufficient.
256
312
  */
257
313
  private _slotRoundtrip;
258
314
  sendRaw(data: unknown): boolean;
315
+ /**
316
+ * Generic command round-trip for daemon commands the SDK has no typed
317
+ * wrapper for (yet). Escape hatch so an app can use a newer daemon
318
+ * feature without waiting for an SDK release: sends `command` and
319
+ * resolves with the first robot message whose `command` field equals
320
+ * the sent `type` - the daemon's reply convention - or with `null` on
321
+ * the fail-open timeout (daemon predates the command, or the command
322
+ * is fire-and-forget and never replies).
323
+ *
324
+ * Rejects when the data channel isn't open or the session tears down
325
+ * mid-flight, mirroring the typed wrappers.
326
+ *
327
+ * Replies the SDK already consumes internally (`get_imu`,
328
+ * `get_volume`, ...) are swallowed by their own handlers and never
329
+ * reach this matcher - use the typed wrappers for those. Pass `match`
330
+ * for replies that don't follow the `command` echo convention.
331
+ */
332
+ request(command: {
333
+ type: string;
334
+ } & Record<string, unknown>, { timeoutMs, match }?: RequestOptions): Promise<Record<string, unknown> | null>;
259
335
  subscribeLogs({ onLine, onError }: SubscribeLogsOptions): () => void;
260
336
  requestState(): boolean;
337
+ /**
338
+ * Ask the daemon to *push* the robot state (~30 Hz) over the dedicated
339
+ * unreliable/unordered `pose` data channel instead of polling get_state.
340
+ * Fires `state` events as frames arrive. No-op against an older daemon (no
341
+ * pose channel) - fall back to `requestState()` polling there.
342
+ *
343
+ * Refcounted: pair every `subscribePose()` with exactly one
344
+ * `unsubscribePose()`. Multiple consumers share a single daemon-side
345
+ * subscription; the daemon only stops pushing once the last one releases.
346
+ * If the channel isn't open yet (or the session later reconnects), the
347
+ * subscription is (re-)asserted from `_checkSessionReady`.
348
+ */
349
+ subscribePose(): boolean;
350
+ /** Release one pose-stream consumer; sends `unsubscribe_pose` on the last. */
351
+ unsubscribePose(): boolean;
261
352
  setAudioMuted(muted: boolean): void;
262
353
  setMicMuted(muted: boolean): void;
263
354
  attachVideo(videoElement: HTMLVideoElement): () => void;
@@ -288,15 +379,18 @@ export declare class ReachyMini extends EventTarget implements ReachyMiniInstanc
288
379
  * robot/app, e.g. `conversation.turn`. Returns an unsubscribe function.
289
380
  */
290
381
  onNotification(method: string, cb: (params: Record<string, unknown>) => void): () => void;
291
- private _rejectPendingRpc;
292
382
  private _handleRpcMessage;
293
383
  private _checkSessionReady;
294
384
  private _handleSignalingMessage;
295
385
  private _handleEndSession;
296
386
  private _handlePeerMessage;
387
+ /**
388
+ * @param fromPoseStream Frame came from the pushed `pose` channel rather
389
+ * than the reliable control channel. Only those may refresh the state
390
+ * mirror while the stream is live (see the `data.state` branch).
391
+ */
297
392
  private _handleRobotMessage;
298
393
  /** Snap video playback to live edge if buffered lag exceeds 0.5 s. */
299
394
  private _startLatencyMonitor;
300
395
  }
301
- export {};
302
396
  //# sourceMappingURL=reachy-mini.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reachy-mini.d.ts","sourceRoot":"","sources":["../../lib/reachy-mini.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reachy-mini.d.ts","sourceRoot":"","sources":["../../lib/reachy-mini.ts"],"names":[],"mappings":"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"}