robopark 3.3.8 → 3.3.9

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.
@@ -16,6 +16,7 @@ import { fileURLToPath } from 'node:url';
16
16
  import { startFrontendService } from './frontend-service.js';
17
17
  import { startLiveKitServer } from './livekit-server.js';
18
18
  import { ensureVisionConfigured, ensureElevenLabsConfigured } from './vision-onboard.js';
19
+ import { resolveTailnet } from './tailscale.js';
19
20
  function pkgDir() {
20
21
  try {
21
22
  // dist/robopark/serve.js -> dist/robopark -> dist -> project root
@@ -200,6 +201,21 @@ export async function roboparkServe(opts) {
200
201
  // The scheduler keeps the port robots and supervisors are already configured
201
202
  // to reach; the control center takes the next one and proxies back to it.
202
203
  const uiPort = port + 1;
204
+ // The host that goes into printed links and the control-center redirect.
205
+ // localhost is useless on a phone; a tailnet name works from anywhere on the
206
+ // tailnet without port forwarding or a public certificate.
207
+ let publicHost = 'localhost';
208
+ if (opts.tailscale) {
209
+ const { identity, error } = resolveTailnet();
210
+ if (identity) {
211
+ publicHost = identity.host;
212
+ console.log(` tailnet: ${chalk.cyan(publicHost)}${identity.magicDns ? '' : chalk.dim(' (no MagicDNS; using tailnet IP)')}`);
213
+ }
214
+ else {
215
+ console.log(chalk.yellow(` ⚠ --tailscale: ${error}`));
216
+ console.log(chalk.dim(' falling back to localhost links.'));
217
+ }
218
+ }
203
219
  const env = {
204
220
  ...process.env,
205
221
  SCHEDULER_HOST: host,
@@ -207,7 +223,7 @@ export async function roboparkServe(opts) {
207
223
  SCHEDULER_DATA_DIR: dataDir,
208
224
  // Lets the scheduler's own status page hand users straight to the real UI
209
225
  // instead of stranding them on the minimal fallback dashboard.
210
- ROBOPARK_CONTROL_CENTER_URL: `http://localhost:${uiPort}/robopark`,
226
+ ROBOPARK_CONTROL_CENTER_URL: `http://${publicHost}:${uiPort}/robopark`,
211
227
  };
212
228
  if (opts.gateway)
213
229
  env.INFINIBOT_GATEWAY_URL = opts.gateway;
@@ -248,7 +264,7 @@ export async function roboparkServe(opts) {
248
264
  // The scheduler writes livekit.yaml during startup, so this can only run
249
265
  // once it is up; a remote LiveKit deployment is a no-op here.
250
266
  void startLiveKitServer(dataDir, opts.foreground);
251
- printUrl(uiPort, port);
267
+ printUrl(uiPort, port, publicHost);
252
268
  markReady();
253
269
  };
254
270
  proc.stdout?.on('data', (d) => {
@@ -299,25 +315,25 @@ export async function roboparkServe(opts) {
299
315
  });
300
316
  proc.on('exit', () => process.exit(0));
301
317
  if (opts.open !== false) {
302
- await openDashboard(host, uiPort, port);
318
+ await openDashboard(host, uiPort, port, publicHost);
303
319
  }
304
320
  }
305
321
  else {
306
322
  // Detached mode: let the user walk away. The process keeps running.
307
323
  proc.unref();
308
324
  if (opts.open !== false) {
309
- await openDashboard(host, uiPort, port);
325
+ await openDashboard(host, uiPort, port, publicHost);
310
326
  }
311
- printUrl(uiPort, port);
327
+ printUrl(uiPort, port, publicHost);
312
328
  console.log(chalk.dim(' running in background. Use Task Manager / systemctl / launchctl to stop.'));
313
329
  setTimeout(() => process.exit(0), 100);
314
330
  }
315
331
  }
316
- function printUrl(uiPort, schedulerPort) {
317
- console.log(chalk.bold(` control center: ${chalk.cyan(`http://localhost:${uiPort}/robopark`)}`));
318
- console.log(` camera grid: ${chalk.cyan(`http://localhost:${uiPort}/camera-grid`)}`);
319
- console.log(` call links: ${chalk.cyan(`http://localhost:${schedulerPort}/calls`)}`);
320
- console.log(chalk.dim(` scheduler API: http://localhost:${schedulerPort}`));
332
+ function printUrl(uiPort, schedulerPort, host) {
333
+ console.log(chalk.bold(` control center: ${chalk.cyan(`http://${host}:${uiPort}/robopark`)}`));
334
+ console.log(` camera grid: ${chalk.cyan(`http://${host}:${uiPort}/camera-grid`)}`);
335
+ console.log(` call links: ${chalk.cyan(`http://${host}:${schedulerPort}/calls`)}`);
336
+ console.log(chalk.dim(` scheduler API: http://${host}:${schedulerPort}`));
321
337
  }
322
338
  /** Quick health check: is the scheduler responding? */
323
339
  export async function schedulerHealthy(url, timeoutMs = 3000) {
@@ -353,8 +369,9 @@ function openBrowser(url) {
353
369
  console.log(chalk.yellow(` ⚠ could not open browser: ${err instanceof Error ? err.message : String(err)}`));
354
370
  }
355
371
  }
356
- async function openDashboard(host, uiPort, schedulerPort) {
357
- // Health-check the scheduler, but send the browser to the control center.
372
+ async function openDashboard(host, uiPort, schedulerPort, publicHost) {
373
+ // Health-check over loopback (always reachable), but open the advertised
374
+ // host so the address bar holds a link that can be shared to a phone.
358
375
  const url = dashboardUrl(host, schedulerPort);
359
376
  const deadline = Date.now() + 10_000;
360
377
  let healthy = false;
@@ -370,7 +387,9 @@ async function openDashboard(host, uiPort, schedulerPort) {
370
387
  }
371
388
  // Wait for the Next server to bind before opening, or the browser lands on a
372
389
  // connection error and the user has to reload by hand.
373
- const uiUrl = dashboardUrl(host, uiPort) + 'robopark';
390
+ const uiUrl = publicHost && publicHost !== 'localhost'
391
+ ? `http://${publicHost}:${uiPort}/robopark`
392
+ : dashboardUrl(host, uiPort) + 'robopark';
374
393
  const uiDeadline = Date.now() + 20_000;
375
394
  while (Date.now() < uiDeadline) {
376
395
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/robopark/serve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/robopark/serve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Tailnet address resolution for `robopark serve --tailscale`.
3
+ *
4
+ * A tailnet hostname is what makes a call link work from a phone that is not on
5
+ * the LAN, so this resolves the MagicDNS name of this machine and hands it back
6
+ * for the printed URLs. Falls back to the raw 100.x address when MagicDNS is
7
+ * off, since that still routes over the tailnet.
8
+ */
9
+ import { execFileSync } from 'node:child_process';
10
+ import { existsSync } from 'node:fs';
11
+ /**
12
+ * Locate the CLI. On Windows the installer does not always put Tailscale on
13
+ * PATH, and a spawned process inherits whatever PATH the shell had — so the
14
+ * default install location is checked explicitly rather than assumed.
15
+ */
16
+ function tailscaleBin() {
17
+ const candidates = process.platform === 'win32'
18
+ ? ['tailscale', 'C:\\Program Files\\Tailscale\\tailscale.exe', 'C:\\Program Files (x86)\\Tailscale\\tailscale.exe']
19
+ : ['tailscale', '/usr/bin/tailscale', '/usr/local/bin/tailscale', '/Applications/Tailscale.app/Contents/MacOS/Tailscale'];
20
+ for (const candidate of candidates) {
21
+ if (candidate.includes('\\') || candidate.includes('/')) {
22
+ if (existsSync(candidate))
23
+ return candidate;
24
+ continue;
25
+ }
26
+ try {
27
+ execFileSync(candidate, ['version'], { stdio: 'ignore' });
28
+ return candidate;
29
+ }
30
+ catch { /* not on PATH */ }
31
+ }
32
+ return null;
33
+ }
34
+ /**
35
+ * Resolve this machine's tailnet address, or a reason it cannot be used.
36
+ * Never throws: a tailnet lookup failing must not stop the scheduler starting.
37
+ */
38
+ export function resolveTailnet() {
39
+ const bin = tailscaleBin();
40
+ if (!bin)
41
+ return { error: 'the tailscale CLI was not found on this machine' };
42
+ let parsed;
43
+ try {
44
+ const raw = execFileSync(bin, ['status', '--json'], { encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'] });
45
+ parsed = JSON.parse(raw);
46
+ }
47
+ catch (err) {
48
+ return { error: `tailscale status failed: ${err instanceof Error ? err.message : String(err)}` };
49
+ }
50
+ const state = parsed?.BackendState;
51
+ if (state && state !== 'Running') {
52
+ return { error: `tailscale is installed but not connected (state: ${state}) — run "tailscale up"` };
53
+ }
54
+ const self = parsed?.Self ?? {};
55
+ // MagicDNS names arrive fully qualified with a trailing dot, which is valid
56
+ // in DNS but produces a URL browsers and LiveKit token audiences dislike.
57
+ const dns = String(self.DNSName || '').replace(/\.$/, '');
58
+ if (dns)
59
+ return { identity: { host: dns, magicDns: true, hostName: self.HostName } };
60
+ const ipv4 = (self.TailscaleIPs || []).find((ip) => ip.includes('.'));
61
+ if (ipv4)
62
+ return { identity: { host: ipv4, magicDns: false, hostName: self.HostName } };
63
+ return { error: 'tailscale reported no address for this machine' };
64
+ }
65
+ //# sourceMappingURL=tailscale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailscale.js","sourceRoot":"","sources":["../../src/robopark/tailscale.ts"],"names":[],"mappings":"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"}
@@ -211,6 +211,7 @@ program
211
211
  .option('--vision-api-key <key>', 'vision provider API key to store on first run (skips the prompt)')
212
212
  .option('--vision-provider <name>', 'ollama_cloud | ollama | groq (default ollama_cloud)')
213
213
  .option('--no-vision-prompt', 'never ask for a vision key, even on first run')
214
+ .option('--tailscale', 'print and open tailnet URLs so links work from any device on the tailnet')
214
215
  .action(async (opts) => {
215
216
  await roboparkServe({
216
217
  ...opts,
@@ -556,6 +557,7 @@ program
556
557
  .option('--vision-api-key <key>', 'vision provider API key to store if not yet configured')
557
558
  .option('--vision-provider <name>', 'ollama_cloud | ollama | groq')
558
559
  .option('--no-vision-prompt', 'never ask for a vision key')
560
+ .option('--tailscale', 'print and open tailnet URLs')
559
561
  .action(async (opts) => {
560
562
  console.log(chalk.bold('\n robopark restart\n ' + '─'.repeat(48)));
561
563
  const result = await stopAll();
@@ -585,6 +587,7 @@ program
585
587
  visionProvider: opts.visionProvider,
586
588
  elevenlabsApiKey: opts.elevenlabsApiKey,
587
589
  noVisionPrompt: opts.visionPrompt === false,
590
+ tailscale: opts.tailscale,
588
591
  });
589
592
  });
590
593
  program
@@ -1 +1 @@
1
- {"version":3,"file":"robopark-cli.js","sourceRoot":"","sources":["../src/robopark-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"robopark-cli.js","sourceRoot":"","sources":["../src/robopark-cli.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "robopark",
3
- "version": "3.3.8",
3
+ "version": "3.3.9",
4
4
  "description": "RoboPark fleet control CLI \u2014 scheduler, control UI, and character voice calls. Standalone: no infinicode runtime.",
5
5
  "type": "module",
6
6
  "bin": {
package/scheduler/main.py CHANGED
@@ -3393,6 +3393,95 @@ async def issue_livekit_token(payload: LiveKitTokenRequest,
3393
3393
  identity=payload.identity, expires_at=expires,
3394
3394
  )
3395
3395
 
3396
+ async def _lk_credentials() -> tuple[str, str, str]:
3397
+ """LiveKit url/key/secret from env-or-settings, falling back to the registry."""
3398
+ try:
3399
+ return await _lk_config_async()
3400
+ except HTTPException:
3401
+ async with aiosqlite.connect(DB_PATH) as db:
3402
+ async with db.execute(
3403
+ "SELECT url, api_key, api_secret FROM livekit_servers "
3404
+ "WHERE api_key IS NOT NULL AND api_secret IS NOT NULL "
3405
+ "ORDER BY (status = 'online') DESC, created_at ASC LIMIT 1"
3406
+ ) as c:
3407
+ row = await c.fetchone()
3408
+ if not row:
3409
+ raise HTTPException(503, "No LiveKit server is configured on the scheduler")
3410
+ return row[0], row[1], row[2]
3411
+
3412
+
3413
+ @app.get("/api/live-rooms")
3414
+ async def list_live_rooms():
3415
+ """Rooms that currently exist on LiveKit, with their participant counts.
3416
+
3417
+ The control center used to ask LiveKit directly using LIVEKIT_* environment
3418
+ variables. A standalone install has none, so that call was skipped and the
3419
+ endpoint returned an empty list — the camera grid concluded nothing was
3420
+ live and drew no tiles, even while a call page was visibly publishing.
3421
+ """
3422
+ url, key, sec = await _lk_credentials()
3423
+ try:
3424
+ from livekit import api as lkapi
3425
+ except ImportError:
3426
+ raise HTTPException(503, "livekit-api not installed on scheduler")
3427
+
3428
+ # The room service speaks HTTP; the registry stores the signalling ws URL.
3429
+ http_url = re.sub(r"^ws", "http", url or "")
3430
+ client = lkapi.LiveKitAPI(http_url, key, sec)
3431
+ try:
3432
+ result = await client.room.list_rooms(lkapi.ListRoomsRequest())
3433
+ except Exception as exc:
3434
+ logger.warning("LiveKit list_rooms failed: %s", exc)
3435
+ raise HTTPException(502, f"LiveKit did not answer: {exc}")
3436
+ finally:
3437
+ try:
3438
+ await client.aclose()
3439
+ except Exception:
3440
+ pass
3441
+
3442
+ # Characters, so a room keyed by a character id can be labelled. The stream
3443
+ # identity is whatever follows "robopark-": the publisher uses a robot id
3444
+ # when the call has one and a character id otherwise, so the room name is
3445
+ # the only reliable source — reconstructing it from either identity alone
3446
+ # is what made the grid watch rooms nobody was publishing into.
3447
+ characters = {}
3448
+ async with aiosqlite.connect(DB_PATH) as db:
3449
+ db.row_factory = aiosqlite.Row
3450
+ async with db.execute("SELECT id, name FROM character_presets") as c:
3451
+ for row in await c.fetchall():
3452
+ characters[str(row["id"]).lower()] = row["name"]
3453
+ devices = {}
3454
+ async with db.execute("SELECT id, character_id FROM devices") as c:
3455
+ for row in await c.fetchall():
3456
+ devices[str(row["id"])] = row["character_id"]
3457
+
3458
+ rooms = []
3459
+ for room in getattr(result, "rooms", []) or []:
3460
+ name = getattr(room, "name", "") or ""
3461
+ participants = int(getattr(room, "num_participants", 0) or 0)
3462
+ if not name.startswith("robopark-") or participants <= 0:
3463
+ continue
3464
+ stream_id = name[len("robopark-"):]
3465
+ character_id = devices.get(stream_id) or (stream_id if stream_id.lower() in characters else None)
3466
+ created = int(getattr(room, "creation_time", 0) or 0)
3467
+ rooms.append({
3468
+ "id": getattr(room, "sid", "") or name,
3469
+ # Named robot_id for compatibility with the control center, which
3470
+ # keys its camera tiles on this field; it is really the stream id.
3471
+ "robot_id": stream_id,
3472
+ "robot_name": stream_id,
3473
+ "character_id": character_id,
3474
+ "character_name": characters.get(str(character_id or "").lower(), "Unassigned character"),
3475
+ "room_name": name,
3476
+ "started_at": datetime.utcfromtimestamp(created).isoformat() + "Z" if created else None,
3477
+ "participants": participants,
3478
+ "voice_engine": "elevenlabs",
3479
+ "camera_url": f"/fed/media/robots/{quote(stream_id)}/video_feed",
3480
+ })
3481
+ rooms.sort(key=lambda r: r["room_name"])
3482
+ return rooms
3483
+
3484
+
3396
3485
  class CameraTokenRequest(BaseModel):
3397
3486
  robot_id: Optional[str] = None
3398
3487
  character_id: Optional[str] = None
@@ -1 +1 @@
1
- 7hosI6Tk4PpkcjmN3-s_F
1
+ H5av7rSb0E_elgbludulF
@@ -7,16 +7,12 @@
7
7
  "static/chunks/main-app-f2b2a716b0f3924b.js",
8
8
  "static/chunks/app/_not-found/page-9f0acae7481c60bb.js"
9
9
  ],
10
- "/layout": [
10
+ "/api/device-character/route": [
11
11
  "static/chunks/webpack-5252e5254da079b5.js",
12
12
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
13
13
  "static/chunks/1255-404bb8de49c90395.js",
14
14
  "static/chunks/main-app-f2b2a716b0f3924b.js",
15
- "static/css/3f478a573f9be82e.css",
16
- "static/css/51560c4af1d5a21f.css",
17
- "static/chunks/144d3bae-bd5d150c0cab972e.js",
18
- "static/chunks/9880-53262785284464cc.js",
19
- "static/chunks/app/layout-4829e027e68fded4.js"
15
+ "static/chunks/app/api/device-character/route-0952b44bda5bfb6d.js"
20
16
  ],
21
17
  "/api/download-piper-model/route": [
22
18
  "static/chunks/webpack-5252e5254da079b5.js",
@@ -25,19 +21,12 @@
25
21
  "static/chunks/main-app-f2b2a716b0f3924b.js",
26
22
  "static/chunks/app/api/download-piper-model/route-0952b44bda5bfb6d.js"
27
23
  ],
28
- "/api/device-character/route": [
29
- "static/chunks/webpack-5252e5254da079b5.js",
30
- "static/chunks/4bd1b696-f785427dddbba9fb.js",
31
- "static/chunks/1255-404bb8de49c90395.js",
32
- "static/chunks/main-app-f2b2a716b0f3924b.js",
33
- "static/chunks/app/api/device-character/route-0952b44bda5bfb6d.js"
34
- ],
35
- "/api/models/route": [
24
+ "/api/prewarm/route": [
36
25
  "static/chunks/webpack-5252e5254da079b5.js",
37
26
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
38
27
  "static/chunks/1255-404bb8de49c90395.js",
39
28
  "static/chunks/main-app-f2b2a716b0f3924b.js",
40
- "static/chunks/app/api/models/route-0952b44bda5bfb6d.js"
29
+ "static/chunks/app/api/prewarm/route-0952b44bda5bfb6d.js"
41
30
  ],
42
31
  "/api/prompt/route": [
43
32
  "static/chunks/webpack-5252e5254da079b5.js",
@@ -53,12 +42,12 @@
53
42
  "static/chunks/main-app-f2b2a716b0f3924b.js",
54
43
  "static/chunks/app/api/reload-tools/route-0952b44bda5bfb6d.js"
55
44
  ],
56
- "/api/prewarm/route": [
45
+ "/api/models/route": [
57
46
  "static/chunks/webpack-5252e5254da079b5.js",
58
47
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
59
48
  "static/chunks/1255-404bb8de49c90395.js",
60
49
  "static/chunks/main-app-f2b2a716b0f3924b.js",
61
- "static/chunks/app/api/prewarm/route-0952b44bda5bfb6d.js"
50
+ "static/chunks/app/api/models/route-0952b44bda5bfb6d.js"
62
51
  ],
63
52
  "/api/robopark/devices/[deviceId]/control/route": [
64
53
  "static/chunks/webpack-5252e5254da079b5.js",
@@ -67,19 +56,19 @@
67
56
  "static/chunks/main-app-f2b2a716b0f3924b.js",
68
57
  "static/chunks/app/api/robopark/devices/[deviceId]/control/route-0952b44bda5bfb6d.js"
69
58
  ],
70
- "/api/robopark/sessions/[sessionId]/end/route": [
59
+ "/api/robopark/robots/[robotId]/operations/route": [
71
60
  "static/chunks/webpack-5252e5254da079b5.js",
72
61
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
73
62
  "static/chunks/1255-404bb8de49c90395.js",
74
63
  "static/chunks/main-app-f2b2a716b0f3924b.js",
75
- "static/chunks/app/api/robopark/sessions/[sessionId]/end/route-0952b44bda5bfb6d.js"
64
+ "static/chunks/app/api/robopark/robots/[robotId]/operations/route-0952b44bda5bfb6d.js"
76
65
  ],
77
- "/api/robopark/robots/[robotId]/operations/route": [
66
+ "/api/robopark/sessions/[sessionId]/end/route": [
78
67
  "static/chunks/webpack-5252e5254da079b5.js",
79
68
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
80
69
  "static/chunks/1255-404bb8de49c90395.js",
81
70
  "static/chunks/main-app-f2b2a716b0f3924b.js",
82
- "static/chunks/app/api/robopark/robots/[robotId]/operations/route-0952b44bda5bfb6d.js"
71
+ "static/chunks/app/api/robopark/sessions/[sessionId]/end/route-0952b44bda5bfb6d.js"
83
72
  ],
84
73
  "/api/robopark/transcripts/[sessionId]/route": [
85
74
  "static/chunks/webpack-5252e5254da079b5.js",
@@ -88,47 +77,47 @@
88
77
  "static/chunks/main-app-f2b2a716b0f3924b.js",
89
78
  "static/chunks/app/api/robopark/transcripts/[sessionId]/route-0952b44bda5bfb6d.js"
90
79
  ],
91
- "/api/setup/test-groq/route": [
80
+ "/api/setup/complete/route": [
92
81
  "static/chunks/webpack-5252e5254da079b5.js",
93
82
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
94
83
  "static/chunks/1255-404bb8de49c90395.js",
95
84
  "static/chunks/main-app-f2b2a716b0f3924b.js",
96
- "static/chunks/app/api/setup/test-groq/route-0952b44bda5bfb6d.js"
85
+ "static/chunks/app/api/setup/complete/route-0952b44bda5bfb6d.js"
97
86
  ],
98
- "/api/setup/test-n8n/route": [
87
+ "/api/setup/status/route": [
99
88
  "static/chunks/webpack-5252e5254da079b5.js",
100
89
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
101
90
  "static/chunks/1255-404bb8de49c90395.js",
102
91
  "static/chunks/main-app-f2b2a716b0f3924b.js",
103
- "static/chunks/app/api/setup/test-n8n/route-0952b44bda5bfb6d.js"
92
+ "static/chunks/app/api/setup/status/route-0952b44bda5bfb6d.js"
104
93
  ],
105
- "/api/setup/complete/route": [
94
+ "/api/setup/test-groq/route": [
106
95
  "static/chunks/webpack-5252e5254da079b5.js",
107
96
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
108
97
  "static/chunks/1255-404bb8de49c90395.js",
109
98
  "static/chunks/main-app-f2b2a716b0f3924b.js",
110
- "static/chunks/app/api/setup/complete/route-0952b44bda5bfb6d.js"
99
+ "static/chunks/app/api/setup/test-groq/route-0952b44bda5bfb6d.js"
111
100
  ],
112
- "/api/setup/test-ollama/route": [
101
+ "/api/setup/test-hass/route": [
113
102
  "static/chunks/webpack-5252e5254da079b5.js",
114
103
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
115
104
  "static/chunks/1255-404bb8de49c90395.js",
116
105
  "static/chunks/main-app-f2b2a716b0f3924b.js",
117
- "static/chunks/app/api/setup/test-ollama/route-0952b44bda5bfb6d.js"
106
+ "static/chunks/app/api/setup/test-hass/route-0952b44bda5bfb6d.js"
118
107
  ],
119
- "/api/setup/status/route": [
108
+ "/api/setup/test-n8n/route": [
120
109
  "static/chunks/webpack-5252e5254da079b5.js",
121
110
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
122
111
  "static/chunks/1255-404bb8de49c90395.js",
123
112
  "static/chunks/main-app-f2b2a716b0f3924b.js",
124
- "static/chunks/app/api/setup/status/route-0952b44bda5bfb6d.js"
113
+ "static/chunks/app/api/setup/test-n8n/route-0952b44bda5bfb6d.js"
125
114
  ],
126
- "/api/setup/test-hass/route": [
115
+ "/api/setup/test-ollama/route": [
127
116
  "static/chunks/webpack-5252e5254da079b5.js",
128
117
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
129
118
  "static/chunks/1255-404bb8de49c90395.js",
130
119
  "static/chunks/main-app-f2b2a716b0f3924b.js",
131
- "static/chunks/app/api/setup/test-hass/route-0952b44bda5bfb6d.js"
120
+ "static/chunks/app/api/setup/test-ollama/route-0952b44bda5bfb6d.js"
132
121
  ],
133
122
  "/api/test-tts/route": [
134
123
  "static/chunks/webpack-5252e5254da079b5.js",
@@ -137,26 +126,26 @@
137
126
  "static/chunks/main-app-f2b2a716b0f3924b.js",
138
127
  "static/chunks/app/api/test-tts/route-0952b44bda5bfb6d.js"
139
128
  ],
140
- "/api/wake-word/status/route": [
129
+ "/api/voices/route": [
141
130
  "static/chunks/webpack-5252e5254da079b5.js",
142
131
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
143
132
  "static/chunks/1255-404bb8de49c90395.js",
144
133
  "static/chunks/main-app-f2b2a716b0f3924b.js",
145
- "static/chunks/app/api/wake-word/status/route-0952b44bda5bfb6d.js"
134
+ "static/chunks/app/api/voices/route-0952b44bda5bfb6d.js"
146
135
  ],
147
- "/api/voices/route": [
136
+ "/api/wake-word/models/route": [
148
137
  "static/chunks/webpack-5252e5254da079b5.js",
149
138
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
150
139
  "static/chunks/1255-404bb8de49c90395.js",
151
140
  "static/chunks/main-app-f2b2a716b0f3924b.js",
152
- "static/chunks/app/api/voices/route-0952b44bda5bfb6d.js"
141
+ "static/chunks/app/api/wake-word/models/route-0952b44bda5bfb6d.js"
153
142
  ],
154
- "/api/wake-word/models/route": [
143
+ "/api/wake-word/status/route": [
155
144
  "static/chunks/webpack-5252e5254da079b5.js",
156
145
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
157
146
  "static/chunks/1255-404bb8de49c90395.js",
158
147
  "static/chunks/main-app-f2b2a716b0f3924b.js",
159
- "static/chunks/app/api/wake-word/models/route-0952b44bda5bfb6d.js"
148
+ "static/chunks/app/api/wake-word/status/route-0952b44bda5bfb6d.js"
160
149
  ],
161
150
  "/api/wake-word/upload/route": [
162
151
  "static/chunks/webpack-5252e5254da079b5.js",
@@ -165,6 +154,17 @@
165
154
  "static/chunks/main-app-f2b2a716b0f3924b.js",
166
155
  "static/chunks/app/api/wake-word/upload/route-0952b44bda5bfb6d.js"
167
156
  ],
157
+ "/layout": [
158
+ "static/chunks/webpack-5252e5254da079b5.js",
159
+ "static/chunks/4bd1b696-f785427dddbba9fb.js",
160
+ "static/chunks/1255-404bb8de49c90395.js",
161
+ "static/chunks/main-app-f2b2a716b0f3924b.js",
162
+ "static/css/3f478a573f9be82e.css",
163
+ "static/css/51560c4af1d5a21f.css",
164
+ "static/chunks/144d3bae-bd5d150c0cab972e.js",
165
+ "static/chunks/9880-53262785284464cc.js",
166
+ "static/chunks/app/layout-4829e027e68fded4.js"
167
+ ],
168
168
  "/api/connection-details/route": [
169
169
  "static/chunks/webpack-5252e5254da079b5.js",
170
170
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
@@ -186,19 +186,19 @@
186
186
  "static/chunks/main-app-f2b2a716b0f3924b.js",
187
187
  "static/chunks/app/api/model-status/route-0952b44bda5bfb6d.js"
188
188
  ],
189
- "/api/robopark/camera-token/route": [
189
+ "/api/robopark/character-ai/route": [
190
190
  "static/chunks/webpack-5252e5254da079b5.js",
191
191
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
192
192
  "static/chunks/1255-404bb8de49c90395.js",
193
193
  "static/chunks/main-app-f2b2a716b0f3924b.js",
194
- "static/chunks/app/api/robopark/camera-token/route-0952b44bda5bfb6d.js"
194
+ "static/chunks/app/api/robopark/character-ai/route-0952b44bda5bfb6d.js"
195
195
  ],
196
- "/api/robopark/character-ai/route": [
196
+ "/api/robopark/camera-token/route": [
197
197
  "static/chunks/webpack-5252e5254da079b5.js",
198
198
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
199
199
  "static/chunks/1255-404bb8de49c90395.js",
200
200
  "static/chunks/main-app-f2b2a716b0f3924b.js",
201
- "static/chunks/app/api/robopark/character-ai/route-0952b44bda5bfb6d.js"
201
+ "static/chunks/app/api/robopark/camera-token/route-0952b44bda5bfb6d.js"
202
202
  ],
203
203
  "/api/robopark/device-access/route": [
204
204
  "static/chunks/webpack-5252e5254da079b5.js",
@@ -214,12 +214,12 @@
214
214
  "static/chunks/main-app-f2b2a716b0f3924b.js",
215
215
  "static/chunks/app/api/robopark/live-rooms/route-0952b44bda5bfb6d.js"
216
216
  ],
217
- "/api/robopark/robots/route": [
217
+ "/api/robopark/monitor-token/route": [
218
218
  "static/chunks/webpack-5252e5254da079b5.js",
219
219
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
220
220
  "static/chunks/1255-404bb8de49c90395.js",
221
221
  "static/chunks/main-app-f2b2a716b0f3924b.js",
222
- "static/chunks/app/api/robopark/robots/route-0952b44bda5bfb6d.js"
222
+ "static/chunks/app/api/robopark/monitor-token/route-0952b44bda5bfb6d.js"
223
223
  ],
224
224
  "/api/robopark/servers/[serverId]/metrics/route": [
225
225
  "static/chunks/webpack-5252e5254da079b5.js",
@@ -228,12 +228,12 @@
228
228
  "static/chunks/main-app-f2b2a716b0f3924b.js",
229
229
  "static/chunks/app/api/robopark/servers/[serverId]/metrics/route-0952b44bda5bfb6d.js"
230
230
  ],
231
- "/api/robopark/monitor-token/route": [
231
+ "/api/robopark/robots/route": [
232
232
  "static/chunks/webpack-5252e5254da079b5.js",
233
233
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
234
234
  "static/chunks/1255-404bb8de49c90395.js",
235
235
  "static/chunks/main-app-f2b2a716b0f3924b.js",
236
- "static/chunks/app/api/robopark/monitor-token/route-0952b44bda5bfb6d.js"
236
+ "static/chunks/app/api/robopark/robots/route-0952b44bda5bfb6d.js"
237
237
  ],
238
238
  "/api/robopark/servers/[serverId]/route": [
239
239
  "static/chunks/webpack-5252e5254da079b5.js",
@@ -242,33 +242,33 @@
242
242
  "static/chunks/main-app-f2b2a716b0f3924b.js",
243
243
  "static/chunks/app/api/robopark/servers/[serverId]/route-0952b44bda5bfb6d.js"
244
244
  ],
245
- "/api/robopark/sessions/route": [
245
+ "/api/robopark/servers/route": [
246
246
  "static/chunks/webpack-5252e5254da079b5.js",
247
247
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
248
248
  "static/chunks/1255-404bb8de49c90395.js",
249
249
  "static/chunks/main-app-f2b2a716b0f3924b.js",
250
- "static/chunks/app/api/robopark/sessions/route-0952b44bda5bfb6d.js"
250
+ "static/chunks/app/api/robopark/servers/route-0952b44bda5bfb6d.js"
251
251
  ],
252
- "/api/robopark/servers/route": [
252
+ "/api/robopark/sessions/route": [
253
253
  "static/chunks/webpack-5252e5254da079b5.js",
254
254
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
255
255
  "static/chunks/1255-404bb8de49c90395.js",
256
256
  "static/chunks/main-app-f2b2a716b0f3924b.js",
257
- "static/chunks/app/api/robopark/servers/route-0952b44bda5bfb6d.js"
257
+ "static/chunks/app/api/robopark/sessions/route-0952b44bda5bfb6d.js"
258
258
  ],
259
- "/api/robovoice/robots/[robotId]/media-health/route": [
259
+ "/api/robopark/robots/[robotId]/voice-engine/route": [
260
260
  "static/chunks/webpack-5252e5254da079b5.js",
261
261
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
262
262
  "static/chunks/1255-404bb8de49c90395.js",
263
263
  "static/chunks/main-app-f2b2a716b0f3924b.js",
264
- "static/chunks/app/api/robovoice/robots/[robotId]/media-health/route-0952b44bda5bfb6d.js"
264
+ "static/chunks/app/api/robopark/robots/[robotId]/voice-engine/route-0952b44bda5bfb6d.js"
265
265
  ],
266
- "/api/robopark/robots/[robotId]/voice-engine/route": [
266
+ "/api/robovoice/robots/[robotId]/media-health/route": [
267
267
  "static/chunks/webpack-5252e5254da079b5.js",
268
268
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
269
269
  "static/chunks/1255-404bb8de49c90395.js",
270
270
  "static/chunks/main-app-f2b2a716b0f3924b.js",
271
- "static/chunks/app/api/robopark/robots/[robotId]/voice-engine/route-0952b44bda5bfb6d.js"
271
+ "static/chunks/app/api/robovoice/robots/[robotId]/media-health/route-0952b44bda5bfb6d.js"
272
272
  ],
273
273
  "/api/robopark/vision-caption/route": [
274
274
  "static/chunks/webpack-5252e5254da079b5.js",
@@ -284,19 +284,19 @@
284
284
  "static/chunks/main-app-f2b2a716b0f3924b.js",
285
285
  "static/chunks/app/api/settings/route-0952b44bda5bfb6d.js"
286
286
  ],
287
- "/api/turn-credentials/route": [
287
+ "/api/robopark/transcripts/route": [
288
288
  "static/chunks/webpack-5252e5254da079b5.js",
289
289
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
290
290
  "static/chunks/1255-404bb8de49c90395.js",
291
291
  "static/chunks/main-app-f2b2a716b0f3924b.js",
292
- "static/chunks/app/api/turn-credentials/route-0952b44bda5bfb6d.js"
292
+ "static/chunks/app/api/robopark/transcripts/route-0952b44bda5bfb6d.js"
293
293
  ],
294
- "/api/wake/route": [
294
+ "/api/turn-credentials/route": [
295
295
  "static/chunks/webpack-5252e5254da079b5.js",
296
296
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
297
297
  "static/chunks/1255-404bb8de49c90395.js",
298
298
  "static/chunks/main-app-f2b2a716b0f3924b.js",
299
- "static/chunks/app/api/wake/route-0952b44bda5bfb6d.js"
299
+ "static/chunks/app/api/turn-credentials/route-0952b44bda5bfb6d.js"
300
300
  ],
301
301
  "/camera-grid/route": [
302
302
  "static/chunks/webpack-5252e5254da079b5.js",
@@ -305,12 +305,12 @@
305
305
  "static/chunks/main-app-f2b2a716b0f3924b.js",
306
306
  "static/chunks/app/camera-grid/route-0952b44bda5bfb6d.js"
307
307
  ],
308
- "/fed/media/robots/[robotId]/video_feed/route": [
308
+ "/api/wake/route": [
309
309
  "static/chunks/webpack-5252e5254da079b5.js",
310
310
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
311
311
  "static/chunks/1255-404bb8de49c90395.js",
312
312
  "static/chunks/main-app-f2b2a716b0f3924b.js",
313
- "static/chunks/app/fed/media/robots/[robotId]/video_feed/route-0952b44bda5bfb6d.js"
313
+ "static/chunks/app/api/wake/route-0952b44bda5bfb6d.js"
314
314
  ],
315
315
  "/robopark/[...path]/route": [
316
316
  "static/chunks/webpack-5252e5254da079b5.js",
@@ -319,12 +319,12 @@
319
319
  "static/chunks/main-app-f2b2a716b0f3924b.js",
320
320
  "static/chunks/app/robopark/[...path]/route-0952b44bda5bfb6d.js"
321
321
  ],
322
- "/api/robopark/transcripts/route": [
322
+ "/fed/media/robots/[robotId]/video_feed/route": [
323
323
  "static/chunks/webpack-5252e5254da079b5.js",
324
324
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
325
325
  "static/chunks/1255-404bb8de49c90395.js",
326
326
  "static/chunks/main-app-f2b2a716b0f3924b.js",
327
- "static/chunks/app/api/robopark/transcripts/route-0952b44bda5bfb6d.js"
327
+ "static/chunks/app/fed/media/robots/[robotId]/video_feed/route-0952b44bda5bfb6d.js"
328
328
  ],
329
329
  "/fed/[...path]/route": [
330
330
  "static/chunks/webpack-5252e5254da079b5.js",
@@ -333,33 +333,33 @@
333
333
  "static/chunks/main-app-f2b2a716b0f3924b.js",
334
334
  "static/chunks/app/fed/[...path]/route-0952b44bda5bfb6d.js"
335
335
  ],
336
- "/tailnet/route": [
336
+ "/robopark/api/robots/[robotId]/stream/route": [
337
337
  "static/chunks/webpack-5252e5254da079b5.js",
338
338
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
339
339
  "static/chunks/1255-404bb8de49c90395.js",
340
340
  "static/chunks/main-app-f2b2a716b0f3924b.js",
341
- "static/chunks/app/tailnet/route-0952b44bda5bfb6d.js"
341
+ "static/chunks/app/robopark/api/robots/[robotId]/stream/route-0952b44bda5bfb6d.js"
342
342
  ],
343
- "/(app)/opengraph-image-xg4ifa/route": [
343
+ "/tailnet/route": [
344
344
  "static/chunks/webpack-5252e5254da079b5.js",
345
345
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
346
346
  "static/chunks/1255-404bb8de49c90395.js",
347
347
  "static/chunks/main-app-f2b2a716b0f3924b.js",
348
- "static/chunks/app/(app)/opengraph-image-xg4ifa/route-0952b44bda5bfb6d.js"
348
+ "static/chunks/app/tailnet/route-0952b44bda5bfb6d.js"
349
349
  ],
350
- "/robopark/api/robots/[robotId]/stream/route": [
350
+ "/vendor/livekit-client.umd.js/route": [
351
351
  "static/chunks/webpack-5252e5254da079b5.js",
352
352
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
353
353
  "static/chunks/1255-404bb8de49c90395.js",
354
354
  "static/chunks/main-app-f2b2a716b0f3924b.js",
355
- "static/chunks/app/robopark/api/robots/[robotId]/stream/route-0952b44bda5bfb6d.js"
355
+ "static/chunks/app/vendor/livekit-client.umd.js/route-0952b44bda5bfb6d.js"
356
356
  ],
357
- "/vendor/livekit-client.umd.js/route": [
357
+ "/(app)/opengraph-image-xg4ifa/route": [
358
358
  "static/chunks/webpack-5252e5254da079b5.js",
359
359
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
360
360
  "static/chunks/1255-404bb8de49c90395.js",
361
361
  "static/chunks/main-app-f2b2a716b0f3924b.js",
362
- "static/chunks/app/vendor/livekit-client.umd.js/route-0952b44bda5bfb6d.js"
362
+ "static/chunks/app/(app)/opengraph-image-xg4ifa/route-0952b44bda5bfb6d.js"
363
363
  ],
364
364
  "/robopark/api/[...path]/route": [
365
365
  "static/chunks/webpack-5252e5254da079b5.js",
@@ -1,55 +1,55 @@
1
1
  {
2
- "/_not-found/page": "/_not-found",
3
- "/api/download-piper-model/route": "/api/download-piper-model",
4
2
  "/api/device-character/route": "/api/device-character",
5
- "/api/models/route": "/api/models",
3
+ "/api/download-piper-model/route": "/api/download-piper-model",
4
+ "/api/prewarm/route": "/api/prewarm",
6
5
  "/api/prompt/route": "/api/prompt",
7
6
  "/api/reload-tools/route": "/api/reload-tools",
8
- "/api/prewarm/route": "/api/prewarm",
7
+ "/api/models/route": "/api/models",
9
8
  "/api/robopark/devices/[deviceId]/control/route": "/api/robopark/devices/[deviceId]/control",
10
- "/api/robopark/sessions/[sessionId]/end/route": "/api/robopark/sessions/[sessionId]/end",
11
9
  "/api/robopark/robots/[robotId]/operations/route": "/api/robopark/robots/[robotId]/operations",
10
+ "/api/robopark/sessions/[sessionId]/end/route": "/api/robopark/sessions/[sessionId]/end",
12
11
  "/api/robopark/transcripts/[sessionId]/route": "/api/robopark/transcripts/[sessionId]",
13
- "/api/setup/test-groq/route": "/api/setup/test-groq",
14
- "/api/setup/test-n8n/route": "/api/setup/test-n8n",
15
12
  "/api/setup/complete/route": "/api/setup/complete",
16
- "/api/setup/test-ollama/route": "/api/setup/test-ollama",
17
13
  "/api/setup/status/route": "/api/setup/status",
14
+ "/api/setup/test-groq/route": "/api/setup/test-groq",
18
15
  "/api/setup/test-hass/route": "/api/setup/test-hass",
16
+ "/api/setup/test-n8n/route": "/api/setup/test-n8n",
17
+ "/api/setup/test-ollama/route": "/api/setup/test-ollama",
19
18
  "/api/test-tts/route": "/api/test-tts",
20
- "/api/wake-word/status/route": "/api/wake-word/status",
21
19
  "/api/voices/route": "/api/voices",
22
20
  "/api/wake-word/models/route": "/api/wake-word/models",
21
+ "/api/wake-word/status/route": "/api/wake-word/status",
23
22
  "/api/wake-word/upload/route": "/api/wake-word/upload",
24
23
  "/favicon.ico/route": "/favicon.ico",
24
+ "/_not-found/page": "/_not-found",
25
25
  "/api/connection-details/route": "/api/connection-details",
26
26
  "/api/kiosk-hardware/route": "/api/kiosk-hardware",
27
27
  "/api/model-status/route": "/api/model-status",
28
- "/api/robopark/camera-token/route": "/api/robopark/camera-token",
29
28
  "/api/robopark/character-ai/route": "/api/robopark/character-ai",
29
+ "/api/robopark/camera-token/route": "/api/robopark/camera-token",
30
30
  "/api/robopark/device-access/route": "/api/robopark/device-access",
31
31
  "/api/robopark/live-rooms/route": "/api/robopark/live-rooms",
32
- "/api/robopark/robots/route": "/api/robopark/robots",
33
- "/api/robopark/servers/[serverId]/metrics/route": "/api/robopark/servers/[serverId]/metrics",
34
32
  "/api/robopark/monitor-token/route": "/api/robopark/monitor-token",
33
+ "/api/robopark/servers/[serverId]/metrics/route": "/api/robopark/servers/[serverId]/metrics",
34
+ "/api/robopark/robots/route": "/api/robopark/robots",
35
35
  "/api/robopark/servers/[serverId]/route": "/api/robopark/servers/[serverId]",
36
- "/api/robopark/sessions/route": "/api/robopark/sessions",
37
36
  "/api/robopark/servers/route": "/api/robopark/servers",
38
- "/api/robovoice/robots/[robotId]/media-health/route": "/api/robovoice/robots/[robotId]/media-health",
37
+ "/api/robopark/sessions/route": "/api/robopark/sessions",
39
38
  "/api/robopark/robots/[robotId]/voice-engine/route": "/api/robopark/robots/[robotId]/voice-engine",
39
+ "/api/robovoice/robots/[robotId]/media-health/route": "/api/robovoice/robots/[robotId]/media-health",
40
40
  "/api/robopark/vision-caption/route": "/api/robopark/vision-caption",
41
41
  "/api/settings/route": "/api/settings",
42
+ "/api/robopark/transcripts/route": "/api/robopark/transcripts",
42
43
  "/api/turn-credentials/route": "/api/turn-credentials",
43
- "/api/wake/route": "/api/wake",
44
44
  "/camera-grid/route": "/camera-grid",
45
- "/fed/media/robots/[robotId]/video_feed/route": "/fed/media/robots/[robotId]/video_feed",
45
+ "/api/wake/route": "/api/wake",
46
46
  "/robopark/[...path]/route": "/robopark/[...path]",
47
- "/api/robopark/transcripts/route": "/api/robopark/transcripts",
47
+ "/fed/media/robots/[robotId]/video_feed/route": "/fed/media/robots/[robotId]/video_feed",
48
48
  "/fed/[...path]/route": "/fed/[...path]",
49
- "/tailnet/route": "/tailnet",
50
- "/(app)/opengraph-image-xg4ifa/route": "/opengraph-image-xg4ifa",
51
49
  "/robopark/api/robots/[robotId]/stream/route": "/robopark/api/robots/[robotId]/stream",
50
+ "/tailnet/route": "/tailnet",
52
51
  "/vendor/livekit-client.umd.js/route": "/vendor/livekit-client.umd.js",
52
+ "/(app)/opengraph-image-xg4ifa/route": "/opengraph-image-xg4ifa",
53
53
  "/robopark/api/[...path]/route": "/robopark/api/[...path]",
54
54
  "/robopark/page": "/robopark",
55
55
  "/voice-tester/page": "/voice-tester",
@@ -5,8 +5,8 @@
5
5
  "devFiles": [],
6
6
  "ampDevFiles": [],
7
7
  "lowPriorityFiles": [
8
- "static/7hosI6Tk4PpkcjmN3-s_F/_buildManifest.js",
9
- "static/7hosI6Tk4PpkcjmN3-s_F/_ssgManifest.js"
8
+ "static/H5av7rSb0E_elgbludulF/_buildManifest.js",
9
+ "static/H5av7rSb0E_elgbludulF/_ssgManifest.js"
10
10
  ],
11
11
  "rootMainFiles": [
12
12
  "static/chunks/webpack-5252e5254da079b5.js",
@@ -34,8 +34,8 @@
34
34
  "dynamicRoutes": {},
35
35
  "notFoundRoutes": [],
36
36
  "preview": {
37
- "previewModeId": "8ef7ac94feff5fe2c565e9c8f257ccb8",
38
- "previewModeSigningKey": "2314133b4228543e7a1922ffbe261bf4583fa957fb4bf228a4a99be1960ec055",
39
- "previewModeEncryptionKey": "d820aa2dc678f79fb2b28d92d0bd07846f88b6fb326fb4fc1afd2d873552154a"
37
+ "previewModeId": "4ded2c2dd9307c32db222077083daa87",
38
+ "previewModeSigningKey": "3e9905d81374df8af668f144ce4aa8def05d4a639140739126225ba70e984154",
39
+ "previewModeEncryptionKey": "c308393d6a175118aff7742b9daaa2da31808265a5014d43761d31810b113da0"
40
40
  }
41
41
  }
@@ -1 +1 @@
1
- (()=>{var a={};a.id=2236,a.ids=[2236],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{"use strict";a.exports=require("node:buffer")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},75310:(a,b,c)=>{"use strict";c.d(b,{Qy:()=>f,cJ:()=>h,f6:()=>j,i$:()=>g,i0:()=>i});let d=new Map;function e(){let a=Date.now()-1e5;for(let[b,c]of d)c.last_seen<a&&d.delete(b)}function f(a){e(),d.set(a.session_id,{conversation_id:null,connected:!1,...a,last_seen:Date.now()})}function g(a,b){let c=d.get(a);return!!c&&(d.set(a,{...c,...b,last_seen:Date.now()}),!0)}function h(a){return d.delete(a)}function i(){return e(),Array.from(d.values())}function j(){let a=new Map;for(let b of i()){if(!b.robot_id)continue;let c=a.get(b.robot_id);c&&(c.connected||!b.connected)||a.set(b.robot_id,b)}return a}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},95403:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>I,patchFetch:()=>H,routeModule:()=>D,serverHooks:()=>G,workAsyncStorage:()=>E,workUnitAsyncStorage:()=>F});var d={};c.r(d),c.d(d,{GET:()=>C,revalidate:()=>B});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(58755),w=c(99435),x=c(75310);let y=process.env.LIVEKIT_API_KEY,z=process.env.LIVEKIT_API_SECRET,A=process.env.LIVEKIT_URL,B=0;async function C(){try{let a=await (0,w.U)(),b=a.device_registry,c=Object.fromEntries(a.characters.map(a=>[a.id,a.name])),d=(y&&z&&A?await new v.iz(A.replace(/^ws/,"http"),y,z).listRooms():[]).filter(a=>a.name.startsWith("robopark-")&&a.numParticipants>0).map(a=>{let d=a.name.slice(9);return{id:a.sid||a.name,robot_id:d,robot_name:b[d]?.name||`RoboPark ${d.slice(0,6)}`,character_id:b[d]?.character_id||null,character_name:c[b[d]?.character_id||""]||"Unassigned character",room_name:a.name,started_at:new Date(1e3*Number(a.creationTime)).toISOString(),participants:a.numParticipants,voice_engine:b[d]?.voice_engine||"robovoice",camera_url:b[d]?.camera_url||`/fed/media/robots/${encodeURIComponent(d)}/video_feed`}}),e=new Set(d.map(a=>a.robot_id)),f=(0,x.i0)().filter(a=>"elevenlabs"===a.engine&&a.robot_id&&!e.has(a.robot_id)).map(a=>{let d=a.robot_id,e=b[d];return{id:a.session_id,robot_id:d,robot_name:e?.name||`RoboPark ${d.slice(0,6)}`,character_id:a.character_id||e?.character_id||null,character_name:a.character_name||c[e?.character_id||""]||e?.name||"Unassigned character",room_name:a.room_name||`robopark-${d}`,started_at:a.started_at,participants:0,voice_engine:"elevenlabs",camera_url:e?.camera_url||`/fed/media/robots/${encodeURIComponent(d)}/video_feed`}});return u.NextResponse.json([...d,...f],{headers:{"Cache-Control":"no-store"}})}catch(a){return console.error("Failed to list LiveKit rooms:",a),u.NextResponse.json({error:"Failed to list live rooms"},{status:500})}}let D=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/robopark/live-rooms/route",pathname:"/api/robopark/live-rooms",filename:"route",bundlePath:"app/api/robopark/live-rooms/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\api\\robopark\\live-rooms\\route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:E,workUnitAsyncStorage:F,serverHooks:G}=D;function H(){return(0,g.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:F})}async function I(a,b,c){var d;let e="/api/robopark/live-rooms/route";"/index"===e&&(e="/");let g=await D.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,resolvedPathname:C}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[C]);if(F&&!x){let a=!!y.routes[C],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||D.isDev||x||(G="/index"===(G=C)?"/":G);let H=!0===D.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>D.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>D.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&A&&B&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await D.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})},z),b}},l=await D.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",A?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await D.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},96487:()=>{},99435:(a,b,c)=>{"use strict";c.d(b,{U:()=>l});var d=c(51455),e=c(76760);let f=(process.env.WEBHOOK_URL||"http://agent:8889").replace(/\/+$/,""),g=null,h=0,i=null;function j(a,b){return{...a,characters:Array.isArray(a.characters)?a.characters:[],device_registry:a.device_registry&&"object"==typeof a.device_registry?a.device_registry:{},registry_source:b}}async function k(){for(let a of[process.env.CAAL_SETTINGS_PATH,process.env.ROBOVOICE_SETTINGS_PATH,(0,e.resolve)(process.cwd(),"..","settings.json"),(0,e.resolve)(process.cwd(),"settings.json")].filter(a=>!!a))try{let b=JSON.parse(await (0,d.readFile)(a,"utf8"));return j(b,"persisted-snapshot")}catch{}return j({},"empty")}async function l(){if(g&&Date.now()<h)return g;if(i)return i;i=(async()=>{try{let a=await fetch(`${f}/settings`,{cache:"no-store",signal:AbortSignal.timeout(1500)});if(!a.ok)throw Error(`Settings registry returned ${a.status}`);let b=await a.json();return g=null,h=0,j(b.settings||b,"live-agent")}catch{return g=await k(),h=Date.now()+15e3,g}})();try{return await i}finally{i=null}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[5873,1428,1692,8755],()=>b(b.s=95403));module.exports=c})();
1
+ (()=>{var a={};a.id=2236,a.ids=[2236],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{"use strict";a.exports=require("node:buffer")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},75310:(a,b,c)=>{"use strict";c.d(b,{Qy:()=>f,cJ:()=>h,f6:()=>j,i$:()=>g,i0:()=>i});let d=new Map;function e(){let a=Date.now()-1e5;for(let[b,c]of d)c.last_seen<a&&d.delete(b)}function f(a){e(),d.set(a.session_id,{conversation_id:null,connected:!1,...a,last_seen:Date.now()})}function g(a,b){let c=d.get(a);return!!c&&(d.set(a,{...c,...b,last_seen:Date.now()}),!0)}function h(a){return d.delete(a)}function i(){return e(),Array.from(d.values())}function j(){let a=new Map;for(let b of i()){if(!b.robot_id)continue;let c=a.get(b.robot_id);c&&(c.connected||!b.connected)||a.set(b.robot_id,b)}return a}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},95403:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>J,patchFetch:()=>I,routeModule:()=>E,serverHooks:()=>H,workAsyncStorage:()=>F,workUnitAsyncStorage:()=>G});var d={};c.r(d),c.d(d,{GET:()=>D,revalidate:()=>B});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(58755),w=c(99435),x=c(75310);let y=process.env.LIVEKIT_API_KEY,z=process.env.LIVEKIT_API_SECRET,A=process.env.LIVEKIT_URL,B=0,C=(process.env.ROBOPARK_SCHEDULER_URL||"http://host.docker.internal:8080").replace(/\/+$/,"");async function D(){if(!y||!z||!A)try{let a=await fetch(`${C}/api/live-rooms`,{cache:"no-store",signal:AbortSignal.timeout(8e3)}),b=await a.json().catch(()=>null);if(a.ok&&Array.isArray(b))return u.NextResponse.json(b,{headers:{"Cache-Control":"no-store"}});return u.NextResponse.json([],{headers:{"Cache-Control":"no-store"}})}catch{return u.NextResponse.json([],{headers:{"Cache-Control":"no-store"}})}try{let a=await (0,w.U)(),b=a.device_registry,c=Object.fromEntries(a.characters.map(a=>[a.id,a.name])),d=(y&&z&&A?await new v.iz(A.replace(/^ws/,"http"),y,z).listRooms():[]).filter(a=>a.name.startsWith("robopark-")&&a.numParticipants>0).map(a=>{let d=a.name.slice(9);return{id:a.sid||a.name,robot_id:d,robot_name:b[d]?.name||`RoboPark ${d.slice(0,6)}`,character_id:b[d]?.character_id||null,character_name:c[b[d]?.character_id||""]||"Unassigned character",room_name:a.name,started_at:new Date(1e3*Number(a.creationTime)).toISOString(),participants:a.numParticipants,voice_engine:b[d]?.voice_engine||"robovoice",camera_url:b[d]?.camera_url||`/fed/media/robots/${encodeURIComponent(d)}/video_feed`}}),e=new Set(d.map(a=>a.robot_id)),f=(0,x.i0)().filter(a=>"elevenlabs"===a.engine&&a.robot_id&&!e.has(a.robot_id)).map(a=>{let d=a.robot_id,e=b[d];return{id:a.session_id,robot_id:d,robot_name:e?.name||`RoboPark ${d.slice(0,6)}`,character_id:a.character_id||e?.character_id||null,character_name:a.character_name||c[e?.character_id||""]||e?.name||"Unassigned character",room_name:a.room_name||`robopark-${d}`,started_at:a.started_at,participants:0,voice_engine:"elevenlabs",camera_url:e?.camera_url||`/fed/media/robots/${encodeURIComponent(d)}/video_feed`}});return u.NextResponse.json([...d,...f],{headers:{"Cache-Control":"no-store"}})}catch(a){return console.error("Failed to list LiveKit rooms:",a),u.NextResponse.json({error:"Failed to list live rooms"},{status:500})}}let E=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/robopark/live-rooms/route",pathname:"/api/robopark/live-rooms",filename:"route",bundlePath:"app/api/robopark/live-rooms/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\api\\robopark\\live-rooms\\route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:F,workUnitAsyncStorage:G,serverHooks:H}=E;function I(){return(0,g.patchFetch)({workAsyncStorage:F,workUnitAsyncStorage:G})}async function J(a,b,c){var d;let e="/api/robopark/live-rooms/route";"/index"===e&&(e="/");let g=await E.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,resolvedPathname:C}=g,D=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[D]||y.routes[C]);if(F&&!x){let a=!!y.routes[C],b=y.dynamicRoutes[D];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||E.isDev||x||(G="/index"===(G=C)?"/":G);let H=!0===E.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>E.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>E.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&A&&B&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await E.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})},z),b}},l=await E.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",A?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await E.onRequestError(a,b,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},96487:()=>{},99435:(a,b,c)=>{"use strict";c.d(b,{U:()=>l});var d=c(51455),e=c(76760);let f=(process.env.WEBHOOK_URL||"http://agent:8889").replace(/\/+$/,""),g=null,h=0,i=null;function j(a,b){return{...a,characters:Array.isArray(a.characters)?a.characters:[],device_registry:a.device_registry&&"object"==typeof a.device_registry?a.device_registry:{},registry_source:b}}async function k(){for(let a of[process.env.CAAL_SETTINGS_PATH,process.env.ROBOVOICE_SETTINGS_PATH,(0,e.resolve)(process.cwd(),"..","settings.json"),(0,e.resolve)(process.cwd(),"settings.json")].filter(a=>!!a))try{let b=JSON.parse(await (0,d.readFile)(a,"utf8"));return j(b,"persisted-snapshot")}catch{}return j({},"empty")}async function l(){if(g&&Date.now()<h)return g;if(i)return i;i=(async()=>{try{let a=await fetch(`${f}/settings`,{cache:"no-store",signal:AbortSignal.timeout(1500)});if(!a.ok)throw Error(`Settings registry returned ${a.status}`);let b=await a.json();return g=null,h=0,j(b.settings||b,"live-agent")}catch{return g=await k(),h=Date.now()+15e3,g}})();try{return await i}finally{i=null}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[5873,1428,1692,8755],()=>b(b.s=95403));module.exports=c})();
@@ -1,55 +1,55 @@
1
1
  {
2
- "/_not-found/page": "app/_not-found/page.js",
3
- "/api/download-piper-model/route": "app/api/download-piper-model/route.js",
4
2
  "/api/device-character/route": "app/api/device-character/route.js",
5
- "/api/models/route": "app/api/models/route.js",
3
+ "/api/download-piper-model/route": "app/api/download-piper-model/route.js",
4
+ "/api/prewarm/route": "app/api/prewarm/route.js",
6
5
  "/api/prompt/route": "app/api/prompt/route.js",
7
6
  "/api/reload-tools/route": "app/api/reload-tools/route.js",
8
- "/api/prewarm/route": "app/api/prewarm/route.js",
7
+ "/api/models/route": "app/api/models/route.js",
9
8
  "/api/robopark/devices/[deviceId]/control/route": "app/api/robopark/devices/[deviceId]/control/route.js",
10
- "/api/robopark/sessions/[sessionId]/end/route": "app/api/robopark/sessions/[sessionId]/end/route.js",
11
9
  "/api/robopark/robots/[robotId]/operations/route": "app/api/robopark/robots/[robotId]/operations/route.js",
10
+ "/api/robopark/sessions/[sessionId]/end/route": "app/api/robopark/sessions/[sessionId]/end/route.js",
12
11
  "/api/robopark/transcripts/[sessionId]/route": "app/api/robopark/transcripts/[sessionId]/route.js",
13
- "/api/setup/test-groq/route": "app/api/setup/test-groq/route.js",
14
- "/api/setup/test-n8n/route": "app/api/setup/test-n8n/route.js",
15
12
  "/api/setup/complete/route": "app/api/setup/complete/route.js",
16
- "/api/setup/test-ollama/route": "app/api/setup/test-ollama/route.js",
17
13
  "/api/setup/status/route": "app/api/setup/status/route.js",
14
+ "/api/setup/test-groq/route": "app/api/setup/test-groq/route.js",
18
15
  "/api/setup/test-hass/route": "app/api/setup/test-hass/route.js",
16
+ "/api/setup/test-n8n/route": "app/api/setup/test-n8n/route.js",
17
+ "/api/setup/test-ollama/route": "app/api/setup/test-ollama/route.js",
19
18
  "/api/test-tts/route": "app/api/test-tts/route.js",
20
- "/api/wake-word/status/route": "app/api/wake-word/status/route.js",
21
19
  "/api/voices/route": "app/api/voices/route.js",
22
20
  "/api/wake-word/models/route": "app/api/wake-word/models/route.js",
21
+ "/api/wake-word/status/route": "app/api/wake-word/status/route.js",
23
22
  "/api/wake-word/upload/route": "app/api/wake-word/upload/route.js",
24
23
  "/favicon.ico/route": "app/favicon.ico/route.js",
24
+ "/_not-found/page": "app/_not-found/page.js",
25
25
  "/api/connection-details/route": "app/api/connection-details/route.js",
26
26
  "/api/kiosk-hardware/route": "app/api/kiosk-hardware/route.js",
27
27
  "/api/model-status/route": "app/api/model-status/route.js",
28
- "/api/robopark/camera-token/route": "app/api/robopark/camera-token/route.js",
29
28
  "/api/robopark/character-ai/route": "app/api/robopark/character-ai/route.js",
29
+ "/api/robopark/camera-token/route": "app/api/robopark/camera-token/route.js",
30
30
  "/api/robopark/device-access/route": "app/api/robopark/device-access/route.js",
31
31
  "/api/robopark/live-rooms/route": "app/api/robopark/live-rooms/route.js",
32
- "/api/robopark/robots/route": "app/api/robopark/robots/route.js",
33
- "/api/robopark/servers/[serverId]/metrics/route": "app/api/robopark/servers/[serverId]/metrics/route.js",
34
32
  "/api/robopark/monitor-token/route": "app/api/robopark/monitor-token/route.js",
33
+ "/api/robopark/servers/[serverId]/metrics/route": "app/api/robopark/servers/[serverId]/metrics/route.js",
34
+ "/api/robopark/robots/route": "app/api/robopark/robots/route.js",
35
35
  "/api/robopark/servers/[serverId]/route": "app/api/robopark/servers/[serverId]/route.js",
36
- "/api/robopark/sessions/route": "app/api/robopark/sessions/route.js",
37
36
  "/api/robopark/servers/route": "app/api/robopark/servers/route.js",
38
- "/api/robovoice/robots/[robotId]/media-health/route": "app/api/robovoice/robots/[robotId]/media-health/route.js",
37
+ "/api/robopark/sessions/route": "app/api/robopark/sessions/route.js",
39
38
  "/api/robopark/robots/[robotId]/voice-engine/route": "app/api/robopark/robots/[robotId]/voice-engine/route.js",
39
+ "/api/robovoice/robots/[robotId]/media-health/route": "app/api/robovoice/robots/[robotId]/media-health/route.js",
40
40
  "/api/robopark/vision-caption/route": "app/api/robopark/vision-caption/route.js",
41
41
  "/api/settings/route": "app/api/settings/route.js",
42
+ "/api/robopark/transcripts/route": "app/api/robopark/transcripts/route.js",
42
43
  "/api/turn-credentials/route": "app/api/turn-credentials/route.js",
43
- "/api/wake/route": "app/api/wake/route.js",
44
44
  "/camera-grid/route": "app/camera-grid/route.js",
45
- "/fed/media/robots/[robotId]/video_feed/route": "app/fed/media/robots/[robotId]/video_feed/route.js",
45
+ "/api/wake/route": "app/api/wake/route.js",
46
46
  "/robopark/[...path]/route": "app/robopark/[...path]/route.js",
47
- "/api/robopark/transcripts/route": "app/api/robopark/transcripts/route.js",
47
+ "/fed/media/robots/[robotId]/video_feed/route": "app/fed/media/robots/[robotId]/video_feed/route.js",
48
48
  "/fed/[...path]/route": "app/fed/[...path]/route.js",
49
- "/tailnet/route": "app/tailnet/route.js",
50
- "/(app)/opengraph-image-xg4ifa/route": "app/(app)/opengraph-image-xg4ifa/route.js",
51
49
  "/robopark/api/robots/[robotId]/stream/route": "app/robopark/api/robots/[robotId]/stream/route.js",
50
+ "/tailnet/route": "app/tailnet/route.js",
52
51
  "/vendor/livekit-client.umd.js/route": "app/vendor/livekit-client.umd.js/route.js",
52
+ "/(app)/opengraph-image-xg4ifa/route": "app/(app)/opengraph-image-xg4ifa/route.js",
53
53
  "/robopark/api/[...path]/route": "app/robopark/api/[...path]/route.js",
54
54
  "/robopark/page": "app/robopark/page.js",
55
55
  "/voice-tester/page": "app/voice-tester/page.js",
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-5252e5254da079b5.js" defer=""></script><script src="/_next/static/chunks/framework-e60c938074ff7136.js" defer=""></script><script src="/_next/static/chunks/main-9e24e8708ff075fc.js" defer=""></script><script src="/_next/static/chunks/pages/_app-131c90850aef965b.js" defer=""></script><script src="/_next/static/chunks/pages/_error-e4ba546eb376bdf4.js" defer=""></script><script src="/_next/static/7hosI6Tk4PpkcjmN3-s_F/_buildManifest.js" defer=""></script><script src="/_next/static/7hosI6Tk4PpkcjmN3-s_F/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"7hosI6Tk4PpkcjmN3-s_F","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-5252e5254da079b5.js" defer=""></script><script src="/_next/static/chunks/framework-e60c938074ff7136.js" defer=""></script><script src="/_next/static/chunks/main-9e24e8708ff075fc.js" defer=""></script><script src="/_next/static/chunks/pages/_app-131c90850aef965b.js" defer=""></script><script src="/_next/static/chunks/pages/_error-e4ba546eb376bdf4.js" defer=""></script><script src="/_next/static/H5av7rSb0E_elgbludulF/_buildManifest.js" defer=""></script><script src="/_next/static/H5av7rSb0E_elgbludulF/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"H5av7rSb0E_elgbludulF","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -1,5 +1,5 @@
1
1
  {
2
- "/_app": "pages/_app.js",
3
2
  "/_error": "pages/_error.js",
3
+ "/_app": "pages/_app.js",
4
4
  "/_document": "pages/_document.js"
5
5
  }
@@ -1 +1 @@
1
- {"node":{},"edge":{},"encryptionKey":"oMzmrICjd1miwxs/vfayAYdzjnbywYaPFjZAUCXe3Eo="}
1
+ {"node":{},"edge":{},"encryptionKey":"v6yRoBy1CP0sc2/QCUk2IWQ98vup9njavuMLXuCteWs="}