robopark 3.3.29 → 3.3.30
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 +1 -1
- package/ui/standalone/.next/BUILD_ID +1 -1
- package/ui/standalone/.next/app-build-manifest.json +115 -115
- package/ui/standalone/.next/app-path-routes-manifest.json +14 -14
- package/ui/standalone/.next/build-manifest.json +3 -3
- package/ui/standalone/.next/prerender-manifest.json +3 -3
- package/ui/standalone/.next/required-server-files.json +3 -3
- package/ui/standalone/.next/server/app/(app)/opengraph-image-xg4ifa/route.js +1 -1
- package/ui/standalone/.next/server/app/(app)/opengraph-image-xg4ifa/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/(app)/page.js +2 -2
- package/ui/standalone/.next/server/app/(app)/page.js.nft.json +1 -1
- package/ui/standalone/.next/server/app/(app)/page_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/(app)/voice/page.js +3 -3
- package/ui/standalone/.next/server/app/(app)/voice/page.js.nft.json +1 -1
- package/ui/standalone/.next/server/app/(app)/voice/page_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/_not-found/page.js +2 -2
- package/ui/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/connection-details/route.js +1 -1
- package/ui/standalone/.next/server/app/api/connection-details/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/device-character/route.js +1 -1
- package/ui/standalone/.next/server/app/api/device-character/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/download-piper-model/route.js +1 -1
- package/ui/standalone/.next/server/app/api/download-piper-model/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/kiosk-hardware/route.js +1 -1
- package/ui/standalone/.next/server/app/api/kiosk-hardware/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/model-status/route.js +1 -1
- package/ui/standalone/.next/server/app/api/model-status/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/models/route.js +1 -1
- package/ui/standalone/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/prewarm/route.js +1 -1
- package/ui/standalone/.next/server/app/api/prewarm/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/prompt/route.js +1 -1
- package/ui/standalone/.next/server/app/api/prompt/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/reload-tools/route.js +1 -1
- package/ui/standalone/.next/server/app/api/reload-tools/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/camera-token/route.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/camera-token/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/character-ai/route.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/character-ai/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/device-access/route.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/device-access/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/devices/[deviceId]/control/route.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/devices/[deviceId]/control/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/live-rooms/route.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/live-rooms/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/monitor-token/route.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/monitor-token/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/robots/[robotId]/operations/route.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/robots/[robotId]/operations/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/robots/[robotId]/voice-engine/route.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/robots/[robotId]/voice-engine/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/robots/route.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/robots/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/servers/[serverId]/metrics/route.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/servers/[serverId]/metrics/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/servers/[serverId]/route.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/servers/[serverId]/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/servers/route.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/servers/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/sessions/[sessionId]/end/route.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/sessions/[sessionId]/end/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/sessions/route.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/sessions/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/transcripts/[sessionId]/route.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/transcripts/[sessionId]/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/transcripts/route.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/transcripts/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/vision-caption/route.js +1 -1
- package/ui/standalone/.next/server/app/api/robopark/vision-caption/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/robovoice/robots/[robotId]/media-health/route.js +1 -1
- package/ui/standalone/.next/server/app/api/robovoice/robots/[robotId]/media-health/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/settings/route.js +1 -1
- package/ui/standalone/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/setup/complete/route.js +1 -1
- package/ui/standalone/.next/server/app/api/setup/complete/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/setup/status/route.js +1 -1
- package/ui/standalone/.next/server/app/api/setup/status/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/setup/test-groq/route.js +1 -1
- package/ui/standalone/.next/server/app/api/setup/test-groq/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/setup/test-hass/route.js +1 -1
- package/ui/standalone/.next/server/app/api/setup/test-hass/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/setup/test-n8n/route.js +1 -1
- package/ui/standalone/.next/server/app/api/setup/test-n8n/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/setup/test-ollama/route.js +1 -1
- package/ui/standalone/.next/server/app/api/setup/test-ollama/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/test-tts/route.js +1 -1
- package/ui/standalone/.next/server/app/api/test-tts/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/turn-credentials/route.js +1 -1
- package/ui/standalone/.next/server/app/api/turn-credentials/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/voices/route.js +1 -1
- package/ui/standalone/.next/server/app/api/voices/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/wake/route.js +1 -1
- package/ui/standalone/.next/server/app/api/wake/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/wake-word/models/route.js +1 -1
- package/ui/standalone/.next/server/app/api/wake-word/models/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/wake-word/status/route.js +1 -1
- package/ui/standalone/.next/server/app/api/wake-word/status/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/api/wake-word/upload/route.js +1 -1
- package/ui/standalone/.next/server/app/api/wake-word/upload/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/camera-grid/route.js +1 -1
- package/ui/standalone/.next/server/app/camera-grid/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/favicon.ico/route.js +1 -1
- package/ui/standalone/.next/server/app/fed/[...path]/route.js +2 -2
- package/ui/standalone/.next/server/app/fed/[...path]/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/fed/media/robots/[robotId]/video_feed/route.js +1 -1
- package/ui/standalone/.next/server/app/fed/media/robots/[robotId]/video_feed/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/robopark/[...path]/route.js +1 -1
- package/ui/standalone/.next/server/app/robopark/[...path]/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/robopark/api/[...path]/route.js +1 -1
- package/ui/standalone/.next/server/app/robopark/api/[...path]/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/robopark/api/robots/[robotId]/stream/route.js +1 -1
- package/ui/standalone/.next/server/app/robopark/api/robots/[robotId]/stream/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/robopark/page.js +2 -2
- package/ui/standalone/.next/server/app/robopark/page.js.nft.json +1 -1
- package/ui/standalone/.next/server/app/robopark/page_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/tailnet/route.js +1 -1
- package/ui/standalone/.next/server/app/tailnet/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/vendor/livekit-client.umd.js/route.js +1 -1
- package/ui/standalone/.next/server/app/vendor/livekit-client.umd.js/route_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app/voice-tester/page.js +2 -2
- package/ui/standalone/.next/server/app/voice-tester/page.js.nft.json +1 -1
- package/ui/standalone/.next/server/app/voice-tester/page_client-reference-manifest.js +1 -1
- package/ui/standalone/.next/server/app-paths-manifest.json +14 -14
- package/ui/standalone/.next/server/chunks/5232.js +4 -4
- package/ui/standalone/.next/server/chunks/5455.js +11 -0
- package/ui/standalone/.next/server/chunks/9077.js +11 -0
- package/ui/standalone/.next/server/functions-config-manifest.json +1 -1
- package/ui/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/ui/standalone/.next/server/pages/500.html +1 -1
- package/ui/standalone/.next/server/server-reference-manifest.json +1 -1
- package/ui/standalone/.next/static/KwY1YC79lI9nQqOVYXOmY/_buildManifest.js +1 -0
- package/ui/standalone/.next/static/KwY1YC79lI9nQqOVYXOmY/_ssgManifest.js +1 -0
- package/ui/standalone/.next/static/chunks/app/(app)/voice/page-72d72d9a70d9c1d4.js +1 -0
- package/ui/standalone/.next/static/chunks/app/_not-found/page-cfd7daa82d71540c.js +1 -0
- package/ui/standalone/.next/static/chunks/app/layout-fcce963da1d8220f.js +1 -0
- package/ui/standalone/.next/static/chunks/app/voice-tester/page-ae699e048e0eb834.js +1 -0
- package/ui/standalone/.next/static/chunks/main-app-a1f59168303c7f84.js +1 -0
- package/ui/standalone/server.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/fed/media/robots/[robotId]/video_feed/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"5233":{"*":{"id":"92681","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"5945":{"*":{"id":"14890","name":"*","chunks":[],"async":false}},"6960":{"*":{"id":"34635","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"C:\\Users\\yunge\\
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/fed/media/robots/[robotId]/video_feed/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"5233":{"*":{"id":"92681","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"5945":{"*":{"id":"14890","name":"*","chunks":[],"async":false}},"6960":{"*":{"id":"34635","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\client\\components\\builtin\\global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\builtin\\global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\client\\components\\client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\client\\components\\client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\client\\components\\http-access-fallback\\error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\http-access-fallback\\error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\client\\components\\layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\client\\components\\metadata\\async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\metadata\\async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\client\\components\\render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\lib\\framework\\boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\lib\\framework\\boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\lib\\metadata\\generate\\icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\lib\\metadata\\generate\\icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\components\\app\\theme-provider.tsx":{"id":5233,"name":"*","chunks":["7501","static/chunks/144d3bae-bd5d150c0cab972e.js","9880","static/chunks/9880-53262785284464cc.js","7177","static/chunks/app/layout-fcce963da1d8220f.js"],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\font\\google\\target.css?{\"path\":\"app\\\\layout.tsx\",\"import\":\"Public_Sans\",\"arguments\":[{\"variable\":\"--font-public-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"publicSans\"}":{"id":5757,"name":"*","chunks":["7501","static/chunks/144d3bae-bd5d150c0cab972e.js","9880","static/chunks/9880-53262785284464cc.js","7177","static/chunks/app/layout-fcce963da1d8220f.js"],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\font\\local\\target.css?{\"path\":\"app\\\\layout.tsx\",\"import\":\"\",\"arguments\":[{\"display\":\"swap\",\"variable\":\"--font-commit-mono\",\"src\":[{\"path\":\"../fonts/CommitMono-400-Regular.otf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/CommitMono-700-Regular.otf\",\"weight\":\"700\",\"style\":\"normal\"},{\"path\":\"../fonts/CommitMono-400-Italic.otf\",\"weight\":\"400\",\"style\":\"italic\"},{\"path\":\"../fonts/CommitMono-700-Italic.otf\",\"weight\":\"700\",\"style\":\"italic\"}]}],\"variableName\":\"commitMono\"}":{"id":1901,"name":"*","chunks":["7501","static/chunks/144d3bae-bd5d150c0cab972e.js","9880","static/chunks/9880-53262785284464cc.js","7177","static/chunks/app/layout-fcce963da1d8220f.js"],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\styles\\globals.css":{"id":3677,"name":"*","chunks":["7501","static/chunks/144d3bae-bd5d150c0cab972e.js","9880","static/chunks/9880-53262785284464cc.js","7177","static/chunks/app/layout-fcce963da1d8220f.js"],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\voice-tester\\page.tsx":{"id":6960,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\components\\app\\app.tsx":{"id":5945,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\":[],"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\layout":[{"inlined":false,"path":"static/css/3f478a573f9be82e.css"},{"inlined":false,"path":"static/css/51560c4af1d5a21f.css"}],"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\(app)\\layout":[],"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\(app)\\page":[],"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\fed\\[...path]\\route":[],"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\fed\\media\\robots\\[robotId]\\video_feed\\route":[]},"rscModuleMapping":{"622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"3677":{"*":{"id":"23141","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"5233":{"*":{"id":"43259","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"5945":{"*":{"id":"58467","name":"*","chunks":[],"async":false}},"6960":{"*":{"id":"33323","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var a={};a.id=1711,a.ids=[1711],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3421:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71237),e=c(55088),f=c(17679);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},36228:(a,b,c)=>{"use strict";c.d(b,{w:()=>i});var d=c(73024);let e=process.env.ROBOPARK_CONTROL_URL||"http://host.docker.internal:47913",f=process.env.ROBOPARK_SCHEDULER_URL||"http://host.docker.internal:8080",g=function(){if(process.env.ROBOPARK_CONTROL_TOKEN)return process.env.ROBOPARK_CONTROL_TOKEN.trim();let a=process.env.ROBOPARK_CONTROL_TOKEN_FILE;if(!a)return"";try{return(0,d.readFileSync)(a,"utf8").trim()}catch{return""}}(),h=new Set(["connection","keep-alive","proxy-authenticate","proxy-authorization","te","trailers","transfer-encoding","upgrade","content-length"]);async function i(a,b){let c,d=new URL(a.url),i=d.searchParams.get("token");d.searchParams.delete("token");let j=b.startsWith("/robopark/"),k=new URL((j?b.slice(9):b)+d.search,j?f:e);!g&&i&&k.searchParams.set("token",i);let l=new Headers;for(let b of["accept","content-type","if-match","if-none-match"]){let c=a.headers.get(b);c&&l.set(b,c)}let m=a.headers.get("authorization");m&&l.set("authorization",m),g&&l.set("authorization","Bearer "+g);let n=a.method.toUpperCase(),o="GET"===n||"HEAD"===n?void 0:await a.arrayBuffer(),p=new AbortController,q=setTimeout(()=>p.abort(),7e3);try{c=await fetch(k,{method:n,headers:l,body:o&&o.byteLength?o:void 0,cache:"no-store",redirect:"manual",signal:p.signal})}catch(b){clearTimeout(q);let a=b instanceof Error?b.message:String(b);return Response.json({ok:!1,error:"RoboPark control upstream unavailable",detail:a,upstream:k.origin},{status:502,headers:{"cache-control":"no-store"}})}clearTimeout(q);let r=new Headers;return c.headers.forEach((a,b)=>{h.has(b.toLowerCase())||r.set(b,a)}),r.set("cache-control","no-store"),r.set("x-robopark-control-source",k.origin),new Response(c.body,{status:c.status,statusText:c.statusText,headers:r})}},
|
|
1
|
+
(()=>{var a={};a.id=1711,a.ids=[1711],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3421:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71237),e=c(55088),f=c(17679);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},36228:(a,b,c)=>{"use strict";c.d(b,{w:()=>i});var d=c(73024);let e=process.env.ROBOPARK_CONTROL_URL||"http://host.docker.internal:47913",f=process.env.ROBOPARK_SCHEDULER_URL||"http://host.docker.internal:8080",g=function(){if(process.env.ROBOPARK_CONTROL_TOKEN)return process.env.ROBOPARK_CONTROL_TOKEN.trim();let a=process.env.ROBOPARK_CONTROL_TOKEN_FILE;if(!a)return"";try{return(0,d.readFileSync)(a,"utf8").trim()}catch{return""}}(),h=new Set(["connection","keep-alive","proxy-authenticate","proxy-authorization","te","trailers","transfer-encoding","upgrade","content-length"]);async function i(a,b){let c,d=new URL(a.url),i=d.searchParams.get("token");d.searchParams.delete("token");let j=b.startsWith("/robopark/"),k=new URL((j?b.slice(9):b)+d.search,j?f:e);!g&&i&&k.searchParams.set("token",i);let l=new Headers;for(let b of["accept","content-type","if-match","if-none-match"]){let c=a.headers.get(b);c&&l.set(b,c)}let m=a.headers.get("authorization");m&&l.set("authorization",m),g&&l.set("authorization","Bearer "+g);let n=a.method.toUpperCase(),o="GET"===n||"HEAD"===n?void 0:await a.arrayBuffer(),p=new AbortController,q=setTimeout(()=>p.abort(),7e3);try{c=await fetch(k,{method:n,headers:l,body:o&&o.byteLength?o:void 0,cache:"no-store",redirect:"manual",signal:p.signal})}catch(b){clearTimeout(q);let a=b instanceof Error?b.message:String(b);return Response.json({ok:!1,error:"RoboPark control upstream unavailable",detail:a,upstream:k.origin},{status:502,headers:{"cache-control":"no-store"}})}clearTimeout(q);let r=new Headers;return c.headers.forEach((a,b)=>{h.has(b.toLowerCase())||r.set(b,a)}),r.set("cache-control","no-store"),r.set("x-robopark-control-source",k.origin),new Response(c.body,{status:c.status,statusText:c.statusText,headers:r})}},43414:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{DELETE:()=>x,GET:()=>x,PATCH:()=>x,POST:()=>x,PUT:()=>x,dynamic:()=>v,runtime:()=>w});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(36228);let v="force-dynamic",w="nodejs";async function x(a,b){let{path:c}=await b.params;return(0,u.w)(a,"/robopark/"+c.map(encodeURIComponent).join("/"))}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/robopark/[...path]/route",pathname:"/robopark/[...path]",filename:"route",bundlePath:"app/robopark/[...path]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\robopark\\[...path]\\route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/robopark/[...path]/route";"/index"===e&&(e="/");let g=await y.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:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,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)=>y.onRequestError(a,b,d,A)},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=>y.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")&&B&&C&&!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 y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,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",B?"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 y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{"use strict";a.exports=require("node:fs")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},95736:(a,b,c)=>{"use strict";a.exports=c(44870)},96487:()=>{}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[5873],()=>b(b.s=43414));module.exports=c})();
|
package/ui/standalone/.next/server/app/robopark/[...path]/route_client-reference-manifest.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/robopark/[...path]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"5233":{"*":{"id":"92681","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"5945":{"*":{"id":"14890","name":"*","chunks":[],"async":false}},"6960":{"*":{"id":"34635","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"C:\\Users\\yunge\\
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/robopark/[...path]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"5233":{"*":{"id":"92681","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"5945":{"*":{"id":"14890","name":"*","chunks":[],"async":false}},"6960":{"*":{"id":"34635","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\client\\components\\builtin\\global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\builtin\\global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\client\\components\\client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\client\\components\\client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\client\\components\\http-access-fallback\\error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\http-access-fallback\\error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\client\\components\\layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\client\\components\\metadata\\async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\metadata\\async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\client\\components\\render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\lib\\framework\\boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\lib\\framework\\boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\lib\\metadata\\generate\\icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\lib\\metadata\\generate\\icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\components\\app\\theme-provider.tsx":{"id":5233,"name":"*","chunks":["7501","static/chunks/144d3bae-bd5d150c0cab972e.js","9880","static/chunks/9880-53262785284464cc.js","7177","static/chunks/app/layout-fcce963da1d8220f.js"],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\font\\google\\target.css?{\"path\":\"app\\\\layout.tsx\",\"import\":\"Public_Sans\",\"arguments\":[{\"variable\":\"--font-public-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"publicSans\"}":{"id":5757,"name":"*","chunks":["7501","static/chunks/144d3bae-bd5d150c0cab972e.js","9880","static/chunks/9880-53262785284464cc.js","7177","static/chunks/app/layout-fcce963da1d8220f.js"],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\font\\local\\target.css?{\"path\":\"app\\\\layout.tsx\",\"import\":\"\",\"arguments\":[{\"display\":\"swap\",\"variable\":\"--font-commit-mono\",\"src\":[{\"path\":\"../fonts/CommitMono-400-Regular.otf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/CommitMono-700-Regular.otf\",\"weight\":\"700\",\"style\":\"normal\"},{\"path\":\"../fonts/CommitMono-400-Italic.otf\",\"weight\":\"400\",\"style\":\"italic\"},{\"path\":\"../fonts/CommitMono-700-Italic.otf\",\"weight\":\"700\",\"style\":\"italic\"}]}],\"variableName\":\"commitMono\"}":{"id":1901,"name":"*","chunks":["7501","static/chunks/144d3bae-bd5d150c0cab972e.js","9880","static/chunks/9880-53262785284464cc.js","7177","static/chunks/app/layout-fcce963da1d8220f.js"],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\styles\\globals.css":{"id":3677,"name":"*","chunks":["7501","static/chunks/144d3bae-bd5d150c0cab972e.js","9880","static/chunks/9880-53262785284464cc.js","7177","static/chunks/app/layout-fcce963da1d8220f.js"],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\voice-tester\\page.tsx":{"id":6960,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\components\\app\\app.tsx":{"id":5945,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\":[],"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\layout":[{"inlined":false,"path":"static/css/3f478a573f9be82e.css"},{"inlined":false,"path":"static/css/51560c4af1d5a21f.css"}],"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\(app)\\layout":[],"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\(app)\\page":[],"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\robopark\\[...path]\\route":[],"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\robopark\\page":[]},"rscModuleMapping":{"622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"3677":{"*":{"id":"23141","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"5233":{"*":{"id":"43259","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"5945":{"*":{"id":"58467","name":"*","chunks":[],"async":false}},"6960":{"*":{"id":"33323","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var a={};a.id=1426,a.ids=[1426],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")},3787:(a,b,c)=>{"use strict";c.d(b,{i:()=>g});let d=(process.env.WEBHOOK_URL||"http://agent:8889").replace(/\/+$/,""),e=Promise.resolve();async function f(a){let b=await fetch(`${d}/settings`,{cache:"no-store",signal:AbortSignal.timeout(8e3)});if(!b.ok)throw Error(`Settings registry returned ${b.status}`);let c=await b.json(),e=structuredClone(c.settings?.device_registry||{}),f=await a(e),g=await fetch(`${d}/settings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:{device_registry:e}}),signal:AbortSignal.timeout(8e3)});if(!g.ok)throw Error(`Settings registry update returned ${g.status}`);return f}function g(a){let b=e.then(()=>f(a),()=>f(a));return e=b.then(()=>void 0,()=>void 0),b}},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")},18427:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>ai,patchFetch:()=>ah,routeModule:()=>ad,serverHooks:()=>ag,workAsyncStorage:()=>ae,workUnitAsyncStorage:()=>af});var d={};c.r(d),c.d(d,{DELETE:()=>ac,GET:()=>$,PATCH:()=>ab,POST:()=>_,PUT:()=>aa,dynamic:()=>D});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(58553),x=c(99435);let y=(process.env.V2_SCHEDULER_URL||process.env.SCHEDULER_URL||"http://192.168.1.14:8080").replace(/\/+$/,"");async function z(a,b=""){let c=b&&!a.includes("?")?b.startsWith("?")?b:`?${b}`:"";try{let b=await fetch(`${y}${a}${c}`,{cache:"no-store",signal:AbortSignal.timeout(12e3)});return new Response(b.body,{status:b.status,headers:{"content-type":b.headers.get("content-type")||"application/json","cache-control":"no-store","x-data-source":"robot-scheduler"}})}catch(a){return u.NextResponse.json({error:a instanceof Error?a.message:"Scheduler unavailable"},{status:503})}}var A=c(3787),B=c(75310),C=c(24008);let D="force-dynamic",E=process.env.V2_AGENT_URL||process.env.WEBHOOK_URL||"http://agent:8889",F=(process.env.V2_SCHEDULER_URL||process.env.SCHEDULER_URL||"").replace(/\/+$/,""),G={barracuda:"agent_3001ky0z8wq0fht8xyb0tnkdksdz",jaguar:"agent_4201ky0zhwn4fz7bwy9767wt6g3t",magnus:"agent_5601ky0ymahreyft2xz9xht0dj4v",palladin:"agent_0001ky7mxx2ce4pseeyn6wrtnrz8",panda:"agent_4701ky0xkz89f8t993tmg5t8t23r",titan:"agent_2501ky0x8t39fh5ske8tz3148b26",vixen:"agent_6701ky0nfavke0ysrpj5v38m1cry",volt:"agent_4101ky97n2pze4p8ax3dgb3hbc3c"},H=[{id:"barracuda",name:"Barracuda",img:"/static/robopark/barracuda.png"},{id:"jaguar",name:"Jaguar",img:"/static/robopark/jaguar.png"},{id:"magnus",name:"Magnus",img:"/static/robopark/magnus.jpg"},{id:"palladin",name:"Paladin",img:"/static/robopark/titan.jpg"},{id:"panda",name:"RoboPanda",img:"/static/robopark/panda.png"},{id:"titan",name:"Titan",img:"/static/robopark/titan.jpg"},{id:"vixen",name:"RoboVixen",img:"/static/robopark/bmw.png"},{id:"volt",name:"Volt",img:"/static/robopark/volt.png"}];function I(a){return String(a||"").toLowerCase().replace(/\bvoice\b/g,"").replace(/^robo/,"").replace(/[^a-z0-9]/g,"").replace(/^paladin$/,"palladin").replace(/^ronin$/,"panda")}function J(a){let b=[a.id,a.display_name,a.name].map(I);return a.elevenlabs_agent_id||b.map(a=>G[a]).find(Boolean)||null}function K(a,b=[]){let c=[...b,...a.characters||[]],d=new Set;return[...H.map(a=>{let b=new Set([I(a.id),I(a.name)]),e=c.find(a=>!d.has(a)&&[a.id,a.name,a.display_name].some(a=>b.has(I(a))));e&&d.add(e);let f={...a,...e||{}};return{...f,canonical_id:a.id,display_name:f.display_name||a.name,voice_stack_id:f.voice_stack_id||f.id,img:f.img||a.img,elevenlabs_agent_id:J(f)||G[a.id],binding_source:e?.elevenlabs_agent_id?"scheduler":"verified-session-ledger"}}),...c.filter(a=>!d.has(a)).map(a=>({...a,display_name:a.display_name||a.name,voice_stack_id:a.voice_stack_id||a.id,elevenlabs_agent_id:J(a),binding_source:a.elevenlabs_agent_id?"scheduler":J(a)?"verified-session-ledger":null}))]}async function L(a){try{let b=await fetch(`${F}/api/character-presets`,{cache:"no-store",signal:AbortSignal.timeout(3e3)});if(!b.ok)throw Error(`scheduler returned ${b.status}`);let c=await b.json(),d=Array.isArray(c)?c:Array.isArray(c?.presets)?c.presets:[];return u.NextResponse.json(K(a,d),{headers:{"cache-control":"no-store","x-data-source":"scheduler+durable-character-catalog"}})}catch{return u.NextResponse.json(K(a),{headers:{"cache-control":"no-store","x-data-source":"durable-character-catalog"}})}}async function M(a){let b=process.env.ROBOPARK_DEVICE_TOKEN||process.env.ROBOPARK_FLEET_TOKEN;if(F&&b)try{await fetch(`${F}/api/transcript-ledger/ingest`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify(a),signal:AbortSignal.timeout(8e3)})}catch{}}async function N(a){let{LIVEKIT_API_KEY:b,LIVEKIT_API_SECRET:c}=process.env;if(!b||!c)return u.NextResponse.json({error:"LiveKit browser-call signing is unavailable"},{status:503});let d=await a.json().catch(()=>({})),e="string"==typeof d.character_preset_id?d.character_preset_id:"",f=await (0,x.U)(),g=(f.characters||[]).find(a=>a.id===e);if(!g)return u.NextResponse.json({error:"Character preset was not found"},{status:404});let h=crypto.randomUUID().replaceAll("-",""),i=`browser-test-${h}`,j=`operator:${h}`,k=crypto.randomUUID().replaceAll("-",""),l=new v.mk(b,c,{identity:j,name:"string"==typeof d.client_name&&d.client_name.trim()?d.client_name.trim().slice(0,80):"RoboPark Operator",metadata:JSON.stringify({character_id:e,voice_stack_id:"string"==typeof d.voice_stack_id?d.voice_stack_id:e,participant_role:"operator_test"}),ttl:"30m"});return l.addGrant({room:i,roomJoin:!0,canPublish:!0,canPublishData:!0,canSubscribe:!0}),l.roomConfig=new w.w7_({emptyTimeout:30,departureTimeout:2,agents:[new w.JsN({agentName:"",metadata:JSON.stringify({mode:"browser_test"})})]}),await M({source:"robovoice",engine:"robovoice",engine_conversation_id:i,robot_id:"operator-call",character_id:e,model_provider:g.llm_provider||f.llm_provider,model_name:g.ollama_model||g.groq_model||f.ollama_model||f.groq_model,started_at:new Date().toISOString(),labels:["browser-call"],metadata:{room_name:i,voice_stack_id:"string"==typeof d.voice_stack_id?d.voice_stack_id:e},turns:[]}),(0,B.Qy)({session_id:i,robot_id:null,character_id:e,character_name:g.name||e,engine:"robovoice",room_name:i,source:"browser-test",started_at:new Date().toISOString()}),u.NextResponse.json({session_id:i,event_token:k,server_url:function(a){let b=process.env.LIVEKIT_PUBLIC_URL||process.env.NEXT_PUBLIC_LIVEKIT_URL;if(b&&"auto"!==b)return b;let c=new URL(a.url);return`${"https:"===c.protocol?"wss":"ws"}://${c.host}`}(a),token:await l.toJwt(),room_name:i,character:{id:g.id,name:g.name}},{headers:{"Cache-Control":"no-store"}})}async function O(a){let b,c=String(a.agent_id||"").trim();if(!/^agent_[A-Za-z0-9]{8,80}$/.test(c))return u.NextResponse.json({error:"A valid ElevenLabs agent binding is required"},{status:400});try{let d="string"==typeof a.branch_id&&/^agtbrch_[A-Za-z0-9]+$/.test(a.branch_id)?`?branch_id=${encodeURIComponent(a.branch_id)}`:"";b=await fetch(`${E.replace(/\/$/,"")}/elevenlabs/agents/${encodeURIComponent(c)}/signed-url${d}`,{cache:"no-store",signal:AbortSignal.timeout(2e4)})}catch(c){let a=c instanceof Error?c.name:"",b="TimeoutError"===a||"AbortError"===a;return u.NextResponse.json({error:b?"Voice signing timed out while contacting the agent service":`Voice signing service is unreachable: ${c instanceof Error?c.message:String(c)}`,retryable:!0},{status:b?504:502,headers:{"cache-control":"no-store"}})}let d=await b.json().catch(()=>({}));if(!b.ok||!d.signed_url)return u.NextResponse.json({error:d.detail||d.error||`ElevenLabs signing returned ${b.status}`},{status:b.status>=400?b.status:502});let e=`browser-test-${crypto.randomUUID().replaceAll("-","")}`,f=await (0,x.U)(),g=a.robot_id?(0,C._1)(f,{robotId:a.robot_id,characterId:a.character_preset_id}):null;return(0,B.Qy)({session_id:e,robot_id:g,character_id:a.character_preset_id||null,character_name:Q(f)[a.character_preset_id||""]||a.character_preset_id||null,engine:"elevenlabs",room_name:g?`robopark-${g}`:null,source:"character-link",started_at:new Date().toISOString()}),u.NextResponse.json({session_id:e,event_token:crypto.randomUUID().replaceAll("-",""),signed_url:d.signed_url,agent_id:c,branch_id:a.branch_id||null,robot_id:a.robot_id||null,robot_video_ref:a.robot_id||null,character_id:a.character_preset_id||null,source:"frontend-compatibility-fallback"},{headers:{"cache-control":"no-store"}})}async function P(a){if(!a.startsWith("browser-test-"))return u.NextResponse.json({error:"Invalid browser-call session"},{status:400});let{LIVEKIT_URL:b,LIVEKIT_API_KEY:c,LIVEKIT_API_SECRET:d}=process.env;if(b&&c&&d){let e=new v.iz(b.replace(/^ws/,"http"),c,d);await e.deleteRoom(a).catch(()=>void 0)}return u.NextResponse.json({status:"ended",session_id:a})}function Q(a){return Object.fromEntries((a.characters||[]).map(a=>[a.id,a.name]))}let R=["name","description","system_prompt","voice_stack_id","motors","nx","ny","img","elevenlabs_agent_id","elevenlabs_first_message","tts_voice_elevenlabs","prompt_editor_model","prompt_editor_precision"];async function S(a){let b=await fetch(`${E.replace(/\/$/,"")}/settings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:{characters:a}}),signal:AbortSignal.timeout(12e3)});if(!b.ok)throw Error(`Settings registry returned ${b.status}`)}function T(a){let b="string"==typeof a?a.trim().toLowerCase():"";if(!/^[a-z0-9][a-z0-9_-]{0,47}$/.test(b))throw Error("Character ID must use lowercase letters, numbers, hyphens, or underscores");return b}function U(a,b){for(let c of R)void 0!==b[c]&&(a[c]=b[c])}function V(a,b){let c=a.stt_provider||b.stt_provider||"speaches",d="groq"===c?a.stt_model_groq||b.stt_model_groq||"whisper-large-v3-turbo":a.stt_model_speaches||b.stt_model_speaches||"Systran/faster-whisper-small",e=a.llm_provider||b.llm_provider||"ollama",f="groq"===e?a.groq_model||b.groq_model||"":a.ollama_model||b.ollama_model||"";return{...a,name:`${a.name} voice`,stt_provider:c,stt_model:d,stt_language:a.stt_language||b.stt_language||"auto",llm_provider:e,llm_model:f,tts_provider:a.tts_provider||"configured default",tts_voice:a.tts_voice_elevenlabs||a.tts_voice_kokoro||"",voice_id:a.tts_voice_elevenlabs||a.tts_voice_kokoro||""}}async function W(a){let{LIVEKIT_URL:b,LIVEKIT_API_KEY:c,LIVEKIT_API_SECRET:d}=process.env;if(!b||!c||!d)return[];let e=new v.iz(b.replace(/^ws/,"http"),c,d),f=a.device_registry||{},g=Q(a),h=(await e.listRooms()).filter(a=>a.name.startsWith("robopark-")),i=new Map(await Promise.all(h.map(async a=>{let b=a.name.slice(9),c=await e.listParticipants(a.name).catch(()=>[]),d=c.find(a=>a.identity.startsWith(`robopanda_${b}_`)),f=c.find(a=>a.identity.startsWith("agent-")||4===Number(a.kind)),g=!!d?.tracks?.some(a=>2===Number(a.source)&&!a.muted),h=!!d?.tracks?.some(a=>1===Number(a.source)&&!a.muted);return[b,{room:a,physical:d,agent:f,microphone:g,camera:h}]}))),j=(0,B.f6)();return[...Object.keys(f).map(b=>{let c=i.get(b),d=c?.room,e=j.get(b)||null,h=!!e,k=g[f[b]?.character_id||""],l=!!c?.physical,m=!!c?.microphone,n=!!c?.camera,o=!!c?.agent,p=!!f[b]?.maintenance,q=f[b]?.voice_engine==="elevenlabs"?"elevenlabs":"robovoice",r=l&&(!m||!n||!o),s=a.stt_provider||"speaches",t="groq"===s?a.stt_model_groq:a.stt_model_speaches;return{id:b,robot_id:b,name:k||f[b]?.name||`RoboPark ${b.slice(0,6)}`,character_id:f[b]?.character_id||null,character_name:k||null,voice_engine:q,elevenlabs_agent_id:f[b]?.elevenlabs_agent_id||null,elevenlabs_configured:!!f[b]?.elevenlabs_agent_id,conversation_name:f[b]?.conversation_name||b,camera_url:f[b]?.camera_url||`/fed/media/robots/${encodeURIComponent(b)}/video_feed`,maintenance:p,maintenance_note:f[b]?.maintenance_note||"",status:p?"maintenance":l?r?"degraded":"online":h?"online":"offline",connection_status:l||h?"online":"offline",readiness_code:p?"maintenance":l?r?"degraded":"in_session":h?"in_session":"offline",readiness_message:p?f[b]?.maintenance_note||"Marked for maintenance":!l&&h?"Managed character call is active on this device":l?m?n?o?"Physical kiosk, media and voice worker connected":"Voice worker is not attached":"Camera is not publishing":"Microphone is not publishing":"No physical kiosk participant",room_name:d?.name||`robopark-${b}`,active_session:l||h,monitoring_session:h&&!l,in_session:l&&o||h,call_source:e?.source||null,call_started_at:e?.started_at||null,camera:n,microphone:m,voice_worker:o,hardware:f[b]?.hardware||null,effective_config:{character_id:f[b]?.character_id||null,character_name:k||null,voice_engine:q,elevenlabs_agent_id:f[b]?.elevenlabs_agent_id||null,stt_provider:s,stt_model:t,stt_language:a.stt_language||"auto",hardware_selection:f[b]?.hardware?.desired||f[b]?.hardware?.observed?.selected||null},current_session_id:l?d?.sid:e?e.session_id:null,current_stage:{stage:p?"maintenance":!l&&h?"conversation":l?m?o?"stt_listening":"voice_worker":"microphone_published":"offline",status:p||r?"blocked":l||h?"active":"waiting",label:p?"Maintenance mode":!l&&h?"Managed character call active":l?m?n?o?"Listening for visitor speech":"Waiting for voice worker":"Camera blocked":"Microphone blocked":"Physical kiosk offline"}}}),...Array.from(i.entries()).filter(([a])=>!f[a]).map(([a,b])=>({id:a,robot_id:a,name:`RoboPark ${a.slice(0,6)}`,status:b.physical?"unregistered":"ghost",room_name:b.room.name,active_session:!!b.physical,camera:b.camera,microphone:b.microphone}))]}async function X(a){if(!F)return null;let b=await fetch(`${F}${a}`,{cache:"no-store",signal:AbortSignal.timeout(15e3)});if(!b.ok)throw Error(`Scheduler ${a} returned ${b.status}`);return b.json()}async function Y(a){let[b,c,d]=await Promise.all([W(a).catch(()=>[]),X("/api/devices").catch(()=>[]),X("/api/sessions?active_only=true&limit=200").catch(()=>[])]),e=new Map;for(let a of Array.isArray(c)?c:[]){let b=String(a.id||a.device_id||a.robot_id||"");b&&e.set(b,{...a,id:b,robot_id:b})}for(let a of b){let b=String(a.id||a.robot_id||"");b&&e.set(b,{...e.get(b)||{},...a,id:b,robot_id:b})}for(let a of Array.isArray(d)?d:[]){let b=String(a.robot_id||"");if(!b||"operator-call"===b)continue;let c=e.get(b)||{id:b,robot_id:b,name:a.robot_name||a.character_name||b};e.set(b,{...c,character_id:a.character_id||c.character_id||null,character_name:a.character_name||c.character_name||null,voice_engine:a.engine||c.voice_engine||"elevenlabs",status:"online",connection_status:"online",readiness_code:"in_session",readiness_message:"Managed character call is active",active_session:!0,in_session:!0,monitoring_session:!0,current_session_id:a.session_id||a.id,room_name:a.room_name||c.room_name,current_stage:{stage:"conversation",status:"active",label:"Managed character call active"},call_source:a.source||"control_center",last_activity_at:a.last_activity_at||c.last_activity_at})}return Array.from(e.values())}async function Z(a){let b=await Y(a),c=b.filter(a=>a.active_session).map(a=>({id:a.current_session_id||a.room_name,session_id:a.current_session_id||a.room_name,robot_id:a.id,robot_name:a.name,character_id:a.character_id,character_name:a.character_name,room_name:a.room_name,started_at:a.call_started_at||a.started_at||new Date().toISOString(),status:"active",voice_engine:a.voice_engine||"robovoice",camera_url:a.camera_url,source:a.call_source||("elevenlabs"===a.voice_engine?"elevenlabs-direct":"livekit-v2")})),d=new Set(c.map(a=>a.session_id));for(let a of(0,B.i0)())!d.has(a.session_id)&&(a.robot_id&&b.some(b=>b.id===a.robot_id&&b.active_session)||c.push({id:a.session_id,session_id:a.session_id,robot_id:a.robot_id||"operator-call",robot_name:a.character_name||a.robot_id||"Operator call",character_id:a.character_id,character_name:a.character_name,room_name:a.room_name||a.session_id,started_at:a.started_at,status:"active",voice_engine:a.engine,camera_url:a.robot_id?`/fed/media/robots/${encodeURIComponent(a.robot_id)}/video_feed`:null,source:a.source}));return c}async function $(a,b){let c=(await b.params).path.join("/"),d=new URL(a.url).search;if("character-presets"===c){let a=await (0,x.U)();return F?L(a):u.NextResponse.json(K(a),{headers:{"cache-control":"no-store","x-data-source":"durable-character-catalog"}})}if("elevenlabs/agents"===c)return u.NextResponse.json({agents:H.map(a=>({agent_id:G[a.id],name:a.name,character_id:a.id})),source:"verified-session-ledger"},{headers:{"cache-control":"no-store"}});let e=c.match(/^character-presets\/([^/]+)$/);if(e){let a=decodeURIComponent(e[1]),b=K(await (0,x.U)()).find(b=>b.id===a||b.canonical_id===a||I(b.id)===I(a)||I(b.display_name||b.name)===I(a));return b?u.NextResponse.json(b,{headers:{"cache-control":"no-store","x-data-source":"durable-character-catalog"}}):u.NextResponse.json({error:"Character preset not found"},{status:404})}let f=new Set(["voice-stacks","settings","sessions/stats","history","servers"]);if(F&&(f.has(c)||c.startsWith("voices/")))return z(`/api/${c}`,d);let g=await (0,x.U)();if("voice-stacks"===c)return u.NextResponse.json((g.characters||[]).map(a=>({...a,display_name:a.name,voice_stack_id:a.voice_stack_id||a.id,img:a.img||`/static/robopark/${"robopanda"===a.id?"panda":a.name.toLowerCase().includes("vixen")?"bmw":a.id}.png`})).map(a=>V(a,g)));if(c.startsWith("voices/")){let a=c.slice(7);try{let b=await fetch(`${E.replace(/\/$/,"")}/voices?provider=${encodeURIComponent(a)}`,{cache:"no-store",signal:AbortSignal.timeout(12e3)});if(!b.ok)throw Error(`voice provider returned ${b.status}`);let c=await b.json(),d=Array.isArray(c)?c:c.voices||[];return u.NextResponse.json({provider:a,source:"elevenlabs"===a?"elevenlabs-account-live":"production-provider-live",count:d.length,voices:d})}catch(b){return u.NextResponse.json({provider:a,source:"provider-error",count:0,voices:[],warning:b instanceof Error?b.message:"Voice catalog unavailable"},{status:502})}}if("devices"===c){if(F){let a=await z("/api/devices",d);if(a.ok)return a}return u.NextResponse.json(function(a){let b=a.device_registry||{},c=Q(a);return Object.entries(b).map(([a,b])=>({id:a,device_id:a,name:b.name||`RoboPark ${a.slice(0,6)}`,device_role:b.device_role||"combined",character_id:b.character_id||null,character_name:c[b.character_id||""]||null,status:b.maintenance?"maintenance":"enrolled",connection_status:"offline",voice_engine:b.voice_engine||"robovoice",camera_url:b.camera_url||`/fed/media/robots/${encodeURIComponent(a)}/video_feed`,maintenance:!!b.maintenance,maintenance_note:b.maintenance_note||"",control:b.control||{},source:"local-device-registry"}))}(g),{headers:{"cache-control":"no-store","x-data-source":"local-device-registry"}})}if("robots"===c)return u.NextResponse.json(await Y(g));if("settings"===c)return z("/api/settings",d);if("knowledge-documents"===c)return u.NextResponse.json([]);if("knowledge/models"===c)return u.NextResponse.json({configured:!1,models:[]});if("sessions"===c)return"true"!==new URL(a.url).searchParams.get("active_only")?F?z("/api/sessions",d):u.NextResponse.json([]):u.NextResponse.json(await Z(g));if("sessions/stats"===c)return z("/api/sessions/stats",d);if("telemetry"===c){let a=await Y(g);return u.NextResponse.json({robots:a,totals:{online:a.filter(a=>"online"===a.status).length}})}if("history"===c)return u.NextResponse.json([]);if("servers"===c)return z("/api/servers",d);let h=c.match(/^characters\/([^/]+)\/deployment$/);if(h){let a=decodeURIComponent(h[1]),b=await X("/api/devices").catch(()=>[]),c=(Array.isArray(b)?b:[]).filter(b=>String(b.character_id||b.character_preset_id||"").toLowerCase()===a.toLowerCase()),d=a=>String(a.device_role||a.role||"combined").toLowerCase();return u.NextResponse.json({character_id:a,voice_vision_boxes:c.filter(a=>["voice_vision","combined"].includes(d(a))),motor_nodes:c.filter(a=>["motor","combined"].includes(d(a))),combined_nodes:c.filter(a=>"combined"===d(a)),control_nodes:c,source:"frontend-compatibility-fallback"},{headers:{"cache-control":"no-store"}})}let i=c.match(/^robots\/([^/]+)\/pipeline-status$/);if(i){let a=decodeURIComponent(i[1]),b=(await W(g)).find(b=>b.id===a||b.name===a);return b?u.NextResponse.json({robot_id:b.id,readiness_code:b.readiness_code,readiness_message:b.readiness_message,current_stage:b.current_stage,camera:b.camera,microphone:b.microphone,voice_worker:b.voice_worker,hardware:b.hardware,effective_config:b.effective_config}):u.NextResponse.json({error:"Robot not found"},{status:404})}let j=c.match(/^robots\/([^/]+)\/voice-config$/);if(j){let a=decodeURIComponent(j[1]),b=g.device_registry?.[a];if(!b)return u.NextResponse.json({error:"Robot is not registered"},{status:404});let c=b.voice_stack_id||b.character_id||"",d=(g.characters||[]).find(a=>a.id===c);if(!d)return u.NextResponse.json({error:"Robot has no valid voice stack assignment"},{status:409});let e=V(d,g);return u.NextResponse.json({character_id:b.character_id||null,character_name:Q(g)[b.character_id||""]||null,voice_stack_id:c,voice_stack:e})}return"voice-stacks"===c||"character-presets"===c?u.NextResponse.json([]):u.NextResponse.json({error:"V2 endpoint is not implemented",path:c},{status:501})}async function _(a,b){let c=(await b.params).path.join("/");if("character-presets"===c)try{let b=await (0,x.U)(),c=await a.json(),d=T(c.id||c.name),e=structuredClone(b.characters||[]);if(e.some(a=>a.id===d))return u.NextResponse.json({error:"Character ID already exists"},{status:409});let f={id:d,name:String(c.name||d).trim()};return U(f,c),e.push(f),await S(e),u.NextResponse.json(f,{status:201})}catch(a){return u.NextResponse.json({error:a instanceof Error?a.message:"Character creation failed"},{status:400})}if("sessions/voice-call"===c&&!F)return N(a);let d=c.match(/^sessions\/(browser-test-[a-f0-9]+)\/(joined|transcript|end|heartbeat)$/);if(d){let b=d[1],c=d[2];if("heartbeat"===c)return u.NextResponse.json({status:(0,B.i$)(b)?"ok":"expired",session_id:b});if("joined"===c){let c=await a.json().catch(()=>({}));return(0,B.i$)(b,{connected:!0,conversation_id:"string"==typeof c.conversation_id?c.conversation_id:null}),u.NextResponse.json({status:"ok",session_id:b})}if("end"===c)return(0,B.cJ)(b),await M({source:"robovoice",engine:"robovoice",engine_conversation_id:b,ended_at:new Date().toISOString(),labels:["browser-call"],turns:[]}),P(b);if("transcript"===c){(0,B.i$)(b);let c=await a.json().catch(()=>({})),d="string"==typeof c.text?c.text.trim():"";d&&await M({source:"robovoice",engine:"robovoice",engine_conversation_id:b,robot_id:"operator-call",started_at:"string"==typeof c.timestamp?c.timestamp:new Date().toISOString(),labels:["browser-call"],turns:[{role:"string"==typeof c.role?c.role:"user",text:d,sequence:"number"==typeof c.sequence?c.sequence:void 0,timestamp:"string"==typeof c.timestamp?c.timestamp:new Date().toISOString(),source_id:`${b}:${"number"==typeof c.sequence?c.sequence:crypto.randomUUID()}`}]})}return u.NextResponse.json({status:"ok",session_id:d[1]})}if(!("sessions/voice-call"===c||/^sessions\/[^/]+\/(joined|transcript|end)$/.test(c)||/^robots\/[^/]+\/end-session$/.test(c)))return u.NextResponse.json({error:"Canary control actions are read-only"},{status:409});if(!F)return u.NextResponse.json({error:"V2 scheduler is not configured"},{status:503});let e=await a.text();try{let b=new URL(a.url),d=`${F.replace(/\/$/,"")}/api/${c}${b.search}`,f={"content-type":a.headers.get("content-type")||"application/json"},g=a.headers.get("x-robopark-session-token");g&&(f["x-robopark-session-token"]=g);let h=await fetch(d,{method:"POST",headers:f,body:e||void 0,signal:AbortSignal.timeout(12e3)});if("sessions/voice-call"===c&&(404===h.status||501===h.status))return O(JSON.parse(e||"{}"));return new Response(h.body,{status:h.status,headers:{"content-type":h.headers.get("content-type")||"application/json","x-data-source":"v2-scheduler"}})}catch(a){if("sessions/voice-call"===c)return O(JSON.parse(e||"{}"));return u.NextResponse.json({error:a instanceof Error?a.message:"V2 scheduler action failed"},{status:503})}}async function aa(a,b){let c=(await b.params).path.join("/");if("settings"===c){if(!F)return u.NextResponse.json({error:"Scheduler is not configured"},{status:503});try{let b=await fetch(`${F}/api/settings`,{method:"PUT",headers:{"content-type":a.headers.get("content-type")||"application/json"},body:await a.text(),signal:AbortSignal.timeout(12e3)});return new Response(b.body,{status:b.status,headers:{"content-type":b.headers.get("content-type")||"application/json","cache-control":"no-store","x-data-source":"scheduler"}})}catch(a){return u.NextResponse.json({error:a instanceof Error?a.message:"Scheduler settings update failed"},{status:503})}}let d=c.match(/^character-presets\/([^/]+)$/);if(d)try{let b=T(decodeURIComponent(d[1])),c=await (0,x.U)(),e=structuredClone(c.characters||[]),f=e.find(a=>a.id===b);if(!f)return u.NextResponse.json({error:"Character preset not found"},{status:404});let g=await a.json();return U(f,g),await S(e),u.NextResponse.json(f)}catch(a){return u.NextResponse.json({error:a instanceof Error?a.message:"Character update failed"},{status:400})}let e=c.match(/^robots\/([^/]+)\/voice-config$/);if(e){let b=decodeURIComponent(e[1]),c=await (0,x.U)(),d=c.device_registry?.[b];if(!d?.character_id)return u.NextResponse.json({error:"Robot has no assigned character"},{status:409});let f=await a.json(),g="string"==typeof f.voice_stack_id?f.voice_stack_id:d.voice_stack_id||d.character_id,h=structuredClone(c.characters||[]),i=h.find(a=>a.id===g),j=h.find(a=>a.id===d.character_id);if(!i||!j)return u.NextResponse.json({error:"Selected voice stack or robot character was not found"},{status:404});for(let a of["stt_provider","stt_model_groq","stt_model_speaches","stt_language","llm_provider","groq_model","ollama_model","llm_api_key","temperature","num_ctx","tts_provider","tts_voice_elevenlabs","tts_voice_kokoro","tts_language","max_turns","min_endpointing_delay","allow_interruptions","wake_word_enabled","wake_word_model","wake_word_threshold","wake_word_timeout"])void 0===i[a]?delete j[a]:j[a]=i[a];let k=await fetch(`${E.replace(/\/$/,"")}/settings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:{characters:h}})});if(!k.ok)return u.NextResponse.json({error:`Settings registry returned ${k.status}`},{status:502});await (0,A.i)(a=>{let c=a[b];if(!c)throw Error("DEVICE_NOT_REGISTERED");return a[b]={...c,voice_stack_id:g,updated_at:new Date().toISOString()},a[b]});let l=V(j,{...c,characters:h});return u.NextResponse.json({character_id:d.character_id,character_name:j.name,voice_stack_id:g,voice_stack:l})}let f=c.match(/^voice-stacks\/([^/]+)$/);if(!f)return u.NextResponse.json({error:"V2 control action is not implemented",path:c},{status:501});let g=decodeURIComponent(f[1]),h=await (0,x.U)(),i=structuredClone(h.characters||[]),j=i.find(a=>a.id===g);if(!j)return u.NextResponse.json({error:"Character voice stack not found"},{status:404});let k=await a.json();for(let a of("string"==typeof k.tts_provider&&(j.tts_provider=k.tts_provider),"string"==typeof k.tts_voice&&k.tts_voice&&("elevenlabs"===(k.tts_provider||j.tts_provider)?j.tts_voice_elevenlabs=k.tts_voice:j.tts_voice_kokoro=k.tts_voice),["stt_provider","stt_language","llm_provider","temperature","num_ctx","max_turns","min_endpointing_delay","allow_interruptions","wake_word_enabled","wake_word_model","wake_word_threshold","wake_word_timeout"]))void 0!==k[a]&&(j[a]=k[a]);"string"==typeof k.stt_model&&("groq"===(k.stt_provider||j.stt_provider||h.stt_provider)?j.stt_model_groq=k.stt_model:j.stt_model_speaches=k.stt_model),"string"==typeof k.llm_model&&("groq"===(k.llm_provider||j.llm_provider||h.llm_provider)?j.groq_model=k.llm_model:j.ollama_model=k.llm_model);let l=await fetch(`${E.replace(/\/$/,"")}/settings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:{characters:i}})});return l.ok?u.NextResponse.json(V(j,h)):u.NextResponse.json({error:`Settings registry returned ${l.status}`},{status:502})}async function ab(){return u.NextResponse.json({error:"Canary control actions are read-only"},{status:409})}async function ac(a,b){let c=(await b.params).path.join("/").match(/^character-presets\/([^/]+)$/);if(!c)return u.NextResponse.json({error:"Canary control actions are read-only"},{status:409});try{let a=T(decodeURIComponent(c[1])),b=await (0,x.U)(),d=Object.entries(b.device_registry||{}).find(([,b])=>b.character_id===a);if(d)return u.NextResponse.json({error:`Character is assigned to robot ${d[0]}`},{status:409});let e=structuredClone(b.characters||[]),f=e.filter(b=>b.id!==a);if(f.length===e.length)return u.NextResponse.json({error:"Character preset not found"},{status:404});return await S(f),u.NextResponse.json({ok:!0,id:a})}catch(a){return u.NextResponse.json({error:a instanceof Error?a.message:"Character deletion failed"},{status:400})}}let ad=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/robopark/api/[...path]/route",pathname:"/robopark/api/[...path]",filename:"route",bundlePath:"app/robopark/api/[...path]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\robopark\\api\\[...path]\\route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:ae,workUnitAsyncStorage:af,serverHooks:ag}=ad;function ah(){return(0,g.patchFetch)({workAsyncStorage:ae,workUnitAsyncStorage:af})}async function ai(a,b,c){var d;let e="/robopark/api/[...path]/route";"/index"===e&&(e="/");let g=await ad.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),E=!!(y.dynamicRoutes[D]||y.routes[C]);if(E&&!x){let a=!!y.routes[C],b=y.dynamicRoutes[D];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let F=null;!E||ad.isDev||x||(F="/index"===(F=C)?"/":F);let G=!0===ad.isDev||!E,H=E&&!G,I=a.method||"GET",J=(0,i.getTracer)(),K=J.getActiveScopeSpan(),L={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:G,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:H,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>ad.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},M=new k.NodeNextRequest(a),N=new k.NodeNextResponse(b),O=l.NextRequestAdapter.fromNodeNextRequest(M,(0,l.signalFromNodeResponse)(b));try{let d=async c=>ad.handle(O,L).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=J.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=`${I} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${I} ${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=L.renderOpts.fetchMetrics;let i=L.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=L.renderOpts.collectedTags;if(!E)return await (0,o.I)(M,N,e,L.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!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,d=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:L.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 ad.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:H,isOnDemandRevalidate:A})},z),b}},l=await ad.handleResponse({req:a,nextConfig:w,cacheKey:F,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,responseGenerator:k,waitUntil:c.waitUntil});if(!E)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")&&E||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)(M,N,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};K?await g(K):await J.withPropagatedContext(a.headers,()=>J.trace(m.BaseServerSpan.handleRequest,{spanName:`${I} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":I,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await ad.onRequestError(a,b,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:H,isOnDemandRevalidate:A})}),E)throw b;return await (0,o.I)(M,N,new Response(null,{status:500})),null}}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},24008:(a,b,c)=>{"use strict";function d(a,b){let c=a.device_registry||{},d=String(b.robotId||"").trim(),g=String(b.characterId||"").trim();for(let a of[d,g])if(a&&c[a])return f(a);for(let a of[d,g]){let b=e(a);if(!b)continue;let d=Object.entries(c).find(([,a])=>e(a?.character_id)===b);if(d)return f(d[0])}return f(d||g)}function e(a){return String(a||"").trim().toLowerCase().replace(/_heb$/,"")}function f(a){return a.trim().toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"")}c.d(b,{_1:()=>d})},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")},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=18427));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=1426,a.ids=[1426],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")},3787:(a,b,c)=>{"use strict";c.d(b,{i:()=>g});let d=(process.env.WEBHOOK_URL||"http://agent:8889").replace(/\/+$/,""),e=Promise.resolve();async function f(a){let b=await fetch(`${d}/settings`,{cache:"no-store",signal:AbortSignal.timeout(8e3)});if(!b.ok)throw Error(`Settings registry returned ${b.status}`);let c=await b.json(),e=structuredClone(c.settings?.device_registry||{}),f=await a(e),g=await fetch(`${d}/settings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:{device_registry:e}}),signal:AbortSignal.timeout(8e3)});if(!g.ok)throw Error(`Settings registry update returned ${g.status}`);return f}function g(a){let b=e.then(()=>f(a),()=>f(a));return e=b.then(()=>void 0,()=>void 0),b}},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")},24008:(a,b,c)=>{"use strict";function d(a,b){let c=a.device_registry||{},d=String(b.robotId||"").trim(),g=String(b.characterId||"").trim();for(let a of[d,g])if(a&&c[a])return f(a);for(let a of[d,g]){let b=e(a);if(!b)continue;let d=Object.entries(c).find(([,a])=>e(a?.character_id)===b);if(d)return f(d[0])}return f(d||g)}function e(a){return String(a||"").trim().toLowerCase().replace(/_heb$/,"")}function f(a){return a.trim().toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"")}c.d(b,{_1:()=>d})},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")},46131:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>ai,patchFetch:()=>ah,routeModule:()=>ad,serverHooks:()=>ag,workAsyncStorage:()=>ae,workUnitAsyncStorage:()=>af});var d={};c.r(d),c.d(d,{DELETE:()=>ac,GET:()=>$,PATCH:()=>ab,POST:()=>_,PUT:()=>aa,dynamic:()=>D});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(58553),x=c(99435);let y=(process.env.V2_SCHEDULER_URL||process.env.SCHEDULER_URL||"http://192.168.1.14:8080").replace(/\/+$/,"");async function z(a,b=""){let c=b&&!a.includes("?")?b.startsWith("?")?b:`?${b}`:"";try{let b=await fetch(`${y}${a}${c}`,{cache:"no-store",signal:AbortSignal.timeout(12e3)});return new Response(b.body,{status:b.status,headers:{"content-type":b.headers.get("content-type")||"application/json","cache-control":"no-store","x-data-source":"robot-scheduler"}})}catch(a){return u.NextResponse.json({error:a instanceof Error?a.message:"Scheduler unavailable"},{status:503})}}var A=c(3787),B=c(75310),C=c(24008);let D="force-dynamic",E=process.env.V2_AGENT_URL||process.env.WEBHOOK_URL||"http://agent:8889",F=(process.env.V2_SCHEDULER_URL||process.env.SCHEDULER_URL||"").replace(/\/+$/,""),G={barracuda:"agent_3001ky0z8wq0fht8xyb0tnkdksdz",jaguar:"agent_4201ky0zhwn4fz7bwy9767wt6g3t",magnus:"agent_5601ky0ymahreyft2xz9xht0dj4v",palladin:"agent_0001ky7mxx2ce4pseeyn6wrtnrz8",panda:"agent_4701ky0xkz89f8t993tmg5t8t23r",titan:"agent_2501ky0x8t39fh5ske8tz3148b26",vixen:"agent_6701ky0nfavke0ysrpj5v38m1cry",volt:"agent_4101ky97n2pze4p8ax3dgb3hbc3c"},H=[{id:"barracuda",name:"Barracuda",img:"/static/robopark/barracuda.png"},{id:"jaguar",name:"Jaguar",img:"/static/robopark/jaguar.png"},{id:"magnus",name:"Magnus",img:"/static/robopark/magnus.jpg"},{id:"palladin",name:"Paladin",img:"/static/robopark/titan.jpg"},{id:"panda",name:"RoboPanda",img:"/static/robopark/panda.png"},{id:"titan",name:"Titan",img:"/static/robopark/titan.jpg"},{id:"vixen",name:"RoboVixen",img:"/static/robopark/bmw.png"},{id:"volt",name:"Volt",img:"/static/robopark/volt.png"}];function I(a){return String(a||"").toLowerCase().replace(/\bvoice\b/g,"").replace(/^robo/,"").replace(/[^a-z0-9]/g,"").replace(/^paladin$/,"palladin").replace(/^ronin$/,"panda")}function J(a){let b=[a.id,a.display_name,a.name].map(I);return a.elevenlabs_agent_id||b.map(a=>G[a]).find(Boolean)||null}function K(a,b=[]){let c=[...b,...a.characters||[]],d=new Set;return[...H.map(a=>{let b=new Set([I(a.id),I(a.name)]),e=c.find(a=>!d.has(a)&&[a.id,a.name,a.display_name].some(a=>b.has(I(a))));e&&d.add(e);let f={...a,...e||{}};return{...f,canonical_id:a.id,display_name:f.display_name||a.name,voice_stack_id:f.voice_stack_id||f.id,img:f.img||a.img,elevenlabs_agent_id:J(f)||G[a.id],binding_source:e?.elevenlabs_agent_id?"scheduler":"verified-session-ledger"}}),...c.filter(a=>!d.has(a)).map(a=>({...a,display_name:a.display_name||a.name,voice_stack_id:a.voice_stack_id||a.id,elevenlabs_agent_id:J(a),binding_source:a.elevenlabs_agent_id?"scheduler":J(a)?"verified-session-ledger":null}))]}async function L(a){try{let b=await fetch(`${F}/api/character-presets`,{cache:"no-store",signal:AbortSignal.timeout(3e3)});if(!b.ok)throw Error(`scheduler returned ${b.status}`);let c=await b.json(),d=Array.isArray(c)?c:Array.isArray(c?.presets)?c.presets:[];return u.NextResponse.json(K(a,d),{headers:{"cache-control":"no-store","x-data-source":"scheduler+durable-character-catalog"}})}catch{return u.NextResponse.json(K(a),{headers:{"cache-control":"no-store","x-data-source":"durable-character-catalog"}})}}async function M(a){let b=process.env.ROBOPARK_DEVICE_TOKEN||process.env.ROBOPARK_FLEET_TOKEN;if(F&&b)try{await fetch(`${F}/api/transcript-ledger/ingest`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify(a),signal:AbortSignal.timeout(8e3)})}catch{}}async function N(a){let{LIVEKIT_API_KEY:b,LIVEKIT_API_SECRET:c}=process.env;if(!b||!c)return u.NextResponse.json({error:"LiveKit browser-call signing is unavailable"},{status:503});let d=await a.json().catch(()=>({})),e="string"==typeof d.character_preset_id?d.character_preset_id:"",f=await (0,x.U)(),g=(f.characters||[]).find(a=>a.id===e);if(!g)return u.NextResponse.json({error:"Character preset was not found"},{status:404});let h=crypto.randomUUID().replaceAll("-",""),i=`browser-test-${h}`,j=`operator:${h}`,k=crypto.randomUUID().replaceAll("-",""),l=new v.mk(b,c,{identity:j,name:"string"==typeof d.client_name&&d.client_name.trim()?d.client_name.trim().slice(0,80):"RoboPark Operator",metadata:JSON.stringify({character_id:e,voice_stack_id:"string"==typeof d.voice_stack_id?d.voice_stack_id:e,participant_role:"operator_test"}),ttl:"30m"});return l.addGrant({room:i,roomJoin:!0,canPublish:!0,canPublishData:!0,canSubscribe:!0}),l.roomConfig=new w.w7_({emptyTimeout:30,departureTimeout:2,agents:[new w.JsN({agentName:"",metadata:JSON.stringify({mode:"browser_test"})})]}),await M({source:"robovoice",engine:"robovoice",engine_conversation_id:i,robot_id:"operator-call",character_id:e,model_provider:g.llm_provider||f.llm_provider,model_name:g.ollama_model||g.groq_model||f.ollama_model||f.groq_model,started_at:new Date().toISOString(),labels:["browser-call"],metadata:{room_name:i,voice_stack_id:"string"==typeof d.voice_stack_id?d.voice_stack_id:e},turns:[]}),(0,B.Qy)({session_id:i,robot_id:null,character_id:e,character_name:g.name||e,engine:"robovoice",room_name:i,source:"browser-test",started_at:new Date().toISOString()}),u.NextResponse.json({session_id:i,event_token:k,server_url:function(a){let b=process.env.LIVEKIT_PUBLIC_URL||process.env.NEXT_PUBLIC_LIVEKIT_URL;if(b&&"auto"!==b)return b;let c=new URL(a.url);return`${"https:"===c.protocol?"wss":"ws"}://${c.host}`}(a),token:await l.toJwt(),room_name:i,character:{id:g.id,name:g.name}},{headers:{"Cache-Control":"no-store"}})}async function O(a){let b,c=String(a.agent_id||"").trim();if(!/^agent_[A-Za-z0-9]{8,80}$/.test(c))return u.NextResponse.json({error:"A valid ElevenLabs agent binding is required"},{status:400});try{let d="string"==typeof a.branch_id&&/^agtbrch_[A-Za-z0-9]+$/.test(a.branch_id)?`?branch_id=${encodeURIComponent(a.branch_id)}`:"";b=await fetch(`${E.replace(/\/$/,"")}/elevenlabs/agents/${encodeURIComponent(c)}/signed-url${d}`,{cache:"no-store",signal:AbortSignal.timeout(2e4)})}catch(c){let a=c instanceof Error?c.name:"",b="TimeoutError"===a||"AbortError"===a;return u.NextResponse.json({error:b?"Voice signing timed out while contacting the agent service":`Voice signing service is unreachable: ${c instanceof Error?c.message:String(c)}`,retryable:!0},{status:b?504:502,headers:{"cache-control":"no-store"}})}let d=await b.json().catch(()=>({}));if(!b.ok||!d.signed_url)return u.NextResponse.json({error:d.detail||d.error||`ElevenLabs signing returned ${b.status}`},{status:b.status>=400?b.status:502});let e=`browser-test-${crypto.randomUUID().replaceAll("-","")}`,f=await (0,x.U)(),g=a.robot_id?(0,C._1)(f,{robotId:a.robot_id,characterId:a.character_preset_id}):null;return(0,B.Qy)({session_id:e,robot_id:g,character_id:a.character_preset_id||null,character_name:Q(f)[a.character_preset_id||""]||a.character_preset_id||null,engine:"elevenlabs",room_name:g?`robopark-${g}`:null,source:"character-link",started_at:new Date().toISOString()}),u.NextResponse.json({session_id:e,event_token:crypto.randomUUID().replaceAll("-",""),signed_url:d.signed_url,agent_id:c,branch_id:a.branch_id||null,robot_id:a.robot_id||null,robot_video_ref:a.robot_id||null,character_id:a.character_preset_id||null,source:"frontend-compatibility-fallback"},{headers:{"cache-control":"no-store"}})}async function P(a){if(!a.startsWith("browser-test-"))return u.NextResponse.json({error:"Invalid browser-call session"},{status:400});let{LIVEKIT_URL:b,LIVEKIT_API_KEY:c,LIVEKIT_API_SECRET:d}=process.env;if(b&&c&&d){let e=new v.iz(b.replace(/^ws/,"http"),c,d);await e.deleteRoom(a).catch(()=>void 0)}return u.NextResponse.json({status:"ended",session_id:a})}function Q(a){return Object.fromEntries((a.characters||[]).map(a=>[a.id,a.name]))}let R=["name","description","system_prompt","voice_stack_id","motors","nx","ny","img","elevenlabs_agent_id","elevenlabs_first_message","tts_voice_elevenlabs","prompt_editor_model","prompt_editor_precision"];async function S(a){let b=await fetch(`${E.replace(/\/$/,"")}/settings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:{characters:a}}),signal:AbortSignal.timeout(12e3)});if(!b.ok)throw Error(`Settings registry returned ${b.status}`)}function T(a){let b="string"==typeof a?a.trim().toLowerCase():"";if(!/^[a-z0-9][a-z0-9_-]{0,47}$/.test(b))throw Error("Character ID must use lowercase letters, numbers, hyphens, or underscores");return b}function U(a,b){for(let c of R)void 0!==b[c]&&(a[c]=b[c])}function V(a,b){let c=a.stt_provider||b.stt_provider||"speaches",d="groq"===c?a.stt_model_groq||b.stt_model_groq||"whisper-large-v3-turbo":a.stt_model_speaches||b.stt_model_speaches||"Systran/faster-whisper-small",e=a.llm_provider||b.llm_provider||"ollama",f="groq"===e?a.groq_model||b.groq_model||"":a.ollama_model||b.ollama_model||"";return{...a,name:`${a.name} voice`,stt_provider:c,stt_model:d,stt_language:a.stt_language||b.stt_language||"auto",llm_provider:e,llm_model:f,tts_provider:a.tts_provider||"configured default",tts_voice:a.tts_voice_elevenlabs||a.tts_voice_kokoro||"",voice_id:a.tts_voice_elevenlabs||a.tts_voice_kokoro||""}}async function W(a){let{LIVEKIT_URL:b,LIVEKIT_API_KEY:c,LIVEKIT_API_SECRET:d}=process.env;if(!b||!c||!d)return[];let e=new v.iz(b.replace(/^ws/,"http"),c,d),f=a.device_registry||{},g=Q(a),h=(await e.listRooms()).filter(a=>a.name.startsWith("robopark-")),i=new Map(await Promise.all(h.map(async a=>{let b=a.name.slice(9),c=await e.listParticipants(a.name).catch(()=>[]),d=c.find(a=>a.identity.startsWith(`robopanda_${b}_`)),f=c.find(a=>a.identity.startsWith("agent-")||4===Number(a.kind)),g=!!d?.tracks?.some(a=>2===Number(a.source)&&!a.muted),h=!!d?.tracks?.some(a=>1===Number(a.source)&&!a.muted);return[b,{room:a,physical:d,agent:f,microphone:g,camera:h}]}))),j=(0,B.f6)();return[...Object.keys(f).map(b=>{let c=i.get(b),d=c?.room,e=j.get(b)||null,h=!!e,k=g[f[b]?.character_id||""],l=!!c?.physical,m=!!c?.microphone,n=!!c?.camera,o=!!c?.agent,p=!!f[b]?.maintenance,q=f[b]?.voice_engine==="elevenlabs"?"elevenlabs":"robovoice",r=l&&(!m||!n||!o),s=a.stt_provider||"speaches",t="groq"===s?a.stt_model_groq:a.stt_model_speaches;return{id:b,robot_id:b,name:k||f[b]?.name||`RoboPark ${b.slice(0,6)}`,character_id:f[b]?.character_id||null,character_name:k||null,voice_engine:q,elevenlabs_agent_id:f[b]?.elevenlabs_agent_id||null,elevenlabs_configured:!!f[b]?.elevenlabs_agent_id,conversation_name:f[b]?.conversation_name||b,camera_url:f[b]?.camera_url||`/fed/media/robots/${encodeURIComponent(b)}/video_feed`,maintenance:p,maintenance_note:f[b]?.maintenance_note||"",status:p?"maintenance":l?r?"degraded":"online":h?"online":"offline",connection_status:l||h?"online":"offline",readiness_code:p?"maintenance":l?r?"degraded":"in_session":h?"in_session":"offline",readiness_message:p?f[b]?.maintenance_note||"Marked for maintenance":!l&&h?"Managed character call is active on this device":l?m?n?o?"Physical kiosk, media and voice worker connected":"Voice worker is not attached":"Camera is not publishing":"Microphone is not publishing":"No physical kiosk participant",room_name:d?.name||`robopark-${b}`,active_session:l||h,monitoring_session:h&&!l,in_session:l&&o||h,call_source:e?.source||null,call_started_at:e?.started_at||null,camera:n,microphone:m,voice_worker:o,hardware:f[b]?.hardware||null,effective_config:{character_id:f[b]?.character_id||null,character_name:k||null,voice_engine:q,elevenlabs_agent_id:f[b]?.elevenlabs_agent_id||null,stt_provider:s,stt_model:t,stt_language:a.stt_language||"auto",hardware_selection:f[b]?.hardware?.desired||f[b]?.hardware?.observed?.selected||null},current_session_id:l?d?.sid:e?e.session_id:null,current_stage:{stage:p?"maintenance":!l&&h?"conversation":l?m?o?"stt_listening":"voice_worker":"microphone_published":"offline",status:p||r?"blocked":l||h?"active":"waiting",label:p?"Maintenance mode":!l&&h?"Managed character call active":l?m?n?o?"Listening for visitor speech":"Waiting for voice worker":"Camera blocked":"Microphone blocked":"Physical kiosk offline"}}}),...Array.from(i.entries()).filter(([a])=>!f[a]).map(([a,b])=>({id:a,robot_id:a,name:`RoboPark ${a.slice(0,6)}`,status:b.physical?"unregistered":"ghost",room_name:b.room.name,active_session:!!b.physical,camera:b.camera,microphone:b.microphone}))]}async function X(a){if(!F)return null;let b=await fetch(`${F}${a}`,{cache:"no-store",signal:AbortSignal.timeout(15e3)});if(!b.ok)throw Error(`Scheduler ${a} returned ${b.status}`);return b.json()}async function Y(a){let[b,c,d]=await Promise.all([W(a).catch(()=>[]),X("/api/devices").catch(()=>[]),X("/api/sessions?active_only=true&limit=200").catch(()=>[])]),e=new Map;for(let a of Array.isArray(c)?c:[]){let b=String(a.id||a.device_id||a.robot_id||"");b&&e.set(b,{...a,id:b,robot_id:b})}for(let a of b){let b=String(a.id||a.robot_id||"");b&&e.set(b,{...e.get(b)||{},...a,id:b,robot_id:b})}for(let a of Array.isArray(d)?d:[]){let b=String(a.robot_id||"");if(!b||"operator-call"===b)continue;let c=e.get(b)||{id:b,robot_id:b,name:a.robot_name||a.character_name||b};e.set(b,{...c,character_id:a.character_id||c.character_id||null,character_name:a.character_name||c.character_name||null,voice_engine:a.engine||c.voice_engine||"elevenlabs",status:"online",connection_status:"online",readiness_code:"in_session",readiness_message:"Managed character call is active",active_session:!0,in_session:!0,monitoring_session:!0,current_session_id:a.session_id||a.id,room_name:a.room_name||c.room_name,current_stage:{stage:"conversation",status:"active",label:"Managed character call active"},call_source:a.source||"control_center",last_activity_at:a.last_activity_at||c.last_activity_at})}return Array.from(e.values())}async function Z(a){let b=await Y(a),c=b.filter(a=>a.active_session).map(a=>({id:a.current_session_id||a.room_name,session_id:a.current_session_id||a.room_name,robot_id:a.id,robot_name:a.name,character_id:a.character_id,character_name:a.character_name,room_name:a.room_name,started_at:a.call_started_at||a.started_at||new Date().toISOString(),status:"active",voice_engine:a.voice_engine||"robovoice",camera_url:a.camera_url,source:a.call_source||("elevenlabs"===a.voice_engine?"elevenlabs-direct":"livekit-v2")})),d=new Set(c.map(a=>a.session_id));for(let a of(0,B.i0)())!d.has(a.session_id)&&(a.robot_id&&b.some(b=>b.id===a.robot_id&&b.active_session)||c.push({id:a.session_id,session_id:a.session_id,robot_id:a.robot_id||"operator-call",robot_name:a.character_name||a.robot_id||"Operator call",character_id:a.character_id,character_name:a.character_name,room_name:a.room_name||a.session_id,started_at:a.started_at,status:"active",voice_engine:a.engine,camera_url:a.robot_id?`/fed/media/robots/${encodeURIComponent(a.robot_id)}/video_feed`:null,source:a.source}));return c}async function $(a,b){let c=(await b.params).path.join("/"),d=new URL(a.url).search;if("character-presets"===c){let a=await (0,x.U)();return F?L(a):u.NextResponse.json(K(a),{headers:{"cache-control":"no-store","x-data-source":"durable-character-catalog"}})}if("elevenlabs/agents"===c)return u.NextResponse.json({agents:H.map(a=>({agent_id:G[a.id],name:a.name,character_id:a.id})),source:"verified-session-ledger"},{headers:{"cache-control":"no-store"}});let e=c.match(/^character-presets\/([^/]+)$/);if(e){let a=decodeURIComponent(e[1]),b=K(await (0,x.U)()).find(b=>b.id===a||b.canonical_id===a||I(b.id)===I(a)||I(b.display_name||b.name)===I(a));return b?u.NextResponse.json(b,{headers:{"cache-control":"no-store","x-data-source":"durable-character-catalog"}}):u.NextResponse.json({error:"Character preset not found"},{status:404})}let f=new Set(["voice-stacks","settings","sessions/stats","history","servers"]);if(F&&(f.has(c)||c.startsWith("voices/")))return z(`/api/${c}`,d);let g=await (0,x.U)();if("voice-stacks"===c)return u.NextResponse.json((g.characters||[]).map(a=>({...a,display_name:a.name,voice_stack_id:a.voice_stack_id||a.id,img:a.img||`/static/robopark/${"robopanda"===a.id?"panda":a.name.toLowerCase().includes("vixen")?"bmw":a.id}.png`})).map(a=>V(a,g)));if(c.startsWith("voices/")){let a=c.slice(7);try{let b=await fetch(`${E.replace(/\/$/,"")}/voices?provider=${encodeURIComponent(a)}`,{cache:"no-store",signal:AbortSignal.timeout(12e3)});if(!b.ok)throw Error(`voice provider returned ${b.status}`);let c=await b.json(),d=Array.isArray(c)?c:c.voices||[];return u.NextResponse.json({provider:a,source:"elevenlabs"===a?"elevenlabs-account-live":"production-provider-live",count:d.length,voices:d})}catch(b){return u.NextResponse.json({provider:a,source:"provider-error",count:0,voices:[],warning:b instanceof Error?b.message:"Voice catalog unavailable"},{status:502})}}if("devices"===c){if(F){let a=await z("/api/devices",d);if(a.ok)return a}return u.NextResponse.json(function(a){let b=a.device_registry||{},c=Q(a);return Object.entries(b).map(([a,b])=>({id:a,device_id:a,name:b.name||`RoboPark ${a.slice(0,6)}`,device_role:b.device_role||"combined",character_id:b.character_id||null,character_name:c[b.character_id||""]||null,status:b.maintenance?"maintenance":"enrolled",connection_status:"offline",voice_engine:b.voice_engine||"robovoice",camera_url:b.camera_url||`/fed/media/robots/${encodeURIComponent(a)}/video_feed`,maintenance:!!b.maintenance,maintenance_note:b.maintenance_note||"",control:b.control||{},source:"local-device-registry"}))}(g),{headers:{"cache-control":"no-store","x-data-source":"local-device-registry"}})}if("robots"===c)return u.NextResponse.json(await Y(g));if("settings"===c)return z("/api/settings",d);if("knowledge-documents"===c)return u.NextResponse.json([]);if("knowledge/models"===c)return u.NextResponse.json({configured:!1,models:[]});if("sessions"===c)return"true"!==new URL(a.url).searchParams.get("active_only")?F?z("/api/sessions",d):u.NextResponse.json([]):u.NextResponse.json(await Z(g));if("sessions/stats"===c)return z("/api/sessions/stats",d);if("telemetry"===c){let a=await Y(g);return u.NextResponse.json({robots:a,totals:{online:a.filter(a=>"online"===a.status).length}})}if("history"===c)return u.NextResponse.json([]);if("servers"===c)return z("/api/servers",d);let h=c.match(/^characters\/([^/]+)\/deployment$/);if(h){let a=decodeURIComponent(h[1]),b=await X("/api/devices").catch(()=>[]),c=(Array.isArray(b)?b:[]).filter(b=>String(b.character_id||b.character_preset_id||"").toLowerCase()===a.toLowerCase()),d=a=>String(a.device_role||a.role||"combined").toLowerCase();return u.NextResponse.json({character_id:a,voice_vision_boxes:c.filter(a=>["voice_vision","combined"].includes(d(a))),motor_nodes:c.filter(a=>["motor","combined"].includes(d(a))),combined_nodes:c.filter(a=>"combined"===d(a)),control_nodes:c,source:"frontend-compatibility-fallback"},{headers:{"cache-control":"no-store"}})}let i=c.match(/^robots\/([^/]+)\/pipeline-status$/);if(i){let a=decodeURIComponent(i[1]),b=(await W(g)).find(b=>b.id===a||b.name===a);return b?u.NextResponse.json({robot_id:b.id,readiness_code:b.readiness_code,readiness_message:b.readiness_message,current_stage:b.current_stage,camera:b.camera,microphone:b.microphone,voice_worker:b.voice_worker,hardware:b.hardware,effective_config:b.effective_config}):u.NextResponse.json({error:"Robot not found"},{status:404})}let j=c.match(/^robots\/([^/]+)\/voice-config$/);if(j){let a=decodeURIComponent(j[1]),b=g.device_registry?.[a];if(!b)return u.NextResponse.json({error:"Robot is not registered"},{status:404});let c=b.voice_stack_id||b.character_id||"",d=(g.characters||[]).find(a=>a.id===c);if(!d)return u.NextResponse.json({error:"Robot has no valid voice stack assignment"},{status:409});let e=V(d,g);return u.NextResponse.json({character_id:b.character_id||null,character_name:Q(g)[b.character_id||""]||null,voice_stack_id:c,voice_stack:e})}return"voice-stacks"===c||"character-presets"===c?u.NextResponse.json([]):u.NextResponse.json({error:"V2 endpoint is not implemented",path:c},{status:501})}async function _(a,b){let c=(await b.params).path.join("/");if("character-presets"===c)try{let b=await (0,x.U)(),c=await a.json(),d=T(c.id||c.name),e=structuredClone(b.characters||[]);if(e.some(a=>a.id===d))return u.NextResponse.json({error:"Character ID already exists"},{status:409});let f={id:d,name:String(c.name||d).trim()};return U(f,c),e.push(f),await S(e),u.NextResponse.json(f,{status:201})}catch(a){return u.NextResponse.json({error:a instanceof Error?a.message:"Character creation failed"},{status:400})}if("sessions/voice-call"===c&&!F)return N(a);let d=c.match(/^sessions\/(browser-test-[a-f0-9]+)\/(joined|transcript|end|heartbeat)$/);if(d){let b=d[1],c=d[2];if("heartbeat"===c)return u.NextResponse.json({status:(0,B.i$)(b)?"ok":"expired",session_id:b});if("joined"===c){let c=await a.json().catch(()=>({}));return(0,B.i$)(b,{connected:!0,conversation_id:"string"==typeof c.conversation_id?c.conversation_id:null}),u.NextResponse.json({status:"ok",session_id:b})}if("end"===c)return(0,B.cJ)(b),await M({source:"robovoice",engine:"robovoice",engine_conversation_id:b,ended_at:new Date().toISOString(),labels:["browser-call"],turns:[]}),P(b);if("transcript"===c){(0,B.i$)(b);let c=await a.json().catch(()=>({})),d="string"==typeof c.text?c.text.trim():"";d&&await M({source:"robovoice",engine:"robovoice",engine_conversation_id:b,robot_id:"operator-call",started_at:"string"==typeof c.timestamp?c.timestamp:new Date().toISOString(),labels:["browser-call"],turns:[{role:"string"==typeof c.role?c.role:"user",text:d,sequence:"number"==typeof c.sequence?c.sequence:void 0,timestamp:"string"==typeof c.timestamp?c.timestamp:new Date().toISOString(),source_id:`${b}:${"number"==typeof c.sequence?c.sequence:crypto.randomUUID()}`}]})}return u.NextResponse.json({status:"ok",session_id:d[1]})}if(!("sessions/voice-call"===c||/^sessions\/[^/]+\/(joined|transcript|end)$/.test(c)||/^robots\/[^/]+\/end-session$/.test(c)))return u.NextResponse.json({error:"Canary control actions are read-only"},{status:409});if(!F)return u.NextResponse.json({error:"V2 scheduler is not configured"},{status:503});let e=await a.text();try{let b=new URL(a.url),d=`${F.replace(/\/$/,"")}/api/${c}${b.search}`,f={"content-type":a.headers.get("content-type")||"application/json"},g=a.headers.get("x-robopark-session-token");g&&(f["x-robopark-session-token"]=g);let h=await fetch(d,{method:"POST",headers:f,body:e||void 0,signal:AbortSignal.timeout(12e3)});if("sessions/voice-call"===c&&(404===h.status||501===h.status))return O(JSON.parse(e||"{}"));return new Response(h.body,{status:h.status,headers:{"content-type":h.headers.get("content-type")||"application/json","x-data-source":"v2-scheduler"}})}catch(a){if("sessions/voice-call"===c)return O(JSON.parse(e||"{}"));return u.NextResponse.json({error:a instanceof Error?a.message:"V2 scheduler action failed"},{status:503})}}async function aa(a,b){let c=(await b.params).path.join("/");if("settings"===c){if(!F)return u.NextResponse.json({error:"Scheduler is not configured"},{status:503});try{let b=await fetch(`${F}/api/settings`,{method:"PUT",headers:{"content-type":a.headers.get("content-type")||"application/json"},body:await a.text(),signal:AbortSignal.timeout(12e3)});return new Response(b.body,{status:b.status,headers:{"content-type":b.headers.get("content-type")||"application/json","cache-control":"no-store","x-data-source":"scheduler"}})}catch(a){return u.NextResponse.json({error:a instanceof Error?a.message:"Scheduler settings update failed"},{status:503})}}let d=c.match(/^character-presets\/([^/]+)$/);if(d)try{let b=T(decodeURIComponent(d[1])),c=await (0,x.U)(),e=structuredClone(c.characters||[]),f=e.find(a=>a.id===b);if(!f)return u.NextResponse.json({error:"Character preset not found"},{status:404});let g=await a.json();return U(f,g),await S(e),u.NextResponse.json(f)}catch(a){return u.NextResponse.json({error:a instanceof Error?a.message:"Character update failed"},{status:400})}let e=c.match(/^robots\/([^/]+)\/voice-config$/);if(e){let b=decodeURIComponent(e[1]),c=await (0,x.U)(),d=c.device_registry?.[b];if(!d?.character_id)return u.NextResponse.json({error:"Robot has no assigned character"},{status:409});let f=await a.json(),g="string"==typeof f.voice_stack_id?f.voice_stack_id:d.voice_stack_id||d.character_id,h=structuredClone(c.characters||[]),i=h.find(a=>a.id===g),j=h.find(a=>a.id===d.character_id);if(!i||!j)return u.NextResponse.json({error:"Selected voice stack or robot character was not found"},{status:404});for(let a of["stt_provider","stt_model_groq","stt_model_speaches","stt_language","llm_provider","groq_model","ollama_model","llm_api_key","temperature","num_ctx","tts_provider","tts_voice_elevenlabs","tts_voice_kokoro","tts_language","max_turns","min_endpointing_delay","allow_interruptions","wake_word_enabled","wake_word_model","wake_word_threshold","wake_word_timeout"])void 0===i[a]?delete j[a]:j[a]=i[a];let k=await fetch(`${E.replace(/\/$/,"")}/settings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:{characters:h}})});if(!k.ok)return u.NextResponse.json({error:`Settings registry returned ${k.status}`},{status:502});await (0,A.i)(a=>{let c=a[b];if(!c)throw Error("DEVICE_NOT_REGISTERED");return a[b]={...c,voice_stack_id:g,updated_at:new Date().toISOString()},a[b]});let l=V(j,{...c,characters:h});return u.NextResponse.json({character_id:d.character_id,character_name:j.name,voice_stack_id:g,voice_stack:l})}let f=c.match(/^voice-stacks\/([^/]+)$/);if(!f)return u.NextResponse.json({error:"V2 control action is not implemented",path:c},{status:501});let g=decodeURIComponent(f[1]),h=await (0,x.U)(),i=structuredClone(h.characters||[]),j=i.find(a=>a.id===g);if(!j)return u.NextResponse.json({error:"Character voice stack not found"},{status:404});let k=await a.json();for(let a of("string"==typeof k.tts_provider&&(j.tts_provider=k.tts_provider),"string"==typeof k.tts_voice&&k.tts_voice&&("elevenlabs"===(k.tts_provider||j.tts_provider)?j.tts_voice_elevenlabs=k.tts_voice:j.tts_voice_kokoro=k.tts_voice),["stt_provider","stt_language","llm_provider","temperature","num_ctx","max_turns","min_endpointing_delay","allow_interruptions","wake_word_enabled","wake_word_model","wake_word_threshold","wake_word_timeout"]))void 0!==k[a]&&(j[a]=k[a]);"string"==typeof k.stt_model&&("groq"===(k.stt_provider||j.stt_provider||h.stt_provider)?j.stt_model_groq=k.stt_model:j.stt_model_speaches=k.stt_model),"string"==typeof k.llm_model&&("groq"===(k.llm_provider||j.llm_provider||h.llm_provider)?j.groq_model=k.llm_model:j.ollama_model=k.llm_model);let l=await fetch(`${E.replace(/\/$/,"")}/settings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:{characters:i}})});return l.ok?u.NextResponse.json(V(j,h)):u.NextResponse.json({error:`Settings registry returned ${l.status}`},{status:502})}async function ab(){return u.NextResponse.json({error:"Canary control actions are read-only"},{status:409})}async function ac(a,b){let c=(await b.params).path.join("/").match(/^character-presets\/([^/]+)$/);if(!c)return u.NextResponse.json({error:"Canary control actions are read-only"},{status:409});try{let a=T(decodeURIComponent(c[1])),b=await (0,x.U)(),d=Object.entries(b.device_registry||{}).find(([,b])=>b.character_id===a);if(d)return u.NextResponse.json({error:`Character is assigned to robot ${d[0]}`},{status:409});let e=structuredClone(b.characters||[]),f=e.filter(b=>b.id!==a);if(f.length===e.length)return u.NextResponse.json({error:"Character preset not found"},{status:404});return await S(f),u.NextResponse.json({ok:!0,id:a})}catch(a){return u.NextResponse.json({error:a instanceof Error?a.message:"Character deletion failed"},{status:400})}}let ad=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/robopark/api/[...path]/route",pathname:"/robopark/api/[...path]",filename:"route",bundlePath:"app/robopark/api/[...path]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\robopark\\api\\[...path]\\route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:ae,workUnitAsyncStorage:af,serverHooks:ag}=ad;function ah(){return(0,g.patchFetch)({workAsyncStorage:ae,workUnitAsyncStorage:af})}async function ai(a,b,c){var d;let e="/robopark/api/[...path]/route";"/index"===e&&(e="/");let g=await ad.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),E=!!(y.dynamicRoutes[D]||y.routes[C]);if(E&&!x){let a=!!y.routes[C],b=y.dynamicRoutes[D];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let F=null;!E||ad.isDev||x||(F="/index"===(F=C)?"/":F);let G=!0===ad.isDev||!E,H=E&&!G,I=a.method||"GET",J=(0,i.getTracer)(),K=J.getActiveScopeSpan(),L={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:G,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:H,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>ad.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},M=new k.NodeNextRequest(a),N=new k.NodeNextResponse(b),O=l.NextRequestAdapter.fromNodeNextRequest(M,(0,l.signalFromNodeResponse)(b));try{let d=async c=>ad.handle(O,L).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=J.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=`${I} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${I} ${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=L.renderOpts.fetchMetrics;let i=L.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=L.renderOpts.collectedTags;if(!E)return await (0,o.I)(M,N,e,L.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!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,d=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:L.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 ad.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:H,isOnDemandRevalidate:A})},z),b}},l=await ad.handleResponse({req:a,nextConfig:w,cacheKey:F,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,responseGenerator:k,waitUntil:c.waitUntil});if(!E)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")&&E||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)(M,N,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};K?await g(K):await J.withPropagatedContext(a.headers,()=>J.trace(m.BaseServerSpan.handleRequest,{spanName:`${I} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":I,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await ad.onRequestError(a,b,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:H,isOnDemandRevalidate:A})}),E)throw b;return await (0,o.I)(M,N,new Response(null,{status:500})),null}}},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")},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=46131));module.exports=c})();
|
package/ui/standalone/.next/server/app/robopark/api/[...path]/route_client-reference-manifest.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/robopark/api/[...path]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"5233":{"*":{"id":"92681","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"5945":{"*":{"id":"14890","name":"*","chunks":[],"async":false}},"6960":{"*":{"id":"34635","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"C:\\Users\\yunge\\
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/robopark/api/[...path]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"5233":{"*":{"id":"92681","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"5945":{"*":{"id":"14890","name":"*","chunks":[],"async":false}},"6960":{"*":{"id":"34635","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\client\\components\\builtin\\global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\builtin\\global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\client\\components\\client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\client\\components\\client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\client\\components\\http-access-fallback\\error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\http-access-fallback\\error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\client\\components\\layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\client\\components\\metadata\\async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\metadata\\async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\client\\components\\render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\client\\components\\render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\lib\\framework\\boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\lib\\framework\\boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\lib\\metadata\\generate\\icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\dist\\esm\\lib\\metadata\\generate\\icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\components\\app\\theme-provider.tsx":{"id":5233,"name":"*","chunks":["7501","static/chunks/144d3bae-bd5d150c0cab972e.js","9880","static/chunks/9880-53262785284464cc.js","7177","static/chunks/app/layout-fcce963da1d8220f.js"],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\font\\google\\target.css?{\"path\":\"app\\\\layout.tsx\",\"import\":\"Public_Sans\",\"arguments\":[{\"variable\":\"--font-public-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"publicSans\"}":{"id":5757,"name":"*","chunks":["7501","static/chunks/144d3bae-bd5d150c0cab972e.js","9880","static/chunks/9880-53262785284464cc.js","7177","static/chunks/app/layout-fcce963da1d8220f.js"],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\node_modules\\next\\font\\local\\target.css?{\"path\":\"app\\\\layout.tsx\",\"import\":\"\",\"arguments\":[{\"display\":\"swap\",\"variable\":\"--font-commit-mono\",\"src\":[{\"path\":\"../fonts/CommitMono-400-Regular.otf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/CommitMono-700-Regular.otf\",\"weight\":\"700\",\"style\":\"normal\"},{\"path\":\"../fonts/CommitMono-400-Italic.otf\",\"weight\":\"400\",\"style\":\"italic\"},{\"path\":\"../fonts/CommitMono-700-Italic.otf\",\"weight\":\"700\",\"style\":\"italic\"}]}],\"variableName\":\"commitMono\"}":{"id":1901,"name":"*","chunks":["7501","static/chunks/144d3bae-bd5d150c0cab972e.js","9880","static/chunks/9880-53262785284464cc.js","7177","static/chunks/app/layout-fcce963da1d8220f.js"],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\styles\\globals.css":{"id":3677,"name":"*","chunks":["7501","static/chunks/144d3bae-bd5d150c0cab972e.js","9880","static/chunks/9880-53262785284464cc.js","7177","static/chunks/app/layout-fcce963da1d8220f.js"],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\voice-tester\\page.tsx":{"id":6960,"name":"*","chunks":[],"async":false},"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\components\\app\\app.tsx":{"id":5945,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\":[],"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\layout":[{"inlined":false,"path":"static/css/3f478a573f9be82e.css"},{"inlined":false,"path":"static/css/51560c4af1d5a21f.css"}],"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\(app)\\layout":[],"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\(app)\\page":[],"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\robopark\\[...path]\\route":[],"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\robopark\\page":[],"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\robopark\\api\\[...path]\\route":[]},"rscModuleMapping":{"622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"3677":{"*":{"id":"23141","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"5233":{"*":{"id":"43259","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"5945":{"*":{"id":"58467","name":"*","chunks":[],"async":false}},"6960":{"*":{"id":"33323","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var a={};a.id=9557,a.ids=[9557],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3421:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71237),e=c(55088),f=c(17679);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},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")},18054:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{GET:()=>A,dynamic:()=>w,runtime:()=>x});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(58755),v=c(82680);let w="force-dynamic",x="nodejs",y=(process.env.ROBOPARK_SCHEDULER_URL||"http://host.docker.internal:8080").replace(/\/+$/,"");async function z(a){let b=`${y}/api/robots/${encodeURIComponent(a)}/stream`;try{let a=await fetch(b,{cache:"no-store",signal:AbortSignal.timeout(8e3)}),c=await a.text();return new Response(c,{status:a.status,headers:{"content-type":a.headers.get("content-type")||"application/json","cache-control":"no-store"}})}catch(b){let a=b instanceof Error?b.message:"unknown error";return Response.json({active:!1,reason:"scheduler_unreachable",detail:`${y}: ${a}`},{status:503,headers:{"cache-control":"no-store"}})}}async function A(a,b){let{robotId:c}=await b.params,d=(0,v.b)(c),e=process.env.LIVEKIT_API_KEY,f=process.env.LIVEKIT_API_SECRET;if(!d||!e||!f)return z(c);let g="robopark-"+d.deviceId,h=g,i=!1;try{let a=(process.env.LIVEKIT_URL||"http://livekit:7880").replace(/^ws:/,"http:").replace(/^wss:/,"https:"),b=new u.iz(a,e,f),c=(await b.listRooms()).filter(a=>a.name===g||a.name.startsWith(g+"-"));c.sort((a,b)=>Number(b.creationTime||0)-Number(a.creationTime||0));let d=c.find(a=>a.name===g&&a.numParticipants>0)||c.find(a=>a.numParticipants>0)||c[0];d&&(h=d.name,i=!0)}catch(a){console.warn("LiveKit room discovery unavailable; using stable robot room:",a)}let j=new u.mk(e,f,{identity:"viewer:"+d.deviceId+":"+crypto.randomUUID().slice(0,8),name:"RoboPark Control monitor",ttl:"15m"}),k={room:h,roomJoin:!0,canSubscribe:!0,canPublish:!1,canPublishData:!1};return j.addGrant(k),Response.json({active:!0,url:function(a){let b=(a.headers.get("x-forwarded-host")||a.headers.get("host")||"").split(",")[0].trim().split(":")[0];if(b.endsWith(".ts.net"))return"wss://"+b;let c=process.env.LIVEKIT_PUBLIC_URL||process.env.NEXT_PUBLIC_LIVEKIT_URL;if(c&&"auto"!==c)return c;let d=a.headers.get("x-forwarded-proto"),e=a.headers.get("host")||"localhost",f=e.split(":")[0];return f.endsWith(".ts.net")?"wss://"+f:"https"===d||a.url.startsWith("https://")?"wss://"+e:"ws://"+f+":7880"}(a),token:await j.toJwt(),room:h,robot_id:d.deviceId,source:"robovoice-native",room_discovered:i},{headers:{"cache-control":"no-store"}})}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/robopark/api/robots/[robotId]/stream/route",pathname:"/robopark/api/robots/[robotId]/stream",filename:"route",bundlePath:"app/robopark/api/robots/[robotId]/stream/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"C:\\Users\\yunge\\AppData\\Local\\Temp\\rp-uibuild\\frontend\\app\\robopark\\api\\robots\\[robotId]\\stream\\route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){var d;let e="/robopark/api/robots/[robotId]/stream/route";"/index"===e&&(e="/");let g=await B.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:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||B.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===B.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)=>B.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=>B.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&&C&&!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 B.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})},z),b}},l=await B.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:C,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 B.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}}},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:()=>{},82680:(a,b,c)=>{"use strict";c.d(b,{b:()=>e});let d=[{id:"bmw",name:"BMW",deviceId:"dev_0422e545",host:process.env.ROBOVOICE_BMW_HOST||"192.168.0.178",visionPort:5e3,audioPort:8e3,aliases:["bmw","dev_0422e545"]}];function e(a){let b=decodeURIComponent(a).trim().toLowerCase();return(function(){let a=process.env.ROBOVOICE_ROBOTS_JSON;if(!a)return d;try{let b=JSON.parse(a);if(!Array.isArray(b))throw Error("expected a JSON array");return b.map(a=>({id:String(a.id||a.name).toLowerCase(),name:String(a.name||a.id),deviceId:String(a.deviceId||a.device_id||a.id),host:String(a.host||a.ip),visionPort:Number(a.visionPort||a.vision_port||5e3),audioPort:Number(a.audioPort||a.audio_port||8e3),aliases:Array.from(new Set([a.id,a.name,a.deviceId,a.device_id,...a.aliases||[]].filter(Boolean).map(String)))}))}catch(a){return console.error("Invalid ROBOVOICE_ROBOTS_JSON:",a),d}})().find(a=>[a.id,a.name,a.deviceId,...a.aliases].some(a=>String(a).toLowerCase()===b))}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},95736:(a,b,c)=>{"use strict";a.exports=c(44870)},96487:()=>{}};var b=require("../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[5873,8755],()=>b(b.s=18054));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=9557,a.ids=[9557],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3421:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71237),e=c(55088),f=c(17679);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},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")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},35437:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{GET:()=>A,dynamic:()=>w,runtime:()=>x});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(58755),v=c(82680);let w="force-dynamic",x="nodejs",y=(process.env.ROBOPARK_SCHEDULER_URL||"http://host.docker.internal:8080").replace(/\/+$/,"");async function z(a){let b=`${y}/api/robots/${encodeURIComponent(a)}/stream`;try{let a=await fetch(b,{cache:"no-store",signal:AbortSignal.timeout(8e3)}),c=await a.text();return new Response(c,{status:a.status,headers:{"content-type":a.headers.get("content-type")||"application/json","cache-control":"no-store"}})}catch(b){let a=b instanceof Error?b.message:"unknown error";return Response.json({active:!1,reason:"scheduler_unreachable",detail:`${y}: ${a}`},{status:503,headers:{"cache-control":"no-store"}})}}async function A(a,b){let{robotId:c}=await b.params,d=(0,v.b)(c),e=process.env.LIVEKIT_API_KEY,f=process.env.LIVEKIT_API_SECRET;if(!d||!e||!f)return z(c);let g="robopark-"+d.deviceId,h=g,i=!1;try{let a=(process.env.LIVEKIT_URL||"http://livekit:7880").replace(/^ws:/,"http:").replace(/^wss:/,"https:"),b=new u.iz(a,e,f),c=(await b.listRooms()).filter(a=>a.name===g||a.name.startsWith(g+"-"));c.sort((a,b)=>Number(b.creationTime||0)-Number(a.creationTime||0));let d=c.find(a=>a.name===g&&a.numParticipants>0)||c.find(a=>a.numParticipants>0)||c[0];d&&(h=d.name,i=!0)}catch(a){console.warn("LiveKit room discovery unavailable; using stable robot room:",a)}let j=new u.mk(e,f,{identity:"viewer:"+d.deviceId+":"+crypto.randomUUID().slice(0,8),name:"RoboPark Control monitor",ttl:"15m"}),k={room:h,roomJoin:!0,canSubscribe:!0,canPublish:!1,canPublishData:!1};return j.addGrant(k),Response.json({active:!0,url:function(a){let b=(a.headers.get("x-forwarded-host")||a.headers.get("host")||"").split(",")[0].trim().split(":")[0];if(b.endsWith(".ts.net"))return"wss://"+b;let c=process.env.LIVEKIT_PUBLIC_URL||process.env.NEXT_PUBLIC_LIVEKIT_URL;if(c&&"auto"!==c)return c;let d=a.headers.get("x-forwarded-proto"),e=a.headers.get("host")||"localhost",f=e.split(":")[0];return f.endsWith(".ts.net")?"wss://"+f:"https"===d||a.url.startsWith("https://")?"wss://"+e:"ws://"+f+":7880"}(a),token:await j.toJwt(),room:h,robot_id:d.deviceId,source:"robovoice-native",room_discovered:i},{headers:{"cache-control":"no-store"}})}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/robopark/api/robots/[robotId]/stream/route",pathname:"/robopark/api/robots/[robotId]/stream",filename:"route",bundlePath:"app/robopark/api/robots/[robotId]/stream/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"C:\\Users\\yunge\\OneDrive\\Desktop\\ROBOVOICE-main\\frontend\\app\\robopark\\api\\robots\\[robotId]\\stream\\route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){var d;let e="/robopark/api/robots/[robotId]/stream/route";"/index"===e&&(e="/");let g=await B.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:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||B.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===B.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)=>B.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=>B.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&&C&&!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 B.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})},z),b}},l=await B.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:C,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 B.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}}},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:()=>{},82680:(a,b,c)=>{"use strict";c.d(b,{b:()=>e});let d=[{id:"bmw",name:"BMW",deviceId:"dev_0422e545",host:process.env.ROBOVOICE_BMW_HOST||"192.168.0.178",visionPort:5e3,audioPort:8e3,aliases:["bmw","dev_0422e545"]}];function e(a){let b=decodeURIComponent(a).trim().toLowerCase();return(function(){let a=process.env.ROBOVOICE_ROBOTS_JSON;if(!a)return d;try{let b=JSON.parse(a);if(!Array.isArray(b))throw Error("expected a JSON array");return b.map(a=>({id:String(a.id||a.name).toLowerCase(),name:String(a.name||a.id),deviceId:String(a.deviceId||a.device_id||a.id),host:String(a.host||a.ip),visionPort:Number(a.visionPort||a.vision_port||5e3),audioPort:Number(a.audioPort||a.audio_port||8e3),aliases:Array.from(new Set([a.id,a.name,a.deviceId,a.device_id,...a.aliases||[]].filter(Boolean).map(String)))}))}catch(a){return console.error("Invalid ROBOVOICE_ROBOTS_JSON:",a),d}})().find(a=>[a.id,a.name,a.deviceId,...a.aliases].some(a=>String(a).toLowerCase()===b))}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},95736:(a,b,c)=>{"use strict";a.exports=c(44870)},96487:()=>{}};var b=require("../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[5873,8755],()=>b(b.s=35437));module.exports=c})();
|