robopark 3.3.30 → 3.3.31

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "robopark",
3
- "version": "3.3.30",
3
+ "version": "3.3.31",
4
4
  "description": "RoboPark fleet control CLI — scheduler, control UI, and character voice calls. Standalone: no infinicode runtime.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1 +1 @@
1
- KwY1YC79lI9nQqOVYXOmY
1
+ zAWQgn-m46BFpT3z33lh-
@@ -112,13 +112,6 @@
112
112
  "static/chunks/main-app-a1f59168303c7f84.js",
113
113
  "static/chunks/app/api/setup/test-ollama/route-0952b44bda5bfb6d.js"
114
114
  ],
115
- "/api/test-tts/route": [
116
- "static/chunks/webpack-5252e5254da079b5.js",
117
- "static/chunks/4bd1b696-f785427dddbba9fb.js",
118
- "static/chunks/1255-404bb8de49c90395.js",
119
- "static/chunks/main-app-a1f59168303c7f84.js",
120
- "static/chunks/app/api/test-tts/route-0952b44bda5bfb6d.js"
121
- ],
122
115
  "/api/setup/test-n8n/route": [
123
116
  "static/chunks/webpack-5252e5254da079b5.js",
124
117
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
@@ -126,12 +119,12 @@
126
119
  "static/chunks/main-app-a1f59168303c7f84.js",
127
120
  "static/chunks/app/api/setup/test-n8n/route-0952b44bda5bfb6d.js"
128
121
  ],
129
- "/api/voices/route": [
122
+ "/api/test-tts/route": [
130
123
  "static/chunks/webpack-5252e5254da079b5.js",
131
124
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
132
125
  "static/chunks/1255-404bb8de49c90395.js",
133
126
  "static/chunks/main-app-a1f59168303c7f84.js",
134
- "static/chunks/app/api/voices/route-0952b44bda5bfb6d.js"
127
+ "static/chunks/app/api/test-tts/route-0952b44bda5bfb6d.js"
135
128
  ],
136
129
  "/api/wake-word/models/route": [
137
130
  "static/chunks/webpack-5252e5254da079b5.js",
@@ -140,12 +133,12 @@
140
133
  "static/chunks/main-app-a1f59168303c7f84.js",
141
134
  "static/chunks/app/api/wake-word/models/route-0952b44bda5bfb6d.js"
142
135
  ],
143
- "/api/wake-word/status/route": [
136
+ "/api/voices/route": [
144
137
  "static/chunks/webpack-5252e5254da079b5.js",
145
138
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
146
139
  "static/chunks/1255-404bb8de49c90395.js",
147
140
  "static/chunks/main-app-a1f59168303c7f84.js",
148
- "static/chunks/app/api/wake-word/status/route-0952b44bda5bfb6d.js"
141
+ "static/chunks/app/api/voices/route-0952b44bda5bfb6d.js"
149
142
  ],
150
143
  "/api/wake-word/upload/route": [
151
144
  "static/chunks/webpack-5252e5254da079b5.js",
@@ -154,6 +147,13 @@
154
147
  "static/chunks/main-app-a1f59168303c7f84.js",
155
148
  "static/chunks/app/api/wake-word/upload/route-0952b44bda5bfb6d.js"
156
149
  ],
150
+ "/api/wake-word/status/route": [
151
+ "static/chunks/webpack-5252e5254da079b5.js",
152
+ "static/chunks/4bd1b696-f785427dddbba9fb.js",
153
+ "static/chunks/1255-404bb8de49c90395.js",
154
+ "static/chunks/main-app-a1f59168303c7f84.js",
155
+ "static/chunks/app/api/wake-word/status/route-0952b44bda5bfb6d.js"
156
+ ],
157
157
  "/layout": [
158
158
  "static/chunks/webpack-5252e5254da079b5.js",
159
159
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
@@ -165,26 +165,26 @@
165
165
  "static/chunks/9880-53262785284464cc.js",
166
166
  "static/chunks/app/layout-fcce963da1d8220f.js"
167
167
  ],
168
- "/api/kiosk-hardware/route": [
168
+ "/api/connection-details/route": [
169
169
  "static/chunks/webpack-5252e5254da079b5.js",
170
170
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
171
171
  "static/chunks/1255-404bb8de49c90395.js",
172
172
  "static/chunks/main-app-a1f59168303c7f84.js",
173
- "static/chunks/app/api/kiosk-hardware/route-0952b44bda5bfb6d.js"
173
+ "static/chunks/app/api/connection-details/route-0952b44bda5bfb6d.js"
174
174
  ],
175
- "/api/model-status/route": [
175
+ "/api/kiosk-hardware/route": [
176
176
  "static/chunks/webpack-5252e5254da079b5.js",
177
177
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
178
178
  "static/chunks/1255-404bb8de49c90395.js",
179
179
  "static/chunks/main-app-a1f59168303c7f84.js",
180
- "static/chunks/app/api/model-status/route-0952b44bda5bfb6d.js"
180
+ "static/chunks/app/api/kiosk-hardware/route-0952b44bda5bfb6d.js"
181
181
  ],
182
- "/api/connection-details/route": [
182
+ "/api/model-status/route": [
183
183
  "static/chunks/webpack-5252e5254da079b5.js",
184
184
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
185
185
  "static/chunks/1255-404bb8de49c90395.js",
186
186
  "static/chunks/main-app-a1f59168303c7f84.js",
187
- "static/chunks/app/api/connection-details/route-0952b44bda5bfb6d.js"
187
+ "static/chunks/app/api/model-status/route-0952b44bda5bfb6d.js"
188
188
  ],
189
189
  "/api/robopark/device-access/route": [
190
190
  "static/chunks/webpack-5252e5254da079b5.js",
@@ -193,19 +193,19 @@
193
193
  "static/chunks/main-app-a1f59168303c7f84.js",
194
194
  "static/chunks/app/api/robopark/device-access/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-a1f59168303c7f84.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
- "/api/robopark/camera-token/route": [
203
+ "/api/robopark/character-ai/route": [
204
204
  "static/chunks/webpack-5252e5254da079b5.js",
205
205
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
206
206
  "static/chunks/1255-404bb8de49c90395.js",
207
207
  "static/chunks/main-app-a1f59168303c7f84.js",
208
- "static/chunks/app/api/robopark/camera-token/route-0952b44bda5bfb6d.js"
208
+ "static/chunks/app/api/robopark/character-ai/route-0952b44bda5bfb6d.js"
209
209
  ],
210
210
  "/api/robopark/live-rooms/route": [
211
211
  "static/chunks/webpack-5252e5254da079b5.js",
@@ -256,26 +256,26 @@
256
256
  "static/chunks/main-app-a1f59168303c7f84.js",
257
257
  "static/chunks/app/api/robopark/sessions/route-0952b44bda5bfb6d.js"
258
258
  ],
259
- "/api/robopark/vision-caption/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-a1f59168303c7f84.js",
264
- "static/chunks/app/api/robopark/vision-caption/route-0952b44bda5bfb6d.js"
264
+ "static/chunks/app/api/robopark/robots/[robotId]/voice-engine/route-0952b44bda5bfb6d.js"
265
265
  ],
266
- "/api/robovoice/robots/[robotId]/media-health/route": [
266
+ "/api/robopark/vision-caption/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-a1f59168303c7f84.js",
271
- "static/chunks/app/api/robovoice/robots/[robotId]/media-health/route-0952b44bda5bfb6d.js"
271
+ "static/chunks/app/api/robopark/vision-caption/route-0952b44bda5bfb6d.js"
272
272
  ],
273
- "/api/robopark/robots/[robotId]/voice-engine/route": [
273
+ "/api/robovoice/robots/[robotId]/media-health/route": [
274
274
  "static/chunks/webpack-5252e5254da079b5.js",
275
275
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
276
276
  "static/chunks/1255-404bb8de49c90395.js",
277
277
  "static/chunks/main-app-a1f59168303c7f84.js",
278
- "static/chunks/app/api/robopark/robots/[robotId]/voice-engine/route-0952b44bda5bfb6d.js"
278
+ "static/chunks/app/api/robovoice/robots/[robotId]/media-health/route-0952b44bda5bfb6d.js"
279
279
  ],
280
280
  "/api/settings/route": [
281
281
  "static/chunks/webpack-5252e5254da079b5.js",
@@ -291,6 +291,13 @@
291
291
  "static/chunks/main-app-a1f59168303c7f84.js",
292
292
  "static/chunks/app/api/turn-credentials/route-0952b44bda5bfb6d.js"
293
293
  ],
294
+ "/api/wake/route": [
295
+ "static/chunks/webpack-5252e5254da079b5.js",
296
+ "static/chunks/4bd1b696-f785427dddbba9fb.js",
297
+ "static/chunks/1255-404bb8de49c90395.js",
298
+ "static/chunks/main-app-a1f59168303c7f84.js",
299
+ "static/chunks/app/api/wake/route-0952b44bda5bfb6d.js"
300
+ ],
294
301
  "/api/robopark/transcripts/route": [
295
302
  "static/chunks/webpack-5252e5254da079b5.js",
296
303
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
@@ -298,12 +305,12 @@
298
305
  "static/chunks/main-app-a1f59168303c7f84.js",
299
306
  "static/chunks/app/api/robopark/transcripts/route-0952b44bda5bfb6d.js"
300
307
  ],
301
- "/api/wake/route": [
308
+ "/fed/media/robots/[robotId]/video_feed/route": [
302
309
  "static/chunks/webpack-5252e5254da079b5.js",
303
310
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
304
311
  "static/chunks/1255-404bb8de49c90395.js",
305
312
  "static/chunks/main-app-a1f59168303c7f84.js",
306
- "static/chunks/app/api/wake/route-0952b44bda5bfb6d.js"
313
+ "static/chunks/app/fed/media/robots/[robotId]/video_feed/route-0952b44bda5bfb6d.js"
307
314
  ],
308
315
  "/camera-grid/route": [
309
316
  "static/chunks/webpack-5252e5254da079b5.js",
@@ -319,13 +326,6 @@
319
326
  "static/chunks/main-app-a1f59168303c7f84.js",
320
327
  "static/chunks/app/robopark/[...path]/route-0952b44bda5bfb6d.js"
321
328
  ],
322
- "/fed/media/robots/[robotId]/video_feed/route": [
323
- "static/chunks/webpack-5252e5254da079b5.js",
324
- "static/chunks/4bd1b696-f785427dddbba9fb.js",
325
- "static/chunks/1255-404bb8de49c90395.js",
326
- "static/chunks/main-app-a1f59168303c7f84.js",
327
- "static/chunks/app/fed/media/robots/[robotId]/video_feed/route-0952b44bda5bfb6d.js"
328
- ],
329
329
  "/fed/[...path]/route": [
330
330
  "static/chunks/webpack-5252e5254da079b5.js",
331
331
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
@@ -368,19 +368,19 @@
368
368
  "static/chunks/main-app-a1f59168303c7f84.js",
369
369
  "static/chunks/app/robopark/api/[...path]/route-0952b44bda5bfb6d.js"
370
370
  ],
371
- "/robopark/page": [
371
+ "/voice-tester/page": [
372
372
  "static/chunks/webpack-5252e5254da079b5.js",
373
373
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
374
374
  "static/chunks/1255-404bb8de49c90395.js",
375
375
  "static/chunks/main-app-a1f59168303c7f84.js",
376
- "static/chunks/app/robopark/page-0952b44bda5bfb6d.js"
376
+ "static/chunks/app/voice-tester/page-ae699e048e0eb834.js"
377
377
  ],
378
- "/voice-tester/page": [
378
+ "/robopark/page": [
379
379
  "static/chunks/webpack-5252e5254da079b5.js",
380
380
  "static/chunks/4bd1b696-f785427dddbba9fb.js",
381
381
  "static/chunks/1255-404bb8de49c90395.js",
382
382
  "static/chunks/main-app-a1f59168303c7f84.js",
383
- "static/chunks/app/voice-tester/page-ae699e048e0eb834.js"
383
+ "static/chunks/app/robopark/page-0952b44bda5bfb6d.js"
384
384
  ],
385
385
  "/(app)/layout": [
386
386
  "static/chunks/webpack-5252e5254da079b5.js",
@@ -14,20 +14,20 @@
14
14
  "/api/setup/test-groq/route": "/api/setup/test-groq",
15
15
  "/api/setup/test-hass/route": "/api/setup/test-hass",
16
16
  "/api/setup/test-ollama/route": "/api/setup/test-ollama",
17
- "/api/test-tts/route": "/api/test-tts",
18
17
  "/api/setup/test-n8n/route": "/api/setup/test-n8n",
19
- "/api/voices/route": "/api/voices",
18
+ "/api/test-tts/route": "/api/test-tts",
20
19
  "/api/wake-word/models/route": "/api/wake-word/models",
21
- "/api/wake-word/status/route": "/api/wake-word/status",
20
+ "/api/voices/route": "/api/voices",
22
21
  "/api/wake-word/upload/route": "/api/wake-word/upload",
22
+ "/api/wake-word/status/route": "/api/wake-word/status",
23
23
  "/favicon.ico/route": "/favicon.ico",
24
24
  "/_not-found/page": "/_not-found",
25
+ "/api/connection-details/route": "/api/connection-details",
25
26
  "/api/kiosk-hardware/route": "/api/kiosk-hardware",
26
27
  "/api/model-status/route": "/api/model-status",
27
- "/api/connection-details/route": "/api/connection-details",
28
28
  "/api/robopark/device-access/route": "/api/robopark/device-access",
29
- "/api/robopark/character-ai/route": "/api/robopark/character-ai",
30
29
  "/api/robopark/camera-token/route": "/api/robopark/camera-token",
30
+ "/api/robopark/character-ai/route": "/api/robopark/character-ai",
31
31
  "/api/robopark/live-rooms/route": "/api/robopark/live-rooms",
32
32
  "/api/robopark/monitor-token/route": "/api/robopark/monitor-token",
33
33
  "/api/robopark/robots/route": "/api/robopark/robots",
@@ -35,24 +35,24 @@
35
35
  "/api/robopark/servers/[serverId]/route": "/api/robopark/servers/[serverId]",
36
36
  "/api/robopark/servers/route": "/api/robopark/servers",
37
37
  "/api/robopark/sessions/route": "/api/robopark/sessions",
38
+ "/api/robopark/robots/[robotId]/voice-engine/route": "/api/robopark/robots/[robotId]/voice-engine",
38
39
  "/api/robopark/vision-caption/route": "/api/robopark/vision-caption",
39
40
  "/api/robovoice/robots/[robotId]/media-health/route": "/api/robovoice/robots/[robotId]/media-health",
40
- "/api/robopark/robots/[robotId]/voice-engine/route": "/api/robopark/robots/[robotId]/voice-engine",
41
41
  "/api/settings/route": "/api/settings",
42
42
  "/api/turn-credentials/route": "/api/turn-credentials",
43
- "/api/robopark/transcripts/route": "/api/robopark/transcripts",
44
43
  "/api/wake/route": "/api/wake",
44
+ "/api/robopark/transcripts/route": "/api/robopark/transcripts",
45
+ "/fed/media/robots/[robotId]/video_feed/route": "/fed/media/robots/[robotId]/video_feed",
45
46
  "/camera-grid/route": "/camera-grid",
46
47
  "/robopark/[...path]/route": "/robopark/[...path]",
47
- "/fed/media/robots/[robotId]/video_feed/route": "/fed/media/robots/[robotId]/video_feed",
48
48
  "/fed/[...path]/route": "/fed/[...path]",
49
49
  "/robopark/api/robots/[robotId]/stream/route": "/robopark/api/robots/[robotId]/stream",
50
50
  "/tailnet/route": "/tailnet",
51
51
  "/vendor/livekit-client.umd.js/route": "/vendor/livekit-client.umd.js",
52
52
  "/(app)/opengraph-image-xg4ifa/route": "/opengraph-image-xg4ifa",
53
53
  "/robopark/api/[...path]/route": "/robopark/api/[...path]",
54
- "/robopark/page": "/robopark",
55
54
  "/voice-tester/page": "/voice-tester",
55
+ "/robopark/page": "/robopark",
56
56
  "/(app)/voice/page": "/voice",
57
57
  "/(app)/page": "/"
58
58
  }
@@ -5,8 +5,8 @@
5
5
  "devFiles": [],
6
6
  "ampDevFiles": [],
7
7
  "lowPriorityFiles": [
8
- "static/KwY1YC79lI9nQqOVYXOmY/_buildManifest.js",
9
- "static/KwY1YC79lI9nQqOVYXOmY/_ssgManifest.js"
8
+ "static/zAWQgn-m46BFpT3z33lh-/_buildManifest.js",
9
+ "static/zAWQgn-m46BFpT3z33lh-/_ssgManifest.js"
10
10
  ],
11
11
  "rootMainFiles": [
12
12
  "static/chunks/webpack-5252e5254da079b5.js",
@@ -1 +1 @@
1
- (()=>{var a={};a.id=1449,a.ids=[1449],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")},12465:(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,{POST:()=>C,revalidate:()=>z});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);let w=process.env.LIVEKIT_API_KEY,x=process.env.LIVEKIT_API_SECRET,y=process.env.LIVEKIT_URL,z=0,A=(process.env.ROBOPARK_SCHEDULER_URL||"http://host.docker.internal:8080").replace(/\/+$/,"");async function B(a){try{let b=await fetch(`${A}/api/monitor-token`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({room_name:a}),cache:"no-store",signal:AbortSignal.timeout(8e3)}),c=await b.json().catch(()=>null);if(!b.ok||!c?.token)return u.NextResponse.json({error:c?.detail||`Scheduler returned ${b.status}`},{status:200===b.status?502:b.status});return u.NextResponse.json({token:c.token,serverUrl:c.url},{headers:{"Cache-Control":"no-store"}})}catch(b){let a=b instanceof Error?b.message:"unknown error";return u.NextResponse.json({error:`Scheduler at ${A} is unreachable (${a}).`},{status:503})}}async function C(a){let b,c=await a.json().catch(()=>({})),d="string"==typeof c.room_name?c.room_name:"";if(!/^robopark-[a-zA-Z0-9_-]{1,64}$/.test(d))return u.NextResponse.json({error:"Invalid room"},{status:400});if(!w||!x||!y)return B(d);let e=new v.mk(w,x,{identity:`monitor_${crypto.randomUUID()}`,name:"RoboPark Monitor",ttl:"5m"});e.addGrant({room:d,roomJoin:!0,canSubscribe:!0,canPublish:!1,canPublishData:!1});let f=process.env.LIVEKIT_PUBLIC_URL||process.env.NEXT_PUBLIC_LIVEKIT_URL,g=a.headers.get("x-forwarded-proto"),h=(a.headers.get("x-forwarded-host")||a.headers.get("host")||"localhost").split(",")[0].trim(),i=h.split(":")[0],j=h.split(":")[1],k="https"===g||a.url.startsWith("https://");return b=i.includes(".ts.net")?`wss://${i}:3443`:f&&"auto"!==f?f:k?`wss://${i}:${j||"3443"}`:`ws://${i}:7880`,u.NextResponse.json({token:await e.toJwt(),serverUrl:b},{headers:{"Cache-Control":"no-store"}})}let D=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/robopark/monitor-token/route",pathname:"/api/robopark/monitor-token",filename:"route",bundlePath:"app/api/robopark/monitor-token/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\api\\robopark\\monitor-token\\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/monitor-token/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}}},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")},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")},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")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[5873,1428,1692,8755],()=>b(b.s=12465));module.exports=c})();
1
+ (()=>{var a={};a.id=1449,a.ids=[1449],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")},12465:(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,{POST:()=>D,revalidate:()=>z});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);let w=process.env.LIVEKIT_API_KEY,x=process.env.LIVEKIT_API_SECRET,y=process.env.LIVEKIT_URL,z=0;function A(a){let b=process.env.LIVEKIT_PUBLIC_URL||process.env.NEXT_PUBLIC_LIVEKIT_URL,c=a.headers.get("x-forwarded-proto"),d=(a.headers.get("x-forwarded-host")||a.headers.get("host")||"localhost").split(",")[0].trim(),e=d.split(":")[0],f=d.split(":")[1],g="https"===c||a.url.startsWith("https://");return e.includes(".ts.net")?`wss://${e}:3443`:b&&"auto"!==b?b:g?`wss://${e}:${f||"3443"}`:`ws://${e}:7880`}let B=(process.env.ROBOPARK_SCHEDULER_URL||"http://host.docker.internal:8080").replace(/\/+$/,"");async function C(a,b){let c=(b.headers.get("x-forwarded-host")||b.headers.get("host")||"localhost").split(",")[0].trim(),d=(b.headers.get("x-forwarded-proto")||(b.url.startsWith("https://")?"https":"http")).split(",")[0].trim();try{let e=await fetch(`${B}/api/monitor-token`,{method:"POST",headers:{"content-type":"application/json","x-forwarded-host":c,"x-forwarded-proto":d},body:JSON.stringify({room_name:a}),cache:"no-store",signal:AbortSignal.timeout(8e3)}),f=await e.json().catch(()=>null);if(!e.ok||!f?.token)return u.NextResponse.json({error:f?.detail||`Scheduler returned ${e.status}`},{status:200===e.status?502:e.status});let g=/^wss?:\/\/(localhost|127\.0\.0\.1|\[?::1\]?|0\.0\.0\.0)(:|$)/i.test(String(f.url||""))?A(b):f.url;return u.NextResponse.json({token:f.token,serverUrl:g},{headers:{"Cache-Control":"no-store"}})}catch(b){let a=b instanceof Error?b.message:"unknown error";return u.NextResponse.json({error:`Scheduler at ${B} is unreachable (${a}).`},{status:503})}}async function D(a){let b=await a.json().catch(()=>({})),c="string"==typeof b.room_name?b.room_name:"";if(!/^robopark-[a-zA-Z0-9_-]{1,64}$/.test(c))return u.NextResponse.json({error:"Invalid room"},{status:400});if(!w||!x||!y)return C(c,a);let d=new v.mk(w,x,{identity:`monitor_${crypto.randomUUID()}`,name:"RoboPark Monitor",ttl:"5m"});return d.addGrant({room:c,roomJoin:!0,canSubscribe:!0,canPublish:!1,canPublishData:!1}),u.NextResponse.json({token:await d.toJwt(),serverUrl:A(a)},{headers:{"Cache-Control":"no-store"}})}let E=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/robopark/monitor-token/route",pathname:"/api/robopark/monitor-token",filename:"route",bundlePath:"app/api/robopark/monitor-token/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\api\\robopark\\monitor-token\\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/monitor-token/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}}},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")},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")},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")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[5873,1428,1692,8755],()=>b(b.s=12465));module.exports=c})();
@@ -14,20 +14,20 @@
14
14
  "/api/setup/test-groq/route": "app/api/setup/test-groq/route.js",
15
15
  "/api/setup/test-hass/route": "app/api/setup/test-hass/route.js",
16
16
  "/api/setup/test-ollama/route": "app/api/setup/test-ollama/route.js",
17
- "/api/test-tts/route": "app/api/test-tts/route.js",
18
17
  "/api/setup/test-n8n/route": "app/api/setup/test-n8n/route.js",
19
- "/api/voices/route": "app/api/voices/route.js",
18
+ "/api/test-tts/route": "app/api/test-tts/route.js",
20
19
  "/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",
20
+ "/api/voices/route": "app/api/voices/route.js",
22
21
  "/api/wake-word/upload/route": "app/api/wake-word/upload/route.js",
22
+ "/api/wake-word/status/route": "app/api/wake-word/status/route.js",
23
23
  "/favicon.ico/route": "app/favicon.ico/route.js",
24
24
  "/_not-found/page": "app/_not-found/page.js",
25
+ "/api/connection-details/route": "app/api/connection-details/route.js",
25
26
  "/api/kiosk-hardware/route": "app/api/kiosk-hardware/route.js",
26
27
  "/api/model-status/route": "app/api/model-status/route.js",
27
- "/api/connection-details/route": "app/api/connection-details/route.js",
28
28
  "/api/robopark/device-access/route": "app/api/robopark/device-access/route.js",
29
- "/api/robopark/character-ai/route": "app/api/robopark/character-ai/route.js",
30
29
  "/api/robopark/camera-token/route": "app/api/robopark/camera-token/route.js",
30
+ "/api/robopark/character-ai/route": "app/api/robopark/character-ai/route.js",
31
31
  "/api/robopark/live-rooms/route": "app/api/robopark/live-rooms/route.js",
32
32
  "/api/robopark/monitor-token/route": "app/api/robopark/monitor-token/route.js",
33
33
  "/api/robopark/robots/route": "app/api/robopark/robots/route.js",
@@ -35,24 +35,24 @@
35
35
  "/api/robopark/servers/[serverId]/route": "app/api/robopark/servers/[serverId]/route.js",
36
36
  "/api/robopark/servers/route": "app/api/robopark/servers/route.js",
37
37
  "/api/robopark/sessions/route": "app/api/robopark/sessions/route.js",
38
+ "/api/robopark/robots/[robotId]/voice-engine/route": "app/api/robopark/robots/[robotId]/voice-engine/route.js",
38
39
  "/api/robopark/vision-caption/route": "app/api/robopark/vision-caption/route.js",
39
40
  "/api/robovoice/robots/[robotId]/media-health/route": "app/api/robovoice/robots/[robotId]/media-health/route.js",
40
- "/api/robopark/robots/[robotId]/voice-engine/route": "app/api/robopark/robots/[robotId]/voice-engine/route.js",
41
41
  "/api/settings/route": "app/api/settings/route.js",
42
42
  "/api/turn-credentials/route": "app/api/turn-credentials/route.js",
43
- "/api/robopark/transcripts/route": "app/api/robopark/transcripts/route.js",
44
43
  "/api/wake/route": "app/api/wake/route.js",
44
+ "/api/robopark/transcripts/route": "app/api/robopark/transcripts/route.js",
45
+ "/fed/media/robots/[robotId]/video_feed/route": "app/fed/media/robots/[robotId]/video_feed/route.js",
45
46
  "/camera-grid/route": "app/camera-grid/route.js",
46
47
  "/robopark/[...path]/route": "app/robopark/[...path]/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
49
  "/robopark/api/robots/[robotId]/stream/route": "app/robopark/api/robots/[robotId]/stream/route.js",
50
50
  "/tailnet/route": "app/tailnet/route.js",
51
51
  "/vendor/livekit-client.umd.js/route": "app/vendor/livekit-client.umd.js/route.js",
52
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
- "/robopark/page": "app/robopark/page.js",
55
54
  "/voice-tester/page": "app/voice-tester/page.js",
55
+ "/robopark/page": "app/robopark/page.js",
56
56
  "/(app)/voice/page": "app/(app)/voice/page.js",
57
57
  "/(app)/page": "app/(app)/page.js"
58
58
  }
@@ -3,8 +3,8 @@
3
3
  "functions": {
4
4
  "/api/kiosk-hardware": {},
5
5
  "/api/robovoice/robots/[robotId]/media-health": {},
6
- "/robopark/[...path]": {},
7
6
  "/fed/media/robots/[robotId]/video_feed": {},
7
+ "/robopark/[...path]": {},
8
8
  "/robopark/api/robots/[robotId]/stream": {}
9
9
  }
10
10
  }
@@ -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/KwY1YC79lI9nQqOVYXOmY/_buildManifest.js" defer=""></script><script src="/_next/static/KwY1YC79lI9nQqOVYXOmY/_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":"KwY1YC79lI9nQqOVYXOmY","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/zAWQgn-m46BFpT3z33lh-/_buildManifest.js" defer=""></script><script src="/_next/static/zAWQgn-m46BFpT3z33lh-/_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":"zAWQgn-m46BFpT3z33lh-","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -0,0 +1 @@
1
+ self.__BUILD_MANIFEST=function(e,a,s,r,t){return{__rewrites:{afterFiles:[{has:s,source:"/api/announce",destination:s},{has:s,source:"/api/reload-tools",destination:s},{has:s,source:"/api/wake",destination:s},{has:s,source:"/api/health",destination:s},{has:s,source:"/api/prompt",destination:s},{has:s,source:"/api/voices",destination:s},{has:s,source:"/api/models",destination:s},{has:s,source:"/api/wake-word/:path*",destination:s},{has:s,source:"/api/metrics",destination:s}],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:43,errorRate:1e-4,numBits:825,numHashes:14,bitArray:[1,1,e,e,0,0,a,e,e,a,a,a,a,e,e,a,a,e,a,a,e,e,e,a,e,e,e,a,a,e,a,e,e,a,a,e,a,a,e,e,e,a,e,e,e,a,a,a,a,e,e,a,e,a,e,e,e,a,e,e,a,e,e,e,e,e,e,a,e,a,a,e,a,a,a,a,a,a,a,a,e,e,a,a,e,e,a,a,a,a,e,e,e,e,a,a,a,a,e,a,e,e,e,e,e,a,a,e,a,a,e,e,a,a,a,a,a,e,e,e,a,e,a,a,a,e,a,e,e,a,e,e,a,e,a,e,e,a,a,e,e,a,e,a,e,e,e,e,a,e,a,e,e,a,a,a,a,e,a,e,a,a,a,e,e,e,e,e,e,a,a,e,a,e,e,a,a,a,e,e,a,e,e,a,a,e,a,a,a,a,e,e,e,e,a,e,a,a,e,e,e,e,a,a,e,e,e,e,e,e,e,e,a,e,e,e,a,e,a,a,a,e,e,e,a,e,a,a,e,a,a,e,a,a,e,a,a,a,e,a,a,a,a,a,a,e,e,a,a,e,a,e,e,a,a,a,a,e,a,e,a,a,e,e,a,e,e,e,a,a,e,a,e,a,e,e,a,a,e,a,a,e,a,e,a,a,a,a,a,e,a,e,e,e,a,a,e,e,a,e,a,a,e,e,e,e,a,e,e,e,e,a,e,e,a,a,e,e,e,a,e,a,a,a,a,a,e,e,e,a,a,e,a,a,a,e,a,e,a,e,a,a,e,a,a,e,a,e,a,e,a,e,e,e,e,a,e,e,e,e,a,e,a,e,a,a,e,e,a,e,e,e,e,a,e,e,e,a,a,e,a,e,a,e,e,e,e,e,e,e,e,a,e,a,a,a,a,e,a,e,a,a,a,a,e,e,e,e,a,e,a,e,e,e,a,a,e,e,a,a,a,a,e,e,e,e,e,a,a,a,a,e,e,e,e,e,e,a,e,e,e,e,e,a,a,e,a,a,a,e,e,a,a,e,e,e,a,e,e,a,e,e,e,a,e,a,a,a,a,a,a,a,a,e,a,e,e,a,e,a,a,e,e,e,e,a,e,a,a,a,e,a,a,a,a,a,a,a,a,e,a,e,a,e,a,e,a,e,e,e,a,e,a,e,a,e,e,e,a,a,a,a,a,a,e,a,e,e,a,a,e,a,e,a,e,e,a,a,e,a,a,e,a,a,a,a,e,e,e,e,a,e,a,a,a,e,a,e,e,e,e,a,e,e,e,a,a,e,e,e,e,a,a,e,e,e,a,a,e,e,a,e,e,e,a,e,e,e,a,a,a,a,a,e,e,a,a,a,a,e,e,e,e,e,e,a,a,a,a,a,e,a,a,a,a,e,a,a,a,e,a,e,e,a,e,e,e,e,e,a,e,e,e,a,e,e,e,a,e,e,e,e,a,e,e,e,e,a,e,a,a,a,a,a,e,a,a,e,a,e,e,a,a,a,a,e,a,e,e,a,a,a,a,a,a,a,e,e,a,e,e,e,e,a,a,e,e,e,a,e,e,a,a,e,a,e,e,e,a,e,a,e,e,e,e,a,e,e,e,a,e,e,a,a,a,a,a,e,e,a,a,e,e,a,a,a,e,e,e,a,a,e,a,a,e,e,e,a,e,a,a,e,a,a,a,e,a,e,a,a,e,e,e,a,a,a,a,e,a,e,e,e,a,e,e,a,a,a,e,a,a,e,a,e,e,e,a,a,a,a,e,e,a,a,a,a,a,e,e,e,e,e,a,a,e,a,a,e,e,e,e,e,e,e,e,e,e,e,a,a,e,a,a,a,e,e,a,a,a,a,a,a,a,a,e]},__routerFilterDynamic:{numItems:11,errorRate:1e-4,numBits:211,numHashes:14,bitArray:[a,a,a,a,a,a,a,a,a,e,a,e,a,a,e,e,a,a,a,a,e,e,e,e,a,e,e,e,e,e,a,e,e,e,e,e,a,e,e,e,a,e,e,a,e,a,e,e,a,e,a,a,e,e,e,a,e,e,a,a,a,a,e,a,e,a,a,e,a,a,e,a,a,e,a,e,e,e,e,a,a,a,a,e,e,a,a,a,e,e,e,a,a,e,e,e,e,e,e,a,e,e,e,e,a,a,a,a,e,e,a,e,a,a,e,e,a,e,a,a,a,a,e,a,a,e,e,e,a,e,a,a,e,e,e,e,a,a,a,a,e,a,a,e,a,a,e,e,a,e,a,a,e,e,a,a,e,e,a,e,e,a,e,a,e,a,a,e,a,e,e,a,a,e,e,a,e,a,e,a,e,e,a,a,a,a,e,a,a,e,a,a,e,e,a,a,e,e,e,e,e,e,e,a,a,a,a,e,e,a,a]},"/_error":["static/chunks/pages/_error-e4ba546eb376bdf4.js"],sortedPages:["/_app","/_error"]}}(1,0,void 0,1e-4,14),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
@@ -0,0 +1 @@
1
+ self.__SSG_MANIFEST=new Set([]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()