@pollen-robotics/reachy-mini-sdk 1.7.3-main.5cd69ad → 1.7.3-main.7654ffe

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 (44) hide show
  1. package/dist/lib/math.d.ts +23 -0
  2. package/dist/lib/math.d.ts.map +1 -0
  3. package/dist/lib/math.js +40 -0
  4. package/dist/lib/math.js.map +1 -0
  5. package/dist/lib/reachy-mini.d.ts +150 -0
  6. package/dist/lib/reachy-mini.d.ts.map +1 -0
  7. package/dist/lib/reachy-mini.js +1452 -0
  8. package/dist/lib/reachy-mini.js.map +1 -0
  9. package/dist/lib/types.d.ts +384 -0
  10. package/dist/lib/types.d.ts.map +1 -0
  11. package/dist/lib/types.js +9 -0
  12. package/dist/lib/types.js.map +1 -0
  13. package/dist/lib/upload-helpers.d.ts +18 -0
  14. package/dist/lib/upload-helpers.d.ts.map +1 -0
  15. package/dist/lib/upload-helpers.js +44 -0
  16. package/dist/lib/upload-helpers.js.map +1 -0
  17. package/dist/lib/url-helpers.d.ts +63 -0
  18. package/dist/lib/url-helpers.d.ts.map +1 -0
  19. package/dist/lib/url-helpers.js +153 -0
  20. package/dist/lib/url-helpers.js.map +1 -0
  21. package/dist/reachy-mini-sdk.d.ts +69 -0
  22. package/dist/reachy-mini-sdk.d.ts.map +1 -0
  23. package/dist/reachy-mini-sdk.js +68 -0
  24. package/dist/reachy-mini-sdk.js.map +1 -0
  25. package/host/dist/chunks/index-CyLPysJS.js +0 -1
  26. package/host/dist/chunks/mountHost-8f-laxwI.js +0 -1
  27. package/host/dist/chunks/reachy-mini-B1hlBmDQ.js +1240 -0
  28. package/host/dist/entry/auto.js +1 -2
  29. package/host/dist/entry/embed.js +1 -2
  30. package/host/dist/index.js +1 -2
  31. package/host/dist/lib/protocol.js +0 -1
  32. package/host/dist/lib/sdk-types.d.ts +10 -10
  33. package/host/dist/lib/sdk-types.d.ts.map +1 -1
  34. package/package.json +16 -13
  35. package/host/dist/chunks/index-CyLPysJS.js.map +0 -1
  36. package/host/dist/chunks/mountHost-8f-laxwI.js.map +0 -1
  37. package/host/dist/chunks/reachy-mini-sdk-eBYlC77N.js +0 -1719
  38. package/host/dist/chunks/reachy-mini-sdk-eBYlC77N.js.map +0 -1
  39. package/host/dist/entry/auto.js.map +0 -1
  40. package/host/dist/entry/embed.js.map +0 -1
  41. package/host/dist/index.js.map +0 -1
  42. package/host/dist/lib/protocol.js.map +0 -1
  43. package/reachy-mini-sdk.d.ts +0 -294
  44. package/reachy-mini-sdk.js +0 -2618
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Math utilities for the ReachyMini SDK.
3
+ *
4
+ * These are the canonical conversions between human-readable
5
+ * roll/pitch/yaw degrees and the wire format the daemon expects
6
+ * (4×4 rotation matrices, ZYX convention).
7
+ */
8
+ export declare function degToRad(deg: number): number;
9
+ export declare function radToDeg(rad: number): number;
10
+ /**
11
+ * Roll/pitch/yaw (degrees) → 4×4 rotation matrix (ZYX convention).
12
+ * This is the wire format for the robot's `set_target` command.
13
+ */
14
+ export declare function rpyToMatrix(rollDeg: number, pitchDeg: number, yawDeg: number): number[][];
15
+ /**
16
+ * Rotation matrix (3×3 or 4×4) → { roll, pitch, yaw } in degrees.
17
+ */
18
+ export declare function matrixToRpy(m: number[][]): {
19
+ roll: number;
20
+ pitch: number;
21
+ yaw: number;
22
+ };
23
+ //# sourceMappingURL=math.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../lib/math.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACvB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACf,MAAM,EAAE,EAAE,CAWZ;AAED;;GAEG;AACH,wBAAgB,WAAW,CACvB,CAAC,EAAE,MAAM,EAAE,EAAE,GACd;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAM9C"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Math utilities for the ReachyMini SDK.
3
+ *
4
+ * These are the canonical conversions between human-readable
5
+ * roll/pitch/yaw degrees and the wire format the daemon expects
6
+ * (4×4 rotation matrices, ZYX convention).
7
+ */
8
+ export function degToRad(deg) {
9
+ return deg * Math.PI / 180;
10
+ }
11
+ export function radToDeg(rad) {
12
+ return rad * 180 / Math.PI;
13
+ }
14
+ /**
15
+ * Roll/pitch/yaw (degrees) → 4×4 rotation matrix (ZYX convention).
16
+ * This is the wire format for the robot's `set_target` command.
17
+ */
18
+ export function rpyToMatrix(rollDeg, pitchDeg, yawDeg) {
19
+ const r = degToRad(rollDeg), p = degToRad(pitchDeg), y = degToRad(yawDeg);
20
+ const cy = Math.cos(y), sy = Math.sin(y);
21
+ const cp = Math.cos(p), sp = Math.sin(p);
22
+ const cr = Math.cos(r), sr = Math.sin(r);
23
+ return [
24
+ [cy * cp, cy * sp * sr - sy * cr, cy * sp * cr + sy * sr, 0],
25
+ [sy * cp, sy * sp * sr + cy * cr, sy * sp * cr - cy * sr, 0],
26
+ [-sp, cp * sr, cp * cr, 0],
27
+ [0, 0, 0, 1],
28
+ ];
29
+ }
30
+ /**
31
+ * Rotation matrix (3×3 or 4×4) → { roll, pitch, yaw } in degrees.
32
+ */
33
+ export function matrixToRpy(m) {
34
+ return {
35
+ roll: radToDeg(Math.atan2(m[2][1], m[2][2])),
36
+ pitch: radToDeg(Math.asin(-m[2][0])),
37
+ yaw: radToDeg(Math.atan2(m[1][0], m[0][0])),
38
+ };
39
+ }
40
+ //# sourceMappingURL=math.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.js","sourceRoot":"","sources":["../../lib/math.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,UAAU,QAAQ,CAAC,GAAW;IAChC,OAAO,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAW;IAChC,OAAO,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACvB,OAAe,EACf,QAAgB,EAChB,MAAc;IAEd,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1E,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO;QACH,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KACf,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACvB,CAAa;IAEb,OAAO;QACH,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAE,CAAC,CAAC;QAChD,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAE,CAAC,CAAC;QACtC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAE,CAAC,CAAC;KAClD,CAAC;AACN,CAAC"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * ReachyMini — Browser SDK for controlling a Reachy Mini robot over WebRTC.
3
+ * See `../reachy-mini-sdk.ts` for the package's barrel and the README for
4
+ * a quick-start guide.
5
+ */
6
+ import type { ApplyAudioConfigOptions, AudioConfigEntry, AutoConnectOptions, AutoConnectResult, MotionAwaitOptions, MoveData, PlayMoveOptions, PlayMoveResult, PlayUploadedAudioOptions, ReachyMiniInstance, ReachyMiniOptions, RobotInfo, RobotState, SubscribeLogsOptions, UploadAudioOptions } from './types.js';
7
+ export declare class ReachyMini extends EventTarget implements ReachyMiniInstance {
8
+ private readonly _signalingUrl;
9
+ private readonly _clientId;
10
+ private readonly _appName;
11
+ private readonly _videoJitterBufferTargetMs;
12
+ private _autoStartFromUrl;
13
+ private _autoStartAttempted;
14
+ private _state;
15
+ private _robots;
16
+ private _robotState;
17
+ private readonly _preselectedRobotId;
18
+ private _token;
19
+ private _username;
20
+ private _tokenExpires;
21
+ private _sseAbortController;
22
+ _pc: RTCPeerConnection | null;
23
+ private _dc;
24
+ private _sessionId;
25
+ private _selectedRobotId;
26
+ private _pendingRemoteIce;
27
+ _micStream: MediaStream | null;
28
+ private _micMuted;
29
+ private _audioMuted;
30
+ private _micSupported;
31
+ private _latencyMonitorId;
32
+ private _stateRefreshInterval;
33
+ private _versionResolve;
34
+ private _hardwareIdResolve;
35
+ private _volumeResolve;
36
+ private _micVolumeResolve;
37
+ private _applyAudioConfigResolve;
38
+ private _readAudioParameterResolve;
39
+ private readonly _logSubscribers;
40
+ private _broadcastWaiters;
41
+ private _activeMoveUploadId;
42
+ private _activeAudioUploadId;
43
+ private _sessionResolve;
44
+ private _sessionReject;
45
+ private _iceConnected;
46
+ private _dcOpen;
47
+ private readonly _pendingMotionCompletions;
48
+ private _videoElement;
49
+ constructor(options?: ReachyMiniOptions);
50
+ get state(): 'disconnected' | 'connected' | 'streaming';
51
+ get robots(): RobotInfo[];
52
+ get robotState(): RobotState;
53
+ get username(): string | null;
54
+ get isAuthenticated(): boolean;
55
+ get micSupported(): boolean;
56
+ get micMuted(): boolean;
57
+ get audioMuted(): boolean;
58
+ get preselectedRobotId(): string | null;
59
+ get isEmbedded(): boolean;
60
+ /**
61
+ * Internal: try to honour the `autoStartFromUrl` constructor
62
+ * option. Called from the signaling-message handler after every
63
+ * `robotsChanged` emit, so a robot that comes online after the
64
+ * SDK is already `connected` still triggers the auto-start.
65
+ */
66
+ _maybeAutoStart(): void;
67
+ authenticate(): Promise<boolean>;
68
+ login(): Promise<void>;
69
+ logout(): void;
70
+ connect(token?: string): Promise<void>;
71
+ autoConnect(options?: AutoConnectOptions): Promise<AutoConnectResult>;
72
+ private _fetchOwnedRobots;
73
+ private _waitForRobotInList;
74
+ startSession(robotId: string): Promise<void>;
75
+ private _failSessionRejected;
76
+ stopSession(): Promise<void>;
77
+ disconnect(): void;
78
+ setTarget({ head, antennas, body_yaw }?: {
79
+ head?: number[];
80
+ antennas?: number[];
81
+ body_yaw?: number;
82
+ }): boolean;
83
+ gotoTarget({ head, antennas, body_yaw, duration }: {
84
+ head?: number[];
85
+ antennas?: number[];
86
+ body_yaw?: number;
87
+ duration: number;
88
+ }): boolean;
89
+ setHeadRpyDeg(rollDeg: number, pitchDeg: number, yawDeg: number): boolean;
90
+ setAntennasDeg(rightDeg: number, leftDeg: number): boolean;
91
+ setBodyYawDeg(yawDeg: number): boolean;
92
+ playSound(file: string): boolean;
93
+ setMotorMode(mode: 'enabled' | 'disabled' | 'gravity_compensation'): boolean;
94
+ setMotorTorque(on: boolean, ids?: string[] | null): boolean;
95
+ wakeUp({ timeoutMs }?: MotionAwaitOptions): Promise<void>;
96
+ gotoSleep({ timeoutMs }?: MotionAwaitOptions): Promise<void>;
97
+ private _sendCommandAwaitCompletion;
98
+ private _rejectPendingMotionCompletions;
99
+ isAwake(): boolean;
100
+ ensureAwake(timeoutMs?: number): Promise<boolean>;
101
+ getVersion(): Promise<string | null>;
102
+ getHardwareId(): Promise<string | null>;
103
+ getVolume(): Promise<number | null>;
104
+ setVolume(volume: number): Promise<number | null>;
105
+ getMicrophoneVolume(): Promise<number | null>;
106
+ setMicrophoneVolume(volume: number): Promise<number | null>;
107
+ applyAudioConfig(config: AudioConfigEntry[], { verify }?: ApplyAudioConfigOptions): Promise<boolean>;
108
+ readAudioParameter(name: string): Promise<number[] | null>;
109
+ /**
110
+ * Internal: send a command and await the matching daemon response in a
111
+ * named single-resolver slot. Used by the volume helpers and the
112
+ * XVF3800 audio-config helpers — every one of them has a strict
113
+ * request/response shape where a single in-flight call per slot is
114
+ * sufficient. If a previous request on the same slot is still
115
+ * pending when a new one comes in, the older promise is resolved to
116
+ * `null` so its caller doesn't hang forever.
117
+ *
118
+ * Slot access is passed in as getter/setter closures rather than a
119
+ * key into `this`: that keeps the helper fully generic-checked (T is
120
+ * inferred from the slot's resolver type at each call site) with no
121
+ * indexed-property casts.
122
+ */
123
+ private _slotRoundtrip;
124
+ sendRaw(data: unknown): boolean;
125
+ subscribeLogs({ onLine, onError }: SubscribeLogsOptions): () => void;
126
+ requestState(): boolean;
127
+ setAudioMuted(muted: boolean): void;
128
+ setMicMuted(muted: boolean): void;
129
+ attachVideo(videoElement: HTMLVideoElement): () => void;
130
+ playMove(motion: MoveData, { audioBlob, audioLeadMs, description, encoding, playFrequency, initialGotoDuration, startTimeoutMs, onProgress, onStarted, }?: PlayMoveOptions): Promise<PlayMoveResult>;
131
+ cancelMove(uploadId?: string | null): boolean;
132
+ uploadAudio(audioBlob: Blob, { description, onProgress }?: UploadAudioOptions): Promise<string>;
133
+ playUploadedAudio(uploadId: string, { timeoutMs }?: PlayUploadedAudioOptions): Promise<{
134
+ started: true;
135
+ }>;
136
+ cancelAudio(uploadId?: string | null): boolean;
137
+ private _emit;
138
+ private _waitForBroadcast;
139
+ private _awaitDataChannelDrain;
140
+ private _sendToServer;
141
+ private _sendCommand;
142
+ private _checkSessionReady;
143
+ private _handleSignalingMessage;
144
+ private _handleEndSession;
145
+ private _handlePeerMessage;
146
+ private _handleRobotMessage;
147
+ /** Snap video playback to live edge if buffered lag exceeds 0.5 s. */
148
+ private _startLatencyMonitor;
149
+ }
150
+ //# sourceMappingURL=reachy-mini.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reachy-mini.d.ts","sourceRoot":"","sources":["../../lib/reachy-mini.ts"],"names":[],"mappings":"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"}