File size: 3,076 Bytes
843a4b2
 
 
 
 
 
 
 
9355f7d
843a4b2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover" />
<title>Morse Code · Reachy Mini</title>
<meta name="description" content="Talk to Reachy Mini in Morse code — antenna taps and beeps, decoded live through the mic." />
<meta name="theme-color" content="#0d1117" />
<link rel="icon" type="image/png" href="public/icon.png" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@500;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="style.css" />

<!-- Modern host-shell SDK entries (standalone → host/auto = mountHost;
     embedded iframe → host/embed = connectToHost). Pinned to the exact
     tarball the Pollen reference apps + marionette-js ship against so
     SDK / host / daemon stay in lockstep. Bumping it means editing these
     two links AND the two import URLs in main.js AND lib/animation-helpers.js. -->
<link rel="modulepreload" href="https://cdn.jsdelivr.net/npm/@pollen-robotics/reachy-mini-sdk@1.8.0-rc1-main.dbe26af/host/dist/entry/auto.js" crossorigin />
<link rel="modulepreload" href="https://cdn.jsdelivr.net/npm/@pollen-robotics/reachy-mini-sdk@1.8.0-rc1-main.dbe26af/host/dist/entry/embed.js" crossorigin />

<!-- HF Spaces helper variables. In production (sdk: static + hf_oauth: true)
     HF rewrites these placeholders at serve time and the SDK reads them off
     window.huggingface.variables. Locally the placeholders stay raw (leading
     __) so we drop the global and mountHost() falls back to the dev path. -->
<script>
  (function () {
    var clientId = "__OAUTH_CLIENT_ID__";
    var scopes = "__OAUTH_SCOPES__";
    var spaceHost = "__SPACE_HOST__";
    var spaceId = "__SPACE_ID__";
    var looksSubstituted = clientId && clientId.indexOf("__") !== 0;
    if (looksSubstituted) {
      window.huggingface = window.huggingface || {};
      window.huggingface.variables = {
        OAUTH_CLIENT_ID: clientId,
        OAUTH_SCOPES: scopes && scopes.indexOf("__") !== 0 ? scopes : "openid profile",
        SPACE_HOST: spaceHost && spaceHost.indexOf("__") !== 0 ? spaceHost : "",
        SPACE_ID: spaceId && spaceId.indexOf("__") !== 0 ? spaceId : "",
      };
    }
  })();
</script>

<!-- `process` shim: the CDN-loaded host bundle expects a bundler to have
     substituted process.env.NODE_ENV; loaded raw it would throw. -->
<script>
  globalThis.process ??= { env: {} };
  globalThis.process.env ??= {};
  globalThis.process.env.NODE_ENV ??= 'production';
</script>
</head>
<body>
<!-- Host shell mount point (standalone): sign-in, robot picker, top bar. -->
<div id="root"></div>
<!-- In-iframe app surface, revealed once connectToHost() resolves. -->
<div id="app" hidden></div>
<script type="module" src="main.js"></script>
</body>
</html>