@pollen-robotics/reachy-mini-sdk 1.8.0 → 1.8.1

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 (67) hide show
  1. package/APP_CREATION_GUIDE.md +1795 -0
  2. package/README.md +2 -5
  3. package/dist/animation/distance.d.ts +87 -0
  4. package/dist/animation/distance.d.ts.map +1 -0
  5. package/dist/animation/distance.js +140 -0
  6. package/dist/animation/distance.js.map +1 -0
  7. package/dist/animation/index.d.ts +34 -0
  8. package/dist/animation/index.d.ts.map +1 -0
  9. package/dist/animation/index.js +33 -0
  10. package/dist/animation/index.js.map +1 -0
  11. package/dist/animation/pose.d.ts +40 -0
  12. package/dist/animation/pose.d.ts.map +1 -0
  13. package/dist/animation/pose.js +15 -0
  14. package/dist/animation/pose.js.map +1 -0
  15. package/dist/animation/presets.d.ts +85 -0
  16. package/dist/animation/presets.d.ts.map +1 -0
  17. package/dist/animation/presets.js +82 -0
  18. package/dist/animation/presets.js.map +1 -0
  19. package/dist/animation/safe-return.d.ts +90 -0
  20. package/dist/animation/safe-return.d.ts.map +1 -0
  21. package/dist/animation/safe-return.js +123 -0
  22. package/dist/animation/safe-return.js.map +1 -0
  23. package/dist/lib/reachy-mini.d.ts +99 -0
  24. package/dist/lib/reachy-mini.d.ts.map +1 -1
  25. package/dist/lib/reachy-mini.js +314 -9
  26. package/dist/lib/reachy-mini.js.map +1 -1
  27. package/dist/lib/types.d.ts +27 -0
  28. package/dist/lib/types.d.ts.map +1 -1
  29. package/host/README.md +14 -12
  30. package/host/dist/ReachyHost.d.ts +2 -1
  31. package/host/dist/ReachyHost.d.ts.map +1 -1
  32. package/host/dist/chunks/index-lMs2sCXG.js +439 -0
  33. package/host/dist/chunks/{mountHost-D7cgkU9Q.js → mountHost-DjE5zE9R.js} +11142 -11014
  34. package/host/dist/chunks/{reachy-mini-B1hlBmDQ.js → reachy-mini-GHNS4GSp.js} +494 -307
  35. package/host/dist/components/PickerView.d.ts.map +1 -1
  36. package/host/dist/components/PostOAuthSplash.d.ts +25 -0
  37. package/host/dist/components/PostOAuthSplash.d.ts.map +1 -0
  38. package/host/dist/components/ReachyHostShell.d.ts.map +1 -1
  39. package/host/dist/components/TopBar.d.ts +8 -1
  40. package/host/dist/components/TopBar.d.ts.map +1 -1
  41. package/host/dist/components/WelcomeBackOverlay.d.ts.map +1 -1
  42. package/host/dist/embed/index.d.ts +3 -2
  43. package/host/dist/embed/index.d.ts.map +1 -1
  44. package/host/dist/entry/auto.js +2 -2
  45. package/host/dist/entry/embed.js +2 -2
  46. package/host/dist/hooks/useHostBridge.d.ts +6 -0
  47. package/host/dist/hooks/useHostBridge.d.ts.map +1 -1
  48. package/host/dist/hooks/useSdk.d.ts.map +1 -1
  49. package/host/dist/index.js +3 -3
  50. package/host/dist/lib/protocol.d.ts +17 -3
  51. package/host/dist/lib/protocol.d.ts.map +1 -1
  52. package/host/dist/lib/settings.d.ts +3 -2
  53. package/host/dist/lib/settings.d.ts.map +1 -1
  54. package/host/dist/mountHost.d.ts.map +1 -1
  55. package/host/dist/ui/design/IdentityChipBar.d.ts +46 -0
  56. package/host/dist/ui/design/IdentityChipBar.d.ts.map +1 -0
  57. package/host/dist/ui/design/LinkQualityBars.d.ts +32 -0
  58. package/host/dist/ui/design/LinkQualityBars.d.ts.map +1 -0
  59. package/host/dist/ui/design/MetaPill.d.ts +41 -0
  60. package/host/dist/ui/design/MetaPill.d.ts.map +1 -0
  61. package/host/dist/ui/design/TransportChip.d.ts +39 -0
  62. package/host/dist/ui/design/TransportChip.d.ts.map +1 -0
  63. package/package.json +7 -4
  64. package/CHANGELOG.md +0 -188
  65. package/host/APP_AUTHOR_GUIDE.md +0 -646
  66. package/host/SPEC.md +0 -618
  67. package/host/dist/chunks/index-CyLPysJS.js +0 -400
@@ -1 +1 @@
1
- {"version":3,"file":"PickerView.d.ts","sourceRoot":"","sources":["../../src/components/PickerView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAqBjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB;uEACmE;IACnE,YAAY,EAAE,OAAO,CAAC;IACtB;;;+BAG2B;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;mDAE+C;IAC/C,SAAS,CAAC,IAAI,IAAI,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,YAAY,EACZ,KAAK,EACL,kBAAkB,EAClB,QAAQ,EACR,SAAS,GACV,EAAE,eAAe,GAAG,GAAG,CAAC,OAAO,CAiF/B"}
1
+ {"version":3,"file":"PickerView.d.ts","sourceRoot":"","sources":["../../src/components/PickerView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAkBjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAIlD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB;uEACmE;IACnE,YAAY,EAAE,OAAO,CAAC;IACtB;;;+BAG2B;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;mDAE+C;IAC/C,SAAS,CAAC,IAAI,IAAI,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,YAAY,EACZ,KAAK,EACL,kBAAkB,EAClB,QAAQ,EACR,SAAS,GACV,EAAE,eAAe,GAAG,GAAG,CAAC,OAAO,CAiF/B"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Covering splash shown on the OAuth return leg, while the SDK
3
+ * resolves the cached token via `authenticate()`.
4
+ *
5
+ * Without it the host would render `SignInView` (the "Continue
6
+ * with Hugging Face" button) for the ~30-500 ms the in-flight
7
+ * `authenticate()` takes, so the user briefly bounces back to the
8
+ * sign-in button after already authorising on huggingface.co.
9
+ *
10
+ * This splash deliberately mirrors `WelcomeBackOverlay`'s frame
11
+ * (same `background.default` fill, same centred HF logo) so the
12
+ * transition reads as one continuous beat:
13
+ *
14
+ * PostOAuthSplash (logo + spinner, no name)
15
+ * → WelcomeBackOverlay ("Hello, <name>")
16
+ * → PickerView
17
+ *
18
+ * It carries NO username on purpose: the name only appears in the
19
+ * `WelcomeBackOverlay`, which keeps the "Welcome back" → "Hello,
20
+ * X" text from ever flickering (cf. the welcome-back latch in
21
+ * `ReachyHostShell`).
22
+ */
23
+ import type { JSX } from 'react';
24
+ export declare function PostOAuthSplash(): JSX.Element;
25
+ //# sourceMappingURL=PostOAuthSplash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PostOAuthSplash.d.ts","sourceRoot":"","sources":["../../src/components/PostOAuthSplash.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AA6BjC,wBAAgB,eAAe,IAAI,GAAG,CAAC,OAAO,CAsD7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReachyHostShell.d.ts","sourceRoot":"","sources":["../../src/components/ReachyHostShell.tsx"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAKjC,OAAO,KAAK,EAAE,kBAAkB,EAAa,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAEL,KAAK,aAAa,EAGlB,KAAK,SAAS,EACf,MAAM,iBAAiB,CAAC;AAmBzB,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAE/B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IAEjB,KAAK,EAAE,SAAS,CAAC;IACjB,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B,gBAAgB,EAAE,OAAO,CAAC;IAC1B;sCACkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;mEAC+D;IAC/D,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AA6DD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,oBAAoB,GAC1B,GAAG,CAAC,OAAO,CAMb"}
1
+ {"version":3,"file":"ReachyHostShell.d.ts","sourceRoot":"","sources":["../../src/components/ReachyHostShell.tsx"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAKjC,OAAO,KAAK,EAAE,kBAAkB,EAAa,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAEL,KAAK,aAAa,EAGlB,KAAK,SAAS,EACf,MAAM,iBAAiB,CAAC;AAoBzB,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAE/B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IAEjB,KAAK,EAAE,SAAS,CAAC;IACjB,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B,gBAAgB,EAAE,OAAO,CAAC;IAC1B;sCACkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;mEAC+D;IAC/D,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AA6DD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,oBAAoB,GAC1B,GAAG,CAAC,OAAO,CAWb"}
@@ -45,8 +45,15 @@ export interface TopBarProps {
45
45
  * flight / failed. The chip falls back to a first-letter glyph. */
46
46
  avatarUrl?: string | null;
47
47
  selectedRobotName?: string | null;
48
+ /** Physical transport of the selected robot (`wifi` / `usb` / …),
49
+ * surfaced as the Lite/Wireless tag on the in-session identity
50
+ * sub-line. `null` when no robot is selected. */
51
+ selectedRobotTransport?: string | null;
52
+ /** Rolling-min RTT (ms) the embed reports once live, or `null` while
53
+ * not yet measured. Drives the latency pill on the sub-line. */
54
+ linkRttMs?: number | null;
48
55
  onSignOut(): void;
49
56
  onEndSession(): void;
50
57
  }
51
- export declare function TopBar({ appName, appIconUrl, appEmoji, hostPhase, userName, avatarUrl, selectedRobotName: _selectedRobotName, onSignOut, onEndSession, }: TopBarProps): JSX.Element;
58
+ export declare function TopBar({ appName, appIconUrl, appEmoji, hostPhase, userName, avatarUrl, selectedRobotName, selectedRobotTransport, linkRttMs, onSignOut, onEndSession, }: TopBarProps): JSX.Element;
52
59
  //# sourceMappingURL=TopBar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TopBar.d.ts","sourceRoot":"","sources":["../../src/components/TopBar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,EAAuB,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAqBtD,MAAM,MAAM,SAAS,GACjB,YAAY,GACZ,SAAS,GACT,UAAU,GACV,SAAS,GACT,OAAO,CAAC;AAEZ,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB;+CAC2C;IAC3C,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;kDAC8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;wEACoE;IACpE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,SAAS,IAAI,IAAI,CAAC;IAClB,YAAY,IAAI,IAAI,CAAC;CACtB;AAED,wBAAgB,MAAM,CAAC,EACrB,OAAO,EACP,UAAiB,EACjB,QAAe,EACf,SAAS,EACT,QAAQ,EACR,SAAgB,EAChB,iBAAiB,EAAE,kBAAkB,EACrC,SAAS,EACT,YAAY,GACb,EAAE,WAAW,GAAG,GAAG,CAAC,OAAO,CAmH3B"}
1
+ {"version":3,"file":"TopBar.d.ts","sourceRoot":"","sources":["../../src/components/TopBar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,EAAuB,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAsBtD,MAAM,MAAM,SAAS,GACjB,YAAY,GACZ,SAAS,GACT,UAAU,GACV,SAAS,GACT,OAAO,CAAC;AAEZ,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB;+CAC2C;IAC3C,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;kDAC8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;wEACoE;IACpE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC;;sDAEkD;IAClD,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC;qEACiE;IACjE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,IAAI,IAAI,CAAC;IAClB,YAAY,IAAI,IAAI,CAAC;CACtB;AAED,wBAAgB,MAAM,CAAC,EACrB,OAAO,EACP,UAAiB,EACjB,QAAe,EACf,SAAS,EACT,QAAQ,EACR,SAAgB,EAChB,iBAAwB,EACxB,sBAA6B,EAC7B,SAAgB,EAChB,SAAS,EACT,YAAY,GACb,EAAE,WAAW,GAAG,GAAG,CAAC,OAAO,CAwJ3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"WelcomeBackOverlay.d.ts","sourceRoot":"","sources":["../../src/components/WelcomeBackOverlay.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AA8BjC,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,MAAM,GACP,EAAE,uBAAuB,GAAG,GAAG,CAAC,OAAO,CA6EvC"}
1
+ {"version":3,"file":"WelcomeBackOverlay.d.ts","sourceRoot":"","sources":["../../src/components/WelcomeBackOverlay.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAsCjC,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,MAAM,GACP,EAAE,uBAAuB,GAAG,GAAG,CAAC,OAAO,CAuFvC"}
@@ -12,7 +12,8 @@
12
12
  * handle.onLeave(() => { /* clean up before unmount *\/ });
13
13
  * handle.reachy.setHeadRpyDeg(0, 10, 0);
14
14
  *
15
- * Boot sequence (canonical reference: SPEC.md §6.4):
15
+ * Boot sequence (canonical reference: APP_CREATION_GUIDE
16
+ * §13.4 handoff sequence + §13.6 protocol v1):
16
17
  * 1. Read `#creds=<base64>` synchronously and wipe the hash
17
18
  * with `history.replaceState`.
18
19
  * 2. Wait for `window.ReachyMini` (8 s timeout).
@@ -26,7 +27,7 @@
26
27
  * `embed:app-state` at each step.
27
28
  * 7. Resolve `connectToHost()` with the live SDK handle.
28
29
  *
29
- * Strict Mode safety (SPEC §8.4): the function is idempotent
30
+ * Strict Mode safety (APP_CREATION_GUIDE §13.5.4): the function is idempotent
30
31
  * across multiple awaits via a module-level promise. Calling
31
32
  * `connectToHost()` twice returns the same in-flight promise;
32
33
  * a single SDK instance is created, a single `embed:ready` is
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/embed/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAO1B,OAAO,KAAK,EACV,iBAAiB,EACjB,QAAQ,EAMR,SAAS,EACV,MAAM,iBAAiB,CAAC;AAazB;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,IAAI,CAAC;IAC9C;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IACzC;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;CACxC;AAED,8DAA8D;AAC9D,MAAM,WAAW,eAAe,CAAC,OAAO,GAAG,OAAO;IAChD,kEAAkE;IAClE,MAAM,EAAE,kBAAkB,CAAC;IAC3B,kDAAkD;IAClD,KAAK,EAAE,SAAS,CAAC;IACjB;+CAC2C;IAC3C,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAE3B;;;gCAG4B;IAC5B,OAAO,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC;IACpD,uCAAuC;IACvC,aAAa,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC1D,wCAAwC;IACxC,cAAc,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAEjE;4CACwC;IACxC,WAAW,CAAC,KAAK,EAAE;QACjB,KAAK,EAAE,QAAQ,CAAC;QAChB,cAAc,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;QAC1C,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,GAAG,IAAI,CAAC;IACT,gDAAgD;IAChD,YAAY,IAAI,IAAI,CAAC;IACrB,qEAAqE;IACrE,WAAW,CACT,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAC3C,IAAI,CAAC;CACT;AAED,MAAM,WAAW,oBAAoB;IACnC;yDACqD;IACrD,UAAU,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACxC;yDACqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAsCD;8BAC8B;AAC9B,wBAAsB,aAAa,CAAC,OAAO,GAAG,OAAO,EACnD,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAKnC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/embed/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAO1B,OAAO,KAAK,EACV,iBAAiB,EACjB,QAAQ,EAMR,SAAS,EACV,MAAM,iBAAiB,CAAC;AAazB;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,IAAI,CAAC;IAC9C;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IACzC;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;CACxC;AAED,8DAA8D;AAC9D,MAAM,WAAW,eAAe,CAAC,OAAO,GAAG,OAAO;IAChD,kEAAkE;IAClE,MAAM,EAAE,kBAAkB,CAAC;IAC3B,kDAAkD;IAClD,KAAK,EAAE,SAAS,CAAC;IACjB;+CAC2C;IAC3C,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAE3B;;;gCAG4B;IAC5B,OAAO,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC;IACpD,uCAAuC;IACvC,aAAa,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC1D,wCAAwC;IACxC,cAAc,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAEjE;4CACwC;IACxC,WAAW,CAAC,KAAK,EAAE;QACjB,KAAK,EAAE,QAAQ,CAAC;QAChB,cAAc,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;QAC1C,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,GAAG,IAAI,CAAC;IACT,gDAAgD;IAChD,YAAY,IAAI,IAAI,CAAC;IACrB,qEAAqE;IACrE,WAAW,CACT,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAC3C,IAAI,CAAC;CACT;AAED,MAAM,WAAW,oBAAoB;IACnC;yDACqD;IACrD,UAAU,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACxC;yDACqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAsCD;8BAC8B;AAC9B,wBAAsB,aAAa,CAAC,OAAO,GAAG,OAAO,EACnD,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAKnC"}
@@ -1,5 +1,5 @@
1
- import { R as i } from "../chunks/reachy-mini-B1hlBmDQ.js";
2
- import { m as n } from "../chunks/mountHost-D7cgkU9Q.js";
1
+ import { R as i } from "../chunks/reachy-mini-GHNS4GSp.js";
2
+ import { m as n } from "../chunks/mountHost-DjE5zE9R.js";
3
3
  typeof window < "u" && (window.ReachyMini || (window.ReachyMini = i, window.dispatchEvent(new Event("reachymini:ready"))), window.ReachyMiniHost = { mountHost: n });
4
4
  export {
5
5
  n as mountHost
@@ -1,5 +1,5 @@
1
- import { R as i } from "../chunks/reachy-mini-B1hlBmDQ.js";
2
- import { c as n } from "../chunks/index-CyLPysJS.js";
1
+ import { R as i } from "../chunks/reachy-mini-GHNS4GSp.js";
2
+ import { c as n } from "../chunks/index-lMs2sCXG.js";
3
3
  typeof window < "u" && (window.ReachyMini || (window.ReachyMini = i, window.dispatchEvent(new Event("reachymini:ready"))), window.ReachyMiniHostEmbed = { connectToHost: n });
4
4
  export {
5
5
  n as connectToHost
@@ -3,6 +3,12 @@ export interface EmbedAppState {
3
3
  phase: AppPhase;
4
4
  connectingStep: AppConnectingStep | null;
5
5
  message: string | null;
6
+ /** Rolling-min round-trip time (ms) the embed measures on its own
7
+ * WebRTC pair and reports over `embed:app-state` once `live`. The
8
+ * host released its session slot to the iframe, so this is the only
9
+ * TRUE link-latency signal available; `null` when not yet measured
10
+ * or unavailable (e.g. iOS WKWebView). */
11
+ rttMs: number | null;
6
12
  }
7
13
  export interface UseHostBridgeOptions {
8
14
  /** Called once per session, when the embed posts
@@ -1 +1 @@
1
- {"version":3,"file":"useHostBridge.d.ts","sourceRoot":"","sources":["../../src/hooks/useHostBridge.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACV,iBAAiB,EACjB,QAAQ,EACR,aAAa,EAEb,WAAW,EACX,aAAa,EACb,SAAS,EACV,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,QAAQ,CAAC;IAChB,cAAc,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACzC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC;;4DAEwD;IACxD,YAAY,IAAI,IAAI,CAAC;IACrB,kDAAkD;IAClD,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IACvC;iEAC6D;IAC7D,cAAc,IAAI,IAAI,CAAC;IACvB;4DACwD;IACxD,OAAO,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CAC/E;AAED,MAAM,WAAW,UAAU;IACzB,mEAAmE;IACnE,QAAQ,CACN,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC,GACxD,IAAI,CAAC;IACR,gEAAgE;IAChE,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACpE,kEAAkE;IAClE,iBAAiB,CACf,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,aAAa,GACpB,IAAI,CAAC;IACR;4DACwD;IACxD,WAAW,CACT,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,GAChB,IAAI,CAAC;CACT;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,UAAU,CA2GpE"}
1
+ {"version":3,"file":"useHostBridge.d.ts","sourceRoot":"","sources":["../../src/hooks/useHostBridge.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACV,iBAAiB,EACjB,QAAQ,EACR,aAAa,EAEb,WAAW,EACX,aAAa,EACb,SAAS,EACV,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,QAAQ,CAAC;IAChB,cAAc,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACzC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;+CAI2C;IAC3C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC;;4DAEwD;IACxD,YAAY,IAAI,IAAI,CAAC;IACrB,kDAAkD;IAClD,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IACvC;iEAC6D;IAC7D,cAAc,IAAI,IAAI,CAAC;IACvB;4DACwD;IACxD,OAAO,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CAC/E;AAED,MAAM,WAAW,UAAU;IACzB,mEAAmE;IACnE,QAAQ,CACN,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC,GACxD,IAAI,CAAC;IACR,gEAAgE;IAChE,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACpE,kEAAkE;IAClE,iBAAiB,CACf,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,aAAa,GACpB,IAAI,CAAC;IACR;4DACwD;IACxD,WAAW,CACT,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,GAChB,IAAI,CAAC;CACT;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,UAAU,CA4GpE"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSdk.d.ts","sourceRoot":"","sources":["../../src/hooks/useSdk.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAgB1B,yDAAyD;AACzD,wBAAgB,cAAc,CAAC,IAAI,EAAE,iBAAiB,GAAG,kBAAkB,CAgB1E;AAED,8DAA8D;AAC9D,wBAAgB,UAAU,IAAI,IAAI,CASjC;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,iBAAiB,GAAG;IAC/C,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;CACnB,CA8BA"}
1
+ {"version":3,"file":"useSdk.d.ts","sourceRoot":"","sources":["../../src/hooks/useSdk.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAgB1B,yDAAyD;AACzD,wBAAgB,cAAc,CAAC,IAAI,EAAE,iBAAiB,GAAG,kBAAkB,CAgB1E;AAED,8DAA8D;AAC9D,wBAAgB,UAAU,IAAI,IAAI,CASjC;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,iBAAiB,GAAG;IAC/C,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;CACnB,CA8BA"}
@@ -1,6 +1,6 @@
1
- import { R as o } from "./chunks/reachy-mini-B1hlBmDQ.js";
2
- import { R as s, m as a } from "./chunks/mountHost-D7cgkU9Q.js";
3
- import { c as t } from "./chunks/index-CyLPysJS.js";
1
+ import { R as o } from "./chunks/reachy-mini-GHNS4GSp.js";
2
+ import { R as s, m as a } from "./chunks/mountHost-DjE5zE9R.js";
3
+ import { c as t } from "./chunks/index-lMs2sCXG.js";
4
4
  import { PROTOCOL_VERSION as c, decodeCredsFromHash as m, encodeCredsToHash as w, isProtocolMessage as h } from "./lib/protocol.js";
5
5
  typeof window < "u" && !window.ReachyMini && (window.ReachyMini = o, window.dispatchEvent(new Event("reachymini:ready")));
6
6
  export {
@@ -3,7 +3,7 @@
3
3
  * exposed via `@pollen-robotics/reachy-mini-sdk/host`) and an
4
4
  * embedded Reachy Mini app (iframe).
5
5
  *
6
- * Canonical reference: SPEC.md §6.
6
+ * Canonical reference: APP_CREATION_GUIDE §13.6 (Protocol v1).
7
7
  *
8
8
  * Contract identity
9
9
  * ─────────────────
@@ -28,10 +28,10 @@
28
28
  * 3. Config & theme: opaque `config` payload + theme push.
29
29
  * 4. Error: `embed:error` for tear-down on app failure.
30
30
  *
31
- * Intentionally NOT in v1 (see SPEC §6 and §11):
31
+ * Intentionally NOT in v1 (see APP_CREATION_GUIDE §13.6):
32
32
  * - No `host:custom` / `embed:custom` free-form channel.
33
33
  * - No `embed:request-config-update` (apps don't push config).
34
- * - No heartbeat / ping-pong (backlog).
34
+ * - No heartbeat / ping-pong.
35
35
  */
36
36
  /** Protocol version. Bump on breaking changes. */
37
37
  export declare const PROTOCOL_VERSION = 1;
@@ -161,6 +161,20 @@ export interface EmbedAppStateMsg {
161
161
  connectingStep?: AppConnectingStep | null;
162
162
  /** Optional human-readable hint shown in the overlay caption. */
163
163
  message?: string | null;
164
+ /**
165
+ * Rolling-min round-trip time (ms) on the embed's own WebRTC
166
+ * candidate pair, sampled from `sdk._pc.getStats()`. Additive
167
+ * field (no version bump): emitted periodically once `phase ===
168
+ * 'live'` so a host shell that has handed its session off to this
169
+ * iframe (mobile app) can still surface a TRUE link latency -
170
+ * the host itself no longer holds a connection to measure.
171
+ *
172
+ * `null` (or omitted) when the platform doesn't expose RTT (iOS
173
+ * WKWebView) or no pair is nominated yet. Hosts that don't care
174
+ * (the standalone web shell, which measures its own link) simply
175
+ * ignore it.
176
+ */
177
+ rttMs?: number | null;
164
178
  }
165
179
  /** App requests to leave (user clicked an in-app exit, error,
166
180
  * ...). The host runs the same tear-down as a top-bar
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/lib/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/lib/protocol.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@
10
10
  * animation; `signed-out` so we don't auto-relogin after a
11
11
  * user-initiated logout).
12
12
  *
13
- * Storage rules (SPEC §8.2):
13
+ * Storage rules (APP_CREATION_GUIDE §13.5.2 hash-only creds):
14
14
  * - HF token + user name live in `sessionStorage` (tab-scoped,
15
15
  * wiped on close). The Reachy Mini SDK reads them from
16
16
  * `hf_token` / `hf_username` / `hf_token_expires`.
@@ -60,7 +60,8 @@ export declare function clearSignedOutFlag(): void;
60
60
  /** Returns `true` if the user explicitly signed out earlier. */
61
61
  export declare function isUserSignedOut(): boolean;
62
62
  /** Wipe HF token keys from sessionStorage. Called by the embed
63
- * on `host:leaving` before the iframe unmounts (SPEC §8.2). */
63
+ * on `host:leaving` before the iframe unmounts
64
+ * (APP_CREATION_GUIDE §13.5.2). */
64
65
  export declare function wipeHfSessionStorage(): void;
65
66
  /** Decode a base64 JSON `?config=` URL parameter into a typed
66
67
  * value. Returns `null` on missing / malformed input. The
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/lib/settings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAYH,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,QAAQ,GACR,OAAO,GACP,cAAc,CAAC;AAEnB,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,0DAA0D;AAC1D,wBAAgB,eAAe,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAW3E;AAED;wDACwD;AACxD,wBAAgB,qBAAqB,CACnC,cAAc,CAAC,EAAE,MAAM,GACtB;IAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,CAW1D;AAED,sDAAsD;AACtD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAMpD;AAWD;8CAC8C;AAC9C,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAYzD;AAED;;2BAE2B;AAC3B,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;iCAEiC;AACjC,wBAAgB,iBAAiB,IAAI,OAAO,CAI3C;AAID;mEACmE;AACnE,wBAAgB,gBAAgB,IAAI,IAAI,CAMvC;AAED;+DAC+D;AAC/D,wBAAgB,mBAAmB,IAAI,OAAO,CAQ7C;AAID;+DAC+D;AAC/D,wBAAgB,iBAAiB,IAAI,IAAI,CAMxC;AAED;iCACiC;AACjC,wBAAgB,kBAAkB,IAAI,IAAI,CAMzC;AAED,gEAAgE;AAChE,wBAAgB,eAAe,IAAI,OAAO,CAMzC;AAID;gEACgE;AAChE,wBAAgB,oBAAoB,IAAI,IAAI,CAQ3C;AAID;;sDAEsD;AACtD,wBAAgB,aAAa,CAAC,CAAC,GAAG,OAAO,KAAK,CAAC,GAAG,IAAI,CAUrD"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/lib/settings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAYH,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,QAAQ,GACR,OAAO,GACP,cAAc,CAAC;AAEnB,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,0DAA0D;AAC1D,wBAAgB,eAAe,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAW3E;AAED;wDACwD;AACxD,wBAAgB,qBAAqB,CACnC,cAAc,CAAC,EAAE,MAAM,GACtB;IAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,CAW1D;AAED,sDAAsD;AACtD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAMpD;AAWD;8CAC8C;AAC9C,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAYzD;AAED;;2BAE2B;AAC3B,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;iCAEiC;AACjC,wBAAgB,iBAAiB,IAAI,OAAO,CAI3C;AAID;mEACmE;AACnE,wBAAgB,gBAAgB,IAAI,IAAI,CAMvC;AAED;+DAC+D;AAC/D,wBAAgB,mBAAmB,IAAI,OAAO,CAQ7C;AAID;+DAC+D;AAC/D,wBAAgB,iBAAiB,IAAI,IAAI,CAMxC;AAED;iCACiC;AACjC,wBAAgB,kBAAkB,IAAI,IAAI,CAMzC;AAED,gEAAgE;AAChE,wBAAgB,eAAe,IAAI,OAAO,CAMzC;AAID;;oCAEoC;AACpC,wBAAgB,oBAAoB,IAAI,IAAI,CAQ3C;AAID;;sDAEsD;AACtD,wBAAgB,aAAa,CAAC,CAAC,GAAG,OAAO,KAAK,CAAC,GAAG,IAAI,CAUrD"}
@@ -1 +1 @@
1
- {"version":3,"file":"mountHost.d.ts","sourceRoot":"","sources":["../src/mountHost.tsx"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;uCACmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;8DAC0D;IAC1D,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C;gDAC4C;IAC5C,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC9B;0BACsB;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;2CACuC;IACvC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,WAAW,CA6ChE"}
1
+ {"version":3,"file":"mountHost.d.ts","sourceRoot":"","sources":["../src/mountHost.tsx"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;uCACmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;8DAC0D;IAC1D,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C;gDAC4C;IAC5C,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC9B;0BACsB;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;2CACuC;IACvC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,WAAW,CA6ChE"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Robot identity block: robot name + transport tag (+ optional live
3
+ * latency pill). Ported from the mobile shell's `IdentityChipBar`
4
+ * (`reachy_mini_mobile_app/src/ui/screens/session/IdentityChipBar.tsx`),
5
+ * trimmed for the host:
6
+ *
7
+ * - No session-phase spinner: the host renders this only while the
8
+ * embedded app is live, so the transient Connecting/Reconnecting
9
+ * cue from the mobile session FSM has no equivalent here.
10
+ * - Latency comes from the embed-reported `rttMs` (the embed owns
11
+ * the live WebRTC pair; the host released its slot to the iframe),
12
+ * so the bars are driven purely by RTT.
13
+ *
14
+ * Layout:
15
+ *
16
+ * Reachy_mini [⌁ Lite] [▮▮▮ 38 ms]
17
+ *
18
+ * The `secondary` variant renders the name as a muted sub-line (used
19
+ * under the bigger app title in the host topbar).
20
+ */
21
+ import type { JSX } from 'react';
22
+ export interface IdentityChipBarProps {
23
+ robotName: string;
24
+ /** Physical transport string from central (`wifi` / `usb` / …),
25
+ * rendered via `<VariantTag>` as the stable Lite/Wireless tag.
26
+ * `null` when central didn't advertise `meta.transport` for this
27
+ * robot - the tag is then omitted, but the robot name (and the
28
+ * latency pill, if any) still render. */
29
+ transport: string | null;
30
+ /** Rolling-min RTT (ms) reported by the embed, or `null` when not
31
+ * yet measured / unavailable. Drives the latency pill value + bars. */
32
+ linkRttMs: number | null;
33
+ /** Whether to show the live latency pill. Defaults to `true`; pass
34
+ * `false` (or rely on it being gated upstream) when no RTT is
35
+ * available so we don't paint a misleading `0 ms`. */
36
+ showLatency?: boolean;
37
+ /**
38
+ * Visual weight of the robot name.
39
+ * - `'primary'` (default): bold, `text.primary`, `TYPO.md`.
40
+ * - `'secondary'`: medium, `text.secondary`, `TYPO.sm` - a sub-line
41
+ * under a bigger headline (the host topbar's app title).
42
+ */
43
+ variant?: 'primary' | 'secondary';
44
+ }
45
+ export declare function IdentityChipBar({ robotName, transport, linkRttMs, showLatency, variant, }: IdentityChipBarProps): JSX.Element;
46
+ //# sourceMappingURL=IdentityChipBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdentityChipBar.d.ts","sourceRoot":"","sources":["../../../src/ui/design/IdentityChipBar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAgBjC,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB;;;;8CAI0C;IAC1C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;4EACwE;IACxE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;2DAEuD;IACvD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;CACnC;AAED,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,SAAS,EACT,SAAS,EACT,WAAkB,EAClB,OAAmB,GACpB,EAAE,oBAAoB,GAAG,GAAG,CAAC,OAAO,CAuCpC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Tiny "signal bars" glyph that reads the live link QUALITY at a
3
+ * glance, driven by latency (RTT).
4
+ *
5
+ * Ported from the mobile shell
6
+ * (`reachy_mini_mobile_app/src/ui/design/LinkQualityBars.tsx` +
7
+ * the `linkQualityLevel` mapping from its `transport-monitor`). The
8
+ * host has no `TransportMonitor` of its own - it consumes the RTT the
9
+ * embedded app reports over `embed:app-state` - so the level mapping
10
+ * lives here, self-contained.
11
+ *
12
+ * < 40 ms ▮▮▮ excellent
13
+ * < 150 ms ▮▮▯ good
14
+ * ≥ 150 ms ▮▯▯ poor
15
+ */
16
+ import type { JSX } from 'react';
17
+ /** Discrete signal level, 0 (measuring / empty) to 3 (excellent). */
18
+ export type LinkQuality = 0 | 1 | 2 | 3;
19
+ /**
20
+ * Map a rolling-min RTT (ms) to a 0-3 quality level. `null` (RTT not
21
+ * yet measured / unavailable) reads as `0` (muted/empty bars).
22
+ */
23
+ export declare function linkQualityLevel(rttMs: number | null): LinkQuality;
24
+ interface LinkQualityBarsProps {
25
+ /** Pre-computed signal level (0-3), via `linkQualityLevel`. */
26
+ level: LinkQuality;
27
+ /** Accessible label / tooltip; defaults to the level's word. */
28
+ title?: string;
29
+ }
30
+ export declare function LinkQualityBars({ level, title }: LinkQualityBarsProps): JSX.Element;
31
+ export {};
32
+ //# sourceMappingURL=LinkQualityBars.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkQualityBars.d.ts","sourceRoot":"","sources":["../../../src/ui/design/LinkQualityBars.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAKjC,qEAAqE;AACrE,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAOxC;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,CAKlE;AAcD,UAAU,oBAAoB;IAC5B,+DAA+D;IAC/D,KAAK,EAAE,WAAW,CAAC;IACnB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,oBAAoB,GAAG,GAAG,CAAC,OAAO,CAqCnF"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Shared meta-pill primitives for the robot identity row.
3
+ *
4
+ * Ported from `reachy_mini_mobile_app/src/ui/design/MetaPill.tsx`.
5
+ * A meta pill is a small, light-bordered tag (icon/glyph + text) used
6
+ * both in the picker list and in the in-session topbar so a robot
7
+ * keeps the same visual taxonomy before and after the user picks it.
8
+ *
9
+ * [⌁ Lite] [▮▮▮ 38 ms]
10
+ *
11
+ * `VariantTag` is the always-on first pill: the USB / Wi-Fi icon plus
12
+ * the product SKU it maps onto (`Lite` / `Wireless`).
13
+ */
14
+ import type { JSX, ReactNode } from 'react';
15
+ /** Uniform pill height so the meta row lines up cleanly. */
16
+ export declare const META_PILL_HEIGHT_PX = 24;
17
+ /**
18
+ * Self-contained, light-bordered pill holding one meta module
19
+ * (icon/glyph + text). An optional `tone` tints the border + content;
20
+ * omitted = neutral.
21
+ */
22
+ export declare function MetaPill({ children, tone, pl, }: {
23
+ children: ReactNode;
24
+ tone?: string;
25
+ /** Left padding override - the icon-led variant pill tightens this
26
+ * so the glyph's own whitespace doesn't read as extra padding. */
27
+ pl?: number;
28
+ }): JSX.Element;
29
+ /** Text inside a meta pill, inheriting the pill's (possibly toned) colour. */
30
+ export declare function TagLabel({ children }: {
31
+ children: ReactNode;
32
+ }): JSX.Element;
33
+ /**
34
+ * Product-variant pill: USB / Wi-Fi icon + the SKU it maps onto
35
+ * (`Lite` / `Wireless`). Always-on, neutral - it's stable identity,
36
+ * not a health signal.
37
+ */
38
+ export declare function VariantTag({ transport }: {
39
+ transport: string;
40
+ }): JSX.Element;
41
+ //# sourceMappingURL=MetaPill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetaPill.d.ts","sourceRoot":"","sources":["../../../src/ui/design/MetaPill.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAM5C,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EACR,IAAI,EACJ,EAAU,GACX,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;uEACmE;IACnE,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,GAAG,GAAG,CAAC,OAAO,CAuBd;AAED,8EAA8E;AAC9E,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAgB3E;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAO5E"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Compact transport tag for a robot listing.
3
+ *
4
+ * Ported from `reachy_mini_mobile_app/src/ui/design/TransportChip.tsx`
5
+ * so the host shell and the mobile shell read the same `Lite` /
6
+ * `Wireless` taxonomy. The host is a separate package (no cross-import
7
+ * with the mobile app), so this is an assumed duplication - same
8
+ * stance as the shared `lib/tokens.ts`.
9
+ *
10
+ * Two well-known values get an icon + typed label (`usb`, `wifi`);
11
+ * anything else falls through to a plain label so a future daemon
12
+ * advertising `ethernet` / `sim` / `mockup` still renders without a
13
+ * component update.
14
+ */
15
+ import type { JSX } from 'react';
16
+ /**
17
+ * Map a transport string onto the product variant it implies. The
18
+ * link type IS the SKU: `usb` -> Reachy Mini Lite (wired, needs a host
19
+ * computer), `wifi` -> Reachy Mini Wireless (onboard compute +
20
+ * battery). Anything else falls through to the raw string.
21
+ */
22
+ export declare function transportLabelOf(transport: string): string;
23
+ export interface TransportChipProps {
24
+ transport: string;
25
+ /** Pixel height of the labelled chip. Defaults to 20px. */
26
+ height?: number;
27
+ /** Font size override. Defaults to `TYPO.tiny`. */
28
+ fontSize?: string | number;
29
+ /**
30
+ * Icon-only variant for the well-known transports (`usb` /
31
+ * `wifi`): drops the chip border + text label and renders just
32
+ * the glyph in a muted colour. Used inside `<VariantTag>` so the
33
+ * pill carries the label itself. Unknown transports still fall
34
+ * through to the labelled chip.
35
+ */
36
+ iconOnly?: boolean;
37
+ }
38
+ export declare function TransportChip({ transport, height, fontSize, iconOnly, }: TransportChipProps): JSX.Element;
39
+ //# sourceMappingURL=TransportChip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransportChip.d.ts","sourceRoot":"","sources":["../../../src/ui/design/TransportChip.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAOjC;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAI1D;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,MAAW,EACX,QAAoB,EACpB,QAAgB,GACjB,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAsDlC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pollen-robotics/reachy-mini-sdk",
3
- "version": "1.8.0",
3
+ "version": "1.8.1",
4
4
  "description": "Browser SDK for controlling a Reachy Mini robot over WebRTC, plus an optional Hugging Face Spaces host shell (OAuth + robot picker + iframe bridge) exposed via the ./host subpath.",
5
5
  "type": "module",
6
6
  "main": "./dist/reachy-mini-sdk.js",
@@ -12,6 +12,11 @@
12
12
  "import": "./dist/reachy-mini-sdk.js",
13
13
  "default": "./dist/reachy-mini-sdk.js"
14
14
  },
15
+ "./animation": {
16
+ "types": "./dist/animation/index.d.ts",
17
+ "import": "./dist/animation/index.js",
18
+ "default": "./dist/animation/index.js"
19
+ },
15
20
  "./host": {
16
21
  "types": "./host/dist/index.d.ts",
17
22
  "import": "./host/dist/index.js"
@@ -34,10 +39,8 @@
34
39
  "dist",
35
40
  "host/dist",
36
41
  "host/README.md",
37
- "host/SPEC.md",
38
- "host/APP_AUTHOR_GUIDE.md",
42
+ "APP_CREATION_GUIDE.md",
39
43
  "README.md",
40
- "CHANGELOG.md",
41
44
  "LICENSE"
42
45
  ],
43
46
  "sideEffects": false,